From 6fa863b653b5c177103f8db159f83941d32e331a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Sun, 2 May 2021 19:56:53 -0400 Subject: [PATCH 001/267] Code formatting --- benchmarks/hash_table/dynamic_map_bench.cu | 100 ++++--- benchmarks/hash_table/static_map_bench.cu | 105 ++++--- benchmarks/reduce_by_key/reduce_by_key.cu | 12 +- include/cuco/allocator.hpp | 3 +- include/cuco/detail/dynamic_map_kernels.cuh | 301 ++++++++++--------- include/cuco/detail/hash_functions.cuh | 1 - include/cuco/detail/pair.cuh | 4 +- include/cuco/detail/static_map.inl | 16 +- include/cuco/detail/static_map_kernels.cuh | 308 +++++++++----------- include/cuco/static_map.cuh | 38 +-- tests/dynamic_map/dynamic_map_test.cu | 72 ++--- tests/static_map/static_map_test.cu | 19 +- 12 files changed, 474 insertions(+), 505 deletions(-) diff --git a/benchmarks/hash_table/dynamic_map_bench.cu b/benchmarks/hash_table/dynamic_map_bench.cu index cd6eadb47..995e53903 100644 --- a/benchmarks/hash_table/dynamic_map_bench.cu +++ b/benchmarks/hash_table/dynamic_map_bench.cu @@ -15,120 +15,118 @@ */ #include -#include #include #include #include +#include -enum class dist_type { - UNIQUE, - UNIFORM, - GAUSSIAN -}; +enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; -template -static void generate_keys(OutputIt output_begin, OutputIt output_end) { +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) +{ auto num_keys = std::distance(output_begin, output_end); - + std::random_device rd; std::mt19937 gen{rd()}; - switch(Dist) { + switch (Dist) { case dist_type::UNIQUE: - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; case dist_type::UNIFORM: - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(gen())); } break; case dist_type::GAUSSIAN: std::normal_distribution<> dg{1e9, 1e7}; - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; } } -static void gen_final_size(benchmark::internal::Benchmark* b) { - for(auto size = 10'000'000; size <= 150'000'000; size += 20'000'000) { +static void gen_final_size(benchmark::internal::Benchmark* b) +{ + for (auto size = 10'000'000; size <= 150'000'000; size += 20'000'000) { b->Args({size}); } } template -static void BM_dynamic_insert(::benchmark::State& state) { +static void BM_dynamic_insert(::benchmark::State& state) +{ using map_type = cuco::dynamic_map; - - std::size_t num_keys = state.range(0); - std::size_t initial_size = 1<<27; - - std::vector h_keys( num_keys ); - std::vector> h_pairs ( num_keys ); - + + std::size_t num_keys = state.range(0); + std::size_t initial_size = 1 << 27; + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + generate_keys(h_keys.begin(), h_keys.end()); - for(auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector> d_pairs( h_pairs ); + thrust::device_vector> d_pairs(h_pairs); std::size_t batch_size = 1E6; - for(auto _ : state) { + for (auto _ : state) { map_type map{initial_size, -1, -1}; { - cuda_event_timer raii{state}; - for(auto i = 0; i < num_keys; i += batch_size) { + cuda_event_timer raii{state}; + for (auto i = 0; i < num_keys; i += batch_size) { map.insert(d_pairs.begin() + i, d_pairs.begin() + i + batch_size); } } } - state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * - int64_t(state.iterations()) * + state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * int64_t(state.iterations()) * int64_t(state.range(0))); } template -static void BM_dynamic_search_all(::benchmark::State& state) { +static void BM_dynamic_search_all(::benchmark::State& state) +{ using map_type = cuco::dynamic_map; - - std::size_t num_keys = state.range(0); - std::size_t initial_size = 1<<27; - std::vector h_keys( num_keys ); - std::vector> h_pairs ( num_keys ); + std::size_t num_keys = state.range(0); + std::size_t initial_size = 1 << 27; + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); generate_keys(h_keys.begin(), h_keys.end()); - - for(auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector d_keys( h_keys ); - thrust::device_vector> d_pairs( h_pairs ); - thrust::device_vector d_results( num_keys ); + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_pairs(h_pairs); + thrust::device_vector d_results(num_keys); map_type map{initial_size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); - for(auto _ : state) { + for (auto _ : state) { cuda_event_timer raii{state}; map.find(d_keys.begin(), d_keys.end(), d_results.begin()); } - state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * - int64_t(state.iterations()) * + state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * int64_t(state.iterations()) * int64_t(state.range(0))); } @@ -161,7 +159,7 @@ BENCHMARK_TEMPLATE(BM_dynamic_search_all, int32_t, int32_t, dist_type::GAUSSIAN) ->Unit(benchmark::kMillisecond) ->Apply(gen_final_size) ->UseManualTime(); - + BENCHMARK_TEMPLATE(BM_dynamic_insert, int64_t, int64_t, dist_type::UNIQUE) ->Unit(benchmark::kMillisecond) ->Apply(gen_final_size) diff --git a/benchmarks/hash_table/static_map_bench.cu b/benchmarks/hash_table/static_map_bench.cu index 165465518..af8e09de1 100644 --- a/benchmarks/hash_table/static_map_bench.cu +++ b/benchmarks/hash_table/static_map_bench.cu @@ -15,40 +15,37 @@ */ #include -#include "cuco/static_map.cuh" -#include #include -#include +#include #include +#include #include +#include "cuco/static_map.cuh" -enum class dist_type { - UNIQUE, - UNIFORM, - GAUSSIAN -}; +enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; -template -static void generate_keys(OutputIt output_begin, OutputIt output_end) { +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) +{ auto num_keys = std::distance(output_begin, output_end); - + std::random_device rd; std::mt19937 gen{rd()}; - switch(Dist) { + switch (Dist) { case dist_type::UNIQUE: - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; case dist_type::UNIFORM: - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(gen())); } break; case dist_type::GAUSSIAN: std::normal_distribution<> dg{1e9, 1e7}; - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; @@ -59,7 +56,8 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) { * @brief Generates input sizes and hash table occupancies * */ -static void generate_size_and_occupancy(benchmark::internal::Benchmark* b) { +static void generate_size_and_occupancy(benchmark::internal::Benchmark* b) +{ for (auto size = 100'000'000; size <= 100'000'000; size *= 10) { for (auto occupancy = 10; occupancy <= 90; occupancy += 10) { b->Args({size, occupancy}); @@ -67,31 +65,30 @@ static void generate_size_and_occupancy(benchmark::internal::Benchmark* b) { } } - - template -static void BM_static_map_insert(::benchmark::State& state) { +static void BM_static_map_insert(::benchmark::State& state) +{ using map_type = cuco::static_map; - + std::size_t num_keys = state.range(0); - float occupancy = state.range(1) / float{100}; - std::size_t size = num_keys / occupancy; + float occupancy = state.range(1) / float{100}; + std::size_t size = num_keys / occupancy; + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); - std::vector h_keys( num_keys ); - std::vector> h_pairs( num_keys ); - generate_keys(h_keys.begin(), h_keys.end()); - - for(auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector> d_pairs( h_pairs ); + thrust::device_vector> d_pairs(h_pairs); - for(auto _ : state) { + for (auto _ : state) { state.ResumeTiming(); state.PauseTiming(); map_type map{size, -1, -1}; @@ -102,45 +99,43 @@ static void BM_static_map_insert(::benchmark::State& state) { state.PauseTiming(); } - state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * - int64_t(state.iterations()) * + state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * int64_t(state.iterations()) * int64_t(state.range(0))); } - - template -static void BM_static_map_search_all(::benchmark::State& state) { +static void BM_static_map_search_all(::benchmark::State& state) +{ using map_type = cuco::static_map; - + std::size_t num_keys = state.range(0); - float occupancy = state.range(1) / float{100}; - std::size_t size = num_keys / occupancy; + float occupancy = state.range(1) / float{100}; + std::size_t size = num_keys / occupancy; map_type map{size, -1, -1}; auto view = map.get_device_mutable_view(); - std::vector h_keys( num_keys ); - std::vector h_values( num_keys ); - std::vector> h_pairs ( num_keys ); - std::vector h_results (num_keys); + std::vector h_keys(num_keys); + std::vector h_values(num_keys); + std::vector> h_pairs(num_keys); + std::vector h_results(num_keys); generate_keys(h_keys.begin(), h_keys.end()); - - for(auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector d_keys( h_keys ); - thrust::device_vector d_results( num_keys); - thrust::device_vector> d_pairs( h_pairs ); + thrust::device_vector d_keys(h_keys); + thrust::device_vector d_results(num_keys); + thrust::device_vector> d_pairs(h_pairs); map.insert(d_pairs.begin(), d_pairs.end()); - - for(auto _ : state) { + + for (auto _ : state) { map.find(d_keys.begin(), d_keys.end(), d_results.begin()); } @@ -148,8 +143,6 @@ static void BM_static_map_search_all(::benchmark::State& state) { int64_t(state.range(0))); } - - BENCHMARK_TEMPLATE(BM_static_map_insert, int32_t, int32_t, dist_type::UNIQUE) ->Unit(benchmark::kMillisecond) ->Apply(generate_size_and_occupancy); diff --git a/benchmarks/reduce_by_key/reduce_by_key.cu b/benchmarks/reduce_by_key/reduce_by_key.cu index 0ca08144f..3e4776c6b 100644 --- a/benchmarks/reduce_by_key/reduce_by_key.cu +++ b/benchmarks/reduce_by_key/reduce_by_key.cu @@ -16,13 +16,13 @@ #include +#include #include #include #include #include #include #include -#include /** * @brief Generates input sizes and number of unique keys @@ -76,13 +76,11 @@ static void BM_thrust(::benchmark::State& state) } } BENCHMARK_TEMPLATE(BM_thrust, int32_t, int32_t) - ->Unit(benchmark::kMillisecond) - ->Apply(generate_size_and_num_unique); + ->Unit(benchmark::kMillisecond) + ->Apply(generate_size_and_num_unique); BENCHMARK_TEMPLATE(BM_thrust, int64_t, int64_t) - ->Unit(benchmark::kMillisecond) - ->Apply(generate_size_and_num_unique); + ->Unit(benchmark::kMillisecond) + ->Apply(generate_size_and_num_unique); // TODO: Hash based reduce by key benchmark - - diff --git a/include/cuco/allocator.hpp b/include/cuco/allocator.hpp index 21295c905..71d590384 100644 --- a/include/cuco/allocator.hpp +++ b/include/cuco/allocator.hpp @@ -29,7 +29,8 @@ class cuda_allocator { template cuda_allocator(cuda_allocator const&) noexcept - { } + { + } value_type* allocate(std::size_t n) { diff --git a/include/cuco/detail/dynamic_map_kernels.cuh b/include/cuco/detail/dynamic_map_kernels.cuh index 28690b0dc..c1e21e863 100644 --- a/include/cuco/detail/dynamic_map_kernels.cuh +++ b/include/cuco/detail/dynamic_map_kernels.cuh @@ -19,17 +19,17 @@ namespace detail { namespace cg = cooperative_groups; /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -38,7 +38,7 @@ namespace cg = cooperative_groups; * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -46,14 +46,14 @@ namespace cg = cooperative_groups; * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -62,58 +62,55 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { + KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = blockDim.x * blockIdx.x + threadIdx.x; - while(first + tid < last) { + while (first + tid < last) { pair_type insert_pair = *(first + tid); - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for(auto i = 0; i < num_submaps; ++i) { - if(i != insert_idx) { + for (auto i = 0; i < num_submaps; ++i) { + if (i != insert_idx) { exists = submap_views[i].contains(insert_pair.first, hash, key_equal); - if(exists) { - break; - } + if (exists) { break; } } } - if(!exists) { - if(submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { + if (!exists) { + if (submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { thread_num_successes++; } } tid += gridDim.x * blockDim.x; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -122,7 +119,7 @@ __global__ void insert(InputIt first, * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -130,14 +127,15 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -146,54 +144,51 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { + KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; - while(it < last) { + while (it < last) { pair_type insert_pair = *it; - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for(auto i = 0; i < num_submaps; ++i) { - if(i != insert_idx) { + for (auto i = 0; i < num_submaps; ++i) { + if (i != insert_idx) { exists = submap_views[i].contains(tile, insert_pair.first, hash, key_equal); - if(exists) { - break; - } + if (exists) { break; } } } - if(!exists) { - if(submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && - tile.thread_rank() == 0) { + if (!exists) { + if (submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && + tile.thread_rank() == 0) { thread_num_successes++; } } it += (gridDim.x * blockDim.x) / tile_size; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The number of threads in the thread block - * @tparam Value The mapped value type for the map + * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -207,37 +202,39 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) +{ + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while(first + tid < last) { - auto key = *(first + tid); + while (first + tid < last) { + auto key = *(first + tid); auto found_value = empty_value_sentinel; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(key, hash, key_equal); - if(found != submap_view.end()) { + auto found = submap_view.find(key, hash, key_equal); + if (found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -252,10 +249,10 @@ __global__ void find(InputIt first, /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -264,7 +261,7 @@ __global__ void find(InputIt first, * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -278,49 +275,50 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; + KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while(first + key_idx < last) { - auto key = *(first + key_idx); + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found_value = empty_value_sentinel; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(tile, key, hash, key_equal); - if(found != submap_view.end()) { + auto found = submap_view.find(tile, key, hash, key_equal); + if (found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found_value; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found_value; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; @@ -329,13 +327,13 @@ __global__ void find(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The number of threads in the thread block * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -349,33 +347,33 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { + KeyEqual key_equal) +{ auto tid = blockDim.x * blockIdx.x + threadIdx.x; __shared__ bool writeBuffer[block_size]; - while(first + tid < last) { - auto key = *(first + tid); + while (first + tid < last) { + auto key = *(first + tid); auto found = false; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(key, hash, key_equal); - if(found) { - break; - } + if (found) { break; } } - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -390,10 +388,10 @@ __global__ void contains(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -401,7 +399,7 @@ __global__ void contains(InputIt first, * perform find operations * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -415,49 +413,48 @@ __global__ void contains(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - while(first + key_idx < last) { - auto key = *(first + key_idx); + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = false; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(tile, key, hash, key_equal); - if(found) { - break; - } + if (found) { break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; } } -} // namespace detail -} // namespace cuco \ No newline at end of file +} // namespace detail +} // namespace cuco \ No newline at end of file diff --git a/include/cuco/detail/hash_functions.cuh b/include/cuco/detail/hash_functions.cuh index de7074f04..aec550aba 100644 --- a/include/cuco/detail/hash_functions.cuh +++ b/include/cuco/detail/hash_functions.cuh @@ -20,7 +20,6 @@ namespace cuco { namespace detail { - // MurmurHash3_32 implementation from // https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp //----------------------------------------------------------------------------- diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index da50f7258..dfdf7632e 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -68,8 +68,8 @@ struct is_thrust_pair_like_impl : std::false_type { template struct is_thrust_pair_like_impl(std::declval())), - decltype(thrust::get<1>(std::declval()))>> + std::void_t(std::declval())), + decltype(thrust::get<1>(std::declval()))>> : std::conditional_t::value == 2, std::true_type, std::false_type> { }; diff --git a/include/cuco/detail/static_map.inl b/include/cuco/detail/static_map.inl index b8f7ccdba..2b72cfa32 100644 --- a/include/cuco/detail/static_map.inl +++ b/include/cuco/detail/static_map.inl @@ -63,7 +63,7 @@ void static_map::insert(InputIt first, Hash hash, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); + auto num_keys = std::distance(first, last); if (num_keys == 0) { return; } auto const block_size = 128; @@ -87,9 +87,9 @@ void static_map::insert(InputIt first, template template void static_map::find( - InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) + InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); + auto num_keys = std::distance(first, last); if (num_keys == 0) { return; } auto const block_size = 128; @@ -108,7 +108,7 @@ template void static_map::contains( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); + auto num_keys = std::distance(first, last); if (num_keys == 0) { return; } auto const block_size = 128; @@ -175,7 +175,8 @@ __device__ bool static_map::device_mutable_view::i // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = detail::bitwise_compare(existing_key,this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); // the key we are trying to insert is already in the map, so we return with failure to insert if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { @@ -374,7 +375,7 @@ __device__ bool static_map::device_view::contains( while (true) { auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - if (detail::bitwise_compare(existing_key,empty_key_sentinel_)) { return false; } + if (detail::bitwise_compare(existing_key, empty_key_sentinel_)) { return false; } if (key_equal(existing_key, k)) { return true; } @@ -394,7 +395,8 @@ __device__ bool static_map::device_view::contains( // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = detail::bitwise_compare(existing_key,this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); // the key we were searching for was found by one of the threads, so we return an iterator to // the entry diff --git a/include/cuco/detail/static_map_kernels.cuh b/include/cuco/detail/static_map_kernels.cuh index aa4606aa6..e166de3c6 100644 --- a/include/cuco/detail/static_map_kernels.cuh +++ b/include/cuco/detail/static_map_kernels.cuh @@ -12,9 +12,9 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ -namespace cuco{ +namespace cuco { namespace detail { namespace cg = cooperative_groups; @@ -23,7 +23,7 @@ namespace cg = cooperative_groups; * * Each space in `slots` that can hold a key value pair is initialized to a * `pair_atomic_type` containing the key `k` and the value `v`. - * + * * @tparam atomic_key_type Type of the `Key` atomic container * @tparam atomic_mapped_type Type of the `Value` atomic container * @tparam Key key type @@ -34,16 +34,14 @@ namespace cg = cooperative_groups; * @param v Value to which all values in `slots` are initialized * @param size Size of the storage pointed to by `slots` */ -template -__global__ void initialize( - pair_atomic_type* const slots, Key k, - Value v, std::size_t size) { - +template +__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) +{ auto tid = block_size * blockIdx.x + threadIdx.x; while (tid < size) { new (&slots[tid].first) atomic_key_type{k}; @@ -53,14 +51,14 @@ __global__ void initialize( } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -72,25 +70,22 @@ __global__ void initialize( * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid; - + auto it = first + tid; + while (it < last) { typename viewT::value_type const insert_pair{*it}; if (view.insert(insert_pair, hash, key_equal)) { thread_num_successes++; } @@ -100,25 +95,23 @@ __global__ void insert(InputIt first, // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -130,27 +123,24 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; - + auto tid = block_size * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; + while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; @@ -159,25 +149,23 @@ __global__ void insert(InputIt first, } it += (gridDim.x * block_size) / tile_size; } - + // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The size of the thread block * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -189,37 +177,34 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void find( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(key, hash, key_equal); - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - writeBuffer[threadIdx.x] = - found == view.end() - ? view.get_empty_value_sentinel() - : found->second.load(cuda::std::memory_order_relaxed); + writeBuffer[threadIdx.x] = found == view.end() + ? view.get_empty_value_sentinel() + : found->second.load(cuda::std::memory_order_relaxed); __syncthreads(); *(output_begin + key_idx) = writeBuffer[threadIdx.x]; key_idx += gridDim.x * block_size; @@ -228,10 +213,10 @@ __global__ void find(InputIt first, /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -240,7 +225,7 @@ __global__ void find(InputIt first, * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -252,42 +237,40 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void find( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = - found == view.end() - ? view.get_empty_value_sentinel() - : found->second.load(cuda::std::memory_order_relaxed); + found == view.end() ? view.get_empty_value_sentinel() + : found->second.load(cuda::std::memory_order_relaxed); } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; @@ -296,7 +279,7 @@ __global__ void find(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The size of the thread block @@ -306,7 +289,7 @@ __global__ void find(InputIt first, * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -314,26 +297,24 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void contains( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { + + while (first + key_idx < last) { auto key = *(first + key_idx); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -348,10 +329,10 @@ __global__ void contains(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -363,7 +344,7 @@ __global__ void contains(InputIt first, * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -371,43 +352,40 @@ __global__ void contains(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void contains( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.contains(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; } } -} // namespace detail -} // namespace cuco +} // namespace detail +} // namespace cuco diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 900197e5a..1b41a16cd 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -25,7 +25,8 @@ #include -#if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 700) +#if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ + (__CUDA_ARCH__ >= 700) #define CUCO_HAS_CUDA_BARRIER #endif @@ -548,10 +549,10 @@ class static_map { * @param empty_value_sentinel The reserved value for mapped values to * represent empty slots */ - __host__ __device__ device_mutable_view(pair_atomic_type* slots, - std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel) noexcept + __host__ __device__ device_mutable_view(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept : device_view_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} { } @@ -633,10 +634,10 @@ class static_map { * @param empty_value_sentinel The reserved value for mapped values to * represent empty slots */ - __host__ __device__ device_view(pair_atomic_type* slots, - std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel) noexcept + __host__ __device__ device_view(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept : device_view_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} { } @@ -644,7 +645,8 @@ class static_map { /** * @brief Makes a copy of given `device_view` using non-owned memory. * - * This function is intended to be used to create shared memory copies of small static maps, although global memory can be used as well. + * This function is intended to be used to create shared memory copies of small static maps, + * although global memory can be used as well. * * Example: * @code{.cpp} @@ -673,7 +675,8 @@ class static_map { * @tparam CG The type of the cooperative thread group * @param g The ooperative thread group used to copy the slots * @param source_device_view `device_view` to copy from - * @param memory_to_use Array large enough to support `capacity` elements. Object does not take the ownership of the memory + * @param memory_to_use Array large enough to support `capacity` elements. Object does not take + * the ownership of the memory * @return Copy of passed `device_view` */ template @@ -683,9 +686,7 @@ class static_map { { #if defined(CUDA_HAS_CUDA_BARRIER) __shared__ cuda::barrier barrier; - if (g.thread_rank() == 0) { - init(&barrier, g.size()); - } + if (g.thread_rank() == 0) { init(&barrier, g.size()); } g.sync(); cuda::memcpy_async(g, @@ -697,10 +698,11 @@ class static_map { barrier.arrive_and_wait(); #else pair_atomic_type const* const slots_ptr = source_device_view.get_slots(); - for (std::size_t i = g.thread_rank(); i < source_device_view.get_capacity(); i += g.size()) - { - new (&memory_to_use[i].first) atomic_key_type{slots_ptr[i].first.load(cuda::memory_order_relaxed)}; - new (&memory_to_use[i].second) atomic_mapped_type{slots_ptr[i].second.load(cuda::memory_order_relaxed)}; + for (std::size_t i = g.thread_rank(); i < source_device_view.get_capacity(); i += g.size()) { + new (&memory_to_use[i].first) + atomic_key_type{slots_ptr[i].first.load(cuda::memory_order_relaxed)}; + new (&memory_to_use[i].second) + atomic_mapped_type{slots_ptr[i].second.load(cuda::memory_order_relaxed)}; } g.sync(); #endif diff --git a/tests/dynamic_map/dynamic_map_test.cu b/tests/dynamic_map/dynamic_map_test.cu index 3e4b94f02..fd38ea642 100644 --- a/tests/dynamic_map/dynamic_map_test.cu +++ b/tests/dynamic_map/dynamic_map_test.cu @@ -22,33 +22,30 @@ #include #include -enum class dist_type { - UNIQUE, - UNIFORM, - GAUSSIAN -}; - -template -static void generate_keys(OutputIt output_begin, OutputIt output_end) { +enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; + +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) +{ auto num_keys = std::distance(output_begin, output_end); std::random_device rd; std::mt19937 gen{rd()}; - switch(Dist) { + switch (Dist) { case dist_type::UNIQUE: - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; case dist_type::UNIFORM: - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(gen())); } break; case dist_type::GAUSSIAN: std::normal_distribution<> dg{1e9, 1e7}; - for(auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; @@ -78,12 +75,15 @@ bool none_of(Iterator begin, Iterator end, Predicate p) } } // namespace - -TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", +TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", + "", ((typename T, dist_type Dist), T, Dist), - (int32_t, dist_type::UNIQUE), (int64_t, dist_type::UNIQUE), - (int32_t, dist_type::UNIFORM), (int64_t, dist_type::UNIFORM), - (int32_t, dist_type::GAUSSIAN), (int64_t, dist_type::GAUSSIAN)) + (int32_t, dist_type::UNIQUE), + (int64_t, dist_type::UNIQUE), + (int32_t, dist_type::UNIFORM), + (int64_t, dist_type::UNIFORM), + (int32_t, dist_type::GAUSSIAN), + (int64_t, dist_type::GAUSSIAN)) { using Key = T; using Value = T; @@ -91,25 +91,25 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", constexpr std::size_t num_keys{50'000'000}; cuco::dynamic_map map{30'000'000, -1, -1}; - std::vector h_keys( num_keys ); - std::vector h_values( num_keys ); - std::vector> h_pairs ( num_keys ); + std::vector h_keys(num_keys); + std::vector h_values(num_keys); + std::vector> h_pairs(num_keys); generate_keys(h_keys.begin(), h_keys.end()); - for(auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_values[i] = val; - h_pairs[i].first = key; + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_values[i] = val; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector d_keys( h_keys ); - thrust::device_vector d_values( h_values ); - thrust::device_vector> d_pairs( h_pairs ); - thrust::device_vector d_results( num_keys ); - thrust::device_vector d_contained( num_keys ); + thrust::device_vector d_keys(h_keys); + thrust::device_vector d_values(h_values); + thrust::device_vector> d_pairs(h_pairs); + thrust::device_vector d_results(num_keys); + thrust::device_vector d_contained(num_keys); // bulk function test cases SECTION("All inserted keys-value pairs should be correctly recovered during find") @@ -118,8 +118,7 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", map.find(d_keys.begin(), d_keys.end(), d_results.begin()); auto zip = thrust::make_zip_iterator(thrust::make_tuple(d_results.begin(), d_values.begin())); - REQUIRE(all_of(zip, zip + num_keys, - [] __device__(auto const& p) { + REQUIRE(all_of(zip, zip + num_keys, [] __device__(auto const& p) { return thrust::get<0>(p) == thrust::get<1>(p); })); } @@ -128,7 +127,8 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", { map.find(d_keys.begin(), d_keys.end(), d_results.begin()); - REQUIRE(all_of(d_results.begin(), d_results.end(), [] __device__(auto const& p) { return p == -1; })); + REQUIRE( + all_of(d_results.begin(), d_results.end(), [] __device__(auto const& p) { return p == -1; })); } SECTION("All inserted keys-value pairs should be contained") @@ -136,13 +136,15 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", map.insert(d_pairs.begin(), d_pairs.end()); map.contains(d_keys.begin(), d_keys.end(), d_contained.begin()); - REQUIRE(all_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); + REQUIRE( + all_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } SECTION("Non-inserted keys-value pairs should not be contained") { map.contains(d_keys.begin(), d_keys.end(), d_contained.begin()); - REQUIRE(none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); + REQUIRE( + none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } } \ No newline at end of file diff --git a/tests/static_map/static_map_test.cu b/tests/static_map/static_map_test.cu index f27ee77c9..f382e5409 100644 --- a/tests/static_map/static_map_test.cu +++ b/tests/static_map/static_map_test.cu @@ -217,7 +217,6 @@ TEST_CASE("User defined key and value type", "") } } - TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", ((typename T, dist_type Dist), T, Dist), @@ -283,8 +282,7 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", map.contains(d_keys.begin(), d_keys.end(), d_contained.begin()); REQUIRE( - none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; -})); + none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } SECTION("Inserting unique keys should return insert success.") @@ -311,8 +309,8 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", SECTION("const view") { REQUIRE(all_of( - d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) -{ return view.find(pair.first) == view.end(); + d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { + return view.find(pair.first) == view.end(); })); } } @@ -342,9 +340,10 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", { // All keys should be found REQUIRE(all_of( - d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) -{ auto const found = view.find(pair.first); return (found != view.end()) and (found->first.load() -== pair.first and found->second.load() == pair.second); + d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { + auto const found = view.find(pair.first); + return (found != view.end()) and + (found->first.load() == pair.first and found->second.load() == pair.second); })); } } @@ -489,8 +488,8 @@ TEMPLATE_TEST_CASE_SIG("Shared memory static map", d_keys_exist.data().get(), d_keys_and_values_correct.data().get()); - REQUIRE(none_of(d_keys_exist.begin(), d_keys_exist.end(), [] __device__(const bool key_found) -{ return key_found; + REQUIRE(none_of(d_keys_exist.begin(), d_keys_exist.end(), [] __device__(const bool key_found) { + return key_found; })); } } From a7398dd2577d56f13e663a55a0b7dc338086e8d1 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 24 Feb 2021 17:33:13 -0800 Subject: [PATCH 002/267] Fix several typos in comments + code formatting --- include/cuco/detail/dynamic_map.inl | 4 ++-- include/cuco/dynamic_map.cuh | 4 ++-- include/cuco/static_map.cuh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/cuco/detail/dynamic_map.inl b/include/cuco/detail/dynamic_map.inl index 57950ea45..e511489a4 100644 --- a/include/cuco/detail/dynamic_map.inl +++ b/include/cuco/detail/dynamic_map.inl @@ -35,7 +35,7 @@ dynamic_map::dynamic_map(std::size_t initial_capac submap_mutable_views_.push_back(submaps_[0]->get_device_mutable_view()); CUCO_CUDA_TRY(cudaMallocManaged(&num_successes_, sizeof(atomic_ctr_type))); -} // namespace cuco +} template dynamic_map::~dynamic_map() @@ -153,4 +153,4 @@ void dynamic_map::contains( CUCO_CUDA_TRY(cudaDeviceSynchronize()); } -} // namespace cuco \ No newline at end of file +} // namespace cuco diff --git a/include/cuco/dynamic_map.cuh b/include/cuco/dynamic_map.cuh index c234a3579..957d8dc33 100644 --- a/include/cuco/dynamic_map.cuh +++ b/include/cuco/dynamic_map.cuh @@ -51,7 +51,7 @@ namespace cuco { * Example: * \code{.cpp} * int empty_key_sentinel = -1; - * int empty_value_sentine = -1; + * int empty_value_sentinel = -1; * * // Constructs a map with 100,000 initial slots using -1 and -1 as the empty key/value * // sentinels. Performs one bulk insert of 50,000 keys and a second bulk insert of @@ -257,4 +257,4 @@ class dynamic_map { }; } // namespace cuco -#include \ No newline at end of file +#include diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 1b41a16cd..cf7de0a7e 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -83,7 +83,7 @@ class dynamic_map; * Example: * \code{.cpp} * int empty_key_sentinel = -1; - * int empty_value_sentine = -1; + * int empty_value_sentinel = -1; * * // Constructs a map with 100,000 slots using -1 and -1 as the empty key/value * // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, From a1e2dfd92fcd63ff1a6422b7b92ca0bcc8b62577 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 24 Feb 2021 19:08:38 -0800 Subject: [PATCH 003/267] Add static_multi_map class --- include/cuco/static_multi_map.cuh | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 include/cuco/static_multi_map.cuh diff --git a/include/cuco/static_multi_map.cuh b/include/cuco/static_multi_map.cuh new file mode 100644 index 000000000..95525b40c --- /dev/null +++ b/include/cuco/static_multi_map.cuh @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +#include + +namespace cuco { + +template > +class static_multi_map : public static_map { + public: + static_multi_map(std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc = Allocator{}); + + ~static_multi_map(); + +}; // class static_multi_map +} // namespace cuco + +#include From 67a4dcdacced469bfa22ca9a367555bd88490794 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 25 Feb 2021 11:59:52 -0800 Subject: [PATCH 004/267] Add STATIC_MULTI_MAP_EXAMPLE --- examples/CMakeLists.txt | 1 + .../static_map/static_multi_map_example.cu | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 examples/static_map/static_multi_map_example.cu diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a70b53da8..faf60ef0b 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -28,3 +28,4 @@ endfunction(ConfigureExample) ################################################################################################### ConfigureExample(STATIC_MAP_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/static_map_example.cu") +ConfigureExample(STATIC_MULTI_MAP_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/static_multi_map_example.cu") diff --git a/examples/static_map/static_multi_map_example.cu b/examples/static_map/static_multi_map_example.cu new file mode 100644 index 000000000..ce176e3ff --- /dev/null +++ b/examples/static_map/static_multi_map_example.cu @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include +#include +#include + +#include + +int main(void) +{ + int empty_key_sentinel = -1; + int empty_value_sentinel = -1; + + // Constructs a map with 100,000 slots using -1 and -1 as the empty key/value + // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, + // for an load factor of 50%. + cuco::static_multi_map map{100'000, empty_key_sentinel, empty_value_sentinel}; + + thrust::device_vector> pairs(50'000); + + // Create a sequence of pairs {{0,0}, {1,1}, ... {i,i}} + thrust::transform(thrust::make_counting_iterator(0), + thrust::make_counting_iterator(pairs.size()), + pairs.begin(), + [] __device__(auto i) { return thrust::make_pair(i, i); }); + + // Inserts all pairs into the map + // map.insert(pairs.begin(), pairs.end()); + + // Sequence of keys {0, 1, 2, ...} + // thrust::device_vector keys_to_find(50'000); + // thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); + // thrust::device_vector found_values(50'000); + + // Finds all keys {0, 1, 2, ...} and stores associated values into `found_values` + // If a key `keys_to_find[i]` doesn't exist, `found_values[i] == empty_value_sentinel` + // map.find(keys_to_find.begin(), keys_to_find.end(), found_values.begin()); + + return 0; +} From 74193905798bc476b85a6c2e606ea582f56b380d Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 25 Feb 2021 15:27:38 -0800 Subject: [PATCH 005/267] Restructure the code to accommodate static_multimap --- examples/CMakeLists.txt | 2 +- .../static_multimap_example.cu} | 11 +- include/cuco/detail/pair.cuh | 2 +- include/cuco/detail/static_kernels.cuh | 52 +++ include/cuco/detail/static_map.inl | 6 +- include/cuco/detail/static_map_kernels.cuh | 12 +- include/cuco/detail/static_multimap.inl | 376 ++++++++++++++++++ .../cuco/detail/static_multimap_kernels.cuh | 118 ++++++ include/cuco/static_map.cuh | 4 +- include/cuco/static_multi_map.cuh | 42 -- include/cuco/static_multimap.cuh | 82 ++++ 11 files changed, 648 insertions(+), 59 deletions(-) rename examples/{static_map/static_multi_map_example.cu => static_multimap/static_multimap_example.cu} (84%) create mode 100644 include/cuco/detail/static_kernels.cuh create mode 100644 include/cuco/detail/static_multimap.inl create mode 100644 include/cuco/detail/static_multimap_kernels.cuh delete mode 100644 include/cuco/static_multi_map.cuh create mode 100644 include/cuco/static_multimap.cuh diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index faf60ef0b..2e67e0aed 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -28,4 +28,4 @@ endfunction(ConfigureExample) ################################################################################################### ConfigureExample(STATIC_MAP_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/static_map_example.cu") -ConfigureExample(STATIC_MULTI_MAP_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/static_multi_map_example.cu") +ConfigureExample(STATIC_MULTIMAP_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_multimap/static_multimap_example.cu") diff --git a/examples/static_map/static_multi_map_example.cu b/examples/static_multimap/static_multimap_example.cu similarity index 84% rename from examples/static_map/static_multi_map_example.cu rename to examples/static_multimap/static_multimap_example.cu index ce176e3ff..2a7a86500 100644 --- a/examples/static_map/static_multi_map_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -20,7 +20,7 @@ #include #include -#include +#include int main(void) { @@ -30,18 +30,19 @@ int main(void) // Constructs a map with 100,000 slots using -1 and -1 as the empty key/value // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, // for an load factor of 50%. - cuco::static_multi_map map{100'000, empty_key_sentinel, empty_value_sentinel}; + cuco::static_multimap map{100'000, empty_key_sentinel, empty_value_sentinel}; thrust::device_vector> pairs(50'000); - // Create a sequence of pairs {{0,0}, {1,1}, ... {i,i}} + // Create a sequence of pairs. Eeach key corresponds to two pairs. + // E.g., {{0,0}, {1,1}, ... {0,25'000}, {1, 25'001}, ...} thrust::transform(thrust::make_counting_iterator(0), thrust::make_counting_iterator(pairs.size()), pairs.begin(), - [] __device__(auto i) { return thrust::make_pair(i, i); }); + [] __device__(auto i) { return thrust::make_pair(i % (50'000 / 2), i); }); // Inserts all pairs into the map - // map.insert(pairs.begin(), pairs.end()); + map.insert(pairs.begin(), pairs.end()); // Sequence of keys {0, 1, 2, ...} // thrust::device_vector keys_to_find(50'000); diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index dfdf7632e..eec3f3b50 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -135,4 +135,4 @@ __host__ __device__ pair_type make_pair(F&& f, S&& s) noexcept { return pair_type{std::forward(f), std::forward(s)}; } -} // namespace cuco \ No newline at end of file +} // namespace cuco diff --git a/include/cuco/detail/static_kernels.cuh b/include/cuco/detail/static_kernels.cuh new file mode 100644 index 000000000..671c0ec8e --- /dev/null +++ b/include/cuco/detail/static_kernels.cuh @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2020, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace cuco { +namespace detail { + +/** + * @brief Initializes each slot in the flat `slots` storage to contain `k` and `v`. + * + * Each space in `slots` that can hold a key value pair is initialized to a + * `pair_atomic_type` containing the key `k` and the value `v`. + * + * @tparam atomic_key_type Type of the `Key` atomic container + * @tparam atomic_mapped_type Type of the `Value` atomic container + * @tparam Key key type + * @tparam Value value type + * @tparam pair_atomic_type key/value pair type + * @param slots Pointer to flat storage for the map's key/value pairs + * @param k Key to which all keys in `slots` are initialized + * @param v Value to which all values in `slots` are initialized + * @param size Size of the storage pointed to by `slots` + */ +template +__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) +{ + auto tid = threadIdx.x + blockIdx.x * blockDim.x; + while (tid < size) { + new (&slots[tid].first) atomic_key_type{k}; + new (&slots[tid].second) atomic_mapped_type{v}; + tid += gridDim.x * blockDim.x; + } +} + +} // namespace detail +} // namespace cuco diff --git a/include/cuco/detail/static_map.inl b/include/cuco/detail/static_map.inl index 2b72cfa32..2c50b58d1 100644 --- a/include/cuco/detail/static_map.inl +++ b/include/cuco/detail/static_map.inl @@ -77,7 +77,7 @@ void static_map::insert(InputIt first, CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_successes_, sizeof(atomic_ctr_type), device_id)); - detail::insert + detail::map::insert <<>>(first, first + num_keys, num_successes_, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -98,7 +98,7 @@ void static_map::find( auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::find + detail::map::find <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } @@ -117,7 +117,7 @@ void static_map::contains( auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::contains + detail::map::contains <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } diff --git a/include/cuco/detail/static_map_kernels.cuh b/include/cuco/detail/static_map_kernels.cuh index e166de3c6..aaf95b40c 100644 --- a/include/cuco/detail/static_map_kernels.cuh +++ b/include/cuco/detail/static_map_kernels.cuh @@ -70,7 +70,7 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +static_multimap::static_multimap(std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc) + : static_map{ + capacity, empty_key_sentinel, empty_value_sentinel, alloc} +{ +} + +template +static_multimap::~static_multimap() +{ +} + +template +template +void static_multimap::insert(InputIt first, + InputIt last, + Hash hash, + KeyEqual key_equal) +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_mutable_view(); + + *num_successes_ = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_successes_, sizeof(atomic_ctr_type), device_id)); + + detail::multimap::insert + <<>>(first, first + num_keys, num_successes_, view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + + size_ += num_successes_->load(cuda::std::memory_order_relaxed); +} + +/* +template +template +void static_map::find( + InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + detail::find + <<>>(first, last, output_begin, view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); +} + +template +template +void static_map::contains( + InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + detail::contains + <<>>(first, last, output_begin, view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); +} + +template +template +__device__ bool static_map::device_mutable_view::insert( + value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept +{ + auto current_slot{initial_slot(insert_pair.first, hash)}; + + while (true) { + using cuda::std::memory_order_relaxed; + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + auto& slot_key = current_slot->first; + auto& slot_value = current_slot->second; + + bool key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = + slot_value.compare_exchange_strong(expected_value, insert_pair.second, memory_order_relaxed); + + if (key_success) { + while (not value_success) { + value_success = + slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + return true; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); + } + + // if the key was already inserted by another thread, than this instance is a + // duplicate, so the insert fails + if (key_equal(insert_pair.first, expected_key)) { return false; } + + // if we couldn't insert the key, but it wasn't a duplicate, then there must + // have been some other key there, so we keep looking for a slot + current_slot = next_slot(current_slot); + } +} + +template +template +__device__ bool static_map::device_mutable_view::insert( + CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, insert_pair.first, hash); + + while (true) { + key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + + // the key we are trying to insert is already in the map, so we return with failure to insert + if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { + return false; + } + + auto const window_contains_empty = g.ballot(slot_is_empty); + + // we found an empty slot, but not the key we are inserting, so this must + // be an empty slot into which we can insert the key + if (window_contains_empty) { + // the first lane in the group with an empty slot will attempt the insert + insert_result status{insert_result::CONTINUE}; + uint32_t src_lane = __ffs(window_contains_empty) - 1; + + if (g.thread_rank() == src_lane) { + using cuda::std::memory_order_relaxed; + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + auto& slot_key = current_slot->first; + auto& slot_value = current_slot->second; + + bool key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = slot_value.compare_exchange_strong( + expected_value, insert_pair.second, memory_order_relaxed); + + if (key_success) { + while (not value_success) { + value_success = + slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + status = insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); + } + + // our key was already present in the slot, so our key is a duplicate + if (key_equal(insert_pair.first, expected_key)) { status = insert_result::DUPLICATE; } + // another key was inserted in the slot we wanted to try + // so we need to try the next empty slot in the window + } + + uint32_t res_status = g.shfl(static_cast(status), src_lane); + status = static_cast(res_status); + + // successful insert + if (status == insert_result::SUCCESS) { return true; } + // duplicate present during insert + if (status == insert_result::DUPLICATE) { return false; } + // if we've gotten this far, a different key took our spot + // before we could insert. We need to retry the insert on the + // same window + } + // if there are no empty slots in the current window, + // we move onto the next window + else { + current_slot = next_slot(g, current_slot); + } + } +} + +template +template +__device__ typename static_map::device_view::iterator +static_map::device_view::find(Key const& k, + Hash hash, + KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + // Key doesn't exist, return end() + if (existing_key == this->get_empty_key_sentinel()) { return this->end(); } + + // Key exists, return iterator to location + if (key_equal(existing_key, k)) { return current_slot; } + + current_slot = next_slot(current_slot); + } +} + +template +template +__device__ typename static_map::device_view::const_iterator +static_map::device_view::find(Key const& k, + Hash hash, + KeyEqual key_equal) const noexcept +{ + auto current_slot = initial_slot(k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + // Key doesn't exist, return end() + if (existing_key == this->get_empty_key_sentinel()) { return this->end(); } + + // Key exists, return iterator to location + if (key_equal(existing_key, k)) { return current_slot; } + + current_slot = next_slot(current_slot); + } +} + +template +template +__device__ typename static_map::device_view::iterator +static_map::device_view::find(CG g, + Key const& k, + Hash hash, + KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + + // the key we were searching for was found by one of the threads, + // so we return an iterator to the entry + auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); + if (exists) { + uint32_t src_lane = __ffs(exists) - 1; + // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the + // current_slot and shuffle that instead. + intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); + return reinterpret_cast(res_slot); + } + + // we found an empty slot, meaning that the key we're searching for isn't present + if (g.ballot(slot_is_empty)) { return this->end(); } + + // otherwise, all slots in the current window are full with other keys, so we move onto the + // next window + current_slot = next_slot(g, current_slot); + } +} + +template +template +__device__ typename static_map::device_view::const_iterator +static_map::device_view::find(CG g, + Key const& k, + Hash hash, + KeyEqual key_equal) const noexcept +{ + auto current_slot = initial_slot(g, k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + + // the key we were searching for was found by one of the threads, so we return an iterator to + // the entry + auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); + if (exists) { + uint32_t src_lane = __ffs(exists) - 1; + // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the + // current_slot and shuffle that instead. + intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); + return reinterpret_cast(res_slot); + } + + // we found an empty slot, meaning that the key we're searching + // for isn't in this submap, so we should move onto the next one + if (g.ballot(slot_is_empty)) { return this->end(); } + + // otherwise, all slots in the current window are full with other keys, + // so we move onto the next window in the current submap + + current_slot = next_slot(g, current_slot); + } +} + +template +template +__device__ bool static_map::device_view::contains( + Key const& k, Hash hash, KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + if (existing_key == empty_key_sentinel_) { return false; } + + if (key_equal(existing_key, k)) { return true; } + + current_slot = next_slot(current_slot); + } +} + +template +template +__device__ bool static_map::device_view::contains( + CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, k, hash); + + while (true) { + key_type const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + + // the key we were searching for was found by one of the threads, so we return an iterator to + // the entry + if (g.ballot(not slot_is_empty and key_equal(existing_key, k))) { return true; } + + // we found an empty slot, meaning that the key we're searching for isn't present + if (g.ballot(slot_is_empty)) { return false; } + + // otherwise, all slots in the current window are full with other keys, so we move onto the next + // window + current_slot = next_slot(g, current_slot); + } +} +*/ +} // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh new file mode 100644 index 000000000..f6480a65f --- /dev/null +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace cuco { +namespace detail { +namespace cg = cooperative_groups; + +namespace multimap { + +/** + * @brief Inserts all key/value pairs in the range `[first, last)`. + * + * If multiple keys in `[first, last)` compare equal, it is unspecified which + * element is inserted. + * + * @tparam block_size + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of key/value pairs + * @param last End of the sequence of key/value pairs + * @param num_successes The number of successfully inserted key/value pairs + * @param view Mutable device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function used to compare two keys for equality + */ +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ +} + +/** + * @brief Inserts all key/value pairs in the range `[first, last)`. + * + * If multiple keys in `[first, last)` compare equal, it is unspecified which + * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups + * of multiple threads to perform each key/value insertion. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `insert` at moderate to high load factors. + * + * @tparam block_size + * @tparam tile_size The number of threads in the Cooperative Groups used to perform + * inserts + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of key/value pairs + * @param last End of the sequence of key/value pairs + * @param num_successes The number of successfully inserted key/value pairs + * @param view Mutable device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function used to compare two keys for equality + */ +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ + /* + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_successes = 0; + + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; + + while (it < last) { + // force conversion to value_type + typename viewT::value_type const insert_pair{*it}; + if (view.insert(tile, insert_pair, hash, key_equal) && tile.thread_rank() == 0) { + thread_num_successes++; + } + it += (gridDim.x * blockDim.x) / tile_size; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } + */ +} +} // namespace multimap + +} // namespace detail +} // namespace cuco diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index cf7de0a7e..533273c30 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -37,7 +37,9 @@ #include #include #include +#include #include +#include namespace cuco { @@ -911,7 +913,7 @@ class static_map { return device_mutable_view(slots_, capacity_, empty_key_sentinel_, empty_value_sentinel_); } - private: + protected: pair_atomic_type* slots_{nullptr}; ///< Pointer to flat slots storage std::size_t capacity_{}; ///< Total number of slots std::size_t size_{}; ///< Number of keys in map diff --git a/include/cuco/static_multi_map.cuh b/include/cuco/static_multi_map.cuh deleted file mode 100644 index 95525b40c..000000000 --- a/include/cuco/static_multi_map.cuh +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2021, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include - -#include - -namespace cuco { - -template > -class static_multi_map : public static_map { - public: - static_multi_map(std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel, - Allocator const& alloc = Allocator{}); - - ~static_multi_map(); - -}; // class static_multi_map -} // namespace cuco - -#include diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh new file mode 100644 index 000000000..31db9a472 --- /dev/null +++ b/include/cuco/static_multimap.cuh @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include + +#include +#include + +#include + +namespace cuco { + +template > +class static_multimap : public static_map { + public: + using typename static_map::value_type; + using typename static_map::key_type; + using typename static_map::mapped_type; + using typename static_map::atomic_key_type; + using typename static_map::atomic_mapped_type; + using typename static_map::pair_atomic_type; + using typename static_map::atomic_ctr_type; + using typename static_map::allocator_type; + using typename static_map::slot_allocator_type; + + using static_map::get_device_mutable_view; + + static_multimap(std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc = Allocator{}); + + ~static_multimap(); + + /** + * @brief Inserts all key/value pairs in the range `[first, last)`. + * + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of key/value pairs + * @param last End of the sequence of key/value pairs + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ + template , + typename KeyEqual = thrust::equal_to> + void insert(InputIt first, + InputIt last, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) override; + + private: + using static_map::num_successes_; + using static_map::size_; + +}; // class static_multi_map +} // namespace cuco + +#include From c6a7917bcda07b5764374de277b597febaa58721 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 26 Feb 2021 13:55:06 -0800 Subject: [PATCH 006/267] Add static_multimap tests --- tests/CMakeLists.txt | 7 +- tests/static_multimap/static_multimap_test.cu | 130 ++++++++++++++++++ 2 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 tests/static_multimap/static_multimap_test.cu diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9c142ef58..ee52d648e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -57,4 +57,9 @@ set(DYNAMIC_MAP_TEST_SRC "${CMAKE_CURRENT_SOURCE_DIR}/dynamic_map/dynamic_map_test.cu") ConfigureTest(DYNAMIC_MAP_TEST "${DYNAMIC_MAP_TEST_SRC}") -#################################################################################################### \ No newline at end of file +#################################################################################################### +set(STATIC_MULTIMAP_TEST_SRC + "${CMAKE_CURRENT_SOURCE_DIR}/static_multimap/static_multimap_test.cu") + + ConfigureTest(STATIC_MULTIMAP_TEST "${STATIC_MULTIMAP_TEST_SRC}") +#################################################################################################### diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu new file mode 100644 index 000000000..8aa68d937 --- /dev/null +++ b/tests/static_multimap/static_multimap_test.cu @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include + +namespace { +namespace cg = cooperative_groups; + +// Thrust logical algorithms (any_of/all_of/none_of) don't work with device +// lambdas: See https://github.com/thrust/thrust/issues/1062 +template +bool all_of(Iterator begin, Iterator end, Predicate p) +{ + auto size = thrust::distance(begin, end); + return size == thrust::count_if(begin, end, p); +} + +template +bool any_of(Iterator begin, Iterator end, Predicate p) +{ + return thrust::count_if(begin, end, p) > 0; +} + +template +bool none_of(Iterator begin, Iterator end, Predicate p) +{ + return not all_of(begin, end, p); +} +} // namespace + +enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; + +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) +{ + auto num_keys = std::distance(output_begin, output_end); + + std::random_device rd; + std::mt19937 gen{rd()}; + + switch (Dist) { + case dist_type::UNIQUE: + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = i; + } + break; + case dist_type::UNIFORM: + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = std::abs(static_cast(gen())); + } + break; + case dist_type::GAUSSIAN: + std::normal_distribution<> dg{1e9, 1e7}; + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = std::abs(static_cast(dg(gen))); + } + break; + } +} + +TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", + "", + ((typename T, dist_type Dist), T, Dist), + (int32_t, dist_type::UNIQUE), + (int64_t, dist_type::UNIQUE), + (int32_t, dist_type::UNIFORM), + (int64_t, dist_type::UNIFORM), + (int32_t, dist_type::GAUSSIAN), + (int64_t, dist_type::GAUSSIAN)) +{ + using Key = T; + using Value = T; + + constexpr std::size_t num_keys{50'000'000}; + cuco::static_multimap map{100'000'000, -1, -1}; + + auto m_view = map.get_device_mutable_view(); + auto view = map.get_device_view(); + + std::vector h_keys(num_keys); + std::vector h_values(num_keys); + std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end()); + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = val; + h_values[i] = val; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector d_values(h_values); + thrust::device_vector> d_pairs(h_pairs); + thrust::device_vector d_results(num_keys); + thrust::device_vector d_contained(num_keys); + + // bulk function test cases + SECTION("All inserted keys-value pairs should be correctly recovered during find") + { + map.insert(d_pairs.begin(), d_pairs.end()); + map.find(d_keys.begin(), d_keys.end(), d_results.begin()); + auto zip = thrust::make_zip_iterator(thrust::make_tuple(d_results.begin(), d_values.begin())); + + REQUIRE(all_of(zip, zip + num_keys, [] __device__(auto const& p) { + return thrust::get<0>(p) == thrust::get<1>(p); + })); + } +} From f805577aba1e0fa7663042b4649c88fee38f4845 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 26 Feb 2021 13:57:15 -0800 Subject: [PATCH 007/267] Add static_multimap::insert() & code restructuring --- include/cuco/detail/dynamic_map_kernels.cuh | 301 +++--- include/cuco/detail/hash_functions.cuh | 1 + include/cuco/detail/pair.cuh | 29 +- include/cuco/detail/static_kernels.cuh | 52 -- include/cuco/detail/static_map.inl | 6 +- include/cuco/detail/static_map_kernels.cuh | 191 ++-- include/cuco/detail/static_multimap.inl | 85 +- .../cuco/detail/static_multimap_kernels.cuh | 366 +++++++- include/cuco/static_map.cuh | 4 +- include/cuco/static_multimap.cuh | 875 +++++++++++++++++- 10 files changed, 1514 insertions(+), 396 deletions(-) delete mode 100644 include/cuco/detail/static_kernels.cuh diff --git a/include/cuco/detail/dynamic_map_kernels.cuh b/include/cuco/detail/dynamic_map_kernels.cuh index c1e21e863..28690b0dc 100644 --- a/include/cuco/detail/dynamic_map_kernels.cuh +++ b/include/cuco/detail/dynamic_map_kernels.cuh @@ -19,17 +19,17 @@ namespace detail { namespace cg = cooperative_groups; /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -38,7 +38,7 @@ namespace cg = cooperative_groups; * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -46,14 +46,14 @@ namespace cg = cooperative_groups; * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -62,55 +62,58 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = blockDim.x * blockIdx.x + threadIdx.x; - while (first + tid < last) { + while(first + tid < last) { pair_type insert_pair = *(first + tid); - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for (auto i = 0; i < num_submaps; ++i) { - if (i != insert_idx) { + for(auto i = 0; i < num_submaps; ++i) { + if(i != insert_idx) { exists = submap_views[i].contains(insert_pair.first, hash, key_equal); - if (exists) { break; } + if(exists) { + break; + } } } - if (!exists) { - if (submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { + if(!exists) { + if(submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { thread_num_successes++; } } tid += gridDim.x * blockDim.x; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -119,7 +122,7 @@ __global__ void insert(InputIt first, * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -127,15 +130,14 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -144,51 +146,54 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; - while (it < last) { + while(it < last) { pair_type insert_pair = *it; - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for (auto i = 0; i < num_submaps; ++i) { - if (i != insert_idx) { + for(auto i = 0; i < num_submaps; ++i) { + if(i != insert_idx) { exists = submap_views[i].contains(tile, insert_pair.first, hash, key_equal); - if (exists) { break; } + if(exists) { + break; + } } } - if (!exists) { - if (submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && - tile.thread_rank() == 0) { + if(!exists) { + if(submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && + tile.thread_rank() == 0) { thread_num_successes++; } } it += (gridDim.x * blockDim.x) / tile_size; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The number of threads in the thread block - * @tparam Value The mapped value type for the map + * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -202,39 +207,37 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) { + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while (first + tid < last) { - auto key = *(first + tid); + while(first + tid < last) { + auto key = *(first + tid); auto found_value = empty_value_sentinel; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(key, hash, key_equal); - if (found != submap_view.end()) { + auto found = submap_view.find(key, hash, key_equal); + if(found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -249,10 +252,10 @@ __global__ void find(InputIt first, /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -261,7 +264,7 @@ __global__ void find(InputIt first, * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -275,50 +278,49 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while (first + key_idx < last) { - auto key = *(first + key_idx); + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found_value = empty_value_sentinel; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(tile, key, hash, key_equal); - if (found != submap_view.end()) { + auto found = submap_view.find(tile, key, hash, key_equal); + if(found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found_value; } + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found_value; + } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; @@ -327,13 +329,13 @@ __global__ void find(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The number of threads in the thread block * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -347,33 +349,33 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ + KeyEqual key_equal) { auto tid = blockDim.x * blockIdx.x + threadIdx.x; __shared__ bool writeBuffer[block_size]; - while (first + tid < last) { - auto key = *(first + tid); + while(first + tid < last) { + auto key = *(first + tid); auto found = false; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(key, hash, key_equal); - if (found) { break; } + if(found) { + break; + } } - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -388,10 +390,10 @@ __global__ void contains(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -399,7 +401,7 @@ __global__ void contains(InputIt first, * perform find operations * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -413,48 +415,49 @@ __global__ void contains(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - while (first + key_idx < last) { - auto key = *(first + key_idx); + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = false; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(tile, key, hash, key_equal); - if (found) { break; } + if(found) { + break; + } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found; + } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; } } -} // namespace detail -} // namespace cuco \ No newline at end of file +} // namespace detail +} // namespace cuco \ No newline at end of file diff --git a/include/cuco/detail/hash_functions.cuh b/include/cuco/detail/hash_functions.cuh index aec550aba..de7074f04 100644 --- a/include/cuco/detail/hash_functions.cuh +++ b/include/cuco/detail/hash_functions.cuh @@ -20,6 +20,7 @@ namespace cuco { namespace detail { + // MurmurHash3_32 implementation from // https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp //----------------------------------------------------------------------------- diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index eec3f3b50..e52a23387 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -12,7 +12,7 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ #include #include @@ -24,13 +24,12 @@ namespace cuco { namespace detail { /** - * @brief Rounds `v` to the nearest power of 2 greater than or equal to `v`. - * - * @param v + * @brief Rounds `v` to the nearest power of 2 greater than or equal to `v`. + * + * @param v * @return The nearest power of 2 greater than or equal to `v`. */ -constexpr std::size_t next_pow2(std::size_t v) noexcept -{ +constexpr std::size_t next_pow2(std::size_t v) noexcept { --v; v |= v >> 1; v |= v >> 2; @@ -46,8 +45,7 @@ constexpr std::size_t next_pow2(std::size_t v) noexcept * whichever is smaller. */ template -constexpr std::size_t pair_alignment() -{ +constexpr std::size_t pair_alignment() { return std::min(std::size_t{16}, next_pow2(sizeof(First) + sizeof(Second))); } @@ -91,7 +89,7 @@ struct is_thrust_pair_like */ template struct alignas(detail::pair_alignment()) pair { - using first_type = First; + using first_type = First; using second_type = Second; First first; Second second; @@ -123,16 +121,15 @@ using pair_type = cuco::pair; /** * @brief Creates a pair of type `pair_type` - * - * @tparam F - * @tparam S - * @param f - * @param s + * + * @tparam F + * @tparam S + * @param f + * @param s * @return pair_type with first element `f` and second element `s`. */ template -__host__ __device__ pair_type make_pair(F&& f, S&& s) noexcept -{ +__host__ __device__ pair_type make_pair(F&& f, S&& s) noexcept { return pair_type{std::forward(f), std::forward(s)}; } } // namespace cuco diff --git a/include/cuco/detail/static_kernels.cuh b/include/cuco/detail/static_kernels.cuh deleted file mode 100644 index 671c0ec8e..000000000 --- a/include/cuco/detail/static_kernels.cuh +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2020, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace cuco { -namespace detail { - -/** - * @brief Initializes each slot in the flat `slots` storage to contain `k` and `v`. - * - * Each space in `slots` that can hold a key value pair is initialized to a - * `pair_atomic_type` containing the key `k` and the value `v`. - * - * @tparam atomic_key_type Type of the `Key` atomic container - * @tparam atomic_mapped_type Type of the `Value` atomic container - * @tparam Key key type - * @tparam Value value type - * @tparam pair_atomic_type key/value pair type - * @param slots Pointer to flat storage for the map's key/value pairs - * @param k Key to which all keys in `slots` are initialized - * @param v Value to which all values in `slots` are initialized - * @param size Size of the storage pointed to by `slots` - */ -template -__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) -{ - auto tid = threadIdx.x + blockIdx.x * blockDim.x; - while (tid < size) { - new (&slots[tid].first) atomic_key_type{k}; - new (&slots[tid].second) atomic_mapped_type{v}; - tid += gridDim.x * blockDim.x; - } -} - -} // namespace detail -} // namespace cuco diff --git a/include/cuco/detail/static_map.inl b/include/cuco/detail/static_map.inl index 2c50b58d1..2b72cfa32 100644 --- a/include/cuco/detail/static_map.inl +++ b/include/cuco/detail/static_map.inl @@ -77,7 +77,7 @@ void static_map::insert(InputIt first, CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_successes_, sizeof(atomic_ctr_type), device_id)); - detail::map::insert + detail::insert <<>>(first, first + num_keys, num_successes_, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -98,7 +98,7 @@ void static_map::find( auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::map::find + detail::find <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } @@ -117,7 +117,7 @@ void static_map::contains( auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::map::contains + detail::contains <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } diff --git a/include/cuco/detail/static_map_kernels.cuh b/include/cuco/detail/static_map_kernels.cuh index aaf95b40c..d28464e16 100644 --- a/include/cuco/detail/static_map_kernels.cuh +++ b/include/cuco/detail/static_map_kernels.cuh @@ -12,9 +12,9 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ -namespace cuco { +namespace cuco{ namespace detail { namespace cg = cooperative_groups; @@ -51,14 +51,43 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. + * @brief Initializes each slot in the flat `slots` storage to contain `k` and `v`. * + * Each space in `slots` that can hold a key value pair is initialized to a + * `pair_atomic_type` containing the key `k` and the value `v`. + * + * @tparam atomic_key_type Type of the `Key` atomic container + * @tparam atomic_mapped_type Type of the `Value` atomic container + * @tparam Key key type + * @tparam Value value type + * @tparam pair_atomic_type key/value pair type + * @param slots Pointer to flat storage for the map's key/value pairs + * @param k Key to which all keys in `slots` are initialized + * @param v Value to which all values in `slots` are initialized + * @param size Size of the storage pointed to by `slots` + */ +template +__global__ void initialize( + pair_atomic_type* const slots, Key k, + Value v, std::size_t size) { + + auto tid = threadIdx.x + blockIdx.x * blockDim.x; + while (tid < size) { + new (&slots[tid].first) atomic_key_type{k}; + new (&slots[tid].second) atomic_mapped_type{v}; + tid += gridDim.x * blockDim.x; + } +} + +/** + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` +* convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -70,15 +99,18 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) -{ +template +__global__ void insert(InputIt first, + InputIt last, + atomicT* num_successes, + viewT view, + Hash hash, + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; @@ -95,23 +127,25 @@ __global__ void insert( // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` +* convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -123,16 +157,19 @@ __global__ void insert( * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) -{ +template +__global__ void insert(InputIt first, + InputIt last, + atomicT* num_successes, + viewT view, + Hash hash, + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; @@ -149,23 +186,25 @@ __global__ void insert( } it += (gridDim.x * block_size) / tile_size; } - + // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The size of the thread block * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -190,13 +229,13 @@ __global__ void find( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ Value writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); + + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(key, hash, key_equal); - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -213,10 +252,10 @@ __global__ void find( /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -225,7 +264,7 @@ __global__ void find( * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -252,13 +291,13 @@ __global__ void find( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ Value writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); + + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -270,7 +309,7 @@ __global__ void find( : found->second.load(cuda::std::memory_order_relaxed); } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; @@ -279,7 +318,7 @@ __global__ void find( /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The size of the thread block @@ -289,7 +328,7 @@ __global__ void find( * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -309,12 +348,12 @@ __global__ void contains( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ bool writeBuffer[block_size]; - - while (first + key_idx < last) { + + while(first + key_idx < last) { auto key = *(first + key_idx); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -329,10 +368,10 @@ __global__ void contains( /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -344,7 +383,7 @@ __global__ void contains( * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -366,26 +405,28 @@ __global__ void contains( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); + + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.contains(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found; + } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; } } -} // namespace detail -} // namespace cuco +} // namespace detail +} // namespace cuco diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 9109aa9bf..a90cb9bb9 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, NVIDIA CORPORATION. + * Copyright (c) 2020, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,27 +16,50 @@ namespace cuco { +/**---------------------------------------------------------------------------* + * @brief Enumeration of the possible results of attempting to insert into + *a hash bucket + *---------------------------------------------------------------------------**/ +enum class insert_result { + CONTINUE, ///< Insert did not succeed, continue trying to insert + SUCCESS, ///< New pair inserted successfully + DUPLICATE ///< Insert did not succeed, key is already present +}; + template static_multimap::static_multimap(std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel, - Allocator const& alloc) - : static_map{ - capacity, empty_key_sentinel, empty_value_sentinel, alloc} + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc) + : capacity_{capacity}, + empty_key_sentinel_{empty_key_sentinel}, + empty_value_sentinel_{empty_value_sentinel}, + slot_allocator_{alloc} { + slots_ = std::allocator_traits::allocate(slot_allocator_, capacity); + + auto constexpr block_size = 256; + auto constexpr stride = 4; + auto const grid_size = (capacity + stride * block_size - 1) / (stride * block_size); + detail::initialize + <<>>(slots_, empty_key_sentinel, empty_value_sentinel, capacity); + + CUCO_CUDA_TRY(cudaMallocManaged(&num_successes_, sizeof(atomic_ctr_type))); } template static_multimap::~static_multimap() { + std::allocator_traits::deallocate(slot_allocator_, slots_, capacity_); + CUCO_CUDA_TRY(cudaFree(num_successes_)); } template template void static_multimap::insert(InputIt first, - InputIt last, - Hash hash, - KeyEqual key_equal) + InputIt last, + Hash hash, + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -50,17 +73,16 @@ void static_multimap::insert(InputIt first, CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_successes_, sizeof(atomic_ctr_type), device_id)); - detail::multimap::insert + detail::insert <<>>(first, first + num_keys, num_successes_, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); size_ += num_successes_->load(cuda::std::memory_order_relaxed); } -/* template template -void static_map::find( +void static_multimap::find( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept { auto num_keys = std::distance(first, last); @@ -77,7 +99,7 @@ void static_map::find( template template -void static_map::contains( +void static_multimap::contains( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept { auto num_keys = std::distance(first, last); @@ -94,7 +116,7 @@ void static_map::contains( template template -__device__ bool static_map::device_mutable_view::insert( +__device__ bool static_multimap::device_mutable_view::insert( value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { auto current_slot{initial_slot(insert_pair.first, hash)}; @@ -125,7 +147,7 @@ __device__ bool static_map::device_mutable_view::i // if the key was already inserted by another thread, than this instance is a // duplicate, so the insert fails - if (key_equal(insert_pair.first, expected_key)) { return false; } + //if (key_equal(insert_pair.first, expected_key)) { return false; } // if we couldn't insert the key, but it wasn't a duplicate, then there must // have been some other key there, so we keep looking for a slot @@ -135,7 +157,7 @@ __device__ bool static_map::device_mutable_view::i template template -__device__ bool static_map::device_mutable_view::insert( +__device__ bool static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, insert_pair.first, hash); @@ -148,9 +170,9 @@ __device__ bool static_map::device_mutable_view::i auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); // the key we are trying to insert is already in the map, so we return with failure to insert - if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { - return false; - } + //if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { + // return false; + //} auto const window_contains_empty = g.ballot(slot_is_empty); @@ -186,7 +208,7 @@ __device__ bool static_map::device_mutable_view::i } // our key was already present in the slot, so our key is a duplicate - if (key_equal(insert_pair.first, expected_key)) { status = insert_result::DUPLICATE; } + // if (key_equal(insert_pair.first, expected_key)) { status = insert_result::DUPLICATE; } // another key was inserted in the slot we wanted to try // so we need to try the next empty slot in the window } @@ -196,8 +218,6 @@ __device__ bool static_map::device_mutable_view::i // successful insert if (status == insert_result::SUCCESS) { return true; } - // duplicate present during insert - if (status == insert_result::DUPLICATE) { return false; } // if we've gotten this far, a different key took our spot // before we could insert. We need to retry the insert on the // same window @@ -212,8 +232,8 @@ __device__ bool static_map::device_mutable_view::i template template -__device__ typename static_map::device_view::iterator -static_map::device_view::find(Key const& k, +__device__ typename static_multimap::device_view::iterator +static_multimap::device_view::find(Key const& k, Hash hash, KeyEqual key_equal) noexcept { @@ -233,8 +253,8 @@ static_map::device_view::find(Key const& k, template template -__device__ typename static_map::device_view::const_iterator -static_map::device_view::find(Key const& k, +__device__ typename static_multimap::device_view::const_iterator +static_multimap::device_view::find(Key const& k, Hash hash, KeyEqual key_equal) const noexcept { @@ -254,8 +274,8 @@ static_map::device_view::find(Key const& k, template template -__device__ typename static_map::device_view::iterator -static_map::device_view::find(CG g, +__device__ typename static_multimap::device_view::iterator +static_multimap::device_view::find(CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept @@ -291,8 +311,8 @@ static_map::device_view::find(CG g, template template -__device__ typename static_map::device_view::const_iterator -static_map::device_view::find(CG g, +__device__ typename static_multimap::device_view::const_iterator +static_multimap::device_view::find(CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept @@ -330,7 +350,7 @@ static_map::device_view::find(CG g, template template -__device__ bool static_map::device_view::contains( +__device__ bool static_multimap::device_view::contains( Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(k, hash); @@ -348,7 +368,7 @@ __device__ bool static_map::device_view::contains( template template -__device__ bool static_map::device_view::contains( +__device__ bool static_multimap::device_view::contains( CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k, hash); @@ -372,5 +392,4 @@ __device__ bool static_map::device_view::contains( current_slot = next_slot(g, current_slot); } } -*/ } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index f6480a65f..5132c8ef5 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, NVIDIA CORPORATION. + * Copyright (c) 2020, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -12,23 +12,50 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ -namespace cuco { +namespace cuco{ namespace detail { namespace cg = cooperative_groups; -namespace multimap { - /** - * @brief Inserts all key/value pairs in the range `[first, last)`. + * @brief Initializes each slot in the flat `slots` storage to contain `k` and `v`. * + * Each space in `slots` that can hold a key value pair is initialized to a + * `pair_atomic_type` containing the key `k` and the value `v`. + * + * @tparam atomic_key_type Type of the `Key` atomic container + * @tparam atomic_mapped_type Type of the `Value` atomic container + * @tparam Key key type + * @tparam Value value type + * @tparam pair_atomic_type key/value pair type + * @param slots Pointer to flat storage for the map's key/value pairs + * @param k Key to which all keys in `slots` are initialized + * @param v Value to which all values in `slots` are initialized + * @param size Size of the storage pointed to by `slots` + */ +template +__global__ void initialize( + pair_atomic_type* const slots, Key k, + Value v, std::size_t size) { + + auto tid = threadIdx.x + blockIdx.x * blockDim.x; + while (tid < size) { + new (&slots[tid].first) atomic_key_type{k}; + new (&slots[tid].second) atomic_mapped_type{v}; + tid += gridDim.x * blockDim.x; + } +} + +/** + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` +* convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -40,31 +67,53 @@ namespace multimap { * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) -{ +template +__global__ void insert(InputIt first, + InputIt last, + atomicT* num_successes, + viewT view, + Hash hash, + KeyEqual key_equal) { + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_successes = 0; + + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid; + + while (it < last) { + typename viewT::value_type const insert_pair{*it}; + if (view.insert(insert_pair, hash, key_equal)) { thread_num_successes++; } + it += gridDim.x * blockDim.x; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` +* convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -76,17 +125,19 @@ __global__ void insert( * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) -{ - /* +template +__global__ void insert(InputIt first, + InputIt last, + atomicT* num_successes, + viewT view, + Hash hash, + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; @@ -94,7 +145,7 @@ __global__ void insert( auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto it = first + tid / tile_size; - + while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; @@ -103,16 +154,249 @@ __global__ void insert( } it += (gridDim.x * blockDim.x) / tile_size; } - + // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); if(threadIdx.x == 0) { *num_successes += block_num_successes; } - */ } -} // namespace multimap -} // namespace detail -} // namespace cuco +/** + * @brief Finds the values corresponding to all keys in the range `[first, last)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. + * @tparam block_size The size of the thread block + * @tparam Value The type of the mapped value for the map + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of values retrieved for each key + * @param view Device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ +template +__global__ void find(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid; + __shared__ Value writeBuffer[block_size]; + + while(first + key_idx < last) { + auto key = *(first + key_idx); + auto found = view.find(key, hash, key_equal); + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to + * flush more frequently, causing increased sector stores from L2 to global memory. + * By writing results to shared memory and then synchronizing before writing back + * to global, we no longer rely on L1, preventing the increase in sector stores from + * L2 to global and improving performance. + */ + writeBuffer[threadIdx.x] = found->second.load(cuda::std::memory_order_relaxed); + __syncthreads(); + *(output_begin + key_idx) = writeBuffer[threadIdx.x]; + key_idx += gridDim.x * blockDim.x; + } +} + +/** + * @brief Finds the values corresponding to all keys in the range `[first, last)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups + * of multiple threads to find each key. This provides a significant boost in throughput compared + * to the non Cooperative Group `find` at moderate to high load factors. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform + * inserts + * @tparam Value The type of the mapped value for the map + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of values retrieved for each key + * @param view Device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ +template +__global__ void find(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; + __shared__ Value writeBuffer[block_size]; + + while(first + key_idx < last) { + auto key = *(first + key_idx); + auto found = view.find(tile, key, hash, key_equal); + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to + * flush more frequently, causing increased sector stores from L2 to global memory. + * By writing results to shared memory and then synchronizing before writing back + * to global, we no longer rely on L1, preventing the increase in sector stores from + * L2 to global and improving performance. + */ + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found->second.load(cuda::std::memory_order_relaxed); + } + __syncthreads(); + if(tile.thread_rank() == 0) { + *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; + } + key_idx += (gridDim.x * blockDim.x) / tile_size; + } +} + +/** + * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. + * + * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. + * + * @tparam block_size The size of the thread block + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of booleans for the presence of each key + * @param view Device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ +template +__global__ void contains(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid; + __shared__ bool writeBuffer[block_size]; + + while(first + key_idx < last) { + auto key = *(first + key_idx); + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to + * flush more frequently, causing increased sector stores from L2 to global memory. + * By writing results to shared memory and then synchronizing before writing back + * to global, we no longer rely on L1, preventing the increase in sector stores from + * L2 to global and improving performance. + */ + writeBuffer[threadIdx.x] = view.contains(key, hash, key_equal); + __syncthreads(); + *(output_begin + key_idx) = writeBuffer[threadIdx.x]; + key_idx += gridDim.x * blockDim.x; + } +} + +/** + * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. + * + * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared + * to the non Cooperative Group `contains` at moderate to high load factors. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform + * inserts + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of booleans for the presence of each key + * @param view Device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ +template +__global__ void contains(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; + __shared__ bool writeBuffer[block_size]; + + while(first + key_idx < last) { + auto key = *(first + key_idx); + auto found = view.contains(tile, key, hash, key_equal); + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to + * flush more frequently, causing increased sector stores from L2 to global memory. + * By writing results to shared memory and then synchronizing before writing back + * to global, we no longer rely on L1, preventing the increase in sector stores from + * L2 to global and improving performance. + */ + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found; + } + __syncthreads(); + if(tile.thread_rank() == 0) { + *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; + } + key_idx += (gridDim.x * blockDim.x) / tile_size; + } +} + +} // namespace detail +} // namespace cuco \ No newline at end of file diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 533273c30..cf7de0a7e 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -37,9 +37,7 @@ #include #include #include -#include #include -#include namespace cuco { @@ -913,7 +911,7 @@ class static_map { return device_mutable_view(slots_, capacity_, empty_key_sentinel_, empty_value_sentinel_); } - protected: + private: pair_atomic_type* slots_{nullptr}; ///< Pointer to flat slots storage std::size_t capacity_{}; ///< Total number of slots std::size_t size_{}; ///< Number of keys in map diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 31db9a472..b765a6bfd 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -17,44 +17,157 @@ #pragma once #include +#include +#include #include #include +#include #include -#include +#include +#ifndef CUDART_VERSION +#error CUDART_VERSION Undefined! +#elif (CUDART_VERSION >= 11000) // including with CUDA 10.2 leads to compilation errors +#include +#endif -#include +#include +#include +#include +#include namespace cuco { +/** + * @brief A GPU-accelerated, unordered, associative container of key-value + * pairs with unique keys. + * + * Allows constant time concurrent inserts or concurrent find operations (not + * concurrent insert and find) from threads in device code. + * + * Current limitations: + * - Requires keys that are Arithmetic + * - Does not support erasing keys + * - Capacity is fixed and will not grow automatically + * - Requires the user to specify sentinel values for both key and mapped value + * to indicate empty slots + * - Does not support concurrent insert and find operations + * + * The `static_multimap` supports two types of operations: + * - Host-side "bulk" operations + * - Device-side "singular" operations + * + * The host-side bulk operations include `insert`, `find`, and `contains`. These + * APIs should be used when there are a large number of keys to insert or lookup + * in the map. For example, given a range of keys specified by device-accessible + * iterators, the bulk `insert` function will insert all keys into the map. + * + * The singular device-side operations allow individual threads to perform + * independent insert or find/contains operations from device code. These + * operations are accessed through non-owning, trivially copyable "view" types: + * `device_view` and `mutable_device_view`. The `device_view` class is an + * immutable view that allows only non-modifying operations such as `find` or + * `contains`. The `mutable_device_view` class only allows `insert` operations. + * The two types are separate to prevent erroneous concurrent insert/find + * operations. + * + * Example: + * \code{.cpp} + * int empty_key_sentinel = -1; + * int empty_value_sentinel = -1; + * + * // Constructs a map with 100,000 slots using -1 and -1 as the empty key/value + * // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, + * // for an load factor of 50%. + * static_multimap m{100'000, empty_key_sentinel, empty_value_sentinel}; + * + * // Create a sequence of pairs {{0,0}, {1,1}, ... {i,i}} + * thrust::device_vector> pairs(50,000); + * thrust::transform(thrust::make_counting_iterator(0), + * thrust::make_counting_iterator(pairs.size()), + * pairs.begin(), + * []__device__(auto i){ return thrust::make_pair(i,i); }; + * + * + * // Inserts all pairs into the map + * m.insert(pairs.begin(), pairs.end()); + * + * // Get a `device_view` and passes it to a kernel where threads may perform + * // `find/contains` lookups + * kernel<<<...>>>(m.get_device_view()); + * \endcode + * + * + * @tparam Key Arithmetic type used for key + * @tparam Value Type of the mapped values + * @tparam Scope The scope in which insert/find operations will be performed by + * individual threads. + * @tparam Allocator Type of allocator used for device storage + */ template > -class static_multimap : public static_map { +class static_multimap { + static_assert(std::is_arithmetic::value, "Unsupported, non-arithmetic key type."); + public: - using typename static_map::value_type; - using typename static_map::key_type; - using typename static_map::mapped_type; - using typename static_map::atomic_key_type; - using typename static_map::atomic_mapped_type; - using typename static_map::pair_atomic_type; - using typename static_map::atomic_ctr_type; - using typename static_map::allocator_type; - using typename static_map::slot_allocator_type; - - using static_map::get_device_mutable_view; + using value_type = cuco::pair_type; + using key_type = Key; + using mapped_type = Value; + using atomic_key_type = cuda::atomic; + using atomic_mapped_type = cuda::atomic; + using pair_atomic_type = cuco::pair_type; + using atomic_ctr_type = cuda::atomic; + using allocator_type = Allocator; + using slot_allocator_type = + typename std::allocator_traits::rebind_alloc; + + static_multimap(static_multimap const&) = delete; + static_multimap(static_multimap&&) = delete; + static_multimap& operator=(static_multimap const&) = delete; + static_multimap& operator=(static_multimap&&) = delete; + /** + * @brief Construct a fixed-size map with the specified capacity and sentinel values. + * @brief Construct a statically sized map with the specified number of slots + * and sentinel values. + * + * The capacity of the map is fixed. Insert operations will not automatically + * grow the map. Attempting to insert more unique keys than the capacity of + * the map results in undefined behavior. + * + * Performance begins to degrade significantly beyond a load factor of ~70%. + * For best performance, choose a capacity that will keep the load factor + * below 70%. E.g., if inserting `N` unique keys, choose a capacity of + * `N * (1/0.7)`. + * + * The `empty_key_sentinel` and `empty_value_sentinel` values are reserved and + * undefined behavior results from attempting to insert any key/value pair + * that contains either. + * + * @param capacity The total number of slots in the map + * @param empty_key_sentinel The reserved key value for empty slots + * @param empty_value_sentinel The reserved mapped value for empty slots + * @param alloc Allocator used for allocating device storage + */ static_multimap(std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel, - Allocator const& alloc = Allocator{}); + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc = Allocator{}); + /** + * @brief Destroys the map and frees its contents. + * + */ ~static_multimap(); /** * @brief Inserts all key/value pairs in the range `[first, last)`. * + * If multiple keys in `[first, last)` compare equal, it is unspecified which + * element is inserted. + * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam Hash Unary callable type @@ -67,16 +180,730 @@ class static_multimap : public static_map { template , typename KeyEqual = thrust::equal_to> - void insert(InputIt first, - InputIt last, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) override; + void insert(InputIt first, InputIt last, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}); + + /** + * @brief Finds the values corresponding to all keys in the range `[first, last)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + + * i)`. Else, copies the empty value sentinel. + * + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of values retrieved for each key + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ + template , + typename KeyEqual = thrust::equal_to> + void find(InputIt first, + InputIt last, + OutputIt output_begin, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. + * + * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. + * + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of booleans for the presence of each key + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ + template , + typename KeyEqual = thrust::equal_to> + void contains(InputIt first, + InputIt last, + OutputIt output_begin, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; private: - using static_map::num_successes_; - using static_map::size_; + class device_view_base { + protected: + // Import member type definitions from `static_multimap` + using value_type = value_type; + using key_type = Key; + using mapped_type = Value; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + + private: + pair_atomic_type* slots_{}; ///< Pointer to flat slots storage + std::size_t capacity_{}; ///< Total number of slots + Key empty_key_sentinel_{}; ///< Key value that represents an empty slot + Value empty_value_sentinel_{}; ///< Initial Value of empty slot + + protected: + __host__ __device__ device_view_base(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept + : slots_{slots}, + capacity_{capacity}, + empty_key_sentinel_{empty_key_sentinel}, + empty_value_sentinel_{empty_value_sentinel} + { + } + + /** + * @brief Gets slots array. + * + * @return Slots array + */ + __device__ pair_atomic_type* get_slots() noexcept { return slots_; } + + /** + * @brief Gets slots array. + * + * @return Slots array + */ + __device__ pair_atomic_type const* get_slots() const noexcept { return slots_; } + + /** + * @brief Returns the initial slot for a given key `k` + * + * @tparam Hash Unary callable type + * @param k The key to get the slot for + * @param hash The unary callable used to hash the key + * @return Pointer to the initial slot for `k` + */ + template + __device__ iterator initial_slot(Key const& k, Hash hash) noexcept + { + return &slots_[hash(k) % capacity_]; + } + + /** + * @brief Returns the initial slot for a given key `k` + * + * @tparam Hash Unary callable type + * @param k The key to get the slot for + * @param hash The unary callable used to hash the key + * @return Pointer to the initial slot for `k` + */ + template + __device__ const_iterator initial_slot(Key const& k, Hash hash) const noexcept + { + return &slots_[hash(k) % capacity_]; + } + + /** + * @brief Returns the initial slot for a given key `k` + * + * To be used for Cooperative Group based probing. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @param hash The unary callable used to hash the key + * @return Pointer to the initial slot for `k` + */ + template + __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept + { + return &slots_[(hash(k) + g.thread_rank()) % capacity_]; + } + + /** + * @brief Returns the initial slot for a given key `k` + * + * To be used for Cooperative Group based probing. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @param hash The unary callable used to hash the key + * @return Pointer to the initial slot for `k` + */ + template + __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept + { + return &slots_[(hash(k) + g.thread_rank()) % capacity_]; + } + + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. + * + * @param s The slot to advance + * @return The next slot after `s` + */ + __device__ iterator next_slot(iterator s) noexcept { return (++s < end()) ? s : begin_slot(); } + + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. + * + * @param s The slot to advance + * @return The next slot after `s` + */ + __device__ const_iterator next_slot(const_iterator s) const noexcept + { + return (++s < end()) ? s : begin_slot(); + } -}; // class static_multi_map + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. To + * be used for Cooperative Group based probing. + * + * @tparam CG The Cooperative Group type + * @param g The Cooperative Group for which the next slot is needed + * @param s The slot to advance + * @return The next slot after `s` + */ + template + __device__ iterator next_slot(CG g, iterator s) noexcept + { + uint32_t index = s - slots_; + return &slots_[(index + g.size()) % capacity_]; + } + + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. To + * be used for Cooperative Group based probing. + * + * @tparam CG The Cooperative Group type + * @param g The Cooperative Group for which the next slot is needed + * @param s The slot to advance + * @return The next slot after `s` + */ + template + __device__ const_iterator next_slot(CG g, const_iterator s) const noexcept + { + uint32_t index = s - slots_; + return &slots_[(index + g.size()) % capacity_]; + } + + public: + /** + * @brief Gets the maximum number of elements the hash map can hold. + * + * @return The maximum number of elements the hash map can hold + */ + __host__ __device__ std::size_t get_capacity() const noexcept { return capacity_; } + + /** + * @brief Gets the sentinel value used to represent an empty key slot. + * + * @return The sentinel value used to represent an empty key slot + */ + __host__ __device__ Key get_empty_key_sentinel() const noexcept { return empty_key_sentinel_; } + + /** + * @brief Gets the sentinel value used to represent an empty value slot. + * + * @return The sentinel value used to represent an empty value slot + */ + __host__ __device__ Value get_empty_value_sentinel() const noexcept + { + return empty_value_sentinel_; + } + + /** + * @brief Returns iterator to the first slot. + * + * @note Unlike `std::map::begin()`, the `begin_slot()` iterator does _not_ point to the first + * occupied slot. Instead, it refers to the first slot in the array of contiguous slot storage. + * Iterating from `begin_slot()` to `end_slot()` will iterate over all slots, including those + * both empty and filled. + * + * There is no `begin()` iterator to avoid confusion as it is not possible to provide an + * iterator over only the filled slots. + * + * @return Iterator to the first slot + */ + __device__ iterator begin_slot() noexcept { return slots_; } + + /** + * @brief Returns iterator to the first slot. + * + * @note Unlike `std::map::begin()`, the `begin_slot()` iterator does _not_ point to the first + * occupied slot. Instead, it refers to the first slot in the array of contiguous slot storage. + * Iterating from `begin_slot()` to `end_slot()` will iterate over all slots, including those + * both empty and filled. + * + * There is no `begin()` iterator to avoid confusion as it is not possible to provide an + * iterator over only the filled slots. + * + * @return Iterator to the first slot + */ + __device__ const_iterator begin_slot() const noexcept { return slots_; } + + /** + * @brief Returns a const_iterator to one past the last slot. + * + * @return A const_iterator to one past the last slot + */ + __host__ __device__ const_iterator end_slot() const noexcept { return slots_ + capacity_; } + + /** + * @brief Returns an iterator to one past the last slot. + * + * @return An iterator to one past the last slot + */ + __host__ __device__ iterator end_slot() noexcept { return slots_ + capacity_; } + + /** + * @brief Returns a const_iterator to one past the last slot. + * + * `end()` calls `end_slot()` and is provided for convenience for those familiar with checking + * an iterator returned from `find()` against the `end()` iterator. + * + * @return A const_iterator to one past the last slot + */ + __host__ __device__ const_iterator end() const noexcept { return end_slot(); } + + /** + * @brief Returns an iterator to one past the last slot. + * + * `end()` calls `end_slot()` and is provided for convenience for those familiar with checking + * an iterator returned from `find()` against the `end()` iterator. + * + * @return An iterator to one past the last slot + */ + __host__ __device__ iterator end() noexcept { return end_slot(); } + }; + + public: + /** + * @brief Mutable, non-owning view-type that may be used in device code to + * perform singular inserts into the map. + * + * `device_mutable_view` is trivially-copyable and is intended to be passed by + * value. + * + * Example: + * \code{.cpp} + * cuco::static_multimap m{100'000, -1, -1}; + * + * // Inserts a sequence of pairs {{0,0}, {1,1}, ... {i,i}} + * thrust::for_each(thrust::make_counting_iterator(0), + * thrust::make_counting_iterator(50'000), + * [map = m.get_mutable_device_view()] + * __device__ (auto i) mutable { + * map.insert(thrust::make_pair(i,i)); + * }); + * \endcode + */ + class device_mutable_view : public device_view_base { + public: + using value_type = typename device_view_base::value_type; + using key_type = typename device_view_base::key_type; + using mapped_type = typename device_view_base::mapped_type; + using iterator = typename device_view_base::iterator; + using const_iterator = typename device_view_base::const_iterator; + /** + * @brief Construct a mutable view of the first `capacity` slots of the + * slots array pointed to by `slots`. + * + * @param slots Pointer to beginning of initialized slots array + * @param capacity The number of slots viewed by this object + * @param empty_key_sentinel The reserved value for keys to represent empty + * slots + * @param empty_value_sentinel The reserved value for mapped values to + * represent empty slots + */ + __host__ __device__ device_mutable_view(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept + : device_view_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} + { + } + + /** + * @brief Inserts the specified key/value pair into the map. + * + * Returns a pair consisting of an iterator to the inserted element (or to + * the element that prevented the insertion) and a `bool` denoting whether + * the insertion took place. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param insert_pair The pair to insert + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys for + * equality + * @return `true` if the insert was successful, `false` otherwise. + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ bool insert(value_type const& insert_pair, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + /** + * @brief Inserts the specified key/value pair into the map. + * + * Returns a pair consisting of an iterator to the inserted element (or to + * the element that prevented the insertion) and a `bool` denoting whether + * the insertion took place. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single insert. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `insert` at moderate to high load factors. + * + * @tparam Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * + * @param g The Cooperative Group that performs the insert + * @param insert_pair The pair to insert + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys for + * equality + * @return `true` if the insert was successful, `false` otherwise. + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ bool insert(CG g, + value_type const& insert_pair, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + + }; // class device mutable view + + /** + * @brief Non-owning view-type that may be used in device code to + * perform singular find and contains operations for the map. + * + * `device_view` is trivially-copyable and is intended to be passed by + * value. + * + */ + class device_view : public device_view_base { + public: + using value_type = typename device_view_base::value_type; + using key_type = typename device_view_base::key_type; + using mapped_type = typename device_view_base::mapped_type; + using iterator = typename device_view_base::iterator; + using const_iterator = typename device_view_base::const_iterator; + /** + * @brief Construct a view of the first `capacity` slots of the + * slots array pointed to by `slots`. + * + * @param slots Pointer to beginning of initialized slots array + * @param capacity The number of slots viewed by this object + * @param empty_key_sentinel The reserved value for keys to represent empty + * slots + * @param empty_value_sentinel The reserved value for mapped values to + * represent empty slots + */ + __host__ __device__ device_view(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept + : device_view_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} + { + } + + /** + * @brief Makes a copy of given `device_view` using non-owned memory. + * + * This function is intended to be used to create shared memory copies of small static maps, + * although global memory can be used as well. + * + * Example: + * @code{.cpp} + * template + * __global__ void use_device_view(const typename MapType::device_view device_view, + * map_key_t const* const keys_to_search, + * map_value_t* const values_found, + * const size_t number_of_elements) + * { + * const size_t index = blockIdx.x * blockDim.x + threadIdx.x; + * + * __shared__ typename MapType::pair_atomic_type sm_buffer[CAPACITY]; + * + * auto g = cg::this_thread_block(); + * + * const map_t::device_view sm_static_multimap = device_view.make_copy(g, + * sm_buffer); + * + * for (size_t i = g.thread_rank(); i < number_of_elements; i += g.size()) + * { + * values_found[i] = sm_static_multimap.find(keys_to_search[i])->second; + * } + * } + * @endcode + * + * @tparam CG The type of the cooperative thread group + * @param g The ooperative thread group used to copy the slots + * @param source_device_view `device_view` to copy from + * @param memory_to_use Array large enough to support `capacity` elements. Object does not take + * the ownership of the memory + * @return Copy of passed `device_view` + */ + template + __device__ static device_view make_copy(CG g, + pair_atomic_type* const memory_to_use, + device_view source_device_view) noexcept + { +#ifndef CUDART_VERSION +#error CUDART_VERSION Undefined! +#elif (CUDART_VERSION >= 11000) + __shared__ cuda::barrier barrier; + if (g.thread_rank() == 0) { init(&barrier, g.size()); } + g.sync(); + + cuda::memcpy_async(g, + memory_to_use, + source_device_view.get_slots(), + sizeof(pair_atomic_type) * source_device_view.get_capacity(), + barrier); + + barrier.arrive_and_wait(); +#else + pair_atomic_type const* const slots_ptr = source_device_view.get_slots(); + for (std::size_t i = g.thread_rank(); i < source_device_view.get_capacity(); i += g.size()) { + new (&memory_to_use[i].first) + atomic_key_type{slots_ptr[i].first.load(cuda::memory_order_relaxed)}; + new (&memory_to_use[i].second) + atomic_mapped_type{slots_ptr[i].second.load(cuda::memory_order_relaxed)}; + } + g.sync(); +#endif + + return device_view(memory_to_use, + source_device_view.get_capacity(), + source_device_view.get_empty_key_sentinel(), + source_device_view.get_empty_value_sentinel()); + } + + /** + * @brief Finds the value corresponding to the key `k`. + * + * Returns an iterator to the pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return An iterator to the position at which the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ iterator find(Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** @brief Finds the value corresponding to the key `k`. + * + * Returns a const_iterator to the pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return An iterator to the position at which the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ const_iterator find(Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) const noexcept; + + /** + * @brief Finds the value corresponding to the key `k`. + * + * Returns an iterator to the pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single find. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `find` at moderate to high load factors. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the find + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return An iterator to the position at which the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ iterator + find(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Finds the value corresponding to the key `k`. + * + * Returns a const_iterator to the pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single find. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `find` at moderate to high load factors. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the find + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return An iterator to the position at which the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ const_iterator + find(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; + + /** + * @brief Indicates whether the key `k` was inserted into the map. + * + * If the key `k` was inserted into the map, find returns + * true. Otherwise, it returns false. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A boolean indicating whether the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ bool contains(Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Indicates whether the key `k` was inserted into the map. + * + * If the key `k` was inserted into the map, find returns + * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single contains operation. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `contains` at moderate to high load factors. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the contains operation + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A boolean indicating whether the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ bool contains(CG g, + Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + }; // class device_view + + /** + * @brief Gets the maximum number of elements the hash map can hold. + * + * @return The maximum number of elements the hash map can hold + */ + std::size_t get_capacity() const noexcept { return capacity_; } + + /** + * @brief Gets the number of elements in the hash map. + * + * @return The number of elements in the map + */ + std::size_t get_size() const noexcept { return size_; } + + /** + * @brief Gets the load factor of the hash map. + * + * @return The load factor of the hash map + */ + float get_load_factor() const noexcept { return static_cast(size_) / capacity_; } + + /** + * @brief Gets the sentinel value used to represent an empty key slot. + * + * @return The sentinel value used to represent an empty key slot + */ + Key get_empty_key_sentinel() const noexcept { return empty_key_sentinel_; } + + /** + * @brief Gets the sentinel value used to represent an empty value slot. + * + * @return The sentinel value used to represent an empty value slot + */ + Value get_empty_value_sentinel() const noexcept { return empty_value_sentinel_; } + + /** + * @brief Constructs a device_view object based on the members of the `static_multimap` object. + * + * @return A device_view object based on the members of the `static_multimap` object + */ + device_view get_device_view() const noexcept + { + return device_view(slots_, capacity_, empty_key_sentinel_, empty_value_sentinel_); + } + + /** + * @brief Constructs a device_mutable_view object based on the members of the `static_multimap` object + * + * @return A device_mutable_view object based on the members of the `static_multimap` object + */ + device_mutable_view get_device_mutable_view() const noexcept + { + return device_mutable_view(slots_, capacity_, empty_key_sentinel_, empty_value_sentinel_); + } + + private: + pair_atomic_type* slots_{nullptr}; ///< Pointer to flat slots storage + std::size_t capacity_{}; ///< Total number of slots + std::size_t size_{}; ///< Number of keys in map + Key empty_key_sentinel_{}; ///< Key value that represents an empty slot + Value empty_value_sentinel_{}; ///< Initial value of empty slot + atomic_ctr_type* num_successes_{}; ///< Number of successfully inserted keys on insert + slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots +}; } // namespace cuco #include From bcaf28632042ed68338e28096c85558111b873e9 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 26 Feb 2021 14:18:20 -0800 Subject: [PATCH 008/267] Code formatting --- include/cuco/detail/dynamic_map_kernels.cuh | 301 +++++++++--------- include/cuco/detail/hash_functions.cuh | 1 - include/cuco/detail/pair.cuh | 29 +- include/cuco/detail/static_map_kernels.cuh | 172 +++++----- include/cuco/detail/static_multimap.inl | 36 +-- .../cuco/detail/static_multimap_kernels.cuh | 290 ++++++++--------- include/cuco/static_multimap.cuh | 9 +- 7 files changed, 406 insertions(+), 432 deletions(-) diff --git a/include/cuco/detail/dynamic_map_kernels.cuh b/include/cuco/detail/dynamic_map_kernels.cuh index 28690b0dc..c1e21e863 100644 --- a/include/cuco/detail/dynamic_map_kernels.cuh +++ b/include/cuco/detail/dynamic_map_kernels.cuh @@ -19,17 +19,17 @@ namespace detail { namespace cg = cooperative_groups; /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -38,7 +38,7 @@ namespace cg = cooperative_groups; * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -46,14 +46,14 @@ namespace cg = cooperative_groups; * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -62,58 +62,55 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { + KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = blockDim.x * blockIdx.x + threadIdx.x; - while(first + tid < last) { + while (first + tid < last) { pair_type insert_pair = *(first + tid); - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for(auto i = 0; i < num_submaps; ++i) { - if(i != insert_idx) { + for (auto i = 0; i < num_submaps; ++i) { + if (i != insert_idx) { exists = submap_views[i].contains(insert_pair.first, hash, key_equal); - if(exists) { - break; - } + if (exists) { break; } } } - if(!exists) { - if(submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { + if (!exists) { + if (submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { thread_num_successes++; } } tid += gridDim.x * blockDim.x; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -122,7 +119,7 @@ __global__ void insert(InputIt first, * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -130,14 +127,15 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -146,54 +144,51 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { + KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; - while(it < last) { + while (it < last) { pair_type insert_pair = *it; - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for(auto i = 0; i < num_submaps; ++i) { - if(i != insert_idx) { + for (auto i = 0; i < num_submaps; ++i) { + if (i != insert_idx) { exists = submap_views[i].contains(tile, insert_pair.first, hash, key_equal); - if(exists) { - break; - } + if (exists) { break; } } } - if(!exists) { - if(submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && - tile.thread_rank() == 0) { + if (!exists) { + if (submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && + tile.thread_rank() == 0) { thread_num_successes++; } } it += (gridDim.x * blockDim.x) / tile_size; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The number of threads in the thread block - * @tparam Value The mapped value type for the map + * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -207,37 +202,39 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) +{ + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while(first + tid < last) { - auto key = *(first + tid); + while (first + tid < last) { + auto key = *(first + tid); auto found_value = empty_value_sentinel; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(key, hash, key_equal); - if(found != submap_view.end()) { + auto found = submap_view.find(key, hash, key_equal); + if (found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -252,10 +249,10 @@ __global__ void find(InputIt first, /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -264,7 +261,7 @@ __global__ void find(InputIt first, * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -278,49 +275,50 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; + KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while(first + key_idx < last) { - auto key = *(first + key_idx); + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found_value = empty_value_sentinel; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(tile, key, hash, key_equal); - if(found != submap_view.end()) { + auto found = submap_view.find(tile, key, hash, key_equal); + if (found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found_value; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found_value; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; @@ -329,13 +327,13 @@ __global__ void find(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The number of threads in the thread block * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -349,33 +347,33 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { + KeyEqual key_equal) +{ auto tid = blockDim.x * blockIdx.x + threadIdx.x; __shared__ bool writeBuffer[block_size]; - while(first + tid < last) { - auto key = *(first + tid); + while (first + tid < last) { + auto key = *(first + tid); auto found = false; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(key, hash, key_equal); - if(found) { - break; - } + if (found) { break; } } - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -390,10 +388,10 @@ __global__ void contains(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -401,7 +399,7 @@ __global__ void contains(InputIt first, * perform find operations * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -415,49 +413,48 @@ __global__ void contains(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - while(first + key_idx < last) { - auto key = *(first + key_idx); + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = false; - for(auto i = 0; i < num_submaps; ++i) { + for (auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(tile, key, hash, key_equal); - if(found) { - break; - } + if (found) { break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; } } -} // namespace detail -} // namespace cuco \ No newline at end of file +} // namespace detail +} // namespace cuco \ No newline at end of file diff --git a/include/cuco/detail/hash_functions.cuh b/include/cuco/detail/hash_functions.cuh index de7074f04..aec550aba 100644 --- a/include/cuco/detail/hash_functions.cuh +++ b/include/cuco/detail/hash_functions.cuh @@ -20,7 +20,6 @@ namespace cuco { namespace detail { - // MurmurHash3_32 implementation from // https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp //----------------------------------------------------------------------------- diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index e52a23387..eec3f3b50 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -12,7 +12,7 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ #include #include @@ -24,12 +24,13 @@ namespace cuco { namespace detail { /** - * @brief Rounds `v` to the nearest power of 2 greater than or equal to `v`. - * - * @param v + * @brief Rounds `v` to the nearest power of 2 greater than or equal to `v`. + * + * @param v * @return The nearest power of 2 greater than or equal to `v`. */ -constexpr std::size_t next_pow2(std::size_t v) noexcept { +constexpr std::size_t next_pow2(std::size_t v) noexcept +{ --v; v |= v >> 1; v |= v >> 2; @@ -45,7 +46,8 @@ constexpr std::size_t next_pow2(std::size_t v) noexcept { * whichever is smaller. */ template -constexpr std::size_t pair_alignment() { +constexpr std::size_t pair_alignment() +{ return std::min(std::size_t{16}, next_pow2(sizeof(First) + sizeof(Second))); } @@ -89,7 +91,7 @@ struct is_thrust_pair_like */ template struct alignas(detail::pair_alignment()) pair { - using first_type = First; + using first_type = First; using second_type = Second; First first; Second second; @@ -121,15 +123,16 @@ using pair_type = cuco::pair; /** * @brief Creates a pair of type `pair_type` - * - * @tparam F - * @tparam S - * @param f - * @param s + * + * @tparam F + * @tparam S + * @param f + * @param s * @return pair_type with first element `f` and second element `s`. */ template -__host__ __device__ pair_type make_pair(F&& f, S&& s) noexcept { +__host__ __device__ pair_type make_pair(F&& f, S&& s) noexcept +{ return pair_type{std::forward(f), std::forward(s)}; } } // namespace cuco diff --git a/include/cuco/detail/static_map_kernels.cuh b/include/cuco/detail/static_map_kernels.cuh index d28464e16..f709071a1 100644 --- a/include/cuco/detail/static_map_kernels.cuh +++ b/include/cuco/detail/static_map_kernels.cuh @@ -12,9 +12,9 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ -namespace cuco{ +namespace cuco { namespace detail { namespace cg = cooperative_groups; @@ -66,11 +66,13 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @param v Value to which all values in `slots` are initialized * @param size Size of the storage pointed to by `slots` */ -template -__global__ void initialize( - pair_atomic_type* const slots, Key k, - Value v, std::size_t size) { - +template +__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) +{ auto tid = threadIdx.x + blockIdx.x * blockDim.x; while (tid < size) { new (&slots[tid].first) atomic_key_type{k}; @@ -80,14 +82,14 @@ __global__ void initialize( } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -99,18 +101,15 @@ __global__ void initialize( * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; @@ -127,25 +126,23 @@ __global__ void insert(InputIt first, // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -157,19 +154,16 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; @@ -186,25 +180,23 @@ __global__ void insert(InputIt first, } it += (gridDim.x * block_size) / tile_size; } - + // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The size of the thread block * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -229,13 +221,13 @@ __global__ void find( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(key, hash, key_equal); - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -252,10 +244,10 @@ __global__ void find( /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -264,7 +256,7 @@ __global__ void find( * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -291,13 +283,13 @@ __global__ void find( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -309,7 +301,7 @@ __global__ void find( : found->second.load(cuda::std::memory_order_relaxed); } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; @@ -318,7 +310,7 @@ __global__ void find( /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The size of the thread block @@ -328,7 +320,7 @@ __global__ void find( * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -348,12 +340,12 @@ __global__ void contains( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { + + while (first + key_idx < last) { auto key = *(first + key_idx); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -368,10 +360,10 @@ __global__ void contains( /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -383,7 +375,7 @@ __global__ void contains( * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -405,23 +397,21 @@ __global__ void contains( auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.contains(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index a90cb9bb9..851213ab1 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -28,9 +28,9 @@ enum class insert_result { template static_multimap::static_multimap(std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel, - Allocator const& alloc) + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc) : capacity_{capacity}, empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, @@ -57,9 +57,9 @@ static_multimap::~static_multimap() template template void static_multimap::insert(InputIt first, - InputIt last, - Hash hash, - KeyEqual key_equal) + InputIt last, + Hash hash, + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -147,7 +147,7 @@ __device__ bool static_multimap::device_mutable_vi // if the key was already inserted by another thread, than this instance is a // duplicate, so the insert fails - //if (key_equal(insert_pair.first, expected_key)) { return false; } + // if (key_equal(insert_pair.first, expected_key)) { return false; } // if we couldn't insert the key, but it wasn't a duplicate, then there must // have been some other key there, so we keep looking for a slot @@ -170,7 +170,7 @@ __device__ bool static_multimap::device_mutable_vi auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); // the key we are trying to insert is already in the map, so we return with failure to insert - //if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { + // if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { // return false; //} @@ -234,8 +234,8 @@ template __device__ typename static_multimap::device_view::iterator static_multimap::device_view::find(Key const& k, - Hash hash, - KeyEqual key_equal) noexcept + Hash hash, + KeyEqual key_equal) noexcept { auto current_slot = initial_slot(k, hash); @@ -255,8 +255,8 @@ template __device__ typename static_multimap::device_view::const_iterator static_multimap::device_view::find(Key const& k, - Hash hash, - KeyEqual key_equal) const noexcept + Hash hash, + KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(k, hash); @@ -276,9 +276,9 @@ template __device__ typename static_multimap::device_view::iterator static_multimap::device_view::find(CG g, - Key const& k, - Hash hash, - KeyEqual key_equal) noexcept + Key const& k, + Hash hash, + KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k, hash); @@ -313,9 +313,9 @@ template __device__ typename static_multimap::device_view::const_iterator static_multimap::device_view::find(CG g, - Key const& k, - Hash hash, - KeyEqual key_equal) const noexcept + Key const& k, + Hash hash, + KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(g, k, hash); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 5132c8ef5..6ded5e99d 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -12,9 +12,9 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ -namespace cuco{ +namespace cuco { namespace detail { namespace cg = cooperative_groups; @@ -23,7 +23,7 @@ namespace cg = cooperative_groups; * * Each space in `slots` that can hold a key value pair is initialized to a * `pair_atomic_type` containing the key `k` and the value `v`. - * + * * @tparam atomic_key_type Type of the `Key` atomic container * @tparam atomic_mapped_type Type of the `Value` atomic container * @tparam Key key type @@ -34,11 +34,13 @@ namespace cg = cooperative_groups; * @param v Value to which all values in `slots` are initialized * @param size Size of the storage pointed to by `slots` */ -template -__global__ void initialize( - pair_atomic_type* const slots, Key k, - Value v, std::size_t size) { - +template +__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) +{ auto tid = threadIdx.x + blockIdx.x * blockDim.x; while (tid < size) { new (&slots[tid].first) atomic_key_type{k}; @@ -48,14 +50,14 @@ __global__ void initialize( } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -67,25 +69,22 @@ __global__ void initialize( * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto it = first + tid; - + auto it = first + tid; + while (it < last) { typename viewT::value_type const insert_pair{*it}; if (view.insert(insert_pair, hash, key_equal)) { thread_num_successes++; } @@ -95,25 +94,23 @@ __global__ void insert(InputIt first, // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -125,27 +122,24 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; - + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; + while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; @@ -154,25 +148,23 @@ __global__ void insert(InputIt first, } it += (gridDim.x * blockDim.x) / tile_size; } - + // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The size of the thread block * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -184,28 +176,26 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tid = blockDim.x * blockIdx.x + threadIdx.x; +template +__global__ void find( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(key, hash, key_equal); - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -220,10 +210,10 @@ __global__ void find(InputIt first, /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -232,7 +222,7 @@ __global__ void find(InputIt first, * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -244,39 +234,38 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; +template +__global__ void find( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found->second.load(cuda::std::memory_order_relaxed); } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; @@ -285,7 +274,7 @@ __global__ void find(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The size of the thread block @@ -295,7 +284,7 @@ __global__ void find(InputIt first, * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -303,26 +292,24 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tid = blockDim.x * blockIdx.x + threadIdx.x; +template +__global__ void contains( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { + + while (first + key_idx < last) { auto key = *(first + key_idx); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -337,10 +324,10 @@ __global__ void contains(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -352,7 +339,7 @@ __global__ void contains(InputIt first, * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -360,43 +347,40 @@ __global__ void contains(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; +template +__global__ void contains( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.contains(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; } } -} // namespace detail -} // namespace cuco \ No newline at end of file +} // namespace detail +} // namespace cuco \ No newline at end of file diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index b765a6bfd..31672c447 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -152,9 +152,9 @@ class static_multimap { * @param alloc Allocator used for allocating device storage */ static_multimap(std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel, - Allocator const& alloc = Allocator{}); + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc = Allocator{}); /** * @brief Destroys the map and frees its contents. @@ -886,7 +886,8 @@ class static_multimap { } /** - * @brief Constructs a device_mutable_view object based on the members of the `static_multimap` object + * @brief Constructs a device_mutable_view object based on the members of the `static_multimap` + * object * * @return A device_mutable_view object based on the members of the `static_multimap` object */ From 84bbc5afe0b1d6e8dae25a4a8a1c576143c4a599 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 26 Feb 2021 16:18:30 -0800 Subject: [PATCH 009/267] Complete static multimap example + update comments --- .../static_multimap/static_multimap_example.cu | 8 ++++---- include/cuco/detail/static_multimap.inl | 18 +++--------------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/examples/static_multimap/static_multimap_example.cu b/examples/static_multimap/static_multimap_example.cu index 2a7a86500..00ab44f89 100644 --- a/examples/static_multimap/static_multimap_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -45,13 +45,13 @@ int main(void) map.insert(pairs.begin(), pairs.end()); // Sequence of keys {0, 1, 2, ...} - // thrust::device_vector keys_to_find(50'000); - // thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); - // thrust::device_vector found_values(50'000); + thrust::device_vector keys_to_find(50'000); + thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); + thrust::device_vector found_values(50'000); // Finds all keys {0, 1, 2, ...} and stores associated values into `found_values` // If a key `keys_to_find[i]` doesn't exist, `found_values[i] == empty_value_sentinel` - // map.find(keys_to_find.begin(), keys_to_find.end(), found_values.begin()); + map.find(keys_to_find.begin(), keys_to_find.end(), found_values.begin()); return 0; } diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 851213ab1..0d521dbac 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -145,12 +145,8 @@ __device__ bool static_multimap::device_mutable_vi slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } - // if the key was already inserted by another thread, than this instance is a - // duplicate, so the insert fails - // if (key_equal(insert_pair.first, expected_key)) { return false; } - - // if we couldn't insert the key, but it wasn't a duplicate, then there must - // have been some other key there, so we keep looking for a slot + // If we couldn't insert the key, then there must have been some other key there. So we keep + // looking for a slot current_slot = next_slot(current_slot); } } @@ -167,17 +163,9 @@ __device__ bool static_multimap::device_mutable_vi // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); - - // the key we are trying to insert is already in the map, so we return with failure to insert - // if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { - // return false; - //} - + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); auto const window_contains_empty = g.ballot(slot_is_empty); - // we found an empty slot, but not the key we are inserting, so this must - // be an empty slot into which we can insert the key if (window_contains_empty) { // the first lane in the group with an empty slot will attempt the insert insert_result status{insert_result::CONTINUE}; From 619708d14660919d5efb282d511ecfe0693efa4c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 1 Mar 2021 10:11:18 -0800 Subject: [PATCH 010/267] Add fancy iterator & scalar (no cg involved) find_all functions on device --- include/cuco/detail/static_multimap.inl | 49 ++++++++++++++ include/cuco/static_multimap.cuh | 85 +++++++++++++++++++++++++ 2 files changed, 134 insertions(+) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 0d521dbac..365041cdc 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -336,6 +336,55 @@ static_multimap::device_view::find(CG g, } } +template +template +__device__ typename static_multimap::device_view::fancy_iterator +static_multimap::device_view::find_all(Key const& k, + Hash hash, + KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + // Key doesn't exist, return end() + if (existing_key == this->get_empty_key_sentinel()) { + return fancy_iterator{this->end(), k, empty_value_sentinel_}; + } + + // Key exists, return iterator to location + if (key_equal(existing_key, k)) { + return fancy_iterator{current_slot, k, empty_value_sentinel_}; + } + + current_slot = next_slot(current_slot); + } +} + +template +template +__device__ typename static_multimap::device_view::const_fancy_iterator +static_multimap::device_view::find_all( + Key const& k, Hash hash, KeyEqual key_equal) const noexcept +{ + auto current_slot = initial_slot(k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + // Key doesn't exist, return end() + if (existing_key == this->get_empty_key_sentinel()) { + return fancy_iterator{this->end(), k, empty_value_sentinel_}; + } + + // Key exists, return iterator to location + if (key_equal(existing_key, k)) { + return fancy_iterator{current_slot, k, empty_value_sentinel_}; + } + + current_slot = next_slot(current_slot); + } +} + template template __device__ bool static_multimap::device_view::contains( diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 31672c447..8919bc789 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -520,6 +520,7 @@ class static_multimap { using mapped_type = typename device_view_base::mapped_type; using iterator = typename device_view_base::iterator; using const_iterator = typename device_view_base::const_iterator; + /** * @brief Construct a mutable view of the first `capacity` slots of the * slots array pointed to by `slots`. @@ -697,6 +698,48 @@ class static_multimap { source_device_view.get_empty_value_sentinel()); } + struct fancy_iterator { + __host__ __device__ + fancy_iterator(pair_atomic_type* current, + Key key, + Value empty_value_sentinel = get_empty_value_sentinel()) noexcept + : current_{current}, key_{key}, empty_value_sentinel_{empty_value_sentinel} + { + } + + __device__ fancy_iterator operator++() + { + auto next = ++current_; + while (next->first != key_) { + if (next->first == empty_value_sentinel_) { + return fancy_iterator{device_view::end(), key_, empty_value_sentinel_}; + ++next; + } + return fancy_iterator{next, key_, empty_value_sentinel_}; + } + } + + __device__ fancy_iterator operator++(int) + { + auto next = ++current_; + while (next->first != key_) { + if (next->first == empty_value_sentinel_) { + return fancy_iterator{device_view::end(), key_, empty_value_sentinel_}; + ++next; + } + return fancy_iterator{next, key_, empty_value_sentinel_}; + } + } + + __device__ pair_atomic_type operator*() { return *current_; } + + private: + pair_atomic_type* current_; + Key key_; + Value empty_value_sentinel_; + }; + using const_fancy_iterator = fancy_iterator const; + /** * @brief Finds the value corresponding to the key `k`. * @@ -790,6 +833,48 @@ class static_multimap { __device__ const_iterator find(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; + /** + * @brief Finds the first value corresponding to the key `k`. + * + * Returns a fancy iterator to the pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A fancy iterator to the position at which the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ fancy_iterator find_all(Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Finds the first value corresponding to the key `k`. + * + * Returns a const fancy iterator to the pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A const fancy iterator to the position at which the key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ const_fancy_iterator find_all(Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) const noexcept; + /** * @brief Indicates whether the key `k` was inserted into the map. * From b92a23a3c07bb2d9a92d90b58c48a22cff20fc8b Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 1 Mar 2021 13:38:32 -0800 Subject: [PATCH 011/267] Add CUDA Cooperative Group find_all functions --- include/cuco/detail/static_multimap.inl | 88 +++++++++++++++++++++++-- include/cuco/static_multimap.cuh | 67 +++++++++++++++++-- 2 files changed, 145 insertions(+), 10 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 365041cdc..a7cbf3b86 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -349,12 +349,12 @@ static_multimap::device_view::find_all(Key const& auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); // Key doesn't exist, return end() if (existing_key == this->get_empty_key_sentinel()) { - return fancy_iterator{this->end(), k, empty_value_sentinel_}; + return fancy_iterator{this->end(), k, this->get_empty_key_sentinel()}; } // Key exists, return iterator to location if (key_equal(existing_key, k)) { - return fancy_iterator{current_slot, k, empty_value_sentinel_}; + return fancy_iterator{current_slot, k, this->get_empty_key_sentinel()}; } current_slot = next_slot(current_slot); @@ -373,18 +373,98 @@ static_multimap::device_view::find_all( auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); // Key doesn't exist, return end() if (existing_key == this->get_empty_key_sentinel()) { - return fancy_iterator{this->end(), k, empty_value_sentinel_}; + return const_fancy_iterator{this->end(), k, this->get_empty_key_sentinel()}; } // Key exists, return iterator to location if (key_equal(existing_key, k)) { - return fancy_iterator{current_slot, k, empty_value_sentinel_}; + return const_fancy_iterator{current_slot, k, this->get_empty_key_sentinel()}; } current_slot = next_slot(current_slot); } } +template +template +__device__ typename static_multimap::device_view::fancy_iterator +static_multimap::device_view::find_all(CG g, + Key const& k, + Hash hash, + KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + + // the key we were searching for was found by one of the threads, + // so we return an iterator to the entry + auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); + if (exists) { + uint32_t src_lane = __ffs(exists) - 1; + // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the + // current_slot and shuffle that instead. + intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); + return fancy_iterator{ + reinterpret_cast(res_slot), k, this->get_empty_value_sentinel()}; + } + + // we found an empty slot, meaning that the key we're searching for isn't present + if (g.ballot(slot_is_empty)) { + return fancy_iterator{this->end(), k, this->get_empty_value_sentinel()}; + } + + // otherwise, all slots in the current window are full with other keys, so we move onto the + // next window + current_slot = next_slot(g, current_slot); + } +} + +template +template +__device__ typename static_multimap::device_view::const_fancy_iterator +static_multimap::device_view::find_all( + CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept +{ + auto current_slot = initial_slot(g, k, hash); + + while (true) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + + // the key we were searching for was found by one of the threads, so we return an iterator to + // the entry + auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); + if (exists) { + uint32_t src_lane = __ffs(exists) - 1; + // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the + // current_slot and shuffle that instead. + intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); + return const_fancy_iterator{ + reinterpret_cast(res_slot), k, this->get_empty_value_sentinel()}; + } + + // we found an empty slot, meaning that the key we're searching + // for isn't in this submap, so we should move onto the next one + if (g.ballot(slot_is_empty)) { + return const_fancy_iterator{this->end(), k, this->get_empty_value_sentinel()}; + } + + // otherwise, all slots in the current window are full with other keys, + // so we move onto the next window in the current submap + + current_slot = next_slot(g, current_slot); + } +} + template template __device__ bool static_multimap::device_view::contains( diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 8919bc789..4464f236c 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -834,9 +834,9 @@ class static_multimap { find(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; /** - * @brief Finds the first value corresponding to the key `k`. + * @brief Finds all values corresponding to the key `k`. * - * Returns a fancy iterator to the pair whose key is equivalent to `k`. + * Returns a fancy iterator to the first pair whose key is equivalent to `k`. * If no such pair exists, returns `end()`. * * @tparam Hash Unary callable type @@ -845,7 +845,7 @@ class static_multimap { * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys * for equality - * @return A fancy iterator to the position at which the key/value pair + * @return A fancy iterator to the position at which the first key/value pair * containing `k` was inserted */ template , @@ -855,9 +855,9 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) noexcept; /** - * @brief Finds the first value corresponding to the key `k`. + * @brief Finds all values corresponding to the key `k`. * - * Returns a const fancy iterator to the pair whose key is equivalent to `k`. + * Returns a const fancy iterator to the first pair whose key is equivalent to `k`. * If no such pair exists, returns `end()`. * * @tparam Hash Unary callable type @@ -866,7 +866,7 @@ class static_multimap { * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys * for equality - * @return A const fancy iterator to the position at which the key/value pair + * @return A const fancy iterator to the position at which the first key/value pair * containing `k` was inserted */ template , @@ -875,6 +875,60 @@ class static_multimap { Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; + /** + * @brief Finds all values corresponding to the key `k`. + * + * Returns a fancy iterator to the first pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single find. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `find_all` at moderate to high load factors. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the find + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A fancy iterator to the position at which the first key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ fancy_iterator + find_all(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Finds all values corresponding to the key `k`. + * + * Returns a const_iterator to the first pair whose key is equivalent to `k`. + * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single find. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `find_all` at moderate to high load factors. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the find + * @param k The key to search for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A const fancy iterator to the position at which the first key/value pair + * containing `k` was inserted + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ const_fancy_iterator find_all(CG g, + Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) const noexcept; + /** * @brief Indicates whether the key `k` was inserted into the map. * @@ -890,6 +944,7 @@ class static_multimap { * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ + template , typename KeyEqual = thrust::equal_to> __device__ bool contains(Key const& k, From a6e2d72aefe4f2c6b4c739a11f5d49e31620f114 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 1 Mar 2021 15:07:58 -0800 Subject: [PATCH 012/267] Add device count functions --- include/cuco/detail/static_multimap.inl | 29 ++++++++++++++++++++ include/cuco/static_multimap.cuh | 36 +++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index a7cbf3b86..82eb8d61e 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -509,4 +509,33 @@ __device__ bool static_multimap::device_view::cont current_slot = next_slot(g, current_slot); } } + +template +template +__device__ size_t static_multimap::device_view::count( + Key const& k, Hash hash, KeyEqual key_equal) noexcept +{ + auto found = this->find_all(k, hash, key_equal); + size_t count = 0; + while (*found != this->end()) { + ++found; + ++count; + } + return count; +} + +template +template +__device__ size_t static_multimap::device_view::count( + CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept +{ + auto found = this->find_all(g, k, hash, key_equal); + size_t count = 0; + while (*found != this->end()) { + ++found; + ++count; + } + return count; +} + } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 4464f236c..85b3d35d1 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -978,6 +978,42 @@ class static_multimap { Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the number of matching key/value pairs contained in the multimap. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to count for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * @return The total number of the matching key/value pairs + * in the multimap + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ size_t count(Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the number of matching key/value pairs contained in the multimap. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to count for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * @return The total number of the matching key/value pairs + * in the multimap + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ size_t + count(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; + }; // class device_view /** From 3742f0256f1e97b9b475f446aba20fbffbf1f5ca Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 2 Mar 2021 17:15:36 -0800 Subject: [PATCH 013/267] Updates: insert returns void instead of bool --- include/cuco/detail/static_multimap.inl | 19 +++----- .../cuco/detail/static_multimap_kernels.cuh | 44 +++---------------- include/cuco/static_multimap.cuh | 20 ++------- 3 files changed, 15 insertions(+), 68 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 82eb8d61e..87dcd235a 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -43,15 +43,12 @@ static_multimap::static_multimap(std::size_t capac auto const grid_size = (capacity + stride * block_size - 1) / (stride * block_size); detail::initialize <<>>(slots_, empty_key_sentinel, empty_value_sentinel, capacity); - - CUCO_CUDA_TRY(cudaMallocManaged(&num_successes_, sizeof(atomic_ctr_type))); } template static_multimap::~static_multimap() { std::allocator_traits::deallocate(slot_allocator_, slots_, capacity_); - CUCO_CUDA_TRY(cudaFree(num_successes_)); } template @@ -68,16 +65,12 @@ void static_multimap::insert(InputIt first, auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_mutable_view(); - *num_successes_ = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_successes_, sizeof(atomic_ctr_type), device_id)); detail::insert - <<>>(first, first + num_keys, num_successes_, view, hash, key_equal); + <<>>(first, first + num_keys, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - - size_ += num_successes_->load(cuda::std::memory_order_relaxed); } template @@ -116,7 +109,7 @@ void static_multimap::contains( template template -__device__ bool static_multimap::device_mutable_view::insert( +__device__ void static_multimap::device_mutable_view::insert( value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { auto current_slot{initial_slot(insert_pair.first, hash)}; @@ -140,7 +133,7 @@ __device__ bool static_multimap::device_mutable_vi insert_pair.second, memory_order_relaxed); } - return true; + return; } else if (value_success) { slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } @@ -153,7 +146,7 @@ __device__ bool static_multimap::device_mutable_vi template template -__device__ bool static_multimap::device_mutable_view::insert( +__device__ void static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, insert_pair.first, hash); @@ -195,8 +188,6 @@ __device__ bool static_multimap::device_mutable_vi slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } - // our key was already present in the slot, so our key is a duplicate - // if (key_equal(insert_pair.first, expected_key)) { status = insert_result::DUPLICATE; } // another key was inserted in the slot we wanted to try // so we need to try the next empty slot in the window } @@ -205,7 +196,7 @@ __device__ bool static_multimap::device_mutable_vi status = static_cast(res_status); // successful insert - if (status == insert_result::SUCCESS) { return true; } + if (status == insert_result::SUCCESS) { return; } // if we've gotten this far, a different key took our spot // before we could insert. We need to retry the insert on the // same window diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 6ded5e99d..8c06e0791 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -58,43 +58,26 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` - * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs - * @param num_successes The number of successfully inserted key/value pairs * @param view Mutable device view used to access the hash map's slot storage * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +template +__global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEqual key_equal) { - typedef cub::BlockReduce BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_successes = 0; - auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto it = first + tid; while (it < last) { typename viewT::value_type const insert_pair{*it}; - if (view.insert(insert_pair, hash, key_equal)) { thread_num_successes++; } + view.insert(insert_pair, hash, key_equal); it += gridDim.x * blockDim.x; } - - // compute number of successfully inserted elements for each block - // and atomically add to the grand total - std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** @@ -111,13 +94,11 @@ __global__ void insert( * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` - * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs - * @param num_successes The number of successfully inserted key/value pairs * @param view Mutable device view used to access the hash map's slot storage * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality @@ -125,17 +106,11 @@ __global__ void insert( template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +__global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEqual key_equal) { - typedef cub::BlockReduce BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_successes = 0; - auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto it = first + tid / tile_size; @@ -143,16 +118,9 @@ __global__ void insert( while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - if (view.insert(tile, insert_pair, hash, key_equal) && tile.thread_rank() == 0) { - thread_num_successes++; - } + view.insert(tile, insert_pair, hash, key_equal); it += (gridDim.x * blockDim.x) / tile_size; } - - // compute number of successfully inserted elements for each block - // and atomically add to the grand total - std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** @@ -383,4 +351,4 @@ __global__ void contains( } } // namespace detail -} // namespace cuco \ No newline at end of file +} // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 85b3d35d1..1650e14ae 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -543,33 +543,22 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map. * - * Returns a pair consisting of an iterator to the inserted element (or to - * the element that prevented the insertion) and a `bool` denoting whether - * the insertion took place. - * * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param insert_pair The pair to insert * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys for * equality - * @return `true` if the insert was successful, `false` otherwise. + * @return void. */ template , typename KeyEqual = thrust::equal_to> - __device__ bool insert(value_type const& insert_pair, + __device__ void insert(value_type const& insert_pair, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Inserts the specified key/value pair into the map. * - * Returns a pair consisting of an iterator to the inserted element (or to - * the element that prevented the insertion) and a `bool` denoting whether - * the insertion took place. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single insert. This provides a - * significant boost in throughput compared to the non Cooperative Group - * `insert` at moderate to high load factors. - * * @tparam Cooperative Group type * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type @@ -579,12 +568,12 @@ class static_multimap { * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys for * equality - * @return `true` if the insert was successful, `false` otherwise. + * @return void. */ template , typename KeyEqual = thrust::equal_to> - __device__ bool insert(CG g, + __device__ void insert(CG g, value_type const& insert_pair, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -1078,7 +1067,6 @@ class static_multimap { std::size_t size_{}; ///< Number of keys in map Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial value of empty slot - atomic_ctr_type* num_successes_{}; ///< Number of successfully inserted keys on insert slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots }; } // namespace cuco From 0a40db5a65035e6fdb9b61bca7c23828e7296dd5 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 3 Mar 2021 14:44:50 -0800 Subject: [PATCH 014/267] Update unit tests - to debug --- include/cuco/detail/static_multimap.inl | 26 ++--- include/cuco/static_multimap.cuh | 45 ++++---- tests/static_map/static_map_test.cu | 1 + tests/static_multimap/static_multimap_test.cu | 102 ++++++++++++++++-- 4 files changed, 121 insertions(+), 53 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 87dcd235a..91e968886 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -340,13 +340,11 @@ static_multimap::device_view::find_all(Key const& auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); // Key doesn't exist, return end() if (existing_key == this->get_empty_key_sentinel()) { - return fancy_iterator{this->end(), k, this->get_empty_key_sentinel()}; + return fancy_iterator{this->end(), k, *this}; } // Key exists, return iterator to location - if (key_equal(existing_key, k)) { - return fancy_iterator{current_slot, k, this->get_empty_key_sentinel()}; - } + if (key_equal(existing_key, k)) { return fancy_iterator{current_slot, k, *this}; } current_slot = next_slot(current_slot); } @@ -364,13 +362,11 @@ static_multimap::device_view::find_all( auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); // Key doesn't exist, return end() if (existing_key == this->get_empty_key_sentinel()) { - return const_fancy_iterator{this->end(), k, this->get_empty_key_sentinel()}; + return const_fancy_iterator{this->end(), k, *this}; } // Key exists, return iterator to location - if (key_equal(existing_key, k)) { - return const_fancy_iterator{current_slot, k, this->get_empty_key_sentinel()}; - } + if (key_equal(existing_key, k)) { return const_fancy_iterator{current_slot, k, *this}; } current_slot = next_slot(current_slot); } @@ -401,14 +397,11 @@ static_multimap::device_view::find_all(CG g, // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the // current_slot and shuffle that instead. intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return fancy_iterator{ - reinterpret_cast(res_slot), k, this->get_empty_value_sentinel()}; + return fancy_iterator{reinterpret_cast(res_slot), k, *this}; } // we found an empty slot, meaning that the key we're searching for isn't present - if (g.ballot(slot_is_empty)) { - return fancy_iterator{this->end(), k, this->get_empty_value_sentinel()}; - } + if (g.ballot(slot_is_empty)) { return fancy_iterator{this->end(), k, *this}; } // otherwise, all slots in the current window are full with other keys, so we move onto the // next window @@ -439,15 +432,12 @@ static_multimap::device_view::find_all( // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the // current_slot and shuffle that instead. intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return const_fancy_iterator{ - reinterpret_cast(res_slot), k, this->get_empty_value_sentinel()}; + return const_fancy_iterator{reinterpret_cast(res_slot), k, *this}; } // we found an empty slot, meaning that the key we're searching // for isn't in this submap, so we should move onto the next one - if (g.ballot(slot_is_empty)) { - return const_fancy_iterator{this->end(), k, this->get_empty_value_sentinel()}; - } + if (g.ballot(slot_is_empty)) { return const_fancy_iterator{this->end(), k, *this}; } // otherwise, all slots in the current window are full with other keys, // so we move onto the next window in the current submap diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 1650e14ae..128557fba 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -688,44 +688,36 @@ class static_multimap { } struct fancy_iterator { - __host__ __device__ - fancy_iterator(pair_atomic_type* current, - Key key, - Value empty_value_sentinel = get_empty_value_sentinel()) noexcept - : current_{current}, key_{key}, empty_value_sentinel_{empty_value_sentinel} + __host__ __device__ fancy_iterator(pair_atomic_type* current, + Key key, + device_view& view) noexcept + : current_{current}, + key_{key}, + end_{view.end()}, + empty_key_sentinel_{view.get_empty_key_sentinel()} { } __device__ fancy_iterator operator++() { - auto next = ++current_; - while (next->first != key_) { - if (next->first == empty_value_sentinel_) { - return fancy_iterator{device_view::end(), key_, empty_value_sentinel_}; - ++next; + ++current_; + while (current_->first != key_) { + if (current_->first == this->empty_key_sentinel_) { + current_ = this->end_; + return *this; } - return fancy_iterator{next, key_, empty_value_sentinel_}; + ++current_; } + return *this; } - __device__ fancy_iterator operator++(int) - { - auto next = ++current_; - while (next->first != key_) { - if (next->first == empty_value_sentinel_) { - return fancy_iterator{device_view::end(), key_, empty_value_sentinel_}; - ++next; - } - return fancy_iterator{next, key_, empty_value_sentinel_}; - } - } - - __device__ pair_atomic_type operator*() { return *current_; } + __device__ pair_atomic_type* operator*() { return current_; } private: pair_atomic_type* current_; Key key_; - Value empty_value_sentinel_; + pair_atomic_type* const end_; + Key const empty_key_sentinel_; }; using const_fancy_iterator = fancy_iterator const; @@ -1002,7 +994,6 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ size_t count(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; - }; // class device_view /** @@ -1068,7 +1059,7 @@ class static_multimap { Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial value of empty slot slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots -}; +}; // class static_multimap } // namespace cuco #include diff --git a/tests/static_map/static_map_test.cu b/tests/static_map/static_map_test.cu index f382e5409..271c435a1 100644 --- a/tests/static_map/static_map_test.cu +++ b/tests/static_map/static_map_test.cu @@ -285,6 +285,7 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } + // device funtion test cases SECTION("Inserting unique keys should return insert success.") { if (Dist == dist_type::UNIQUE) { diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 8aa68d937..5efbd5a06 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -47,7 +47,7 @@ bool none_of(Iterator begin, Iterator end, Predicate p) } } // namespace -enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; +enum class dist_type { UNIQUE, DUAL, UNIFORM, GAUSSIAN }; template static void generate_keys(OutputIt output_begin, OutputIt output_end) @@ -63,6 +63,11 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) output_begin[i] = i; } break; + case dist_type::DUAL: + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = i % (num_keys / 2); + } + break; case dist_type::UNIFORM: for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(gen())); @@ -77,6 +82,15 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } } +template +static void print(Iterator it_begin, Iterator it_end) +{ + const int N = std::distance(it_begin, it_end); + for (int i = 0; i < N; i++) + std::cout << it_begin[i] << "\t"; + std::cout << "\n### End of print\n\n"; +} + TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", ((typename T, dist_type Dist), T, Dist), @@ -116,15 +130,87 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", thrust::device_vector d_results(num_keys); thrust::device_vector d_contained(num_keys); - // bulk function test cases - SECTION("All inserted keys-value pairs should be correctly recovered during find") + SECTION("Keys are all found.") + { + // Bulk insert keys + map.insert(d_pairs.begin(), d_pairs.end()); + + SECTION("non-const view") + { + REQUIRE(all_of(d_pairs.begin(), + d_pairs.end(), + [view] __device__(cuco::pair_type const& pair) mutable { + return *(view.find_all(pair.first)) != view.end(); + })); + } + } +} + +TEMPLATE_TEST_CASE_SIG("Each key appears twice", + "", + ((typename T, dist_type Dist), T, Dist), + (int32_t, dist_type::DUAL), + (int64_t, dist_type::DUAL)) +{ + using Key = T; + using Value = T; + + constexpr std::size_t num_keys{50}; + cuco::static_multimap map{100, -1, -1}; + + auto m_view = map.get_device_mutable_view(); + auto view = map.get_device_view(); + + std::vector h_keys(num_keys); + std::vector h_values(num_keys); + std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end()); + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = i; + h_pairs[i].first = key; + h_pairs[i].second = val; + h_values[i] = val; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector d_values(h_values); + thrust::device_vector> d_pairs(h_pairs); + thrust::device_vector d_results(num_keys); + thrust::device_vector d_contained(num_keys); + + std::cout << "################ begin\n"; + for (auto it : h_pairs) + std::cout << it.first << ":" << it.second << "\t"; + std::cout << "\n################ end\n\n"; + + SECTION("Cannot find any key in an empty hash map with non-const view") + { + SECTION("non-const view") + { + REQUIRE(all_of(d_pairs.begin(), + d_pairs.end(), + [view] __device__(cuco::pair_type const& pair) mutable { + return *(view.find_all(pair.first)) == view.end(); + })); + } + } + + + SECTION("Counting the number of key/value pairs should return 2 all the time.") { + // Bulk insert keys map.insert(d_pairs.begin(), d_pairs.end()); - map.find(d_keys.begin(), d_keys.end(), d_results.begin()); - auto zip = thrust::make_zip_iterator(thrust::make_tuple(d_results.begin(), d_values.begin())); - REQUIRE(all_of(zip, zip + num_keys, [] __device__(auto const& p) { - return thrust::get<0>(p) == thrust::get<1>(p); - })); + SECTION("non-const view") + { + REQUIRE(all_of(d_pairs.begin(), + d_pairs.end(), + [view] __device__(cuco::pair_type const& pair) mutable { + return view.count(pair.first) == 2; + })); + } } } From d5474723dfc9e6ee51a01600a819ee81c5f80c8a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 3 Mar 2021 15:44:08 -0800 Subject: [PATCH 015/267] Add comparison operator to make fancy_iterator and iterator comparable --- include/cuco/detail/static_multimap.inl | 4 ++-- include/cuco/static_multimap.cuh | 6 +++++- tests/static_multimap/static_multimap_test.cu | 5 ++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 91e968886..147efc8fb 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -498,7 +498,7 @@ __device__ size_t static_multimap::device_view::co { auto found = this->find_all(k, hash, key_equal); size_t count = 0; - while (*found != this->end()) { + while (found != this->end()) { ++found; ++count; } @@ -512,7 +512,7 @@ __device__ size_t static_multimap::device_view::co { auto found = this->find_all(g, k, hash, key_equal); size_t count = 0; - while (*found != this->end()) { + while (found != this->end()) { ++found; ++count; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 128557fba..83fb70260 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -711,7 +711,11 @@ class static_multimap { return *this; } - __device__ pair_atomic_type* operator*() { return current_; } + __device__ bool operator==(const iterator& it) { return (this->current_ == it); } + + __device__ bool operator!=(const iterator& it) { return this->current_ != it; } + + __device__ pair_atomic_type& operator*() { return *current_; } private: pair_atomic_type* current_; diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 5efbd5a06..38c62be6d 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -140,7 +140,7 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", REQUIRE(all_of(d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) mutable { - return *(view.find_all(pair.first)) != view.end(); + return view.find_all(pair.first) != view.end(); })); } } @@ -193,12 +193,11 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", REQUIRE(all_of(d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) mutable { - return *(view.find_all(pair.first)) == view.end(); + return view.find_all(pair.first) == view.end(); })); } } - SECTION("Counting the number of key/value pairs should return 2 all the time.") { // Bulk insert keys From 7b0e3251c3beb4bc4093fa9449423ed076b249ba Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 4 Mar 2021 08:02:35 -0800 Subject: [PATCH 016/267] Use template to implement fancy_iterator and const_fancy_iterator --- include/cuco/detail/static_multimap.inl | 2 +- include/cuco/static_multimap.cuh | 84 ++++++++++--------- tests/static_multimap/static_multimap_test.cu | 26 +++++- 3 files changed, 71 insertions(+), 41 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 147efc8fb..71acdda00 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. + * Copyright (c) 2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 83fb70260..5f1842e4d 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -595,6 +595,52 @@ class static_multimap { using mapped_type = typename device_view_base::mapped_type; using iterator = typename device_view_base::iterator; using const_iterator = typename device_view_base::const_iterator; + + template + struct FancyIterator { + public: + using data_type = DataType; + using pointer_type = DataType*; + using data_reference = DataType&; + + public: + __host__ __device__ FancyIterator(pointer_type current, Key key, device_view& view) noexcept + : current_{current}, + key_{key}, + end_{view.end()}, + empty_key_sentinel_{view.get_empty_key_sentinel()} + { + } + __host__ __device__ ~FancyIterator() {} + + __device__ FancyIterator& operator++() + { + ++current_; + while (current_->first != key_) { + if (current_->first == this->empty_key_sentinel_) { + current_ = this->end_; + return *this; + } + ++current_; + } + return *this; + } + + __device__ bool operator==(const pointer_type& it) { return (this->current_ == it); } + + __device__ bool operator!=(const pointer_type& it) { return this->current_ != it; } + + __device__ data_reference operator*() { return *current_; } + + private: + pointer_type current_; + Key key_; + pointer_type end_; + Key empty_key_sentinel_; + }; + using fancy_iterator = FancyIterator; + using const_fancy_iterator = FancyIterator; + /** * @brief Construct a view of the first `capacity` slots of the * slots array pointed to by `slots`. @@ -687,44 +733,6 @@ class static_multimap { source_device_view.get_empty_value_sentinel()); } - struct fancy_iterator { - __host__ __device__ fancy_iterator(pair_atomic_type* current, - Key key, - device_view& view) noexcept - : current_{current}, - key_{key}, - end_{view.end()}, - empty_key_sentinel_{view.get_empty_key_sentinel()} - { - } - - __device__ fancy_iterator operator++() - { - ++current_; - while (current_->first != key_) { - if (current_->first == this->empty_key_sentinel_) { - current_ = this->end_; - return *this; - } - ++current_; - } - return *this; - } - - __device__ bool operator==(const iterator& it) { return (this->current_ == it); } - - __device__ bool operator!=(const iterator& it) { return this->current_ != it; } - - __device__ pair_atomic_type& operator*() { return *current_; } - - private: - pair_atomic_type* current_; - Key key_; - pair_atomic_type* const end_; - Key const empty_key_sentinel_; - }; - using const_fancy_iterator = fancy_iterator const; - /** * @brief Finds the value corresponding to the key `k`. * diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 38c62be6d..4b9c016d4 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -133,7 +133,12 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", SECTION("Keys are all found.") { // Bulk insert keys - map.insert(d_pairs.begin(), d_pairs.end()); + thrust::for_each(thrust::device, + d_pairs.begin(), + d_pairs.end(), + [m_view] __device__(cuco::pair_type const& pair) mutable { + m_view.insert(pair); + }); SECTION("non-const view") { @@ -143,6 +148,13 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", return view.find_all(pair.first) != view.end(); })); } + SECTION("const view") + { + REQUIRE(all_of( + d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { + return view.find_all(pair.first) != view.end(); + })); + } } } @@ -196,8 +208,17 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", return view.find_all(pair.first) == view.end(); })); } + /* + SECTION("const view") + { + REQUIRE(all_of( + d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { + return view.find_all(pair.first) == view.end(); + })); + } + */ } - + /* SECTION("Counting the number of key/value pairs should return 2 all the time.") { // Bulk insert keys @@ -212,4 +233,5 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", })); } } + */ } From 5143f5a2f5aad9b347e12b75322fd3885ed287c5 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 4 Mar 2021 08:10:46 -0800 Subject: [PATCH 017/267] Fix a bug in fancy_iterator: add constructor for const arguments --- include/cuco/static_multimap.cuh | 9 +++++++++ tests/static_multimap/static_multimap_test.cu | 2 -- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 5f1842e4d..f524e1f2b 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -611,6 +611,15 @@ class static_multimap { empty_key_sentinel_{view.get_empty_key_sentinel()} { } + __host__ __device__ FancyIterator(pointer_type current, + const Key key, + const device_view& view) noexcept + : current_{current}, + key_{key}, + end_{view.end()}, + empty_key_sentinel_{view.get_empty_key_sentinel()} + { + } __host__ __device__ ~FancyIterator() {} __device__ FancyIterator& operator++() diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 4b9c016d4..174b22269 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -208,7 +208,6 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", return view.find_all(pair.first) == view.end(); })); } - /* SECTION("const view") { REQUIRE(all_of( @@ -216,7 +215,6 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", return view.find_all(pair.first) == view.end(); })); } - */ } /* SECTION("Counting the number of key/value pairs should return 2 all the time.") From e21bc47dd52d95c1360b219545755e57a22c1b59 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 4 Mar 2021 08:46:19 -0800 Subject: [PATCH 018/267] Updates: use uniform_int_distribution in unit tests --- tests/dynamic_map/dynamic_map_test.cu | 14 +++++++++----- tests/static_map/static_map_test.cu | 12 ++++++++---- tests/static_multimap/static_multimap_test.cu | 15 ++++++++++----- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/tests/dynamic_map/dynamic_map_test.cu b/tests/dynamic_map/dynamic_map_test.cu index fd38ea642..0e52b4b64 100644 --- a/tests/dynamic_map/dynamic_map_test.cu +++ b/tests/dynamic_map/dynamic_map_test.cu @@ -33,22 +33,26 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) std::mt19937 gen{rd()}; switch (Dist) { - case dist_type::UNIQUE: + case dist_type::UNIQUE: { for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; - case dist_type::UNIFORM: + } + case dist_type::UNIFORM: { + std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = std::abs(static_cast(gen())); + output_begin[i] = distribution(gen); } break; - case dist_type::GAUSSIAN: + } + case dist_type::GAUSSIAN: { std::normal_distribution<> dg{1e9, 1e7}; for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; + } } } @@ -147,4 +151,4 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", REQUIRE( none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } -} \ No newline at end of file +} diff --git a/tests/static_map/static_map_test.cu b/tests/static_map/static_map_test.cu index 271c435a1..a9d4a4520 100644 --- a/tests/static_map/static_map_test.cu +++ b/tests/static_map/static_map_test.cu @@ -59,22 +59,26 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) std::mt19937 gen{rd()}; switch (Dist) { - case dist_type::UNIQUE: + case dist_type::UNIQUE: { for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; - case dist_type::UNIFORM: + } + case dist_type::UNIFORM: { + std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = std::abs(static_cast(gen())); + output_begin[i] = distribution(gen); } break; - case dist_type::GAUSSIAN: + } + case dist_type::GAUSSIAN: { std::normal_distribution<> dg{1e9, 1e7}; for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; + } } } diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 174b22269..465af960a 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -58,27 +58,32 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) std::mt19937 gen{rd()}; switch (Dist) { - case dist_type::UNIQUE: + case dist_type::UNIQUE: { for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; - case dist_type::DUAL: + } + case dist_type::DUAL: { for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i % (num_keys / 2); } break; - case dist_type::UNIFORM: + } + case dist_type::UNIFORM: { + std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = std::abs(static_cast(gen())); + output_begin[i] = distribution(gen); } break; - case dist_type::GAUSSIAN: + } + case dist_type::GAUSSIAN: { std::normal_distribution<> dg{1e9, 1e7}; for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; + } } } From 32e7fc9d5c3b803a98ad98d899886c5f7842e75a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 4 Mar 2021 13:18:07 -0800 Subject: [PATCH 019/267] Add const methods for fancy_iterator --- include/cuco/static_multimap.cuh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index f524e1f2b..7d5db624f 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -635,11 +635,13 @@ class static_multimap { return *this; } - __device__ bool operator==(const pointer_type& it) { return (this->current_ == it); } - - __device__ bool operator!=(const pointer_type& it) { return this->current_ != it; } + __device__ bool operator==(const pointer_type& it) const { return (this->current_ == it); } + __device__ bool operator!=(const pointer_type& it) const { return this->current_ != it; } __device__ data_reference operator*() { return *current_; } + __device__ data_reference operator*() const { return *current_; } + __device__ pointer_type operator->() { return current_; } + __device__ pointer_type operator->() const { return current_; } private: pointer_type current_; From dbcfd84b73d5ab00bb1db4e2afa3e266426159ba Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 5 Mar 2021 06:54:28 -0800 Subject: [PATCH 020/267] Fix a bug: use wrap around handling to find next slot --- include/cuco/detail/static_multimap.inl | 28 +++++++++++++++++ include/cuco/static_multimap.cuh | 42 +++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 71acdda00..f31552dba 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -505,6 +505,20 @@ __device__ size_t static_multimap::device_view::co return count; } +template +template +__device__ size_t static_multimap::device_view::count( + Key const& k, Hash hash, KeyEqual key_equal) const noexcept +{ + auto found = this->find_all(k, hash, key_equal); + size_t count = 0; + while (found != this->end()) { + ++found; + ++count; + } + return count; +} + template template __device__ size_t static_multimap::device_view::count( @@ -519,4 +533,18 @@ __device__ size_t static_multimap::device_view::co return count; } +template +template +__device__ size_t static_multimap::device_view::count( + CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept +{ + auto found = this->find_all(g, k, hash, key_equal); + size_t count = 0; + while (found != this->end()) { + ++found; + ++count; + } + return count; +} + } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 7d5db624f..cc55073c5 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -607,6 +607,7 @@ class static_multimap { __host__ __device__ FancyIterator(pointer_type current, Key key, device_view& view) noexcept : current_{current}, key_{key}, + view_{view}, end_{view.end()}, empty_key_sentinel_{view.get_empty_key_sentinel()} { @@ -616,6 +617,7 @@ class static_multimap { const device_view& view) noexcept : current_{current}, key_{key}, + view_{view}, end_{view.end()}, empty_key_sentinel_{view.get_empty_key_sentinel()} { @@ -624,13 +626,13 @@ class static_multimap { __device__ FancyIterator& operator++() { - ++current_; + current_ = view_.next_slot(current_); while (current_->first != key_) { if (current_->first == this->empty_key_sentinel_) { current_ = this->end_; return *this; } - ++current_; + current_ = view_.next_slot(current_); } return *this; } @@ -646,6 +648,7 @@ class static_multimap { private: pointer_type current_; Key key_; + device_view& view_; pointer_type end_; Key empty_key_sentinel_; }; @@ -1000,6 +1003,23 @@ class static_multimap { Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; + /** + * @brief Counts the number of matching key/value pairs contained in the multimap. + * + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to count for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * @return The total number of the matching key/value pairs + * in the multimap + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ size_t count(Key const& k, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) const noexcept; + /** * @brief Counts the number of matching key/value pairs contained in the multimap. * @@ -1017,6 +1037,24 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ size_t count(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the number of matching key/value pairs contained in the multimap. + * + * @tparam CG Cooperative Group type + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param k The key to count for + * @param hash The unary callable used to hash the key + * @param key_equal The binary callable used to compare two keys + * @return The total number of the matching key/value pairs + * in the multimap + */ + template , + typename KeyEqual = thrust::equal_to> + __device__ size_t + count(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; }; // class device_view /** From becb953034bb1c3895c9dd15ad95448cc00e03d0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 5 Mar 2021 07:19:53 -0800 Subject: [PATCH 021/267] Add multimap::count unit tests --- include/cuco/static_multimap.cuh | 15 ++----- tests/static_multimap/static_multimap_test.cu | 44 ++++--------------- 2 files changed, 12 insertions(+), 47 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index cc55073c5..d01a37713 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -604,17 +604,7 @@ class static_multimap { using data_reference = DataType&; public: - __host__ __device__ FancyIterator(pointer_type current, Key key, device_view& view) noexcept - : current_{current}, - key_{key}, - view_{view}, - end_{view.end()}, - empty_key_sentinel_{view.get_empty_key_sentinel()} - { - } - __host__ __device__ FancyIterator(pointer_type current, - const Key key, - const device_view& view) noexcept + __host__ __device__ FancyIterator(pointer_type current, Key key, device_view view) noexcept : current_{current}, key_{key}, view_{view}, @@ -622,6 +612,7 @@ class static_multimap { empty_key_sentinel_{view.get_empty_key_sentinel()} { } + __host__ __device__ ~FancyIterator() {} __device__ FancyIterator& operator++() @@ -648,7 +639,7 @@ class static_multimap { private: pointer_type current_; Key key_; - device_view& view_; + device_view view_; pointer_type end_; Key empty_key_sentinel_; }; diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 465af960a..465d5c4f0 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -87,15 +87,6 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } } -template -static void print(Iterator it_begin, Iterator it_end) -{ - const int N = std::distance(it_begin, it_end); - for (int i = 0; i < N; i++) - std::cout << it_begin[i] << "\t"; - std::cout << "\n### End of print\n\n"; -} - TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", ((typename T, dist_type Dist), T, Dist), @@ -172,8 +163,8 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", using Key = T; using Value = T; - constexpr std::size_t num_keys{50}; - cuco::static_multimap map{100, -1, -1}; + constexpr std::size_t num_keys{50'000'000}; + cuco::static_multimap map{100'000'000, -1, -1}; auto m_view = map.get_device_mutable_view(); auto view = map.get_device_view(); @@ -198,43 +189,26 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", thrust::device_vector d_results(num_keys); thrust::device_vector d_contained(num_keys); - std::cout << "################ begin\n"; - for (auto it : h_pairs) - std::cout << it.first << ":" << it.second << "\t"; - std::cout << "\n################ end\n\n"; - - SECTION("Cannot find any key in an empty hash map with non-const view") + SECTION( + "Counting the number of key/value pairs corresponding to each key should always return two.") { + // Bulk insert keys + map.insert(d_pairs.begin(), d_pairs.end()); + SECTION("non-const view") { REQUIRE(all_of(d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) mutable { - return view.find_all(pair.first) == view.end(); + return view.count(pair.first) == 2; })); } SECTION("const view") { REQUIRE(all_of( d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { - return view.find_all(pair.first) == view.end(); + return view.count(pair.first) == 2; })); } } - /* - SECTION("Counting the number of key/value pairs should return 2 all the time.") - { - // Bulk insert keys - map.insert(d_pairs.begin(), d_pairs.end()); - - SECTION("non-const view") - { - REQUIRE(all_of(d_pairs.begin(), - d_pairs.end(), - [view] __device__(cuco::pair_type const& pair) mutable { - return view.count(pair.first) == 2; - })); - } - } - */ } From 901b1809161d9e7a67e937e3e8ed64d0cd661305 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 5 Mar 2021 14:43:31 -0800 Subject: [PATCH 022/267] Add host count function --- include/cuco/detail/static_multimap.inl | 51 +++++++- .../cuco/detail/static_multimap_kernels.cuh | 114 ++++++++++++++++++ include/cuco/static_multimap.cuh | 52 ++++++++ 3 files changed, 214 insertions(+), 3 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index f31552dba..ecdffe952 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -65,9 +65,6 @@ void static_multimap::insert(InputIt first, auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_mutable_view(); - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - detail::insert <<>>(first, first + num_keys, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -107,6 +104,54 @@ void static_multimap::contains( CUCO_CUDA_TRY(cudaDeviceSynchronize()); } +template +template +void static_multimap::find_all(InputIt first, + InputIt last, + OutputIt output_begin, + OutputIt output_end, + Hash hash, + KeyEqual key_equal) noexcept +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + detail::find_all + <<>>(first, last, output_begin, output_end, view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); +} + +template +template +std::size_t static_multimap::count(InputIt first, + InputIt last, + Hash hash, + KeyEqual key_equal) +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + detail::count + <<>>(first, last, num_items, view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + return *num_items; +} + template template __device__ void static_multimap::device_mutable_view::insert( diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 8c06e0791..f4fcc796e 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -350,5 +350,119 @@ __global__ void contains( } } +/** + * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * + * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value + * sentinel. + * + * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, + * output_end)`. Use `count()` to determine the number of matching keys. + * + * @tparam block_size The size of the thread block + * @tparam Value The type of the mapped value for the map + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of values retrieved for each key + * @param output_end End of the sequence of values retrieved for each key + * @param view Device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ +template +__global__ void find_all(InputIt first, + InputIt last, + OutputIt output_begin, + OutputIt output_end, + viewT view, + Hash hash, + KeyEqual key_equal) +{ + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid; + __shared__ Value writeBuffer[block_size]; + + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto found = view.find(key, hash, key_equal); + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to + * flush more frequently, causing increased sector stores from L2 to global memory. + * By writing results to shared memory and then synchronizing before writing back + * to global, we no longer rely on L1, preventing the increase in sector stores from + * L2 to global and improving performance. + */ + writeBuffer[threadIdx.x] = found->second.load(cuda::std::memory_order_relaxed); + __syncthreads(); + *(output_begin + key_idx) = writeBuffer[threadIdx.x]; + key_idx += gridDim.x * blockDim.x; + } +} + +/** + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform + * inserts + * @tparam Value The type of the mapped value for the map + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable + * @tparam KeyEqual Binary callable + * @param first Beginning of the sequence of keys to count + * @param last End of the sequence of keys to count + * @param num_items The number of all the matches for a sequence of keys + * @param view Device view used to access the hash map's slot storage + * @param hash Unary function to apply to hash each key + * @param key_equal Binary function to compare two keys for equality + */ +template +__global__ void count( + InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) +{ + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_items = 0; + + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; + + while (it < last) { + thread_num_items = count(tile, *it, hash, key_equal); + it += (gridDim.x * blockDim.x) / tile_size; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { *num_items += block_num_items; } +} + } // namespace detail } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index d01a37713..4bc8451c2 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -237,6 +237,58 @@ class static_multimap { Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; + /** + * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * + * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value + * sentinel. + * + * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, + * output_end)`. Use `count()` to determine the number of matching keys. + * + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of values retrieved for each key + * @param output_begin End of the sequence of values retrieved for each key + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ + template , + typename KeyEqual = thrust::equal_to> + void find_all(InputIt first, + InputIt last, + OutputIt output_begin, + OutputIt output_end, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * + * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` + * @tparam Hash Unary callable + * @tparam KeyEqual Binary callable + * @param first Beginning of the sequence of keys to count + * @param last End of the sequence of keys to count + * @param hash Unary function to apply to hash each key + * @param key_equal Binary function to compare two keys for equality + * @return The sum of total occurrences of all keys in `[first,last)` + */ + template + std::size_t count(InputIt first, + InputIt last, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}); + private: class device_view_base { protected: From 0a92baf8fa69520572e629501aa6898aebf151a3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Sat, 6 Mar 2021 19:19:30 -0800 Subject: [PATCH 023/267] Take begin_ as a member variable instead of the entire view --- .../cuco/detail/static_multimap_kernels.cuh | 2 +- include/cuco/static_multimap.cuh | 36 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index f4fcc796e..381c25223 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -454,7 +454,7 @@ __global__ void count( auto it = first + tid / tile_size; while (it < last) { - thread_num_items = count(tile, *it, hash, key_equal); + thread_num_items = view.count(tile, *it, hash, key_equal); it += (gridDim.x * blockDim.x) / tile_size; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 4bc8451c2..73f65489d 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -283,7 +283,9 @@ class static_multimap { * @param key_equal Binary function to compare two keys for equality * @return The sum of total occurrences of all keys in `[first,last)` */ - template + template , + typename KeyEqual = thrust::equal_to> std::size_t count(InputIt first, InputIt last, Hash hash = Hash{}, @@ -656,11 +658,22 @@ class static_multimap { using data_reference = DataType&; public: - __host__ __device__ FancyIterator(pointer_type current, Key key, device_view view) noexcept + __host__ __device__ FancyIterator(pointer_type current, Key key, device_view& view) noexcept + : current_{current}, + key_{key}, + begin_{view.begin_slot()}, + end_{view.end_slot()}, + empty_key_sentinel_{view.get_empty_key_sentinel()} + { + } + + __host__ __device__ FancyIterator(pointer_type current, + Key key, + const device_view& view) noexcept : current_{current}, key_{key}, - view_{view}, - end_{view.end()}, + begin_{view.begin_slot()}, + end_{view.end_slot()}, empty_key_sentinel_{view.get_empty_key_sentinel()} { } @@ -669,17 +682,26 @@ class static_multimap { __device__ FancyIterator& operator++() { - current_ = view_.next_slot(current_); + current_ = next_slot(current_); while (current_->first != key_) { if (current_->first == this->empty_key_sentinel_) { current_ = this->end_; return *this; } - current_ = view_.next_slot(current_); + current_ = next_slot(current_); } return *this; } + __device__ pointer_type next_slot(pointer_type it) noexcept + { + return (++it < end_) ? it : begin_; + } + __device__ pointer_type next_slot(pointer_type it) const noexcept + { + return (++it < end_) ? it : begin_; + } + __device__ bool operator==(const pointer_type& it) const { return (this->current_ == it); } __device__ bool operator!=(const pointer_type& it) const { return this->current_ != it; } @@ -691,7 +713,7 @@ class static_multimap { private: pointer_type current_; Key key_; - device_view view_; + pointer_type begin_; pointer_type end_; Key empty_key_sentinel_; }; From c03b7680bf39b084514d742ca2de000badc6380c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Sun, 7 Mar 2021 09:42:47 -0800 Subject: [PATCH 024/267] Add host count unit test and count global function + minor updates --- .../cuco/detail/static_multimap_kernels.cuh | 56 +++++++++++++++++-- tests/static_multimap/static_multimap_test.cu | 41 +++++++++----- 2 files changed, 78 insertions(+), 19 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 381c25223..3701778f9 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -418,11 +418,56 @@ __global__ void find_all(InputIt first, * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. * * @tparam block_size The size of the thread block - * @tparam tile_size The number of threads in the Cooperative Groups used to perform - * inserts * @tparam Value The type of the mapped value for the map - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `key_type` + * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's + * `key_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable + * @tparam KeyEqual Binary callable + * @param first Beginning of the sequence of keys to count + * @param last End of the sequence of keys to count + * @param num_items The number of all the matches for a sequence of keys + * @param view Device view used to access the hash map's slot storage + * @param hash Unary function to apply to hash each key + * @param key_equal Binary function to compare two keys for equality + */ +template +__global__ void count( + InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) +{ + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_items = 0; + + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid; + + while (it < last) { + thread_num_items += view.count(*it, hash, key_equal); + it += gridDim.x * blockDim.x; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { *num_items += block_num_items; } +} + +/** + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform inserts + * @tparam Value The type of the mapped value for the map + * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's + * `key_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable @@ -454,7 +499,8 @@ __global__ void count( auto it = first + tid / tile_size; while (it < last) { - thread_num_items = view.count(tile, *it, hash, key_equal); + auto temp_num = view.count(tile, *it, hash, key_equal); + if (tile.thread_rank() == 0) { thread_num_items += temp_num; } it += (gridDim.x * blockDim.x) / tile_size; } diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 465d5c4f0..f8869c70a 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -52,34 +52,34 @@ enum class dist_type { UNIQUE, DUAL, UNIFORM, GAUSSIAN }; template static void generate_keys(OutputIt output_begin, OutputIt output_end) { - auto num_keys = std::distance(output_begin, output_end); + auto num_items = std::distance(output_begin, output_end); std::random_device rd; std::mt19937 gen{rd()}; switch (Dist) { case dist_type::UNIQUE: { - for (auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_items; ++i) { output_begin[i] = i; } break; } case dist_type::DUAL: { - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = i % (num_keys / 2); + for (auto i = 0; i < num_items; ++i) { + output_begin[i] = i % (num_items / 2); } break; } case dist_type::UNIFORM: { std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; - for (auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_items; ++i) { output_begin[i] = distribution(gen); } break; } case dist_type::GAUSSIAN: { std::normal_distribution<> dg{1e9, 1e7}; - for (auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_items; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; @@ -126,7 +126,7 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", thrust::device_vector d_results(num_keys); thrust::device_vector d_contained(num_keys); - SECTION("Keys are all found.") + SECTION("All keys should be found.") { // Bulk insert keys thrust::for_each(thrust::device, @@ -163,19 +163,19 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", using Key = T; using Value = T; - constexpr std::size_t num_keys{50'000'000}; + constexpr std::size_t num_items{50'000'000}; cuco::static_multimap map{100'000'000, -1, -1}; auto m_view = map.get_device_mutable_view(); auto view = map.get_device_view(); - std::vector h_keys(num_keys); - std::vector h_values(num_keys); - std::vector> h_pairs(num_keys); + std::vector h_keys(num_items); + std::vector h_values(num_items); + std::vector> h_pairs(num_items); generate_keys(h_keys.begin(), h_keys.end()); - for (auto i = 0; i < num_keys; ++i) { + for (auto i = 0; i < num_items; ++i) { Key key = h_keys[i]; Value val = i; h_pairs[i].first = key; @@ -186,8 +186,21 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", thrust::device_vector d_keys(h_keys); thrust::device_vector d_values(h_values); thrust::device_vector> d_pairs(h_pairs); - thrust::device_vector d_results(num_keys); - thrust::device_vector d_contained(num_keys); + thrust::device_vector d_results(num_items); + thrust::device_vector d_contained(num_items); + + std::set temp_set(h_keys.begin(), h_keys.end()); + std::vector h_unique_keys(temp_set.begin(), temp_set.end()); + thrust::device_vector d_unique_keys(h_unique_keys); + + // bulk function test cases + SECTION("Total count should be equal to the number of inserted pairs.") + { + map.insert(d_pairs.begin(), d_pairs.end()); + size_t num = map.count(d_unique_keys.begin(), d_unique_keys.end()); + + REQUIRE(num == num_items); + } SECTION( "Counting the number of key/value pairs corresponding to each key should always return two.") From dacf4593981d511bef9816d2a2b95939beb58ce6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 10 Mar 2021 11:50:13 -0800 Subject: [PATCH 025/267] Add a new copy constructor to cuco::pair --- include/cuco/detail/pair.cuh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index eec3f3b50..34bc29fdc 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -15,6 +15,7 @@ */ #include + #include #include #include @@ -116,6 +117,9 @@ struct alignas(detail::pair_alignment()) pair { thrust::get<1>(thrust::raw_reference_cast(t))} { } + __host__ __device__ constexpr pair(First const& f, Second const& s) noexcept : first{f}, second{s} + { + } }; template From a1531e184a716f4daafae753b28553573a9143bc Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 10 Mar 2021 12:54:24 -0800 Subject: [PATCH 026/267] Add bulk find_all function and its unit test --- include/cuco/detail/static_multimap.inl | 11 +- .../cuco/detail/static_multimap_kernels.cuh | 110 +++++++++++++++--- tests/static_multimap/static_multimap_test.cu | 3 + 3 files changed, 109 insertions(+), 15 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index ecdffe952..0cdb4e02a 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -120,8 +120,15 @@ void static_multimap::find_all(InputIt first, auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::find_all - <<>>(first, last, output_begin, output_end, view, hash, key_equal); + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + detail::find_all<<>>( + first, last, output_begin, output_end, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 3701778f9..5348f7b55 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -14,6 +14,8 @@ * limitations under the License. */ +#include + namespace cuco { namespace detail { namespace cg = cooperative_groups; @@ -361,11 +363,13 @@ __global__ void contains( * output_end)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block + * @tparam Key key type * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` + * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type @@ -373,14 +377,17 @@ __global__ void contains( * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of values retrieved for each key * @param output_end End of the sequence of values retrieved for each key + * @param num_items Size of the output sequence * @param view Device view used to access the hash map's slot storage * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ template @@ -388,32 +395,109 @@ __global__ void find_all(InputIt first, InputIt last, OutputIt output_begin, OutputIt output_end, + atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) { auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid; - __shared__ Value writeBuffer[block_size]; while (first + key_idx < last) { - auto key = *(first + key_idx); - auto found = view.find(key, hash, key_equal); + auto key = *(first + key_idx); + auto found = view.find_all(key, hash, key_equal); + size_t count = 0; - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to - * flush more frequently, causing increased sector stores from L2 to global memory. - * By writing results to shared memory and then synchronizing before writing back - * to global, we no longer rely on L1, preventing the increase in sector stores from - * L2 to global and improving performance. - */ - writeBuffer[threadIdx.x] = found->second.load(cuda::std::memory_order_relaxed); - __syncthreads(); - *(output_begin + key_idx) = writeBuffer[threadIdx.x]; + while (found != view.end()) { + size_t index = (*num_items)++; + *(output_begin + index) = cuco::make_pair(key, (*found).second); + ++found; + ++count; + } + if (count == 0) { + size_t index = (*num_items)++; + *(output_begin + index) = cuco::make_pair(key, view.get_empty_value_sentinel()); + } key_idx += gridDim.x * blockDim.x; } } +/** + * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * + * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value + * sentinel. + * + * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, + * output_end)`. Use `count()` to determine the number of matching keys. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform + * inserts + * @tparam Key key type + * @tparam Value The type of the mapped value for the map + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam Hash Unary callable type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of values retrieved for each key + * @param output_end End of the sequence of values retrieved for each key + * @param num_items Size of the output sequence + * @param view Device view used to access the hash map's slot storage + * @param hash The unary function to apply to hash each key + * @param key_equal The binary function to compare two keys for equality + */ +template +__global__ void find_all(InputIt first, + InputIt last, + OutputIt output_begin, + OutputIt output_end, + atomicT* num_items, + viewT view, + Hash hash, + KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; + + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto found = view.find_all(tile, key, hash, key_equal); + size_t count = 0; + + if (tile.thread_rank() == 0) { + while (found != view.end()) { + size_t index = (*num_items)++; + *(output_begin + index) = cuco::make_pair(key, (*found).second); + ++found; + ++count; + } + if (count == 0) { + size_t index = (*num_items)++; + *(output_begin + index) = cuco::make_pair(key, view.get_empty_value_sentinel()); + } + } + key_idx += (gridDim.x * blockDim.x) / tile_size; + } +} + /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. * diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index f8869c70a..22097d036 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -188,6 +188,7 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", thrust::device_vector> d_pairs(h_pairs); thrust::device_vector d_results(num_items); thrust::device_vector d_contained(num_items); + thrust::device_vector> d_outputs(num_items); std::set temp_set(h_keys.begin(), h_keys.end()); std::vector h_unique_keys(temp_set.begin(), temp_set.end()); @@ -200,6 +201,8 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", size_t num = map.count(d_unique_keys.begin(), d_unique_keys.end()); REQUIRE(num == num_items); + + map.find_all(d_unique_keys.begin(), d_unique_keys.end(), d_outputs.begin(), d_outputs.end()); } SECTION( From 77fb776d23e75cea48207cd2247cbafa7bcaeb82 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 10 Mar 2021 13:54:54 -0800 Subject: [PATCH 027/267] Add nvbench package in CMake --- CMakeLists.txt | 2 +- benchmarks/CMakeLists.txt | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ff25ef46f..1bea1088e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ endif() # Note: CUDA 10.2 debian packages are broken for cuda/std/atomic header as it is located in # cuda/std/std/atomic -find_package(CUDAToolkit 10.2 REQUIRED) +find_package(CUDAToolkit 11.0 REQUIRED) include(cmake/Modules/CPM.cmake) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 0e7411922..9237de569 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -14,11 +14,23 @@ CPMAddPackage( "RUN_HAVE_STD_REGEX 0" # ) +CPMAddPackage( + NAME nvbench + GITHUB_REPOSITORY allisonvacanti/nvbench + GIT_TAG main + GIT_SHALLOW TRUE +) + if (benchmark_ADDED) # patch google benchmark target set_target_properties(benchmark PROPERTIES CXX_STANDARD 14) endif() +if (nvbench_ADDED) + # nvbench requires c++17 + set_target_properties(nvbench PROPERTIES CXX_STANDARD 17) +endif() + ################################################################################################### # Auto-detect available GPU compute architectures set(GPU_ARCHS "" CACHE STRING "List of GPU architectures (semicolon-separated) to be compiled for. Empty string means to auto-detect the GPUs on the current system") From af20d2376b5b6678d435a9483472af5db6a6139c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 10 Mar 2021 14:54:59 -0800 Subject: [PATCH 028/267] Minor cleanups in static-map-bench --- benchmarks/hash_table/static_map_bench.cu | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/benchmarks/hash_table/static_map_bench.cu b/benchmarks/hash_table/static_map_bench.cu index af8e09de1..52e8eb140 100644 --- a/benchmarks/hash_table/static_map_bench.cu +++ b/benchmarks/hash_table/static_map_bench.cu @@ -89,14 +89,11 @@ static void BM_static_map_insert(::benchmark::State& state) thrust::device_vector> d_pairs(h_pairs); for (auto _ : state) { - state.ResumeTiming(); state.PauseTiming(); map_type map{size, -1, -1}; state.ResumeTiming(); map.insert(d_pairs.begin(), d_pairs.end()); - - state.PauseTiming(); } state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * int64_t(state.iterations()) * @@ -189,4 +186,4 @@ BENCHMARK_TEMPLATE(BM_static_map_insert, int64_t, int64_t, dist_type::GAUSSIAN) BENCHMARK_TEMPLATE(BM_static_map_search_all, int64_t, int64_t, dist_type::GAUSSIAN) ->Unit(benchmark::kMillisecond) - ->Apply(generate_size_and_occupancy); \ No newline at end of file + ->Apply(generate_size_and_occupancy); From bf842e1a51abf434658f4f1d4a488a078aad9068 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 12 Mar 2021 08:19:10 -0800 Subject: [PATCH 029/267] Add static multimap nvbenchmark --- benchmarks/CMakeLists.txt | 22 ++++ .../hash_table/static_multimap_bench.cu | 106 ++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 benchmarks/hash_table/static_multimap_bench.cu diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 9237de569..93fd87f38 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -43,6 +43,7 @@ endif() ################################################################################################### # - compiler function ----------------------------------------------------------------------------- +################################################################################################### function(ConfigureBench BENCH_NAME BENCH_SRC) add_executable(${BENCH_NAME} "${BENCH_SRC}") set_target_properties(${BENCH_NAME} PROPERTIES @@ -58,6 +59,23 @@ function(ConfigureBench BENCH_NAME BENCH_SRC) cuco) endfunction(ConfigureBench) +################################################################################################### +function(ConfigureNVBench BENCH_NAME BENCH_SRC) + add_executable(${BENCH_NAME} "${BENCH_SRC}") + set_target_properties(${BENCH_NAME} PROPERTIES + POSITION_INDEPENDENT_CODE ON + CUDA_ARCHITECTURES ${GPU_ARCHS} + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/nvbenchmarks") + target_include_directories(${BENCH_NAME} PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}") + #"${NVBench_SOURCE_DIR}") + target_compile_options(${BENCH_NAME} PRIVATE --expt-extended-lambda --expt-relaxed-constexpr) + target_link_libraries(${BENCH_NAME} PRIVATE + nvbench::main + pthread + cuco) +endfunction(ConfigureNVBench) + ################################################################################################### ### test sources ################################################################################## ################################################################################################### @@ -70,6 +88,10 @@ ConfigureBench(DYNAMIC_MAP_BENCH "${DYNAMIC_MAP_BENCH_SRC}") set(STATIC_MAP_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_map_bench.cu") ConfigureBench(STATIC_MAP_BENCH "${STATIC_MAP_BENCH_SRC}") +################################################################################################### +set(STATIC_MULTIMAP_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_multimap_bench.cu") +ConfigureNVBench(STATIC_MULTIMAP_BENCH "${STATIC_MULTIMAP_BENCH_SRC}") + ################################################################################################### set(RBK_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/reduce_by_key/reduce_by_key.cu") ConfigureBench(RBK_BENCH "${RBK_BENCH_SRC}") diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu new file mode 100644 index 000000000..7cc81ea6c --- /dev/null +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include +#include + +#include "cuco/static_multimap.cuh" + +template +static void generate_keys(OutputIt output_begin, OutputIt output_end, const std::string& dist) +{ + auto num_keys = std::distance(output_begin, output_end); + + std::random_device rd; + std::mt19937 gen{rd()}; + + if (dist == "UNIQUE") { + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = i; + } + } else if (dist == "UNIFORM") { + std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = distribution(gen); + } + } else if (dist == "GAUSSIAN") { + std::normal_distribution<> dg{1e9, 1e7}; + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = std::abs(static_cast(dg(gen))); + } + } +} + +template +void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list) +{ + using map_type = cuco::static_multimap; + + const std::size_t num_keys = state.get_int64("NumInputs"); + float occupancy = state.get_int64("Occupancy"); + std::size_t size = num_keys / occupancy; + const auto dist = state.get_string("Distribution"); + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end(), dist); + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = val; + } + + thrust::device_vector> d_pairs(h_pairs); + + state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, + [&](nvbench::launch& launch, auto& timer) { + map_type map{size, -1, -1}; + auto m_view = map.get_device_mutable_view(); + + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = + (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + + using Hash = cuco::detail::MurmurHash3_32; + using KeyEqual = thrust::equal_to; + + Hash hash; + KeyEqual key_equal; + + timer.start(); + cuco::detail::insert + <<>>( + d_pairs.begin(), d_pairs.end(), m_view, hash, key_equal); + // CUCO_CUDA_TRY(cudaDeviceSynchronize()); + timer.stop(); + }); +} + +using key_type = nvbench::type_list; +using value_type = nvbench::type_list; +NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) + .add_int64_axis("NumInputs", {100'000'000}) + .add_int64_axis("Occupancy", nvbench::range(10, 90, 10)) + .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); From c610e1146e1b61ba8e36a7386313b7659b558bf8 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 12 Mar 2021 09:07:49 -0800 Subject: [PATCH 030/267] Fix the occupancy bug in static multimap benchmark --- benchmarks/hash_table/static_multimap_bench.cu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index 7cc81ea6c..d208acea8 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -53,7 +53,7 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list; const std::size_t num_keys = state.get_int64("NumInputs"); - float occupancy = state.get_int64("Occupancy"); + auto occupancy = state.get_float64("Occupancy"); std::size_t size = num_keys / occupancy; const auto dist = state.get_string("Distribution"); @@ -102,5 +102,5 @@ using value_type = nvbench::type_list; NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) .add_int64_axis("NumInputs", {100'000'000}) - .add_int64_axis("Occupancy", nvbench::range(10, 90, 10)) + .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); From 0d1af85dd88663d2c65852d3dddfa040186205f2 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 12 Mar 2021 10:54:49 -0800 Subject: [PATCH 031/267] Add int64_t into static multimap benchmark --- benchmarks/hash_table/static_multimap_bench.cu | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index d208acea8..e9a4f0411 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -19,6 +19,7 @@ #include #include +#include #include "cuco/static_multimap.cuh" @@ -50,6 +51,11 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end, const std: template void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list) { + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + using map_type = cuco::static_multimap; const std::size_t num_keys = state.get_int64("NumInputs"); @@ -97,8 +103,8 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list; -using value_type = nvbench::type_list; +using key_type = nvbench::type_list; +using value_type = nvbench::type_list; NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) .add_int64_axis("NumInputs", {100'000'000}) From 4303e2632f2137c6c5d92fd50e4698abc3eb46b2 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 15 Mar 2021 17:09:29 -0700 Subject: [PATCH 032/267] Update static multimap benchmark --- benchmarks/hash_table/static_multimap_bench.cu | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index e9a4f0411..ac7965aa6 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -105,8 +105,19 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list; using value_type = nvbench::type_list; + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) + .set_timeout(100) // Custom timeout: 100 s. By default: 15 s. + .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {2 << 27}) // Total number of key/value pairs: 2^28 + .add_float64_axis("Occupancy", {0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95}) + .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); + NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) - .add_int64_axis("NumInputs", {100'000'000}) - .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) + .set_timeout(1'500) // Custom timeout: 1500 s. By default: 15 s. + .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {2 << 27}) // Total number of key/value pairs: 2^28 + .add_float64_axis("Occupancy", {1.}) .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); From 5d96e9ae85f56e087692808a57d4b546cc665eaa Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 15 Mar 2021 21:41:16 -0400 Subject: [PATCH 033/267] Add a simple notebook for performance analysis --- .../analysis/data/static-multimap-data.csv | 85 ++++++++++++ .../analysis/notebooks/StaticMultimap.ipynb | 128 ++++++++++++++++++ 2 files changed, 213 insertions(+) create mode 100644 benchmarks/analysis/data/static-multimap-data.csv create mode 100644 benchmarks/analysis/notebooks/StaticMultimap.ipynb diff --git a/benchmarks/analysis/data/static-multimap-data.csv b/benchmarks/analysis/data/static-multimap-data.csv new file mode 100644 index 000000000..490baea8e --- /dev/null +++ b/benchmarks/analysis/data/static-multimap-data.csv @@ -0,0 +1,85 @@ +Benchmark,Device,Device Name,Key,Value,NumInputs,Occupancy,Distribution,Skipped,Samples,CPU Time (sec),Noise (%),GPU Time (sec),Noise (%) +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.30000000000000004,UNIQUE,No,55,0.17623596332727273,2.8366649185643444,0.1762308269153942,2.836685918207623 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.4,UNIQUE,No,60,0.17160135700000004,2.6937778447414638,0.17159596354166667,2.693864011242942 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.5,UNIQUE,No,62,0.1689210611290323,2.553338295497867,0.16891576976160846,2.553299852912608 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.6,UNIQUE,No,62,0.16677234911290328,2.685202120819898,0.16676685653194304,2.6852709952879823 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7,UNIQUE,No,62,0.16699080348387105,2.4415898817721717,0.16698551251811364,2.4415778733570503 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7999999999999999,UNIQUE,No,63,0.1686325047619047,2.0596742093008373,0.16862677777002727,2.059841872290985 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.8999999999999999,UNIQUE,No,57,0.18957879659649124,1.6262733414463166,0.18957367692913926,1.6262072533441363 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.30000000000000004,UNIFORM,No,54,0.17596297272222222,2.66670036622406,0.1759573528148511,2.6668625002495476 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.4,UNIFORM,No,59,0.17142499645762715,2.552197581276359,0.17141963144076078,2.5519825306965047 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.5,UNIFORM,No,60,0.16851585304999997,2.6225798262581113,0.16851056645711263,2.622629492046837 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.6,UNIFORM,No,62,0.16727539333870972,2.6593347443486914,0.1672700207617975,2.659324847836786 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7,UNIFORM,No,63,0.16745446125396823,2.450011353525469,0.16744873797704304,2.449758983335817 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7999999999999999,UNIFORM,No,63,0.16961292895238098,2.0937601566650934,0.16960713583325585,2.094047524265341 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.8999999999999999,UNIFORM,No,57,0.19464604971929833,1.5894568800397697,0.19464069754617255,1.589424682018684 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.30000000000000004,GAUSSIAN,No,51,0.1889640750588236,2.6814807943845285,0.18895890060125614,2.681517623019824 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.4,GAUSSIAN,No,53,0.1906565883962264,2.381345219783455,0.19065143110167307,2.3813523629174504 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.5,GAUSSIAN,No,52,0.19739338555769234,2.212527435363628,0.1973881692152757,2.2125861410064234 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.6,GAUSSIAN,No,52,0.215009741,1.7026128226285988,0.21500469119732196,1.7026801785044288 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7,GAUSSIAN,No,46,0.24394731532608702,1.5865535658264092,0.2439424445110819,1.5865791979144106 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7999999999999999,GAUSSIAN,No,40,0.3046339542499999,1.070509618047736,0.3046295822143554,1.0704790897602774 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.8999999999999999,GAUSSIAN,No,11,0.5236044275454547,0.46185200251735,0.5235994984019886,0.4617883541121059 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.30000000000000004,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.4,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.5,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.6,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7999999999999999,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.8999999999999999,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.30000000000000004,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.4,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.5,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.6,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7999999999999999,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.8999999999999999,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.30000000000000004,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.4,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.5,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.6,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7999999999999999,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.8999999999999999,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.30000000000000004,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.4,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.5,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.6,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7999999999999999,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.8999999999999999,UNIQUE,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.30000000000000004,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.4,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.5,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.6,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7999999999999999,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.8999999999999999,UNIFORM,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.30000000000000004,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.4,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.5,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.6,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7999999999999999,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.8999999999999999,GAUSSIAN,Yes,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.30000000000000004,UNIQUE,No,11,0.2406305241818182,0.0054266006238538654,0.24062585171786222,0.005525055604329204 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.4,UNIQUE,No,44,0.21799922827272725,2.951802633679446,0.21799407750909985,2.951922090183025 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.5,UNIQUE,No,45,0.2057523973333333,2.8937447016573135,0.20574722290039058,2.893827623201318 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.6,UNIQUE,No,49,0.20070097910204082,2.9608223532380755,0.20069589233398435,2.960866121711912 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7,UNIQUE,No,50,0.19529296428,3.1632839061362565,0.19528785949707028,3.1633670129148186 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7999999999999999,UNIQUE,No,51,0.19828046343137254,3.059201671477376,0.19827551449046416,3.0594245810698806 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.8999999999999999,UNIQUE,No,47,0.2403344038723404,2.4804405530151064,0.2403292054521276,2.480759031056604 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.30000000000000004,UNIFORM,No,11,0.24081009318181817,0.0063007498007621055,0.24080532698197799,0.006430981333279995 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.4,UNIFORM,No,44,0.21724615886363646,2.4495901572184073,0.2172411124489524,2.449660387365714 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.5,UNIFORM,No,46,0.2059849642608696,2.7663304764679935,0.20597933595076856,2.766579820163578 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.6,UNIFORM,No,49,0.20016126432653059,2.6726487249591617,0.20015626463598132,2.6726956413921066 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7,UNIFORM,No,51,0.19541015386274513,3.1348076152732878,0.19540500117283244,3.1348707560838998 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7999999999999999,UNIFORM,No,51,0.19906061962745103,2.955834927318549,0.19905554049622773,2.9560088660417967 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.8999999999999999,UNIFORM,No,46,0.24522991017391307,2.354287412814649,0.2452247825290847,2.354340594162305 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.30000000000000004,GAUSSIAN,No,11,0.3264478085454546,0.0045521652511531065,0.32644300426136363,0.004552357559914651 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.4,GAUSSIAN,No,39,0.24420892802564098,0.5307400905876261,0.24420404522235578,0.5307469032050539 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.5,GAUSSIAN,No,11,0.2634309843636364,0.436249346929138,0.2634264221191406,0.43618504993467744 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.6,GAUSSIAN,No,37,0.29589045524324326,1.0290342363948874,0.29588521761507597,1.0289801749851617 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7,GAUSSIAN,No,34,0.35179509244117646,1.1122657672775487,0.35179062248678766,1.1122794553601718 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7999999999999999,GAUSSIAN,No,11,0.4641538576363637,0.2949618683075735,0.46414969149502844,0.2949572787835263 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.8999999999999999,GAUSSIAN,No,16,0.8438318679375001,0.5200110881251193,0.8438290519714357,0.5200222667989846 diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb new file mode 100644 index 000000000..d7d058811 --- /dev/null +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -0,0 +1,128 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "vocal-glass", + "metadata": {}, + "source": [ + "# Prep" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "manufactured-kitty", + "metadata": {}, + "outputs": [], + "source": [ + "# !pip install pandas\n", + "# !pip install matplotlib\n", + "\n", + "\n", + "# Import libraries\n", + "import pandas as pd\n", + "import matplotlib\n", + "\n", + "# Define the data path\n", + "datafile='../data/static-multimap-data.csv'" + ] + }, + { + "cell_type": "markdown", + "id": "rising-inspector", + "metadata": {}, + "source": [ + "# Import Data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "editorial-figure", + "metadata": {}, + "outputs": [], + "source": [ + "# Read csv file\n", + "rawdf = pd.read_csv(datafile)\n", + "\n", + "# Filter out unrelated data\n", + "perfdf = rawdf[rawdf[\"Key\"] == rawdf[\"Value\"]].reset_index(drop=True)\n", + "perfdf.drop(columns=['Device', 'Device Name', 'Skipped'], inplace=True)\n", + "\n", + "# Drop NANs\n", + "perfdf.dropna(inplace=True)" + ] + }, + { + "cell_type": "markdown", + "id": "amber-diploma", + "metadata": {}, + "source": [ + "# Comput Performance" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "marine-floating", + "metadata": {}, + "outputs": [], + "source": [ + "perfdf['Performance'] = perfdf['NumInputs'] / perfdf['GPU Time (sec)']\n", + "#display(perfdf)" + ] + }, + { + "cell_type": "markdown", + "id": "published-designation", + "metadata": {}, + "source": [ + "# Visualize Performance" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "alike-growing", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "perfdf.plot(x=\"Occupancy\", y=\"Performance\");" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From c1c0bc9c5e82c101b6a25c7926a8f7e158f7c0fe Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 17 Mar 2021 13:19:07 -0700 Subject: [PATCH 034/267] Clean up multimap single insertion benchmark --- .../hash_table/static_multimap_bench.cu | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index ac7965aa6..0815d1874 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -77,6 +77,9 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list> d_pairs(h_pairs); + state.add_element_count(num_keys, "NumKeys"); + state.add_global_memory_writes(num_keys * 2); + state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { map_type map{size, -1, -1}; @@ -98,7 +101,7 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list <<>>( d_pairs.begin(), d_pairs.end(), m_view, hash, key_equal); - // CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); timer.stop(); }); } @@ -108,16 +111,8 @@ using value_type = nvbench::type_list; NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) - .set_timeout(100) // Custom timeout: 100 s. By default: 15 s. - .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. - .add_int64_axis("NumInputs", {2 << 27}) // Total number of key/value pairs: 2^28 - .add_float64_axis("Occupancy", {0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95}) - .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); - -NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_type_axes_names({"Key", "Value"}) - .set_timeout(1'500) // Custom timeout: 1500 s. By default: 15 s. - .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. - .add_int64_axis("NumInputs", {2 << 27}) // Total number of key/value pairs: 2^28 - .add_float64_axis("Occupancy", {1.}) + .set_timeout(100) // Custom timeout: 100 s. By default: 15 s. + .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 2^28 + .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); From 272efe5ced4f0ebe44d11b7702a212adda85d5ff Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 17 Mar 2021 16:38:16 -0700 Subject: [PATCH 035/267] Add multi-value insertion benchmark --- .../hash_table/static_multimap_bench.cu | 87 +++++++++++++++---- 1 file changed, 69 insertions(+), 18 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index 0815d1874..d590e610f 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -48,26 +48,28 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end, const std: } } -template -void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list) +template +static void generate_multikeys(OutputIt output_begin, OutputIt output_end, const size_t num_reps) { - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } + auto num_keys = std::distance(output_begin, output_end); - using map_type = cuco::static_multimap; + std::random_device rd; + std::mt19937 gen{rd()}; - const std::size_t num_keys = state.get_int64("NumInputs"); - auto occupancy = state.get_float64("Occupancy"); - std::size_t size = num_keys / occupancy; - const auto dist = state.get_string("Distribution"); + std::uniform_int_distribution distribution{1, static_cast(num_keys / num_reps)}; + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = distribution(gen); + } +} - std::vector h_keys(num_keys); +template +void launch_nvbench_insert(nvbench::state& state, + std::vector const& h_keys, + const std::size_t num_keys, + const std::size_t size) +{ std::vector> h_pairs(num_keys); - generate_keys(h_keys.begin(), h_keys.end(), dist); - for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; @@ -82,7 +84,7 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list map{size, -1, -1}; auto m_view = map.get_device_mutable_view(); auto const block_size = 128; @@ -106,13 +108,62 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list +void nvbench_static_multimap_single_insert(nvbench::state& state, nvbench::type_list) +{ + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + + const std::size_t num_keys = state.get_int64("NumInputs"); + auto occupancy = state.get_float64("Occupancy"); + std::size_t size = num_keys / occupancy; + const auto dist = state.get_string("Distribution"); + + std::vector h_keys(num_keys); + + generate_keys(h_keys.begin(), h_keys.end(), dist); + + launch_nvbench_insert(state, h_keys, num_keys, size); +} + +template +void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_list) +{ + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + + using map_type = cuco::static_multimap; + + const std::size_t num_keys = state.get_int64("NumInputs"); + auto occupancy = state.get_float64("Occupancy"); + const std::size_t size = num_keys / occupancy; + const std::size_t num_reps = state.get_int64("NumReps"); + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + + generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + + launch_nvbench_insert(state, h_keys, num_keys, size); +} + using key_type = nvbench::type_list; using value_type = nvbench::type_list; -NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_single_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) - .set_timeout(100) // Custom timeout: 100 s. By default: 15 s. .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. - .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 2^28 + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_multi_insert, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) + .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.8}) + .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); From 4116b1affec590853b751815bd259d2c24d1cc5c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 17 Mar 2021 19:44:52 -0400 Subject: [PATCH 036/267] Add bandwidth plot in notebook + multi-value insertion analysis --- .../analysis/data/static-multimap-data.csv | 230 +++++++++++------- .../analysis/notebooks/StaticMultimap.ipynb | 87 ++++--- benchmarks/analysis/notebooks/Utils.py | 65 +++++ 3 files changed, 269 insertions(+), 113 deletions(-) create mode 100644 benchmarks/analysis/notebooks/Utils.py diff --git a/benchmarks/analysis/data/static-multimap-data.csv b/benchmarks/analysis/data/static-multimap-data.csv index 490baea8e..d4d6dcd26 100644 --- a/benchmarks/analysis/data/static-multimap-data.csv +++ b/benchmarks/analysis/data/static-multimap-data.csv @@ -1,85 +1,145 @@ -Benchmark,Device,Device Name,Key,Value,NumInputs,Occupancy,Distribution,Skipped,Samples,CPU Time (sec),Noise (%),GPU Time (sec),Noise (%) -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.30000000000000004,UNIQUE,No,55,0.17623596332727273,2.8366649185643444,0.1762308269153942,2.836685918207623 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.4,UNIQUE,No,60,0.17160135700000004,2.6937778447414638,0.17159596354166667,2.693864011242942 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.5,UNIQUE,No,62,0.1689210611290323,2.553338295497867,0.16891576976160846,2.553299852912608 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.6,UNIQUE,No,62,0.16677234911290328,2.685202120819898,0.16676685653194304,2.6852709952879823 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7,UNIQUE,No,62,0.16699080348387105,2.4415898817721717,0.16698551251811364,2.4415778733570503 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7999999999999999,UNIQUE,No,63,0.1686325047619047,2.0596742093008373,0.16862677777002727,2.059841872290985 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.8999999999999999,UNIQUE,No,57,0.18957879659649124,1.6262733414463166,0.18957367692913926,1.6262072533441363 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.30000000000000004,UNIFORM,No,54,0.17596297272222222,2.66670036622406,0.1759573528148511,2.6668625002495476 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.4,UNIFORM,No,59,0.17142499645762715,2.552197581276359,0.17141963144076078,2.5519825306965047 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.5,UNIFORM,No,60,0.16851585304999997,2.6225798262581113,0.16851056645711263,2.622629492046837 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.6,UNIFORM,No,62,0.16727539333870972,2.6593347443486914,0.1672700207617975,2.659324847836786 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7,UNIFORM,No,63,0.16745446125396823,2.450011353525469,0.16744873797704304,2.449758983335817 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7999999999999999,UNIFORM,No,63,0.16961292895238098,2.0937601566650934,0.16960713583325585,2.094047524265341 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.8999999999999999,UNIFORM,No,57,0.19464604971929833,1.5894568800397697,0.19464069754617255,1.589424682018684 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.30000000000000004,GAUSSIAN,No,51,0.1889640750588236,2.6814807943845285,0.18895890060125614,2.681517623019824 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.4,GAUSSIAN,No,53,0.1906565883962264,2.381345219783455,0.19065143110167307,2.3813523629174504 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.5,GAUSSIAN,No,52,0.19739338555769234,2.212527435363628,0.1973881692152757,2.2125861410064234 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.6,GAUSSIAN,No,52,0.215009741,1.7026128226285988,0.21500469119732196,1.7026801785044288 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7,GAUSSIAN,No,46,0.24394731532608702,1.5865535658264092,0.2439424445110819,1.5865791979144106 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.7999999999999999,GAUSSIAN,No,40,0.3046339542499999,1.070509618047736,0.3046295822143554,1.0704790897602774 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,268435456,0.8999999999999999,GAUSSIAN,No,11,0.5236044275454547,0.46185200251735,0.5235994984019886,0.4617883541121059 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.30000000000000004,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.4,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.5,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.6,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7999999999999999,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.8999999999999999,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.30000000000000004,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.4,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.5,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.6,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7999999999999999,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.8999999999999999,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.30000000000000004,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.4,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.5,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.6,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.7999999999999999,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,268435456,0.8999999999999999,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.30000000000000004,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.4,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.5,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.6,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7999999999999999,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.8999999999999999,UNIQUE,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.30000000000000004,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.4,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.5,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.6,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7999999999999999,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.8999999999999999,UNIFORM,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.30000000000000004,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.4,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.5,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.6,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.7999999999999999,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,268435456,0.8999999999999999,GAUSSIAN,Yes,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.30000000000000004,UNIQUE,No,11,0.2406305241818182,0.0054266006238538654,0.24062585171786222,0.005525055604329204 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.4,UNIQUE,No,44,0.21799922827272725,2.951802633679446,0.21799407750909985,2.951922090183025 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.5,UNIQUE,No,45,0.2057523973333333,2.8937447016573135,0.20574722290039058,2.893827623201318 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.6,UNIQUE,No,49,0.20070097910204082,2.9608223532380755,0.20069589233398435,2.960866121711912 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7,UNIQUE,No,50,0.19529296428,3.1632839061362565,0.19528785949707028,3.1633670129148186 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7999999999999999,UNIQUE,No,51,0.19828046343137254,3.059201671477376,0.19827551449046416,3.0594245810698806 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.8999999999999999,UNIQUE,No,47,0.2403344038723404,2.4804405530151064,0.2403292054521276,2.480759031056604 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.30000000000000004,UNIFORM,No,11,0.24081009318181817,0.0063007498007621055,0.24080532698197799,0.006430981333279995 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.4,UNIFORM,No,44,0.21724615886363646,2.4495901572184073,0.2172411124489524,2.449660387365714 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.5,UNIFORM,No,46,0.2059849642608696,2.7663304764679935,0.20597933595076856,2.766579820163578 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.6,UNIFORM,No,49,0.20016126432653059,2.6726487249591617,0.20015626463598132,2.6726956413921066 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7,UNIFORM,No,51,0.19541015386274513,3.1348076152732878,0.19540500117283244,3.1348707560838998 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7999999999999999,UNIFORM,No,51,0.19906061962745103,2.955834927318549,0.19905554049622773,2.9560088660417967 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.8999999999999999,UNIFORM,No,46,0.24522991017391307,2.354287412814649,0.2452247825290847,2.354340594162305 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.30000000000000004,GAUSSIAN,No,11,0.3264478085454546,0.0045521652511531065,0.32644300426136363,0.004552357559914651 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.4,GAUSSIAN,No,39,0.24420892802564098,0.5307400905876261,0.24420404522235578,0.5307469032050539 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.5,GAUSSIAN,No,11,0.2634309843636364,0.436249346929138,0.2634264221191406,0.43618504993467744 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.6,GAUSSIAN,No,37,0.29589045524324326,1.0290342363948874,0.29588521761507597,1.0289801749851617 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7,GAUSSIAN,No,34,0.35179509244117646,1.1122657672775487,0.35179062248678766,1.1122794553601718 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.7999999999999999,GAUSSIAN,No,11,0.4641538576363637,0.2949618683075735,0.46414969149502844,0.2949572787835263 -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,268435456,0.8999999999999999,GAUSSIAN,No,16,0.8438318679375001,0.5200110881251193,0.8438290519714357,0.5200222667989846 +Benchmark,Device,Device Name,Key,Value,NumInputs,Occupancy,Distribution,Skipped,NumKeys,Samples,CPU Time (sec),Noise (%),GPU Time (sec),Noise (%),Elem/s (elem/sec),GlobalMem BW (bytes/sec),BWPeak (%),NumReps (pow2),NumReps +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIQUE,No,100000000,11,0.06912646563636364,0.07652550388508265,0.06912139615145596,0.07915160016570952,1446730036.8309128,11573840294.647303,1.2887774700959527,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIQUE,No,100000000,118,0.06746609788135592,4.337309557361487,0.06746028699713241,4.337529287854764,1482353610.5657358,11858828884.525887,1.3205116969834447,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIQUE,No,100000000,126,0.06530046633333332,4.725697765553524,0.06529489698864163,4.725337023009958,1531513251.600588,12252106012.804705,1.3643041366168296,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIQUE,No,100000000,137,0.06370433262043793,3.579250420662472,0.06369880186206232,3.579353865055502,1569888240.8580735,12559105926.864588,1.3984893821783009,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIQUE,No,100000000,16,0.0629443638125,2.9866222708393324,0.06293836832046508,2.9867299689762548,1588855934.282045,12710847474.25636,1.4153862014342617,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIQUE,No,100000000,11,0.062425575272727275,2.582965979313861,0.06241978211836381,2.5839216782841734,1602056216.8957033,12816449735.165627,1.4271452901365658,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIQUE,No,100000000,11,0.06241535327272727,2.1984232060706717,0.062409914190118966,2.1984004784526476,1602309525.6207302,12818476204.965841,1.4273709428633927,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIQUE,No,100000000,11,0.06294936072727274,1.903995887955142,0.06294369680231268,1.9045085877142856,1588721430.1071334,12709771440.857067,1.4152663822932703,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIQUE,No,100000000,11,0.06938280227272729,1.3427483827102604,0.06937758220325817,1.3427130496541069,1441387791.6215956,11531102332.972765,1.284018485979899,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIFORM,No,100000000,11,0.06936386154545454,1.2370474993295733,0.06935821949351918,1.2372128124438435,1441790183.344369,11534321466.754951,1.2843769449689717,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIFORM,No,100000000,117,0.06738813333333332,4.3078364477291755,0.06738242953047795,4.3080054523090965,1484066405.6906512,11872531245.52521,1.3220374908162158,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIFORM,No,100000000,129,0.06515699493798446,4.54398801582476,0.06515145998222886,4.544275477207251,1534885020.646915,12279080165.17532,1.3673077792250883,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIFORM,No,100000000,138,0.0639216477753623,3.5016111537825774,0.0639158096866331,3.5021286423015567,1564558134.9947803,12516465079.958242,1.3937412120463764,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIFORM,No,100000000,137,0.06275239455474453,3.0750144296542556,0.06274670635696744,3.07525394869748,1593709149.1479683,12749673193.183746,1.4197095470602625,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIFORM,No,100000000,11,0.06249900118181817,2.6144095180154534,0.06249369569258256,2.614689386175176,1600161406.5507905,12801291252.406324,1.4254573533270298,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIFORM,No,100000000,11,0.06267772136363638,2.476112304445131,0.06267224363847212,2.4765309781095897,1595602681.4175482,12764821451.340385,1.4213963453334773,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIFORM,No,100000000,11,0.063070525,1.8907418114775623,0.06306490187211469,1.8905582821720457,1585668050.3964574,12685344403.17166,1.4125463675852137,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIFORM,No,100000000,11,0.06944318990909092,1.595897183851506,0.0694378134987571,1.5957785289634188,1440137512.420231,11521100099.361849,1.2829047110356961,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,GAUSSIAN,No,100000000,11,0.06918715736363636,0.061469500784086584,0.06918162675337357,0.061456995625666914,1445470491.1246338,11563763928.99707,1.2876554403547549,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,GAUSSIAN,No,100000000,116,0.06800029886206896,4.267386694840163,0.06799465074210333,4.26781866305269,1470703929.0383246,11765631432.306597,1.3101339162613352,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,GAUSSIAN,No,100000000,125,0.06609113200000001,4.378779126316022,0.06608556872558594,4.379087883539989,1513189671.034542,12105517368.276337,1.347981106608593,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,GAUSSIAN,No,100000000,13,0.06598744223076923,2.905408792260974,0.06598183294442984,2.9060914934637796,1515568688.190587,12124549505.524696,1.3501003850044426,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,GAUSSIAN,No,100000000,11,0.06511158536363637,2.8937441386991387,0.06510601251775568,2.894017446279962,1535956452.1437716,12287651617.150173,1.3682622328817806,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,GAUSSIAN,No,100000000,11,0.06630214227272725,2.0639152150479525,0.06629664611816406,2.0639915389969596,1508371929.1284306,12066975433.027445,1.3436893610394371,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,GAUSSIAN,No,100000000,11,0.06947526054545455,1.9360861800005804,0.0694698354547674,1.9363285689016476,1439473684.4469876,11515789475.575901,1.2823133591496112,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.07886302727272727,1.447513360543521,0.07885740245472302,1.4475332377223349,1268111767.4072042,10144894139.257633,1.129660568172039,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.10860243227272727,0.9435952849951393,0.10859706185080788,0.9436656652011143,920835226.0706773,7366681808.565418,0.8202993390737932,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,UNIQUE,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,UNIFORM,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,GAUSSIAN,Yes,,,,,,,,,,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIQUE,No,100000000,11,0.10272163090909091,0.007901706139763768,0.10271557894620029,0.005636848523492517,973562151.1940011,15576994419.104017,1.73453918043401,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIQUE,No,100000000,11,0.08642251836363637,0.11914963674706795,0.08641675567626954,0.11904763743988307,1157182993.2451456,18514927891.92233,2.061685777588985,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIQUE,No,100000000,95,0.08274778317894739,4.567495805865352,0.08274228266665812,4.567790316344297,1208571926.9175549,19337150830.680878,2.1532424581626906,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIQUE,No,100000000,104,0.0794820623846154,6.894892224556622,0.07947637161841757,6.89526905847464,1258235598.3753335,20131769574.005337,2.2417253391806824,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIQUE,No,100000000,117,0.07611457395726492,6.427858176993963,0.07610873863024588,6.428590728356416,1313909569.3836615,21022553110.138584,2.340916422077504,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIQUE,No,100000000,120,0.07420878082500003,5.4233062571217605,0.0742031447092692,5.42370924917713,1347651779.3390548,21562428469.424877,2.401032959198715,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIQUE,No,100000000,121,0.07296982550413224,4.743677026026256,0.07296432463590766,4.744092242396731,1370532798.035211,21928524768.563377,2.441798742223509,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIQUE,No,100000000,122,0.07423772589344262,4.010078132167207,0.07423222763811954,4.010337317376634,1347123792.2091975,21553980675.34716,2.4000922751731713,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIQUE,No,100000000,111,0.08676809918018015,3.19288219896168,0.08676253282701644,3.1929441156217493,1152571239.4701047,18441139831.521675,2.0534692835485044,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIFORM,No,100000000,11,0.1027204400909091,0.009979879569648986,0.10271539375998757,0.010028980644691652,973563906.4351681,15577022502.96269,1.7345423076453252,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIFORM,No,100000000,11,0.08625520954545456,0.12258977992327307,0.08624947287819602,0.12261670275207807,1159427375.7617378,18550838012.187805,2.0656844636576,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIFORM,No,100000000,96,0.08251492306250001,4.623007667563823,0.08250930134455364,4.623304981912717,1211984568.6537364,19391753098.45978,2.159322563878521,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIFORM,No,100000000,104,0.0792717475673077,6.8689552100971145,0.07926630364931544,6.869376130645017,1261570117.3907788,20185121878.25246,2.247666258179124,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIFORM,No,100000000,116,0.07606569962931033,6.412398265513415,0.07605978018662021,6.413134350951612,1314755311.60674,21036084985.70784,2.342423231910526,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIFORM,No,100000000,117,0.07427007210256407,5.325975314764115,0.07426438336494641,5.326818631360499,1346540501.2330725,21544648019.72916,2.3990530594944994,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIFORM,No,100000000,121,0.07303455254545453,4.675881339455694,0.07302880266678234,4.676053091266515,1369322737.7187397,21909163803.499836,2.4396428479880625,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIFORM,No,100000000,122,0.07441630621311475,4.004785027010419,0.07441059669119408,4.004994967160809,1343894612.4165971,21502313798.665554,2.3943390329543135,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIFORM,No,100000000,111,0.08739033998198202,3.1014807683820287,0.08738475593360691,3.1014415896804164,1144364356.5930183,18309829705.488293,2.0388475566437756,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,GAUSSIAN,No,100000000,11,0.10810922845454547,0.009741787450570128,0.10810405245694246,0.009828004378829289,925034702.4671413,14800555239.47426,1.6480806415107279,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,GAUSSIAN,No,100000000,11,0.07846991345454546,0.09799187009818086,0.07846344063498757,0.1009385017869323,1274478906.2360985,20391662499.777576,2.270665098054623,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,GAUSSIAN,No,100000000,11,0.0776798849090909,2.511094069046884,0.0776744946566495,2.511194651039138,1287423889.1677074,20598782226.68332,2.293728422833002,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,GAUSSIAN,No,100000000,109,0.07629825366055043,5.509840244736379,0.07629260372896804,5.510217672529852,1310743048.634875,20971888778.158,2.3352748158403562,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,GAUSSIAN,No,100000000,115,0.07667099108695652,5.536668533565466,0.07666499209196671,5.536326750104177,1304376316.6379879,20870021066.207806,2.3239315789587867,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,GAUSSIAN,No,100000000,114,0.08014078842105259,4.492770484498389,0.08013523985210219,4.49305425984432,1247890443.512246,19966247096.195934,2.223293977181168,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,GAUSSIAN,No,100000000,108,0.0881575398703704,3.5359159690407287,0.08815208314966269,3.5360142465180635,1134403140.8789532,18150450254.06325,2.021100236742719,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.10628041909090907,2.769544136735993,0.10627425731312146,2.7694711497269293,940961645.1645926,15055386322.633482,1.6764567509346362,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.15861997845454548,1.8576216787069537,0.15861453108354048,1.8575564098739714,630459260.6797868,10087348170.876589,1.1232526736740787,, +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.0675892200909091,1.5115737066163348,0.06758353493430398,1.5118362381697914,1479650333.4311697,11837202667.449358,1.3181035609955545,2^0,1 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.0731588810909091,1.700614731775095,0.07315316425670276,1.701025226912277,1366994866.4023423,10935958931.218739,1.217747707385211,2^1,2 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.08682020954545457,1.334484686765813,0.08681472154097122,1.3346523490294244,1151878370.6840105,9215026965.472084,1.0261174197227858,2^2,4 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.11502161018181818,1.068848966854489,0.11501605293967508,1.0687683271719923,869443851.046159,6955550808.369272,0.7745188239792609,2^3,8 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.17184204172727277,0.7761776813538659,0.17183678921786225,0.7762235047043814,581947558.8153337,4655580470.52267,0.518411095010809,2^4,16 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.2828323630909091,0.4670414040414736,0.2828274952281605,0.4670017593190509,353572413.1747826,2828579305.3982606,0.3149697238230318,2^5,32 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.5026626956363637,0.17830799120425211,0.5026588883833452,0.1782977450350701,198942070.47968587,1591536563.837487,0.17722177031043854,2^6,64 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.9214143747272728,0.12028721108259548,0.9214118596857243,0.12032417365194858,108529100.15083598,868232801.2066878,0.09667999942171107,2^7,128 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,9,1.7659442706666668,0.07812563688582005,1.7659443088107638,0.07810448771827107,56626927.305166714,453015418.4413337,0.05044445491124458,2^8,256 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^0,1 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^1,2 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^2,4 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^3,8 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^4,16 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^5,32 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^6,64 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^7,128 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^8,256 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^0,1 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^1,2 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^2,4 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^3,8 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^4,16 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^5,32 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^6,64 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^7,128 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^8,256 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,117,0.08358124586324789,3.4073378500526617,0.08357501162015475,3.4073037626511162,1196529896.4539328,19144478343.262924,2.131787871390274,2^0,1 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,27,0.09553329222222219,2.9961068371423005,0.09552717703360099,2.99579486522814,1046822518.0026594,16749160288.042551,1.8650629240355248,2^1,2 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.12117426200000003,2.607019263443277,0.12116880243474787,2.6070095342757837,825294943.8354996,13204719101.367994,1.4703801023294962,2^2,4 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.17426779272727275,1.5797872197789737,0.17426227361505678,1.5795689435612117,573847671.8196548,9181562749.114477,1.0223910914688832,2^3,8 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.2812710991818182,0.6432035096529316,0.2812656194513494,0.6431494212328667,355535810.5802797,5688572969.284475,0.6334375188502703,2^4,16 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.4875445267272728,0.2664081025716232,0.48753980324485086,0.2663646205828964,205111458.25313935,3281783332.0502295,0.36543518075317016,2^5,32 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.8979136936363638,0.1329969797576101,0.8979087468927559,0.1328683157915315,111369891.81367643,1781918269.018823,0.1984212724730552,2^6,64 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,9,1.6986642724444445,0.10934703880104671,1.6986634250217016,0.10937900951870727,58869814.07086129,941917025.1337806,0.10488493099854136,2^7,128 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,5,3.2878928112,0.048951349895341265,3.287897314453125,0.048955973451362045,30414575.16340743,486633202.6145189,0.0541878833441552,2^8,256 diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index d7d058811..bc2c6051a 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "vocal-glass", + "id": "exceptional-dining", "metadata": {}, "source": [ "# Prep" @@ -11,86 +11,104 @@ { "cell_type": "code", "execution_count": 1, - "id": "manufactured-kitty", + "id": "radio-fundamental", "metadata": {}, "outputs": [], "source": [ "# !pip install pandas\n", "# !pip install matplotlib\n", "\n", - "\n", "# Import libraries\n", "import pandas as pd\n", - "import matplotlib\n", "\n", - "# Define the data path\n", - "datafile='../data/static-multimap-data.csv'" + "from Utils import *" ] }, { "cell_type": "markdown", - "id": "rising-inspector", + "id": "cleared-delight", "metadata": {}, "source": [ - "# Import Data" + "## Global Parameters" ] }, { "cell_type": "code", "execution_count": 2, - "id": "editorial-figure", + "id": "external-cleaning", "metadata": {}, "outputs": [], "source": [ - "# Read csv file\n", - "rawdf = pd.read_csv(datafile)\n", - "\n", - "# Filter out unrelated data\n", - "perfdf = rawdf[rawdf[\"Key\"] == rawdf[\"Value\"]].reset_index(drop=True)\n", - "perfdf.drop(columns=['Device', 'Device Name', 'Skipped'], inplace=True)\n", + "# Define the data path\n", + "datafile = '../data/static-multimap-data.csv'\n", "\n", - "# Drop NANs\n", - "perfdf.dropna(inplace=True)" + "output_keys = ['Benchmark', 'Label', 'Distribution', 'NumReps', 'NumInputs', \\\n", + " 'Occupancy', 'GPU Time (sec)', 'Elem/s (elem/sec)', 'Bandwidth (GB/s)']" ] }, { "cell_type": "markdown", - "id": "amber-diploma", + "id": "removed-period", "metadata": {}, "source": [ - "# Comput Performance" + "# Import Data" ] }, { "cell_type": "code", "execution_count": 3, - "id": "marine-floating", + "id": "professional-jurisdiction", "metadata": {}, "outputs": [], "source": [ - "perfdf['Performance'] = perfdf['NumInputs'] / perfdf['GPU Time (sec)']\n", - "#display(perfdf)" + "# Read csv file\n", + "rawdf = pd.read_csv(datafile)\n", + "\n", + "# Filter out skipped tests\n", + "perfdf = rawdf[rawdf[\"Key\"] == rawdf[\"Value\"]].reset_index(drop=True)\n", + "\n", + "# Add labels\n", + "perfdf.loc[perfdf['NumReps'].isnull(), 'Label'] = perfdf[\"Key\"] + \" \" + perfdf[\"Distribution\"]\n", + "perfdf.loc[perfdf['Distribution'].isnull(), 'Label'] = perfdf[\"Key\"]\n", + "\n", + "perfdf[\"Bandwidth (GB/s)\"] = perfdf[\"GlobalMem BW (bytes/sec)\"] / (1000 * 1000 * 1000)\n", + "\n", + "# Trim data frame for visualization\n", + "perfdf = perfdf[output_keys]\n", + "#perfdf" ] }, { "cell_type": "markdown", - "id": "published-designation", + "id": "faced-belarus", "metadata": {}, "source": [ - "# Visualize Performance" + "# Visualization" ] }, { "cell_type": "code", "execution_count": 4, - "id": "alike-growing", + "id": "imported-sharing", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -100,7 +118,20 @@ } ], "source": [ - "perfdf.plot(x=\"Occupancy\", y=\"Performance\");" + "unique_bms = perfdf[\"Benchmark\"].unique()\n", + "num_bm = len(unique_bms)\n", + " \n", + "for bindex, bm in enumerate(unique_bms):\n", + " tmpdf = perfdf[perfdf['Benchmark'].str.contains(bm)]\n", + " \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " num_labels = len(unique_labels)\n", + " \n", + " flag = 'multi_insert' in bm\n", + " if (flag):\n", + " plot_insert(bm, tmpdf, \"NumReps\", unique_labels, flag)\n", + " else:\n", + " plot_insert(bm, tmpdf, \"Occupancy\", unique_labels)" ] } ], diff --git a/benchmarks/analysis/notebooks/Utils.py b/benchmarks/analysis/notebooks/Utils.py new file mode 100644 index 000000000..c8a7c8879 --- /dev/null +++ b/benchmarks/analysis/notebooks/Utils.py @@ -0,0 +1,65 @@ +# Import libraries +import pandas as pd +import matplotlib.pyplot as plt +import matplotlib + +# Global parameters +colors = ['b','r','g','m','y','c'] +styles = ['o','s','v','^','D',">"] + +def plot_insert(bm, df, s, unique_labels, flag = False): + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) + fig.suptitle(bm) + + marker_handles = [] + + ax1.set_xlabel(s) + ax1.set_ylabel('Performance (number of operations per second)') + + ax2.set_xlabel(s) + ax2.set_ylabel('Bandwidth (GB/s)') + + lax = [ax1, ax2] + if flag: + lnum = list(df[s]) + + for item in lax: + item.set_xscale('log') + item.set_xticks(lnum) + item.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter()) + + num_dist = len(df["Distribution"].unique()) + + for lindex, lbl in enumerate(unique_labels): + tmpdf = df.loc[df['Label'] == lbl] + + x = tmpdf[s] + perf = tmpdf["Elem/s (elem/sec)"] + bw = tmpdf['Bandwidth (GB/s)'] + + # Get distribution & type index + did = lindex % num_dist + tid = int(lindex / num_dist) + + if not tid: + ax1.plot(x, perf, color=colors[did]) + ax1.scatter(x, perf, color=colors[did], marker=styles[did]) + + ax2.plot(x, bw, color=colors[did]) + ax2.scatter(x, bw, color=colors[did], marker=styles[did]) + + # Add legend + marker_handles.append(ax1.plot([], [], c=colors[did], marker=styles[did], \ + label=lbl)[0]) + else: + ax1.plot(x, perf, color=colors[did], linestyle="--") + ax1.scatter(x, perf, color=colors[did], marker=styles[did], facecolors='none') + + ax2.plot(x, bw, color=colors[did], linestyle="--") + ax2.scatter(x, bw, color=colors[did], marker=styles[did], facecolors='none') + + # Add legend + marker_handles.append(ax1.plot([], [], c=colors[did], marker=styles[did], \ + mfc='none', linestyle="--", label=lbl)[0]) + + leg = plt.legend(handles = marker_handles, loc="lower left", ncol=2, frameon=False) From cdd07acef07eb3d604c17fb3ff8f6a03e40d5690 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 18 Mar 2021 19:43:51 -0700 Subject: [PATCH 037/267] Add find & find_all benchmarks for staic multimap --- .../hash_table/static_multimap_bench.cu | 167 ++++++++++++++++-- .../cuco/detail/static_multimap_kernels.cuh | 6 +- 2 files changed, 159 insertions(+), 14 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index d590e610f..ca7c63950 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -49,7 +49,7 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end, const std: } template -static void generate_multikeys(OutputIt output_begin, OutputIt output_end, const size_t num_reps) +static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_t const num_reps) { auto num_keys = std::distance(output_begin, output_end); @@ -116,10 +116,10 @@ void nvbench_static_multimap_single_insert(nvbench::state& state, nvbench::type_ return; } - const std::size_t num_keys = state.get_int64("NumInputs"); - auto occupancy = state.get_float64("Occupancy"); - std::size_t size = num_keys / occupancy; - const auto dist = state.get_string("Distribution"); + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + auto const dist = state.get_string("Distribution"); std::vector h_keys(num_keys); @@ -136,19 +136,151 @@ void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_l return; } - using map_type = cuco::static_multimap; + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + std::size_t const num_reps = state.get_int64("NumReps"); - const std::size_t num_keys = state.get_int64("NumInputs"); - auto occupancy = state.get_float64("Occupancy"); - const std::size_t size = num_keys / occupancy; - const std::size_t num_reps = state.get_int64("NumReps"); + std::vector h_keys(num_keys); + + generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + + launch_nvbench_insert(state, h_keys, num_keys, size); +} + +template +void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list) +{ + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end(), "UNIFORM"); + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = val; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector d_results(num_keys); + thrust::device_vector> d_pairs(h_pairs); + + state.add_element_count(num_keys, "NumKeys"); + state.add_global_memory_writes(num_keys * 2); + + state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, + [&](nvbench::launch& launch, auto& timer) { + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); + + auto view = map.get_device_view(); + + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = + (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + + using Hash = cuco::detail::MurmurHash3_32; + using KeyEqual = thrust::equal_to; + + Hash hash; + KeyEqual key_equal; + + timer.start(); + cuco::detail::find + <<>>( + d_keys.begin(), d_keys.end(), d_results.begin(), view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + timer.stop(); + }); +} + +template +void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list) +{ + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + std::size_t const num_reps = state.get_int64("NumReps"); std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); - launch_nvbench_insert(state, h_keys, num_keys, size); + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = val; + + h_keys[i] = i; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_results(num_keys); + thrust::device_vector> d_pairs(h_pairs); + + state.add_element_count(num_keys, "NumKeys"); + state.add_global_memory_writes(num_keys * 2); + + state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, + [&](nvbench::launch& launch, auto& timer) { + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); + + auto view = map.get_device_view(); + + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = + (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + + using Hash = cuco::detail::MurmurHash3_32; + using KeyEqual = thrust::equal_to; + + Hash hash; + KeyEqual key_equal; + + using atomic_ctr_type = typename cuco::static_multimap::atomic_ctr_type; + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + timer.start(); + cuco::detail::find_all + <<>>(d_keys.begin(), + d_keys.end(), + d_results.begin(), + d_results.end(), + num_items, + view, + hash, + key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + timer.stop(); + }); } using key_type = nvbench::type_list; @@ -167,3 +299,16 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_multi_insert, NVBENCH_TYPE_AXES(key_ .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_find, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) + .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) + .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.4}) + .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 5348f7b55..d9526d3a0 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -478,11 +478,11 @@ __global__ void find_all(InputIt first, auto key_idx = tid / tile_size; while (first + key_idx < last) { - auto key = *(first + key_idx); - auto found = view.find_all(tile, key, hash, key_equal); - size_t count = 0; + auto key = *(first + key_idx); + auto found = view.find_all(tile, key, hash, key_equal); if (tile.thread_rank() == 0) { + size_t count = 0; while (found != view.end()) { size_t index = (*num_items)++; *(output_begin + index) = cuco::make_pair(key, (*found).second); From 7a2921db22948e4e4f797f573fcf2820be04c93f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 19 Mar 2021 13:35:51 -0700 Subject: [PATCH 038/267] Fix the warp illegal address bug in find_all benchmark + adjust find_all API --- .../hash_table/static_multimap_bench.cu | 86 +++++++++---------- include/cuco/detail/static_multimap.inl | 13 ++- .../cuco/detail/static_multimap_kernels.cuh | 16 ++-- include/cuco/static_multimap.cuh | 15 ++-- 4 files changed, 59 insertions(+), 71 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index ca7c63950..a12a425ed 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -235,52 +235,47 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< } thrust::device_vector d_keys(h_keys); - thrust::device_vector> d_results(num_keys); + thrust::device_vector> d_results(2 * num_keys); thrust::device_vector> d_pairs(h_pairs); state.add_element_count(num_keys, "NumKeys"); state.add_global_memory_writes(num_keys * 2); - state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, - [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap map{size, -1, -1}; - map.insert(d_pairs.begin(), d_pairs.end()); - - auto view = map.get_device_view(); - - auto const block_size = 128; - auto const stride = 1; - auto const tile_size = 4; - auto const grid_size = - (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); - - using Hash = cuco::detail::MurmurHash3_32; - using KeyEqual = thrust::equal_to; - - Hash hash; - KeyEqual key_equal; - - using atomic_ctr_type = typename cuco::static_multimap::atomic_ctr_type; - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - - timer.start(); - cuco::detail::find_all - <<>>(d_keys.begin(), - d_keys.end(), - d_results.begin(), - d_results.end(), - num_items, - view, - hash, - key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); - timer.stop(); - }); + state.exec( + nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); + + auto view = map.get_device_view(); + + auto const block_size = 128; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = + (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + + using Hash = cuco::detail::MurmurHash3_32; + using KeyEqual = thrust::equal_to; + + Hash hash; + KeyEqual key_equal; + + using atomic_ctr_type = typename cuco::static_multimap::atomic_ctr_type; + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + timer.start(); + cuco::detail::find_all + <<>>( + d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + timer.stop(); + std::cout << "Output size: " << *num_items << std::endl; + }); } using key_type = nvbench::type_list; @@ -288,27 +283,28 @@ using value_type = nvbench::type_list; NVBENCH_BENCH_TYPES(nvbench_static_multimap_single_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) - .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); NVBENCH_BENCH_TYPES(nvbench_static_multimap_multi_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) - .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); NVBENCH_BENCH_TYPES(nvbench_static_multimap_find, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) - .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)); NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) - .set_max_noise(3) // Custom timeout: 3%. By default: 0.5%. + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.4}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 0cdb4e02a..8cfcdc2c5 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -106,12 +106,8 @@ void static_multimap::contains( template template -void static_multimap::find_all(InputIt first, - InputIt last, - OutputIt output_begin, - OutputIt output_end, - Hash hash, - KeyEqual key_equal) noexcept +OutputIt static_multimap::find_all( + InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -127,9 +123,10 @@ void static_multimap::find_all(InputIt first, CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::find_all<<>>( - first, last, output_begin, output_end, num_items, view, hash, key_equal); + detail::find_all + <<>>(first, last, output_begin, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); + return output_begin + (*num_items - 1); } template diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index d9526d3a0..7b4ea2bd7 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -356,11 +356,11 @@ __global__ void contains( * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value - * sentinel. + * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and + * the empty value sentinel. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_end)`. Use `count()` to determine the number of matching keys. + * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block * @tparam Key key type @@ -376,7 +376,6 @@ __global__ void contains( * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of values retrieved for each key - * @param output_end End of the sequence of values retrieved for each key * @param num_items Size of the output sequence * @param view Device view used to access the hash map's slot storage * @param hash The unary function to apply to hash each key @@ -394,7 +393,6 @@ template , typename KeyEqual = thrust::equal_to> - void find_all(InputIt first, - InputIt last, - OutputIt output_begin, - OutputIt output_end, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + OutputIt find_all(InputIt first, + InputIt last, + OutputIt output_begin, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. From 0e815c2225170cb2e2b20dce165960ee4c21b5cc Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 19 Mar 2021 14:00:57 -0700 Subject: [PATCH 039/267] Minor correction: adjust find_all API in static multimap test --- tests/static_multimap/static_multimap_test.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 22097d036..d519fed6c 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -202,7 +202,7 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", REQUIRE(num == num_items); - map.find_all(d_unique_keys.begin(), d_unique_keys.end(), d_outputs.begin(), d_outputs.end()); + auto output_end = map.find_all(d_unique_keys.begin(), d_unique_keys.end(), d_outputs.begin()); } SECTION( From a9287964554f79aac4fcbe674cf9bd0a8257b70f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 22 Mar 2021 14:47:58 -0400 Subject: [PATCH 040/267] Add complete static multimap benchmark data + update notebook --- .../analysis/data/static-multimap-data.csv | 218 ++++++++++++------ .../analysis/notebooks/StaticMultimap.ipynb | 38 ++- benchmarks/analysis/notebooks/Utils.py | 11 +- 3 files changed, 183 insertions(+), 84 deletions(-) diff --git a/benchmarks/analysis/data/static-multimap-data.csv b/benchmarks/analysis/data/static-multimap-data.csv index d4d6dcd26..d6473d6c0 100644 --- a/benchmarks/analysis/data/static-multimap-data.csv +++ b/benchmarks/analysis/data/static-multimap-data.csv @@ -1,31 +1,31 @@ -Benchmark,Device,Device Name,Key,Value,NumInputs,Occupancy,Distribution,Skipped,NumKeys,Samples,CPU Time (sec),Noise (%),GPU Time (sec),Noise (%),Elem/s (elem/sec),GlobalMem BW (bytes/sec),BWPeak (%),NumReps (pow2),NumReps -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIQUE,No,100000000,11,0.06912646563636364,0.07652550388508265,0.06912139615145596,0.07915160016570952,1446730036.8309128,11573840294.647303,1.2887774700959527,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIQUE,No,100000000,118,0.06746609788135592,4.337309557361487,0.06746028699713241,4.337529287854764,1482353610.5657358,11858828884.525887,1.3205116969834447,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIQUE,No,100000000,126,0.06530046633333332,4.725697765553524,0.06529489698864163,4.725337023009958,1531513251.600588,12252106012.804705,1.3643041366168296,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIQUE,No,100000000,137,0.06370433262043793,3.579250420662472,0.06369880186206232,3.579353865055502,1569888240.8580735,12559105926.864588,1.3984893821783009,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIQUE,No,100000000,16,0.0629443638125,2.9866222708393324,0.06293836832046508,2.9867299689762548,1588855934.282045,12710847474.25636,1.4153862014342617,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIQUE,No,100000000,11,0.062425575272727275,2.582965979313861,0.06241978211836381,2.5839216782841734,1602056216.8957033,12816449735.165627,1.4271452901365658,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIQUE,No,100000000,11,0.06241535327272727,2.1984232060706717,0.062409914190118966,2.1984004784526476,1602309525.6207302,12818476204.965841,1.4273709428633927,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIQUE,No,100000000,11,0.06294936072727274,1.903995887955142,0.06294369680231268,1.9045085877142856,1588721430.1071334,12709771440.857067,1.4152663822932703,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIQUE,No,100000000,11,0.06938280227272729,1.3427483827102604,0.06937758220325817,1.3427130496541069,1441387791.6215956,11531102332.972765,1.284018485979899,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIFORM,No,100000000,11,0.06936386154545454,1.2370474993295733,0.06935821949351918,1.2372128124438435,1441790183.344369,11534321466.754951,1.2843769449689717,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIFORM,No,100000000,117,0.06738813333333332,4.3078364477291755,0.06738242953047795,4.3080054523090965,1484066405.6906512,11872531245.52521,1.3220374908162158,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIFORM,No,100000000,129,0.06515699493798446,4.54398801582476,0.06515145998222886,4.544275477207251,1534885020.646915,12279080165.17532,1.3673077792250883,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIFORM,No,100000000,138,0.0639216477753623,3.5016111537825774,0.0639158096866331,3.5021286423015567,1564558134.9947803,12516465079.958242,1.3937412120463764,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIFORM,No,100000000,137,0.06275239455474453,3.0750144296542556,0.06274670635696744,3.07525394869748,1593709149.1479683,12749673193.183746,1.4197095470602625,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIFORM,No,100000000,11,0.06249900118181817,2.6144095180154534,0.06249369569258256,2.614689386175176,1600161406.5507905,12801291252.406324,1.4254573533270298,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIFORM,No,100000000,11,0.06267772136363638,2.476112304445131,0.06267224363847212,2.4765309781095897,1595602681.4175482,12764821451.340385,1.4213963453334773,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIFORM,No,100000000,11,0.063070525,1.8907418114775623,0.06306490187211469,1.8905582821720457,1585668050.3964574,12685344403.17166,1.4125463675852137,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIFORM,No,100000000,11,0.06944318990909092,1.595897183851506,0.0694378134987571,1.5957785289634188,1440137512.420231,11521100099.361849,1.2829047110356961,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,GAUSSIAN,No,100000000,11,0.06918715736363636,0.061469500784086584,0.06918162675337357,0.061456995625666914,1445470491.1246338,11563763928.99707,1.2876554403547549,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,GAUSSIAN,No,100000000,116,0.06800029886206896,4.267386694840163,0.06799465074210333,4.26781866305269,1470703929.0383246,11765631432.306597,1.3101339162613352,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,GAUSSIAN,No,100000000,125,0.06609113200000001,4.378779126316022,0.06608556872558594,4.379087883539989,1513189671.034542,12105517368.276337,1.347981106608593,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,GAUSSIAN,No,100000000,13,0.06598744223076923,2.905408792260974,0.06598183294442984,2.9060914934637796,1515568688.190587,12124549505.524696,1.3501003850044426,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,GAUSSIAN,No,100000000,11,0.06511158536363637,2.8937441386991387,0.06510601251775568,2.894017446279962,1535956452.1437716,12287651617.150173,1.3682622328817806,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,GAUSSIAN,No,100000000,11,0.06630214227272725,2.0639152150479525,0.06629664611816406,2.0639915389969596,1508371929.1284306,12066975433.027445,1.3436893610394371,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,GAUSSIAN,No,100000000,11,0.06947526054545455,1.9360861800005804,0.0694698354547674,1.9363285689016476,1439473684.4469876,11515789475.575901,1.2823133591496112,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.07886302727272727,1.447513360543521,0.07885740245472302,1.4475332377223349,1268111767.4072042,10144894139.257633,1.129660568172039,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.10860243227272727,0.9435952849951393,0.10859706185080788,0.9436656652011143,920835226.0706773,7366681808.565418,0.8202993390737932,, +Benchmark,Device,Device Name,Key,Value,NumInputs,Occupancy,Distribution,Skipped,NumKeys,Samples,CPU Time (sec),Noise,GPU Time (sec),Noise,Elem/s (elem/sec),GlobalMem BW (bytes/sec),BWPeak,NumReps (pow2),NumReps +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIQUE,No,100000000,11,0.06920442581818184,0.00366065791236223,0.06919912719726563,0.0036608494814078744,1445104931.9586136,11560839455.66891,0.01287329792580008,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIQUE,No,100000000,11,0.06900785154545455,0.00046053301761491355,0.06900233251398259,0.00046360521920327686,1449226371.8728068,11593810974.982454,0.012910012577259182,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIQUE,No,100000000,11,0.06708165454545455,0.0006289907616746042,0.06707600264115766,0.0006266077656208109,1490846145.6026042,11926769164.820833,0.013280770253729014,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIQUE,No,100000000,11,0.06524690463636364,0.0012178973094829188,0.0652412740534002,0.0012158158228520127,1532772028.9176092,12262176231.340874,0.013654254818607551,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIQUE,No,100000000,11,0.06404241445454546,0.00025336208261050397,0.06403677090731534,0.000257293675977584,1561602788.2595239,12492822306.07619,0.013911085271696157,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIQUE,No,100000000,11,0.06341475663636366,0.0003825017224831159,0.06340924523093483,0.00038245204062774794,1577057093.7377126,12616456749.901701,0.01404875546730431,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIQUE,No,100000000,11,0.06326109672727273,0.00029322812488110874,0.06325564540516247,0.0002949170708644907,1580886565.2936444,12647092522.349155,0.014082869203371262,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIQUE,No,100000000,11,0.0636532089090909,0.0002999547261766452,0.06364783755215732,0.00029998997010566525,1571145287.0343518,12569162296.274815,0.013996091852857325,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIQUE,No,100000000,11,0.06988678181818182,0.0006097483572236783,0.06988148429177024,0.0006114044551770101,1430994218.4753613,11447953747.80289,0.012747596729576694,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIFORM,No,100000000,11,0.06918830272727274,0.004076046636656547,0.06918292999267578,0.0040787055884692934,1445443261.9518535,11563546095.614828,0.012876311840363575,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIFORM,No,100000000,11,0.06897605027272728,0.0004355213737381127,0.06897068301114169,0.00043562856622579555,1449891397.8254466,11599131182.603573,0.012915936767971838,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIFORM,No,100000000,11,0.06705543254545455,0.0006021725673874137,0.06704993785511364,0.0006033296206601019,1491425692.5351257,11931405540.281006,0.01328593297939643,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIFORM,No,100000000,11,0.06428108272727273,0.03127848106145733,0.06427554945512251,0.03128327429446077,1555801558.2553747,12446412466.042997,0.013859406697685421,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIFORM,No,100000000,11,0.06403595218181818,0.0008424562226042858,0.06403062612360173,0.0008416345207341068,1561752649.5362494,12494021196.289995,0.013912420267391047,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIFORM,No,100000000,11,0.06345626490909091,0.0002616791219334027,0.06345085629549894,0.00026342360999119735,1576022859.8694856,12608182878.955885,0.01403954229501751,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIFORM,No,100000000,11,0.06333125536363637,0.0002099589133498871,0.063326021714644,0.00020856218327940887,1579129673.5900152,12633037388.720121,0.014067218443468636,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIFORM,No,100000000,11,0.06380253554545455,0.00033279867530066725,0.063797061920166,0.0003348330883940887,1567470303.3368123,12539762426.694498,0.013963354327045435,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIFORM,No,100000000,11,0.07055124263636364,0.005059411064470772,0.07054587346857245,0.005054540167730359,1417517355.4913752,11340138843.931002,0.01262754200658651,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,GAUSSIAN,No,100000000,11,0.06919409681818182,0.0005224715930853448,0.06918860764936968,0.0005200745967572223,1445324648.0515208,11562597184.412167,0.012875255202853484,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,GAUSSIAN,No,100000000,11,0.06958156254545454,0.0003918305352390283,0.06957549424604936,0.00038972202243796306,1437287669.7987409,11498301358.389927,0.012803660114370197,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,GAUSSIAN,No,100000000,11,0.0681513359090909,0.0005948989257183495,0.06814571033824574,0.000595526495261821,1467443798.056303,11739550384.450424,0.013072297231829951,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,GAUSSIAN,No,100000000,11,0.06685825854545456,0.0007454757001334387,0.06685286365855823,0.0007474593173783835,1495822235.9888155,11966577887.910524,0.013325098310903788,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,GAUSSIAN,No,100000000,11,0.06627705681818183,0.0005630770491739888,0.0662715107310902,0.0005626588845737492,1508944022.8059664,12071552182.447731,0.013441989940902637,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,GAUSSIAN,No,100000000,11,0.06692918090909092,0.00025382878914624417,0.06692370536110617,0.0002531769891507106,1494238841.9831378,11953910735.865103,0.013310993104895398,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,GAUSSIAN,No,100000000,11,0.07026752027272729,0.00026362705904800846,0.07026194624467329,0.00026434211867263,1423245516.8800738,11385964135.04059,0.012678569670040565,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.07985989563636364,0.010859783543314126,0.07985459206321023,0.01085614344075895,1252276136.1155453,10018209088.924362,0.011155538555761343,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.10914429263636363,0.00045673407432265007,0.10913903808593749,0.0004579464402798095,916262427.7598883,7330099422.079106,0.008162257943984182,, nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,UNIQUE,Yes,,,,,,,,,,, nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,UNIQUE,Yes,,,,,,,,,,, nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,UNIQUE,Yes,,,,,,,,,,, @@ -80,42 +80,42 @@ nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0 nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,GAUSSIAN,Yes,,,,,,,,,,, nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,GAUSSIAN,Yes,,,,,,,,,,, nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIQUE,No,100000000,11,0.10272163090909091,0.007901706139763768,0.10271557894620029,0.005636848523492517,973562151.1940011,15576994419.104017,1.73453918043401,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIQUE,No,100000000,11,0.08642251836363637,0.11914963674706795,0.08641675567626954,0.11904763743988307,1157182993.2451456,18514927891.92233,2.061685777588985,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIQUE,No,100000000,95,0.08274778317894739,4.567495805865352,0.08274228266665812,4.567790316344297,1208571926.9175549,19337150830.680878,2.1532424581626906,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIQUE,No,100000000,104,0.0794820623846154,6.894892224556622,0.07947637161841757,6.89526905847464,1258235598.3753335,20131769574.005337,2.2417253391806824,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIQUE,No,100000000,117,0.07611457395726492,6.427858176993963,0.07610873863024588,6.428590728356416,1313909569.3836615,21022553110.138584,2.340916422077504,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIQUE,No,100000000,120,0.07420878082500003,5.4233062571217605,0.0742031447092692,5.42370924917713,1347651779.3390548,21562428469.424877,2.401032959198715,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIQUE,No,100000000,121,0.07296982550413224,4.743677026026256,0.07296432463590766,4.744092242396731,1370532798.035211,21928524768.563377,2.441798742223509,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIQUE,No,100000000,122,0.07423772589344262,4.010078132167207,0.07423222763811954,4.010337317376634,1347123792.2091975,21553980675.34716,2.4000922751731713,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIQUE,No,100000000,111,0.08676809918018015,3.19288219896168,0.08676253282701644,3.1929441156217493,1152571239.4701047,18441139831.521675,2.0534692835485044,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIFORM,No,100000000,11,0.1027204400909091,0.009979879569648986,0.10271539375998757,0.010028980644691652,973563906.4351681,15577022502.96269,1.7345423076453252,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIFORM,No,100000000,11,0.08625520954545456,0.12258977992327307,0.08624947287819602,0.12261670275207807,1159427375.7617378,18550838012.187805,2.0656844636576,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIFORM,No,100000000,96,0.08251492306250001,4.623007667563823,0.08250930134455364,4.623304981912717,1211984568.6537364,19391753098.45978,2.159322563878521,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIFORM,No,100000000,104,0.0792717475673077,6.8689552100971145,0.07926630364931544,6.869376130645017,1261570117.3907788,20185121878.25246,2.247666258179124,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIFORM,No,100000000,116,0.07606569962931033,6.412398265513415,0.07605978018662021,6.413134350951612,1314755311.60674,21036084985.70784,2.342423231910526,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIFORM,No,100000000,117,0.07427007210256407,5.325975314764115,0.07426438336494641,5.326818631360499,1346540501.2330725,21544648019.72916,2.3990530594944994,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIFORM,No,100000000,121,0.07303455254545453,4.675881339455694,0.07302880266678234,4.676053091266515,1369322737.7187397,21909163803.499836,2.4396428479880625,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIFORM,No,100000000,122,0.07441630621311475,4.004785027010419,0.07441059669119408,4.004994967160809,1343894612.4165971,21502313798.665554,2.3943390329543135,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIFORM,No,100000000,111,0.08739033998198202,3.1014807683820287,0.08738475593360691,3.1014415896804164,1144364356.5930183,18309829705.488293,2.0388475566437756,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,GAUSSIAN,No,100000000,11,0.10810922845454547,0.009741787450570128,0.10810405245694246,0.009828004378829289,925034702.4671413,14800555239.47426,1.6480806415107279,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,GAUSSIAN,No,100000000,11,0.07846991345454546,0.09799187009818086,0.07846344063498757,0.1009385017869323,1274478906.2360985,20391662499.777576,2.270665098054623,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,GAUSSIAN,No,100000000,11,0.0776798849090909,2.511094069046884,0.0776744946566495,2.511194651039138,1287423889.1677074,20598782226.68332,2.293728422833002,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,GAUSSIAN,No,100000000,109,0.07629825366055043,5.509840244736379,0.07629260372896804,5.510217672529852,1310743048.634875,20971888778.158,2.3352748158403562,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,GAUSSIAN,No,100000000,115,0.07667099108695652,5.536668533565466,0.07666499209196671,5.536326750104177,1304376316.6379879,20870021066.207806,2.3239315789587867,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,GAUSSIAN,No,100000000,114,0.08014078842105259,4.492770484498389,0.08013523985210219,4.49305425984432,1247890443.512246,19966247096.195934,2.223293977181168,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,GAUSSIAN,No,100000000,108,0.0881575398703704,3.5359159690407287,0.08815208314966269,3.5360142465180635,1134403140.8789532,18150450254.06325,2.021100236742719,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.10628041909090907,2.769544136735993,0.10627425731312146,2.7694711497269293,940961645.1645926,15055386322.633482,1.6764567509346362,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.15861997845454548,1.8576216787069537,0.15861453108354048,1.8575564098739714,630459260.6797868,10087348170.876589,1.1232526736740787,, -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.0675892200909091,1.5115737066163348,0.06758353493430398,1.5118362381697914,1479650333.4311697,11837202667.449358,1.3181035609955545,2^0,1 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.0731588810909091,1.700614731775095,0.07315316425670276,1.701025226912277,1366994866.4023423,10935958931.218739,1.217747707385211,2^1,2 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.08682020954545457,1.334484686765813,0.08681472154097122,1.3346523490294244,1151878370.6840105,9215026965.472084,1.0261174197227858,2^2,4 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.11502161018181818,1.068848966854489,0.11501605293967508,1.0687683271719923,869443851.046159,6955550808.369272,0.7745188239792609,2^3,8 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.17184204172727277,0.7761776813538659,0.17183678921786225,0.7762235047043814,581947558.8153337,4655580470.52267,0.518411095010809,2^4,16 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.2828323630909091,0.4670414040414736,0.2828274952281605,0.4670017593190509,353572413.1747826,2828579305.3982606,0.3149697238230318,2^5,32 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.5026626956363637,0.17830799120425211,0.5026588883833452,0.1782977450350701,198942070.47968587,1591536563.837487,0.17722177031043854,2^6,64 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.9214143747272728,0.12028721108259548,0.9214118596857243,0.12032417365194858,108529100.15083598,868232801.2066878,0.09667999942171107,2^7,128 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,9,1.7659442706666668,0.07812563688582005,1.7659443088107638,0.07810448771827107,56626927.305166714,453015418.4413337,0.05044445491124458,2^8,256 +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIQUE,No,100000000,11,0.10274451318181815,7.919867067043338e-05,0.10273922452059657,7.937319902834375e-05,973338084.5205092,15573409352.328148,0.017341399738464033,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIQUE,No,100000000,11,0.08645334581818183,0.001069146654464478,0.08644775668057528,0.0010671316663770792,1156768016.19619,18508288259.13904,0.02060946437065618,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIQUE,No,100000000,11,0.0849845310909091,0.0009667560971783149,0.08497915302623403,0.0009668284317229073,1176759198.4486933,18828147175.179092,0.020965635662213034,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIQUE,No,100000000,11,0.08270579718181818,0.0006225482401469632,0.08270028825239702,0.0006211092880687401,1209185628.166194,19346970050.659103,0.02154335854058926,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIQUE,No,100000000,11,0.07897613554545456,0.00040252419577252956,0.07897078774192118,0.0004014339582821938,1266291028.1052647,20260656449.684235,0.022560772308032793,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIQUE,No,100000000,11,0.07642653472727273,0.0005395866182401395,0.0764211196899414,0.0005422698066863944,1308538796.6798143,20936620746.87703,0.023313476280640934,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIQUE,No,100000000,11,0.07490249536363637,0.000634047536343183,0.07489684989235618,0.0006325369521988604,1335169638.559202,21362714216.94723,0.023787942534193307,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIQUE,No,100000000,11,0.07593944427272728,0.0009142890604426159,0.07593388227982954,0.0009146761769850632,1316935167.7750735,21070962684.401176,0.023463069551294784,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIQUE,No,100000000,11,0.08843876872727273,0.00041083894043193324,0.08843329204212536,0.00041137249157570003,1130795854.0361114,18092733664.57778,0.020146733431373135,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIFORM,No,100000000,11,0.10274524690909091,6.354018158648775e-05,0.10274024616588245,6.505868237862087e-05,973328405.6818581,15573254490.909729,0.017341227296213263,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIFORM,No,100000000,11,0.08623861036363638,0.0010673083587560577,0.08623346016623758,0.0010686851723073897,1159642670.1099992,18554282721.759987,0.020660680411024784,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIFORM,No,100000000,11,0.08475259200000002,0.0008236603929658194,0.08474735745516691,0.0008206519014245491,1179977795.212105,18879644723.39368,0.02102297953271282,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIFORM,No,100000000,11,0.08255245990909091,0.0005501564153902886,0.08254696863347834,0.0005507180339496883,1211431523.8396688,19382904381.4347,0.02158337236031337,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIFORM,No,100000000,11,0.07882271636363637,0.0007382712526508775,0.07881737240878019,0.0007369330540988989,1268755820.4980211,20300093127.968338,0.022604686083559384,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIFORM,No,100000000,11,0.07642493618181818,0.0021891595178698607,0.07641953832452947,0.0021892748892233535,1308565874.5454836,20937053992.727737,0.023313958711257902,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIFORM,No,100000000,11,0.07487487463636364,0.0004947702667866301,0.0748693882335316,0.0004976890232915997,1335659371.0647311,21370549937.035698,0.023796667814009607,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIFORM,No,100000000,11,0.07613220190909092,0.0005209790978913337,0.0761271383112127,0.0005219125155713814,1313592001.7273405,21017472027.637447,0.023403506302154726,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIFORM,No,100000000,11,0.08904410554545455,0.0002932838905896244,0.08903856867009943,0.0002917179813264836,1123108799.856321,17969740797.701138,0.020009777648523394,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,GAUSSIAN,No,100000000,11,0.10816177872727271,3.566492121809612e-05,0.1081567417491566,3.4091418821815285e-05,924584065.521554,14793345048.344864,0.016472777678191882,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,GAUSSIAN,No,100000000,11,0.07844791381818184,0.0007774184979175578,0.07844240153919567,0.0007768336933861818,1274820735.1866012,20397131762.98562,0.022712741148564017,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,GAUSSIAN,No,100000000,11,0.07857616672727273,0.00271679366288135,0.0785705892389471,0.002718763857120997,1272740868.6713836,20363853898.742138,0.022675685373991297,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,GAUSSIAN,No,100000000,11,0.078771252,0.0004900731018220413,0.07876580116965554,0.0004907366567772091,1269586527.5921922,20313384441.475075,0.022619486309724064,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,GAUSSIAN,No,100000000,11,0.07914328254545455,0.000779792374350826,0.0791376987804066,0.0007802219776220264,1263620266.208178,20217924259.33085,0.022513188893389716,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,GAUSSIAN,No,100000000,11,0.08218435618181817,0.000426789762216608,0.08217897935347124,0.00042696474574037044,1216856193.4783387,19469699095.65342,0.021680020550854096,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,GAUSSIAN,No,100000000,11,0.08990060427272728,0.0003185792309776693,0.08989519084583629,0.00032000463514696945,1112406559.8958762,17798504958.33402,0.019819102050596425,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.10803566354545456,0.00023774928510362925,0.1080306028886275,0.00023995316819948022,925663629.8058382,14810618076.893412,0.01649201164847916,, +nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.16119024045454547,0.00023327209159478972,0.1611849559437145,0.00023296292641002099,620405294.1201277,9926484705.922043,0.011053401049745719,, +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.06821054463636364,0.004518757391277612,0.06820500876686791,0.004522581115714032,1466167981.0321672,11729343848.257338,0.013060931986104682,2^0,1 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.07414215518181819,0.0002442139124343712,0.0741362963589755,0.0002402154537706555,1348866950.6201093,10790935604.960875,0.012015989796715625,2^1,2 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.087509521,0.00022051151123671586,0.08750433696400034,0.00021913974618767155,1142800499.6042702,9142403996.834162,0.010180306617056285,2^2,4 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.11585742990909091,0.00025986509574229763,0.1158519155328924,0.0002601219294654579,863170881.0339717,6905367048.271773,0.00768930730681631,2^3,8 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.17301705736363637,0.00014263782881344684,0.17301215431906958,0.00014381731895805118,577994074.4254284,4623952595.403427,0.005148892481697445,2^4,16 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.2845625553636364,0.00015372202418767293,0.2845579639781605,0.0001535428523047237,351422250.1524325,2811378001.21946,0.003130543134909782,2^5,32 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.5018689946363637,0.00020770102043540117,0.5018656560724432,0.0002082466096565821,199256511.7577307,1594052094.0618455,0.0017750188119809247,2^6,64 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.9222340671818183,0.000556648194377783,0.9222326438210225,0.0005566477496281188,108432509.59505938,867460076.760475,0.0009659395452809595,2^7,128 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,9,1.7673624833333335,0.00038052778852527245,1.767364963107639,0.00038057866158041693,56581409.096265785,452651272.7701263,0.0005040390633575558,2^8,256 nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^0,1 nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^1,2 nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^2,4 @@ -134,12 +134,84 @@ nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0. nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^6,64 nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^7,128 nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^8,256 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,117,0.08358124586324789,3.4073378500526617,0.08357501162015475,3.4073037626511162,1196529896.4539328,19144478343.262924,2.131787871390274,2^0,1 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,27,0.09553329222222219,2.9961068371423005,0.09552717703360099,2.99579486522814,1046822518.0026594,16749160288.042551,1.8650629240355248,2^1,2 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.12117426200000003,2.607019263443277,0.12116880243474787,2.6070095342757837,825294943.8354996,13204719101.367994,1.4703801023294962,2^2,4 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.17426779272727275,1.5797872197789737,0.17426227361505678,1.5795689435612117,573847671.8196548,9181562749.114477,1.0223910914688832,2^3,8 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.2812710991818182,0.6432035096529316,0.2812656194513494,0.6431494212328667,355535810.5802797,5688572969.284475,0.6334375188502703,2^4,16 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.4875445267272728,0.2664081025716232,0.48753980324485086,0.2663646205828964,205111458.25313935,3281783332.0502295,0.36543518075317016,2^5,32 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.8979136936363638,0.1329969797576101,0.8979087468927559,0.1328683157915315,111369891.81367643,1781918269.018823,0.1984212724730552,2^6,64 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,9,1.6986642724444445,0.10934703880104671,1.6986634250217016,0.10937900951870727,58869814.07086129,941917025.1337806,0.10488493099854136,2^7,128 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,5,3.2878928112,0.048951349895341265,3.287897314453125,0.048955973451362045,30414575.16340743,486633202.6145189,0.0541878833441552,2^8,256 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.08536571045454547,0.00039028855440837823,0.08536017469926314,0.00039028326257579125,1171506505.8420415,18744104093.472664,0.020872051486638423,2^0,1 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.09729859227272727,0.0005263976466797341,0.09729340570623224,0.0005262994272018765,1027818887.3554293,16445102197.686869,0.018312052582586752,2^1,2 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.12347132945454548,0.00026653618366292287,0.12346609913219106,0.0002663909969661335,809938928.1986897,12959022851.179035,0.014430211805136291,2^2,4 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.17666694827272733,0.00030476914761359364,0.17666187771883876,0.0003038166768234644,566053079.9924599,9056849279.879358,0.010085039195988809,2^3,8 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.2824962571818182,0.00010072454601307116,0.2824916270862926,0.00010048219195278699,353992792.7472804,5663884683.956487,0.006306884135320703,2^4,16 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.48905533781818195,0.00023076981571944953,0.489051230690696,0.00023064481082195662,204477555.16077155,3271640882.572345,0.003643057924044533,2^5,32 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.8969527960000001,0.00012232545382140375,0.896950838955966,0.00012244915401747237,111488830.44292387,1783821287.086782,0.001986331785257338,2^6,64 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,9,1.6962511944444445,0.00038631756977580033,1.6962525906032984,0.000386339580966324,58953484.02352828,943255744.3764524,0.0010503400089710711,2^7,128 +nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,5,3.2905120279999998,0.00038547888143643054,3.290520166015625,0.0003854291119151701,30390331.909464173,486245310.55142677,0.000541446905456531,2^8,256 +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,,No,100000000,17,0.030851307941176475,0.0022650732636574984,0.030845771004171935,0.002266629399241108,3241935498.596383,25935483988.771065,0.028879841599525932,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,,No,100000000,19,0.026449221947368422,0.0008253173910985551,0.026443668164704975,0.0008271069798394431,3781623615.042655,30252988920.34124,0.033687496570719205,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,,No,100000000,23,0.022465648956521738,0.0007264679211652522,0.022460104403288467,0.000730043899022379,4452339054.370497,35618712434.963974,0.03966237042448062,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,23,0.022631443739130435,0.011430483669021833,0.02262590333689814,0.011435552785415044,4419713039.1218815,35357704312.97505,0.03937173103550707,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,,No,100000000,22,0.022819085272727278,0.0008192435837584734,0.022813602880998086,0.0008159684844073193,4383349728.739779,35066797829.918236,0.03904779903737688,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,,No,100000000,22,0.023425075772727275,0.0005757309816581208,0.02341948483207009,0.0005752889173025987,4269948750.668604,34159590005.34883,0.038037599332495405,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,,No,100000000,21,0.02472987876190477,0.0005648620931997654,0.024724333717709497,0.0005639783645839629,4044598375.905766,32356787007.246128,0.03603013091421185,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,,No,100000000,18,0.027860730388888883,0.0005571224569463895,0.027855303022596572,0.0005533948568001576,3589980691.248584,28719845529.98867,0.031980301197696195,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,,No,100000000,14,0.03840460892857143,0.0002420097491422894,0.03839919580732073,0.00024399529926795408,2604221205.615332,20833769644.922657,0.02319894888126543,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,,Yes,,,,,,,,,,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,,No,100000000,11,0.068847447,7.054018023164516e-05,0.0688421235518022,7.203100005969825e-05,1452599002.4806857,23241584039.69097,0.025880113356625673,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,,No,100000000,15,0.03524321166666666,0.001650529442398669,0.03523741022745767,0.001648292123721572,2837893005.033556,45406288080.536896,0.050561092592530575,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,,No,100000000,16,0.031927686312499995,0.0020041208961081945,0.031922111988067624,0.0020052068452505846,3132624809.955546,50121996959.288734,0.05581215810211563,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,19,0.026822425842105264,0.0011111774650891613,0.026816889311137956,0.0011088392005559964,3728993278.8165193,59663892461.06431,0.06643730898689637,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,,No,100000000,19,0.026969198526315793,0.0013579985487244533,0.02696380635311729,0.0013671279581181654,3708675202.988876,59338803247.822014,0.06607531362223625,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,,No,100000000,19,0.027730592263157893,0.0012563867319355922,0.027725177162571956,0.0012576373151306354,3606829973.119039,57709279569.904625,0.06426079627136258,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,,No,100000000,17,0.029531005647058822,0.0011698700131234213,0.02952505212671616,0.0011606651967315915,3386954223.5122285,54191267576.195656,0.06034339765379541,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,,No,100000000,15,0.03383637233333333,0.0009077916542839276,0.03383104883829753,0.000908598413189415,2955864610.582149,47293833769.314384,0.05266292421932278,, +nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,,No,100000000,11,0.04776554863636364,0.0004635063337864464,0.04776010443947532,0.0004571527281544445,2093797766.4334137,33500764262.93462,0.03730397959010501,, +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.12107264445454548,0.0002888403006084369,0.12106742720170453,0.00028523266936586786,825986000.6225694,6607888004.980556,0.007358056590494668,2^0,1 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.13438666109090908,0.0005865902986289532,0.13438147527521302,0.0005877756359823397,744150187.3319978,5953201498.655982,0.006629045996044735,2^1,2 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.14746722963636363,0.0005470865870191734,0.1474622372713956,0.0005474430105601299,678139718.0076406,5425117744.061125,0.006041010885900447,2^2,4 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.15730588109090912,0.0004655900701124892,0.15730073408647016,0.0004660007318761322,635724941.6587514,5085799533.270011,0.005663171159303301,2^3,8 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.16485765590909093,0.0006792304572982247,0.16485292191938916,0.0006785413570261261,606601319.7442666,4852810557.954133,0.005403731824973869,2^4,16 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.17627661436363637,0.0010419775160612906,0.17627154679731888,0.0010428692726222341,567306532.5453933,4538452260.363147,0.005053685616318,2^5,32 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.22831155145454549,0.0003346988531024427,0.22830722462047232,0.0003356444486342128,438006288.08937395,3504050304.7149916,0.0039018519107163444,2^6,64 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.343012823,0.00013615565054172037,0.34300853382457386,0.0001364498010068651,291537936.05363584,2332303488.4290867,0.0025970811008198744,2^7,128 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.5712359422727272,0.00010408496369820208,0.57123291015625,0.0001044324803036856,175059941.7891502,1400479534.3132017,0.0015594706901114436,2^8,256 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^0,1 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^1,2 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^2,4 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^3,8 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^4,16 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^5,32 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^6,64 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^7,128 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^8,256 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^0,1 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^1,2 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^2,4 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^3,8 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^4,16 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^5,32 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^6,64 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^7,128 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^8,256 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.12221130081818181,0.0002000734255192767,0.12220602208917791,0.00020057244323789153,818290279.7296404,13092644475.674246,0.014579002988341654,2^0,1 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.13576571445454544,0.0003030118102881788,0.13576052301580258,0.00030194008643213716,736591151.6734505,11785458426.775208,0.013123417040932341,2^1,2 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.14913550090909092,0.0004339145518877869,0.1491303308660334,0.0004332491773554188,670554403.1135551,10728870449.816881,0.011946878618756327,2^2,4 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.15929928772727273,0.0006312398564412787,0.15929455705122514,0.0006315074357204146,627767839.9761174,10044285439.617878,0.01118457525613094,2^3,8 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.1686964322727273,0.000658022645946661,0.16869152415882455,0.0006575345582514861,592798011.0361035,9484768176.577656,0.010561538109964786,2^4,16 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.21259125472727272,0.00025829907868773946,0.2125865880792791,0.00025848914851093883,470396561.24829185,7526344979.97267,0.008380782519389464,2^5,32 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.30872113981818183,0.00015102865045400039,0.30871700772372157,0.0001507158431270966,323921253.1157093,5182740049.851349,0.0057711169668562805,2^6,64 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.49863340836363645,0.0001678603470263395,0.49862963312322445,0.0001682559561403036,200549653.20379862,3208794451.260778,0.0035730767745830714,2^7,128 +nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.8690732562727274,0.00011058842912884806,0.869071494362571,0.0001106222336976893,115065331.96482986,1841045311.4372778,0.0020500522371156974,2^8,256 diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index bc2c6051a..43f622e8f 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -94,7 +94,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFhCAYAAAA4HX3WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAADBrUlEQVR4nOzddXzU9R/A8ddnvbGG0c3o7k5BGkQFRFRKUVAQ/REKKKGIAgaChYIYgAiCopR0h3R3M3Ib67x7//74HmPA4mBxN/g8H4/vY3fffN9t+977PqlEBE3TNE3TNC17Odg6AE3TNE3TtMeRTsI0TdM0TdNsQCdhmqZpmqZpNqCTME3TNE3TNBvQSZimaZqmaZoN6CRM0zRN0zTNBnQSpmmZQClVXCklSimnbL6uKKUCs/Oa6VFKRSqlSto6DgCl1Hql1MtpbP9WKfVedsb0sDLrfVVK9VZKbc7gOXLM+6Zp9ixbPzA0TbNvSikBSovIKSv3Xw/8KiI/3F4nIp5ZFF6GKKV6Ay+LSKPb60TkNdtF9GDs6X211fumlDqH8TtcbYvra1pm0yVhmqZpml3L7hJmTcsuOgnTtHsopc4ppYYqpQ4opcKUUvOVUm5KqaNKqQ7J9nNSSt1QStVIdnhfpVSQUuqKUmposn0dlFLvKKVOK6WClVK/K6X8LdtuV2X2UkpdUErdVEqNSnaso1JqpOXYCKXUbqVUkWTXbKmUOqmUuqWU+koppdJ5fYFKqQ2W13ZTKTXfsn6jZZf9lqqv7kopP6XUP5bXGWp5XNiy/wSgMTDdsv90y/qkKlKllLtS6lOl1HnL9TYrpdzTiO32e9FHKXXRcs3XlFK1Lb+PW7evY9l/rFLq1xSOd7rnvOWBb4H6llhvWdbPVkp9aHncTCl1SSk1XCl13fI7fEop1U4pdUIpFaKUGpnsnHWUUtssMV1RSk1XSrkk2y5KqcFKqTOW93myUirNe25qv5sU3tfZlt/1UsvfxA6lVKlk+z6plDpuOc/XlnOmWC2rlCqnlFpleX3HlVLd0ooxjfftf8netz7J9m2nlDpiifOyuvv/ooNSap/lPdyqlKqSbNs5pdQIpdQBIEopNQ8oCvxt+R0OTy9OTbN7IqIXvegl2QKcA3YCBQF/4CjwGvA+MCfZfu2Bo5bHxQEB5gG5gMrADaClZfubwHagMOAKfAfMu+fY7wF3oCoQB5S3bB8GHATKAsqyPbdlmwD/AL4YH1A3gDbpvL55wCiML2FuQKNk2wQITPY8N/AM4AF4AQuAP5NtX49RPURK5wC+suxTCHAEGgCuacR2+7341hLbk0As8CeQ13Ke60BTy/5jMapD7z3e6d74gN7A5nuuNxv40PK4GZBo+T07A69Y3s+5ltdeEYgBSlj2rwnUw2jWURzj72TIPe/DOoy/oaLAiXvfq4f93VjiDgbqWK4/B/jNsi0PEA48bdn2JpCQ0vuA8bd6Eehj2bc6cBOokE6cKb1v4y3vWzsgGvCzbL8CNLY89gNqWB5Xt/wu61r+Nnph/O+5Jvs/3AcUAdyTrWtp63uEXvSSWYsuCdO0lH0pIkEiEgL8DVTD+DDupJTysOzzPMaHZnLjRCRKRA4CPwI9LOtfA0aJyCURicNIHp69p8RmnIjEiMh+YD9GsgXwMjBaRI6LYb+IBCc77mMRuSUiFzA+9Kul89oSgGJAQRGJFZFUG2mLSLCI/CEi0SISAUwAmqZzfsAo/QP6Am+KyGURMYnIVsvrT88Hltj+BaIwEtbrInIZ2ITxAZ4VEoAJIpIA/IaR0EwVkQgROQwcwfJ7EZHdIrJdRBJF5BxGYn3ve/OJiIRYfjdfcOfvIa3rW/W7ARaLyE4RScRIwqpZ1rcDDovIIsu2L4GrqZyjA3BORH60vI69wB9A13TiTCnu8SKSICLLgEiMLw23t1VQSnmLSKiI7LGs7w98JyI7LH8bP2F8+aiX7LxfishFEYl5wHg0LUfQSZimpSz5h1Y04ClGY/WjQEdLItYJIzFL7mKyx+cxStPA+GBdbKl2uWU5jwnIl9Y1LY+LAKcfJNY09gUYjlGitlMpdVgp1Te1HZVSHkqp7yzVieHARsBXKeWYzjXASGDc0ok9NdeSPY5J4XlWNVIPFhFTsuukFIsngFKqjKV69qrlvfkI4zUnl9rfQ2qs/t2Q+u+9YPLriogAl1I5RzGg7u2/S8vfZk8gfzpx3ivYkvClFM8zGInheUu1aP1k1/7fPdcuwt3vUfL3T9MeOToJ07QHMw+jNKMzcETu70WYvK1WUSDI8vgi0FZEfJMtbpaSnfRcBEqlu5eVROSqiLwiIgWBV4GvVerDXPwPo0Sjroh4A00s62+3O5M0LnUToyox02JPQRRGVeltaSUPacX6ML4BjmH0JvUGRnLnfbkttb+HFD3g7yY1VzCqvQFQSqnkz+9xEdhwz9+lp4gMeMBrpkpE/hORzhjVyX8Cvye79oR7ru0hIslLl+/9nWX271DTbEonYZr2YH7DaKc0gPtLwQDes5QeVcRoZ3O7YfW3wASlVDEApVSAUqqzldf8AfhAKVVaGaoopXI/7AtQSnVVlsb1QCjGB5vZ8vwakHwsKi+M0p9byuhIMOae0927fxIRMQOzgM+UUgWV0cGgvlLK9WFjT8E+oIlSqqhSygd4N419rwGFkzeezyAvjLZXkUqpchh/E/capozODUUw2mbNT2GfJOn8bqy1FKisjE4FTsDrpJ6c/gOUUUq9qJRytiy1ldGRIcOUUi5KqZ5KKR9LFW84d17P98BrSqm6lr/rXEqp9koprzROmerfm6blRDoJ07QHICJXgG0YDcxT+kDdAJwC1gBTLG2aAKYCS4B/lVIRGI3061p52c8wSg/+xfgQm4nRgP9h1QZ2KKUiLTG9KSJnLNvGAj9Zqoe6YbRjcsco1doOrLjnXFMx2raFKqW+TOFaQzE6FfwHhACfkIn3HRFZhfF7OADsxkgqUrMWOAxcVUrdzITLD8VoFxiBkVCk9PfwlyWufRjJ0cx0zpnW78YqInITo03XJIzG+xWAXRjtre7dNwLjS8VzGKV0VzF+R5mZKL8InLNU2b6GUd2JiOzC6PwwHSPhPIXRaSAtE4HRlr/Poensq2l2TxnNBTRN07TMpB5w4NssjMMBo01YTxFZZ8tYNE27my4J0zRNe8QopVorpXwtVb+326ptt3FYmqbdQydhmvYIUsbcfpEpLN/aQWw9U4ntsK1jyw7Z9Lupj9Er9SbQEXjqQYd5sPTOTCnOnpkYp6Y91nR1pKZpmqZpmg3okjBN0zRN0zQb0EmYpmmapmmaDegkTNM0TdM0zQZ0EqZpmqZpmmYDOgnTNE3TNE2zAZ2EaZqmaZqm2YBOwjRN0zRN02xAJ2Gapmmapmk2oJMwTdM0TdM0G9BJmKZpmqZpmg3oJEzTNE3TNM0GcmQSppSapZS6rpQ6ZMW+xZRSa5RSB5RS65VShbMjRk3TNE3TtLTkyCQMmA20sXLfKcDPIlIFGA9MzKqgNE3TNE3TrJUjkzAR2QiEJF+nlCqllFqhlNqtlNqklCpn2VQBWGt5vA7onI2hapqmaZqmpShHJmGpmAEMEpGawFDga8v6/cDTlsddAC+lVG4bxKdpmqZpmpbEydYBZAallCfQAFiglLq92tXycygwXSnVG9gIXAZM2R2jpmmapmlaco9EEoZRondLRKrdu0FEgrCUhFmStWdE5Fa2RqdpmqZpmnaPR6I6UkTCgbNKqa4AylDV8jiPUur263wXmGWjMDVN0zRN05LkyCRMKTUP2AaUVUpdUkr1A3oC/ZRS+4HD3GmA3ww4rpQ6AeQDJtggZE3TNE3TtLsoEbF1DJqmaXZNKVUE+Bnji5wAM0RkqlJqMtARiAdOA310cwdN06ylkzBN07R0KKUKAAVEZI9SygvYDTwFFAbWikiiUuoTABEZYbtINU3LSXJkdaSmaVp2EpErIrLH8jgCOAoUEpF/RSTRstt2jKRM0zTNKjmud2SePHmkePHitg5D07RstHv37psiEmDrOACUUsWB6sCOezb1Beand7y+h2na4yWt+1eOS8KKFy/Orl27bB2GpmnZSCl13tYxQNIwN38AQyy9sm+vHwUkAnNSOa4/0B+gaNGi+h6maY+RtO5fujpS0zTNCkopZ4wEbI6ILEq2vjfQAegpqTSyFZEZIlJLRGoFBNhFgZ6maXYgx5WEaZqmZTdlTMUxEzgqIp8lW98GGA40FZFoW8WnaVrOlGUlYUqpWUqp60qpQ2ns00wptU8pdVgptSGrYtE0TcughsCLQAvLPWufUqodMB3wAlZZ1n1r0yg1TctRsrIkbDbGDernlDYqpXwxJtluIyIXlFJ5szAWTdO0hyYimwGVwqZl2R2LpmmPjiwrCRORjUBIGrs8DywSkQuW/a9nVSyapmmapmn2xpYN88sAfkqp9Uqp3Uqpl1LbUSnVXym1Sym168aNG9kYoqZpmqZpWtawZRLmBNQE2gOtgfeUUmVS2lH3LNI0TdM0+yZiLJr1bJmEXQJWikiUiNwENgJVbRiPptnUnDlQvDg4OBg/56Q44pSmaZp9Mfv5g1IoB2NBWRZ/f1uHZvdsmYT9BTRSSjkppTyAuhhTgWiazWV3QpTg7k3PFxTnzivMYvzs+YIiwd07ay+saZqWAYmJ4HArlLeGCDeuC6EhwqiRQtkyAqGhtg7P7mVZ70il1DygGZBHKXUJGAM4A4jItyJyVCm1AjgAmIEfRCTV4Sw0LbskuHvTMzaCnrdXnAdegISXvXCOCU/jyFTOlwCxsRATYyzJHyc9j21FDO7E4YoPYeTlurHEXsdPjC+VmqZp9mbZMugEfPpBNPFOHri5wYTxJnbtcoQTto7O/mVZEiYiPazYZzIwOati0LQHJQI3Y3NxmspcoSAxuJGIEyYcMcU6Yuq0EnNMHBJ7ZyEuDhUfi4qLQ8XH4ZAQh2NiHA6Jxk8XicOV+xc3YvG+Z50zCYTgz2UKsZfqBFGQq06fEelTkLjchTAXKIRjkYL4FXAjb17Ilw/y5r17cXW17rXOmQOjRsGFC1C0KEyYAD17pn+cpmkaCQlcX/ofsaNXc5wylPDyZfIrp3lvRhESxk1g5uof2E4dotpOwb1ZXYo8VZPCZTz0F8p76BHztcdOYiJcOC9c3H2d4F1niT5yDjl7Frer5/C/dZaieFKbXbgSf//Bf89I//wOziQ6upLo6IrZ1RWTsytmZ1fE2RVxsSxunijX3Cg3V5S7Kw4rl+OACUfM+BOMPyFUZy9uxOJsToRQjOWUcY1gS6IWREEuU4hdlp+XKUS4Z0ESAgrhXDCAPPkck5Kz5AmbX6uatIs/w/PcMga/ymBpn6ZpjzgR4qIScfV0hjVriGrdhbymCJ5FcYAqLC/7FjVrGy2cogKrsdOpIbXjN1NkxTBYAWHveDP101CGvO1A6IodrNzuQ9GWZahUxQHvx7jVhU7CNPvm7Q0REfev9/KC8NSThZho4fy+UK5tP0v4gXMknjyL08WzeAWfI2/0WYpzjpLE3HXMLZcAwgJKEH8NLlMITyLxIBpn4nEmwWhAuWWLUdSUxuLk4PDg/1hpfT0MCYGgILh8Oemn/6XL+FwMosyFyzhcOYBzyDWU2WzsH2kspnOO3HAswCUKcSHxdrJ2O3GbRBAFuU4AeQhmHj2owV6cY1N4rzVNeyxFHb/E6e9Wk7BiDUVPruYb/9G8f+11KF+e47V6crnsExTt1ZwqTwQws9U+RnaA69fh08OdWFKyE0ePKSJOXuXSop1c33+FJ9sYSZoa/AbPndzFrXE+bKcOx33qcrVCC7p/25wqVYwmGk5OxpKaa9dg4kRYvtz4OOjVCwYOBEfHbHpzMolKZb5Zu1WrVi3ZtWuXrcPQsksaycmtC+EEbTlLyJ5zxBw5C2fP4n7tHP5hZymUeA4f7k7Swh19CfYqQXTe4piLlcCtfAn8qhfHv2YJHEoUA0/PdK+ZZf2vM3rNxETjrpQsUUv+WIKCkEuXcQgPu+/Q6wTwCjP4gVcI4KZd9jFXSu0WkVq2jiMz6HuYZq/iok24uDuiEuK5UbgaATeMvnLXCeBg3pZcbdeX535oeV+iY/bzx+FWCo3w/fyML5H3kCNHCV66nai1O3Dbt52AawdZ7dmFwtsXUqECHGo+iB83BXIzsC7OtatToborlStDkybGd93wcKhVC9q2hX79IDgYxo6FMmXg+++z4I3JoLTuXzoJ06z3kKVSVomPN84REXH3z/btiSAXZyhJBN44k4A34eTjGv7c/U8fpXJx1b0E4f4lSChUHMfSJfCuXJyAOiXwqVoc5edrXSy2SMKy8r1NLirKSMzK3BmSLw4XrpKfQXzJIp7BSRIz73qZRCdhmma9Gzdg/nyjc2LLllCvXsq3NVNULCd/2krIwjX4717N+cjcFD20jPLl4dxTb3I4shi5u7Wkas9KuOfKwsEUoqLg1i0oVAgiIogLrIDr9UsAxOPMXqrzKf/ju5Bu+PkKL74IPvO+oab5PypzkBrswQHj3mzy8cPxVlqT9WS/tO5f6daaWOZ0bAgUBGKAQ8AuETFnapSa/UspSbi9/uDB+xOolJKqlNZFREBcXKqX9SKKqhwkFlcuU4gQ/LlBANKuA24VSpC7RnEKNChBrqK5KZUZrT69vFJPiLJKZiZaacmVC0qXvmuVK/EU5hJ9+ZHhfMJn2ROJpmlZIMHbn4CIUN64veJ944f4+cHNYBISFS4uENRzGH5zp1OOWBJx5IBHPeLrNUnq2FP8z6kUz66gc+UyFgAvL1yvXTRK8nfswGXHDqpv3sG4J0z4+QEHDzH1txbsNNdkKw34jeco3qcF381y5pln4I9FOavlf6olYUqp5sA7gD+wF7gOuGFMN1QKWAh8KiLZ2opXf4u0oYdNcDw8jJIeLy/jZ/LHXl4kuHtzLtSboxe92HfGmwPnvLhl9ibOxZvS8Qepxj7qs42q7MeFZKU0OawU166k8rt8ky+o/cubvPBCNseTDl0Spmnpi48HF1fFhvVC06aACKdWnmbm82t4KnQWxR0uMHfMCd5634uoL75n6w+HcWnbkvKvNiFvYA5pHX/sGLuem0zN/bOMAWJFmMPzlP1vDj17wvETyu4+Gx62JKwd8MrtCbbvOaET0AFoBfyRKVFq9i0yMu3tCxbcl1zh7W20s7qndWV8POzYAWvXGsu2bcZYWk5OULcutOgJLVoYRehu7nWz8EU9xlIo7TOjmMJQmvdrQIUKtalRw0axaZr2ULZuNQbnbNoUYhct42b3gQQmnmcicJmCHCvWhuqBEYAXuYa8QqshNg334ZQrR54/Z6JKzOLvX27RastYGi7YxKffxuDv727r6B6YbhOmpc1sNgaUeucdoy1RatL4O0pMhD17jIRr3TrYtMkYpFQpqFnTSLhatICGDe+0jU+SXW2lNAgJwVS1OpevONC+wF7W7fUlTx5bB2XQJWGaljZTWCQr+87n8qJtvCI/wMmTnOj0P4Iqt+FIgScY8GU5VA77vE+TUlStIly/FE90vBNPtHLg228hb75HpCRMKfV2WicVEd105FG3fTu8+Sbs3Gl0RUkrCUvGbIZDh+6UdG3YcCdfqlQJXnnFSLqaNDE6z6RJJ1rZx98fx99/o3DjJowP6kf3bgtZ+a9Ks5u4pmk2JELI8h1cHPMDgbt/o51EMYve/P03dOxYmjJHl1AoCt5qBANtHWsW2LcPrlxxwcMDLu69yVcDr/E+DuSkUSrSur3eboVcFqgNLLE87wjszMqgNBu7dMko+ZozBwoUgNmz4cUXwdc3xVIp8fTixPE7JV3r1sHNm8a20qWhRw9o3hyaNTMGDNXsWP36OHw8kS7DhrFm3VcMH/4Gn+mvW5pml67XakfePStwxYMNBZ7DbWA/XnyvCQX6/EirVsbt+48/4MkngX22jjaT+fmhHBQFLU8FX56iOLPdB9LPpoE9IBFJcwE2Al7JnnsBG9M7LquWmjVripZFoqJExo0T8fAQcXUVGTlSJCIiafOvvxqbjLJeY3F0FPHzu/O8cGGRXr1EfvpJ5MIF270ULQNMJpH27SXBwUVqsEt+/dXWAYlg9Mi2yT0nsxd9D9MeiskkUYtXypEG/WTpn/EiIhIxdabMbfG9HN0Zfme/5Dfk5Iufn40Czx7mX34VARngO1ciI20dzd3Sun+l2yZMKXUcqCIicZbnrsABESmbhblhqnR7iiwgYgwqM3w4XLwIzz4LkyZBiRJ37VakiFFIdi8PD/j8c6OKsVQpPdn0IyE4GKlWjaCbLtSQPazY5kP16rYLR7cJ0x5bFy5w7ZMfcfrlR3JHnCcYfz7vvIEP/6xk68jsi9lMZNkaXD8Vzm9jjjFyrIutI0qS1v3LmtHXfgZ2KqXGKqXGAjuAnzIxPs2Wdu2Cxo2NOsPcuWH9eqOnoyUBi4+HP/+Ep55KOQEDo5F9//4QGKgTsEdG7tyo+fMpmHCeHxxeoctTklTFrD1aRIREc2KKi2Zj+/ZhLlacfF+PZW9kGb5q/BunNgTxwWKdgN3HwQHPaR9TkrOETPyOa9dsHZB10m1yKyITlFIrgEaWVX1EZG/WhqVluatXYeRIo71XQIAx10OfPkkTb+3bZ2yaM8do35U/v9FRMaV28kWLZmfgWrZp0AA1YQId33mHf4Oa0737AFauTHs+Ny3nmbx1MiNWj8BR3d2c2SQmlj6/lHal22X6NTec28D+a/vvW+/k4ESvqr3I5ZIr06+ZIxw5QvjnM9l10odaS97Hu0oVDvb8hO1FuvLM/4rT0k56K9ut1q2JrtucHomH7u9pb6esvZ3uA67c3l8pVVRSGD9MywFiY+GLL2DCBGOU+qFDYdQo8PHh+nUj6Zo9Gw4cABcX6NwZevc2GnbOn2+UeEVH3zmdh4dxKu0RNWwYbNjAF6veotbaeowYUZ1PP7V1UFpm6ly2M5O3Tub04NN4uxoDdh65cYTmPzWnSbEmWXLN+Yfns/rMatoEtkladzP6Jn8c/YNnKzybJUnY9J3TuRB2/8eWt6s3o5uMzvTrWS0yEvNvvxP22Q/4Hd2GO06cpg/RG6FDBweq/jqMqraLLmdRCo/1y6jp5mbrSKxmTZuwQcAY4BpgAhQgIlIl68O7n25P8ZBEYPFiI+k6e9bIrqZMIb5oIP/8Az/9BMuWGWN61aljzEj/3HPg73/3aebMMXK2CxeMErAJE6Bnz6wLu/Bnhbkccfm+9YW8CnHp7VTqR7XMdeMGVK/O9Uh3AsN28+0cb55/PntD0G3CstaLi1+kXO5yjGoyivO3ztN3SV/K5S5Hvxr9cHZwxtnRmUD/QJwcnIiMjyQuMQ4XRxecHZ1xdnDG0eHBBgU4E3qG2t/X5uSgk/i7GzeZEatGEJUQxfR207PiJdL619aYzCaeLPVk0rqdl3dy+MZhjgw8gsqKthT+/sYEjvfy9U1aH9f7VVx/msFRyvFbrpdxfflFer6Vl2LFMj+cx8m6b46xZl9uPvwuwNahZGwCb6XUKaCuiARnRXAPyh5vYHZv/34YMsRo71WxIvL5F+zN3ZLZs2HuXGMG+gIFjFEoevWCChVsHG8yA5cOZObemcSb4pPWuTi68HL1l/mq/Vc2jOwxs2kT0rw5a/270jFiLlu2qmxtqK+TsKx1/OZxGv3YiNODTzN67Wim7Zx23z7Bw4Pxd/fnndXv8MmWT+7aplDEjo7FxdGFEatGMHv/7KTkzdnBmVwuudj7qtGKZcLGCaw6s4qTISfxcPKgYt6KeLp4svzUcva/tp9Vp1dx7OYx3JzccHNyw9XJlQCPAF6s+iIAWy5sISwuLGm7m5Mb3q7eBPoHAhAeF46TgxOujq53JYebL2zmxcUvcuKNEzg7OiMiNJzVkEF1BtGjco9Mf09jEmKo+6YHh91K4ZkLXF3B7YaJbvsjeGNXNLvf3MwzE2rAsWN8NjqEAk/X5+lnVNLcjVoG3LxJYoHCfJP4CtU3TaNRo/QPyUoZmsAbuAiEZW5IWra4cQNGj4YffgA/P8ImfsVMh/78+LYThw4ZN4WnnjISr1atbN/WJ94Uz6XwS1wIu5C0hMeF39dA2GQ2kdczL38d+4sSfiUo4VsCL9csnFxbg8aNUePH88SoUQzybU6XLv3ZtQu7GVFfy5iyecrSulRrpu2YxtlbZ+lXvR/PlH+GeFM8CeYEEkwJeLoYjWw6le1EQa+CxjZTQtJ2JwfjBlK9QHXC4sLubDMnoLhTyqSUQhDy5crHgWsHcHVyJSw2jB6VelDYuzArT6/kr+N/EZsYm3RMaf/SSUnY6HWjWX9u/V3xV8tfLSnJa/lzS/4L+g8w2pi5ObnRtFhT/nn+HwL9A6nzfR2cHJ1INCdyKuQUK06tIDQ2lIG1jeFMfzv0Gw7KAR9XH3zcfPBx9SFvrrzk9sj9QO+pu7M7/jHwdIWX+LRyNbynfIfX8lU4mhLYTl1mTY+m3WhwL1eOtxc+0Km19OTJg/TqzWszv6XHoCE03FPKbjuNWVMSNhNjwNalQNzt9WKjEfPt8Vuk3YmPh+nTYfx4JCqKU61f572EMSxc44fJZMzP2Ls3dO9uxYj1yWSkalBECI4JvivBune5GnkV4e6/x7y58iIi3Iy+iSAoFE4OTiSYE+7aL8AjgBJ+JSjpV5KSviWTHpfwLUERnyJJHxBaBpjN0LYt5vUbqCs78GlSlRUrsid51yVhWe+d1e8wZesU/N39OfPmmaSkKyu9vORlnBycWHBkAftf209h78JJ20SEeFM8sYmxJJoTk5Kgk8EnCYkJIc4UR2xiLLGJsXg4e9CyZEsA5h6cy6XwS8QmxhKXaOxTzLcYg+sOZvOFzbSb046GRRqy5eIWfN18AWhWvBk/d/kZgDyT8hAcc3fFT8/KPfn16V8BKPp5UZwcnJISNB83HzqX7Uzf6n0xi5lPt35qtK2L8+HWiB7M6FCAtZ9H4X3DkdnSix9zN+Wl8JW8GvwNXvq7Y9a5coWE4oEsiO+M8+9z6drVdqFktCTsgmVxsSyaPUhtTkV3d6RIEdSJExwu2pZ+fMaOpeUoWNBoY92rF5Qr93CX7FS2U4pVg53LdiY2Mfa+Uqx7l5jEmLvO5+bkRlGfohT1KUrbwLZJj28vhb0L4+7szpWIK5T8siSxibG4OblxevBpXBxdOBN6hrO3zho/Q89y5tYZdl7eycIjC+8qPXNUjhTzLUYJ3zuJWUm/ksZjvxLkds99V3sQ3Q4tFQ4O8MsvOFSrxmrpRuE1u3jnHS+mTLF1YFpm2H5pO75uvrzf9P1sScAARjYeSdnpZXm15qt3JWBglJi5Orni6nR3/Vzp3KXTPOfzlVNvsNioaCPqFq6Ln7sfhbwLcWjAofvas+19dS9hcWGExYYl/bwdm4jQqWwnbsXeStp27tY5rkUa4yFExkcyfPXwOydrBcRd4X9vNMZr919cq/s1Rfz/Zuhrs8Drm/TeHi0jChTA8e0hPP/xR3R6exidO1fHxQ4zGKsn8FZKeQKISGSWRpQOe/0Wme1SKFuNwwVX4jnjUpbX4z9nnWtbunQxSr1atkwafeKhXYm4QompJYgzJRWIolDk8cjDjegb9+2f3zP/naTKu+h9SVYejzxWN4YduHQg3+3+jtdqvpZuW7BEcyKXwi8ZiVnombuStTOhZ+6L1cvFKykhK+lbkp1BO9l+aftdiZxuh5bMhg3QogX/BfagzolfmDNHZXlDfVuXhCmlimCMmZgPEGCGiExVSvkD84HiwDmgm4ik0BL7Dnu8h92KvUWeSXkY3nA4Hz3xUbZe+7dDv9GiRAvy5sqbLdfbfGEzjX9szNyn52Z6WzAxmYj66XuujxtLbMw1xrkO5nqvQpzOPZ01L62hxnc1iEyIpNF5GDbiLzqU6YCDsma4Tu2hhIURV6oCuzuNo94PL+Ngo7c6ow3zKwG/ALf7yd0EXhKRw5kapZXs8QZmE5bkJRYXLlKEkpwlHG/GMpY9dQfyQh9nunc3OuFkxJWIK6w7t47159az7tw6ToWcumt7Ee8itAlsQxHvIveVYt37DTajcTT6sRFb+m4hv2f+DJ0rMj6Ss6Fn70rMkpeo3VtiB+Du5M6ZN89k+NqPjA8+gPff55PSPzDuUj+2boVq1bLucnaQhBUACojIHqWUF7AbeAroDYSIyMdKqXcAPxEZkda57PEe9vvh3+m+sDub+2ymYdGGtg4ny/1z4h/aBrZ94F6daVq7ltg3/ofb0X1spy6T8n5Kl8ifeCH6e5r3hgs+0O0QFIiEzxs6cN7bTNncZflf/f/Rp3of3WQiq8TGgo2HrMhoErYVGCUi6yzPmwEfiUiDTI7TKvZ4A8tuEhHJae+qJOJMGU4gKH6lJxcpQlcWUlaOP/S5r0ddNxKus+tYd24dx4ONc/m4+tC0eFNq5K/BR5s/It4U/0gmJiLCtahrDFw6kCXHl2ASEwBV8lZhS78t2VZNY/dMJmjdGtmyhSd9dnLKvTK7dhmTLmQFWydh91JK/QVMtyzNROSKJVFbn96UbvZ4D+v9Z2/+PvE314dez9zE5HGRkEB04TJcvy6Mc/uYsu93580hCnd3oynll0s2MPrg06xsf5KGNfxJNCey8MhCJm+dTHRCNIcHHsZBOZBgSsDZ0dnWr+aR9NvgrZzJW4+Ro7O/OCyjSdh+Eama3rrsYo83sGxhNnNjwXqufvITJff9QS6J4jQl2UN18nGNhmzFEbOxr5VVzGAMkLjh3AbWnTOSriM3jgBGFV3jYo1pXrw5zYs3p1r+akk35wepGsypkrdDc1SOmMREUZ+ifN3ua9qXaW/r8OzDtWtQrRoxbr4UDvqP6o09s6yhvj0lYUqp4sBGoBJwQUR8LesVEHr7+T3H9Af6AxQtWrTm+fPnsytcq8zeN5vrUdcZ3nB4+jtrhhs3SJzyBedeGE1gZXei/jvCh3NL8ta7buRNoWY1JiEGd2f3u9aJCNejrpPPMx+R8ZFU+KoCXcp14a36b1Hct3j2vI7HwYoV0LYtPZ3mM/F0t2yf5SXN+1dqM3vfXoDFwHsYbR6KA6OBxekdl1VLzZo105qs/JETtfe4HOg0Sq66FRUBuYW3/JX/FVlCewnDU8RIue5e0hASHSKLjy6WN5e/KVW+qSKMRRiL5JqQS1r/0lombpoo2y9ulwRTQqrnCAoPkpJTS8qViCuZ/XLtyoB/BojDOAcZ+M9A2Xx+s1T4qoIwFum2oNsj/9qttmaNiFJyssFLAiJDh2bNZYBdYqN7TvIF8MSoinza8vzWPdtD0zvH43YPe+TExIj5k0kS5+4tCThKv8IrJDEx46e9GnFVXlr8kjiNdxLHcY7y3MLnZHfQ7oyfWBNJTJS4spXkpAqU3j3js/3yad2/rLnp+AFfAnssN58vMNo96CQsi5huhsjxt76RkwH1RUAScZB17m1kwTPz5PShaBERiXfzSjEBi3fzuutct2Juyd/H/5a3V7wt1b+tLmqsEsYibh+6yRM/PSEfbvhQtlzYIvGJ2f+Hae/uTTbjEuPkgw0fiMsHLuL7sa98v/t7MZlNNo7SDowZIwLyc4sfBUTmzs38S9hDEgY4AyuBt5OtO47RVgygAHA8vfPY2z1s/9X9cj3yuq3DsH9ms8j8+RJToLgIyN+0l6fLHZY1azL3MhfDLsrQlUPF6yMvYSxy6NqhzL3A4+rvv0VABvC17NmTvZdO6/5lde9Ie/HIVkcmJnJl9kqCP/+J0keW4EocRxwqcqhmL4q+05M6TxW8q2dHasMoFPAswMxOM5Ma0+++shuzmHF1dKV+kfo0L96cZsWbUbdQ3UxtOP84OX7zOP3/6c/G8xtpUqwJ33X4jnJ5HnLcj0eByQStWiHbt9Or/H8sPFox0xvq27o60lLV+BNGI/whydZPBoLlTsN8fxFJs07P3u5htWbUws3Jjc19N9s6FPsmwq1KDTl/JIqJuT+l7actefFFsqzHXVhsGEuOL0kapHbipokU8i7Ec5Wew8XRDsdasHciJDZsSvD2E/Rrcop/1mdf+96MtglbBXQVkVuW537AbyLSOrMDtYa93cAyKnLrAc6O/YmC6+eQO+EaN8nNpiLP4/pKL5q+VYNcnikP4ZDSdD63R6UWBGcHZ+oWrpvUpqte4Xr3tUfQHp5ZzPy490eGrhpKdEI0oxuPZkSjEY/vzfHqVahalUTfPJSP2Emia65MbahvB0lYI2ATcBBuN75kJLAD+B0oCpzHGKIiJK1z2dM97ErEFQp+VpAJLSYwsvFIW4djf86dI+7dsezp/gn1n8qHKega3/2Rh979HPHwyL4wTGYT9WbWY1fQLgp5FWJIvSH0r9k/acJ1zUrbthHbpjNHJ/1D9VfrZNtlM9ombK8167Jrsbei/IeRGHRNjr76uZz1qyYCEoezrPTsIgte+FMunIpL81iT2SS7Lu+Sd1e/Kw7jHJLadDEWcRjrIIOXD5ZVp1dJVHxUNr2ax9uViCvSfUF3YSxS4asKsvn8ZluHZDurVokoJdc79BEXF5GWLUUSUm9a+ECwg+rIzFrs6R42a88sYSyy78o+W4diX27dkoT/DZcEJ1eJwl1e8FkisbG2DclsNsuyE8uk+ezmwljEe6K3LDqyyLZB5UQxMdl+ybTuX9b0YzIrpYqKyAVLRlcMyFl1mPYgLo5L3/xNxPSfKH16OeUwscexFjsaTSNw9HO0ejJPqnNbnbt1jlWnV7H67GrWnFmTNKWGv7s/t2JvYRYzzg7OvFLjFaa2mZqNL0rL75mf3579jRervMjAZQNp9GMjXqv5Gh+3/BgfNx9bh5e9WraEUaMI+PBD/u3XnGYzX+Tdd2HyZFsHpqVm6cmlFPYuTJV8VWwdit2Qb74lfsR7OEcE8zMvsarJh7wzvbDNJ9ZWStG2dFvalm7L7qDdTN46mUp5KwFw5MYRTGYT3q7eDFk5BLOY7zu+Y5mOvFzj5ewO2/64uREbmci03rvJ27EuvXrZNhxrqiPbADOADYACGgP9RWRl1od3P3sqyr9LKtMIhbnn50KtLhTd+hs+plAuU5BtJV/A6/WXaDqwYopjyN2KvcW6s+tYdWYVq86sShogtaBXQVqVbEXLki1pWbIlIpI0jMKjOGZXThMZH8n7695n6o6p5MuVj+ntptOlXBerZwV4JCQmGsnYf/8xvtMuxvxWnnnz4LnnMnZaW1dHZiZ7uYclmBLIPSk3PSr14LuO39k6HLtxs/XzHPz3Ct+U+pR+X9WgtU0a3jyYbgu6seDIAlqWbMnWi1v5sPmHlPQrmbR9+OrhDK4zmNfrvG7DKO2HjBxFwsdTaBxwnLVnipMrV9ZeL0NtwiwnyAPUszzdLiI3MzG+B2LNDazwUAcue93/ugpFKC5Nuf8bQqZI9kGbgCOnKI034RQiiBjcWOfbhZiuvWg4piX5C909GGKCKYHtl7YnJV07L+/ELGZyOeeiWfFmtCrZilalWlE+T/n7PtAfhzG7cppdQbt45e9X2Hd1H53LdmZ6u+n3zYv3SAsKgmrVMOfNx5PeO9i6z4Nt26BqBkYW1ElY1jgbehZB7vrAfpSJvz8q9P5ZpWIcPVn7wRbav1sFoqNZts6dJ1urbJmcPjOExITwzX/f8OXOL7kedZ087nmY2Xkmncp24r/L/9FlfhdODT6Fm5NtR463G5cuYSpVmjnxXbnwwc+MHp21l8tow3wF9ARKish4pVRRIL+I7Mz8UNNnzQ1sYAfFzOoQn+wfyCURXt4DXy1N4/UmJEBUFERHY4qIJi40mtiQaBJuRRF/K5rEcMsSEY05IhqJjEKioiE6GjauxwHBhThKcQYHhO3U5RzFqLBxBlUa36maEhGO3jyaVMW4/tx6IuMjcVAO1C5YOynpqle4XroNvTNzOh8t8ySYEvhi+xeMWT8GJwcnPnriIwbUGvD4jEa+ciW0aUP08y9TZsP3ODuToYb6OgnTMio4GHLnUTRvJrRoAac3BdF262i6Rs0mBH8Gecziuyud8M7Bbd1jE2P55r9vGLpqKG/UfoOpbafSYW4H2ga21aVg93rnHcyfTKKB+z6WnKuS4gC7mSWjSdg3GL2BWohIeUvvyH9FpHbmh5o+a25gV7wUpQc4UPtMXrxiHPGPdiR3lANlbiryuOchT0QCeSLj8YmJwc0Ug6spGjdzNM4kpnnelMTgRjQeSUs4nizLU5Kf6wVzpvomCkUlculT4VrkNVafWc2qM6tYfWZ10vASgf6BRtJVshXNijfDz93vod4XzT6dCT3Da/+8xqozq6hXuB4zOsygcr7Ktg4re4wcCRMncmrcHCpOeJ4mTWD58ocbUV8nYZlv8PLBdCzTkValWtk6lGzx+uvw1dcKMQvmqdMwj3gHc3wiXzKYs5Rg5MWBFH5ECqzfW/sel8IvMbD2QNrPbc/OV3bqEfjvFRqKqXhJVoY3YNnrS5k+Pesuldb9y5rbYV0RqaGU2gsgIqFKKbvuh18gEnocEubUuErMfdNwnU165JzogFecG17x7ngmFsDT5ImnyRsvvPF08MPbyR9vl9z4uAXg45EXf6985PYtiKd/btz8PXD1dcfD0wF3dxj/kic/1QwiwcWMMa4tOJkgTxRU/bYqB64dAIzG9E+UeCKptEv/YzzaSvqVZOULK5l7cC5DVg6hxowaDG8wnNFNRj/6Q4aMHw+bNhE4+VXmjKlJ11FlGTkSJk2ydWDa6ZDTTNs5jVJ+pR79JMxsht27KfHTUsLxxFtB+KELrE5ozx+1P2bRvpLEJygoPNDWkWaat+q/RZlpZTh4/SCxibG0n9uedb3WkTdXFhb35DR+fjiOHkn9L2ZTvt8twNcmYVhTErYDaAD8Z0nGAjBKwqpnR4D3supbpFJc8YQSAzyIc4/BzSQsm2P0KghZ9gchMSEERwcbP2OMn8kfB0cHE2eKS/X0bk5u+Lv7k9s9t/HTIzdu8xcxvyKY7qltckmERqVbJDWor56/+uNTJaXd5Wb0TYb+O5Sf9v9EoH8g33X4jhYlWtg6rKx16ZIxamuhQrxZdztffu9OnjxG1VDRojBhAvTsmf5pdElY5pq2YxqDVwzm5KCTBPoH2jSWLBEXB2vXIn/+RcKiv3G5GYQJB15nOt/KAEhM5PBxJwoXhvz5ISZWPdCcuznB++veZ9beWfzY+Uc6/9aZQP9A1vZaSx6PPLYOzX7Ex4Ojo7FkoYxWR/YEugM1MEaMfhYYLSILMjtQa1ibhAEMbA/f1YTXdsFXyyzbrPxHi06IvpOcpZSwRQcTEpvs8dkjXPMQzJbRkx3M0O4kzF/hiUfI/b0mtcfXmjNrePWfVzkdepo+1fowudVkcntk0qim9mj5cmjXjuPNXqXCxm8xJ+sb4+EBM2akn4jpJCxztfm1DWdvneX4G8dtGkemCg422vXmzw8bNkCzZkSpXCyXNvzj0Jl9BdvxxqUR9DX9kDTK/XvvwbFjsGDho5eExSXGERQRRAm/Eqw5s4YO8zpQLk851ry0Bn93f1uHZ1eungjng1cu0GNCJRo1yvzzZ0bvyHLAExiFSWtE5Gjmhmg9q25gluEirnhCo76wZRbkjwS8vCA8PMtiCwoPouSXJYkzxekhI7Q0xSTEMH7DeCZvnYy/uz+J5kRCY+/vtVXIqxCX3r5kgwgz2YgRMGkS3fmN3+l+16ZixeDcubQP10lY5omKjyL3pNwMrD2Qz1p/ZrM4MsWZM/DXX5gW/YXaupmV5d6kwdZP8cmVyD9vrmJOUHM6POtG+/aW6YVy++OdeP//GX5+EJLmRAc53spTK+n0WydGNBzB+ObjbR2OXTE1bsrZ7dfoXfMQm7Y5pTpm58NK6/6V7qxXSqlSwFkR+Qo4BLRSSvlmboiZLDwcRCgQIZyeKuSPsExvnYUJGEBB74L0rd4XB+VAn2p9dAKmpcrd2Z2JLSey59U9lPArQWhsaNK0U7e5OLrQuWxnG0WYyT78kEQcmM9z7KUqT7GYEPwQFAfO5+DuaDnQxfCLBPoH0r50e1uHkiGJDZtAqVLw9tsc3RLMR+Z3mHjpJY4eBZyc6PBVW+YtdqNnT/D1Nb6be8aF8O9KYcpk4c/FQkK85bPhEU/AAFoHtmZr36283/R9W4didxyHvk1g4nHK7/iRhQuz99rWVEfuA2oBxYGlwBKgooi0y+rgUmLrb5Hp0UNGaA/KZDYxcfNE3lv33l3rH7nS1LS+XqZ/H9IlYZlMRHLGQMKxsbB2Lfz1F3EHjnPx53UEllZcf2siH33hzn/5O1Hj2ZJ06QJNmjxc79vHTVBEECPXjGR6u+l4umTfRNZ2SwRp2Igb/52lRZFT7DnmgUsmdj/MUEkYYBaRROBpYLqIDAMKZF54j5YCXgU4Pfj0o/PBqWU5RwdHRjcZzYtVXkwqDXN2cNalqVqmExHiTfEAtk/A/P2NxPzexd/SXmnjRnjmGcy580D79kT9MJcl2wOYMDoGgLyfv0vvvUPYHFSSadOgRQudgFlrz5U9/HrgV9rPbU9UfJStw7E9pVCTPiFv4hU6nP2SGTOy79LWJGEJSqkewEvAP5Z19w38oGlaxnzS8hOcHY1/LbOYea/pe+kcoWkP5uD1g+SZlIfVZ1bbNA4RIDSUvAHCSy8KTRoLTQue5OqwT+H2iPZBQdxcup3vol+kDct5svpNTn20gHfGeySdp1q1tAtYtZR1KNOBX5/+lc0XNtPpt05EJ0TbOiTba9QI6dCBl2vt44UXsu+y1nxv6AO8BkwQkbNKqRLAL+kdpJSaBXQArotIpTT2qw1sA54TkWyujdU0+1HAqwD9qvfjm13fYBITh68f1iVhWqZaemIpEfERVAyoaNM4fvsNegDnJi/A49BOZPcyVNARmAzjeJ9RieD07LMsCutOYrzi+6egSBGbhvzIea7ScySaE3lp8Us89dtTLOmx5LGf1kj9/juB7tk7fmO6SZiIHAEGJ3t+FvjEinPPBqYDP6e2g1LK0XKuf604n6Y98t5r8h7LTy3HQTnwyt+vcGDAAd1mQ8s0S08upUaBGhTwysYWJSJw+jTs2QO7d0O5csxd1IcegHuf7iQqJ7Y6NOYP+vM3najMAUJCIG9eJ/q/mn1hPo5eqPICCaYEPt/+ORFxEY99EoYlATu89BzDR7vwzV8FKVo0ay9pTXXkQxGRjUB6XU4GAX8A17MqDk3LSQp4FeDsm2f56amfOHfrHKPWjLJ1SJnHy+vB1muZKjg6mG2XtmVtr0izGW7cuPP86acRXz8oXRq6dydhyhfMeXs3lyyjrmz/dj8l80Qwo/samix8E/cKJfiLp7J0Hj/tbn2q92FX/10E5AogwZSQ1GbwsRURQfkeVel+YFSWT+wNWZiEpUcpVQjoAnxjqxg0zV41KtqI12u/zrSd09h8YbOtw8kclqFj7luyeOgYzfDv6X8xizlzk7AzZ2DuXPjf/6BZM8y+foTXbcn+/cbmEPeCfBveg5f5nursoVzBCBY0nU6TJsb2Ov0qc+GaK7/+CgEB+k/BVlwcXRARnvvjOXr80YMEU4KtQ7IdLy8c+r/CC/Ize385xN69WXu5NJMwpZSjUmpKFl37C2CEiJjT21Ep1V8ptUsptetG8m9ZmvYIm9hyIkV9itJvST9iEmJsHY6Ww1XLX40xTcdQu1Dt+7ZJej0VTSY4ehR+/RVGjUoaUsQ8ajT07En8F1+xd2sM30b0ZNDZt/n+e+Mw75+mEzbxG7qtfJl/r1fn9EUX/vwTPv4Ywp38cHS6c60mTRUXLylj4FQt2ymlaFqsKYuOLuKFxS+QaE60dUi28+67KE9PJjuPZNiwrJ1MwZpxwraLSL2HOrlSxYF/UmqYr5Q6C0mjU+YBooH+IvJnWue0lzF2NC07rD6zmla/tGJEwxF83PJjW4djM3qcsKyTmAhOzooO7YWBAyEqwsTkyYqatR345luFNGqE7NmLQ7QxlEGsgzujep7n058D4NAh2jxpJsinPFVqOlOjBtSoAdWrg49P2tdNSIA//zRmGMqbF3r1MmZP0Gzr062fMnTVUJ6v/Dw/P/Xz4zvX8cSJMHIkjdjEuNWNeOKJhz9VWvcva3pH7lVKLQEWAEkDiojIoocPCUSkRLIAZ2Mka39m5Jya9qhpWbIlL1d/mclbJ/NM+WdSLMXQtPScCjnF2dCzNCveLGkYlNv+/NOYEHjJEmDwIJg1i7wfbKD75Fp8Axw+YGZtdF92U5P9jjVxqlSOJwtbPjoqVWLJOR5qYEtnZ+ja1Vg0+/G/Bv8jwZzAu2vexc/Nj+ntpts6JNt4803k22/5rOEuqjfJggklLaxJwtyAYKBFsnUCpJmEKaXmAc2APEqpS8AYLOOLici3DxOspj2Opjw5hWWnltF3SV9299+Ni2MmDuWsPRZ+3Psjn2z5hJvDb+Lr6HvXtk2bjCRMVq3G8avpLOQZPnzPmzbdgJ9g/9dbcIuCQTWgUiVwu6cDXWaOLK7Zh3cavYOjcqRp8aa2DsV2PDxQx45Rx9JjUiRrxqSzZoiKPg9zYhHp8QD79n6Ya2ja48DHzYfvOnxHx3kd+WjTR4xtNtbWIWk5zNKTS2lYtCG+br73bbvdE/FW/2GEU5yjo+bwczdXBg0y1vfsmX1xavZjWMNhSY9XnV5Fy5ItbT/LQnazJGDrJ//HsLnVWb/ZiVy5MvcS1kzgXUYptUYpdcjyvIpSKhs6bmqadluHMh3oWbknEzZN4MC1A7YOR8tBLodfZv+1/an2inzpJYjDhdwX9vFjqQmMHOfKf//BuXPZG6dmn9afW8+Tvz7J4OWDSa8N+SNpyxaaDa9D5X0/88UXmX96a4ao+B54F0gAEJEDwHOZH4qmaWmZ2mYq/u7+9P2r7+Pdc0l7IMtOLgNINQkrUgQuupTiX1rR5vQ0HJ0U/V5WnL+geypq0LRYU96u9zbT/5vO//793+OXiDVoAHXqMMntfaZ+HMP1TB7V1JokzENEdt6zTn8CaFo2y+2Rm+ltp7P7ym4+3fqprcPRcoj159dT1KcoFQIqpLpPYNwRGkX9i/uebRw5LIjZMoZbSHrjbWuPOqUUU56cwuA6g/l8++e8s/qdxysRUwo++YQ8sZfpEzWdAQPgs89g/nyIjc346a1Jwm4qpUphNMZHKfUscCXjl9Y07UE9W+FZni7/NGPWj+H4zeO2DkfLAX5+6mc29N6Qcnue4GCODf6ahOgEPDyMoSUqVNCTYmt3U0rxRZsvGFBrAJO2TmLn5XvLZR5xzZphbt2Wkeoj1i4K5dAhmDULypaFY8cydmprkrDXge+Ackqpy8AQjAm9NU3LZkopvmr3FR7OHvRd0heT2WTrkB4LSqlZSqnrt9vGWtZVU0ptV0rtswwmXceWMabG0cGR4r7FU9x2480PKD1tEDPfOZm9QWk5jlKK6e2ms6H3BuoWrmvrcLLdnEoTwcGBZR/tZ9YsWLkS3n0XevfO2HnTTcJE5IyItAQCgHIi0khEzmfsspqmPaz8nvmZ2mYqWy9u5av/vrJ1OI+L2UCbe9ZNAsaJSDXgfctzu/Lx5o8ZsWpEitvk1Gl8537NHNe+dB+XelWlpt3moBxoUsyYc2rd2XVM2ZpVE+rYn6+3VMXDzUz9kc2TZnl4bYBi+w6Fydf/oc9rTe/I3EqpL4FNwHql1FSlVO6HvqKmaRn2QpUXaBvYlnfXvMuZ0DO2DueRJyIbgXsbSAngbXnsAwRla1DpEBF+2PMDh24cSnH71b4jiRdn4kaO1+3vtQc29+Bchq0a9tgkYiYTOEfeMh7s2AEimE1CwQKCY1joQ5/XmsFafwM2As9YnvcE5gMtH/qqmqZliFKK7zp8R8WvK/LykpdZ89Kax28MH9sbAqy0zK/rADSwbTh3OxlyktOhp3m7/tv3bUvcsoMCm35nmt/7vPpOARtEp+V033T4hoj4CIatGsapkFM8Ve6p+/apVbAWeTzyZH9wWaBLF+A/ME+egsPId+HkSebvKGmMs5eBVvLWJGEFROSDZM8/VEp1f/hLapp2r0Qff5zCU/g25eeXag+1Ij5FmPLkFF7951W+3/M9/Wv2z+IotXsMAN4SkT+UUt2AmaTy5VQp1R/oD1C0aNFsCW7piaUAtCvd7r5tISFwyqs1xaYN1SPeaw/FycGJX7r8wtlbZ/lu93dsPL+Roj53/rY3nt/Il22/5OUaL9swyszz5pvASHhyXl9e7lGBv0eXYPUaWLoUyMBsctY0zP9XKfWcUsrBsnQDVj78JTVNS+7AAXAKD2XGd8LVK8K6tUKVysKkTwRC0y7mfqXGK7Qo0YKh/w7lYtjFbIpYs+jFnenbFgCpNswXkRkiUktEagUEBGRLcEtPLqVCQIUUG+Xn7ViXerdW0PF5r2yJRXs0OTs6s+alNbg7uVPCtwTLey5nxQsr+KTlJ/i4+fB85edtHWKm8fAwfr75QR4OFO1Ag4aKY8egVorTclvPmiTsFWAuEGdZfgNeVUpFKKXCM3Z5TdMmWZpzv9w1DPOqNdT0OMqff5iS1qdFKcX3Hb/HJCZeW/ra4zV+j+0FAbcn12sB2E0XQxGhpF9JXqj8wt0bEhI43vsjQk+H4OCgh6LQMs7TxZNPn/yUeFN8UpOI8RvHM7zBcDycPWwcXebr2BE++ghefz1zxjK2pnekl4g4iIizZXGwrPMSEe/0jtc0LWXxF69x4qOFHN10E4CE72dT8KWWeNerQL6yPiwJbcQGmrBxcXCa5ynpV5KPWnzEspPL+PXAr9kR+mNHKTUP2AaUVUpdUkr1w/iC+qlSaj/wEZbqRnuglGJGxxm82/jdu9aHTJ5J2Z9GMWfAJhtFpj2K+tXox8mQk/y490dqzajFpvObeLXWq7YOK/P5+SX1jLxryUA2Zk2bME3TMkN4OMcmLSFy+UbyHttI0ejjlAFqeM0DwLXns2wML0/4ias47tuN98ndVGU/Mw970KQLRLz1Psen/8ulgBqEl6mJc50aBDSrSI16LrxR5w1+P/I7b654k1alWpHfM79VIV29CqdPQ+nSdyZy1u4nIj1S2VQzWwOx0rXIa+TNlffuzhoRETh+MIbNqjEdZ3SyXXDaI8fF0YVRjUfxw54f2HNlDw2KNHgkS8GyYgYJa6ojNU17UCKEbD/BnoE/MP/Vtca64GDKTXiRwD2/c94pkCUNP2HthG20/+FpAFYfLUTjD56k4icv8Vmxqfzx1mZ8COONYe4AJOQthFeAOy2vz+GlDS/TY3INyrUvybJlxoCckyMGUPrHQXTo/w/LlsHZs2A2pxxeQgK8+qoxOvrQocbIz2+8AYl6QrIcT0So/l11Bi4deNf6oLcn4xN7nf0vTqFYcV0PqWWuXtV6cTniMu7O7my/tF3P6GElldPakNSqVUt27dpl6zC0x0BYGLi6gpublQeIcOrtr7n11waKXdhIgOkaALMcX+G58Bl4uAuXlh/Eu35FvP0c7zo03ssfl0gre0eazcjpM4St3c3VE+H4DX+FfPkgolhFvC4cIQEnDlORPdRgnXNrBm3uTp06xvQaR48aiVeBqgF4x92873Ix7n64R9vffIFKqd0iksEmsPYhq+9he67soeaMmszuPJte1XoBIJeDiC1ampXOHWhxfT7euiGJlgWWnljK1cirDFk5hFYlW7Go+6L0D3oMpHX/Src60jJv5CURiVNKNQOqAD+LyK3MDFLT7MXt4SJ87t2QLCEyxyVwZuEeri/cSNCpaOotH0Phwgq/+d/iejWcgwVbEV+3CXmfbULPLmVwdQNQFG5XJcVrukSEIAKRkUYvHEfHFHczODigSgfiWzoQ32Srvdb/g2nXf/w0YzjFjwfxXOglKhU1U7JkdxAhV+tGRFwoxdfU5ADzCS1VhzI1PJkxA3x94eBBqFxFl5DkdEtPLEWhaFu6bdK66PBEDuRrQ+SrH+kETMsy7cu0B+BK5BXeW/ce2y5uo36R+jaOyr5Z0ybsD6CWUioQmAH8hdFb8v7BZzQth7twAYqGhzLnV+G55yA8HEaOhOPHYe06xeWJP3Pj058pHbyNQKIJBPY41+Hc2fcpXFjhuW8zfnl8KPIQFf1KgVdGRgwoUQLHEiWo06QcNWfUpHuFbvza7htwByIiKVDej+eiVvFS8C8AmE8rPov4GE/P4QAUL56Ba2t2Y9mpZdQuVJu8ue408stVvij1g/6gXs6q+NByqLfqvUWARwC1Cj4ShddZypqPCrOIJAJdgGkiMgzQQyxrj6Tvvzd+9uhm4uDUtezvMIr+85pxcn80ALmunMQlMpjtFfqx/o0FnN9xlepxO2jU2ChBcs3rg4ONW1pWyVeFUY1HMefQXP65uMZY6eWF04p/cLl5BYKM2XUOPD2WoX80wMkJzp5M5Cs9DWWOdyPqBjsu7aBd4J3vyMd7T+TsyhOAHpJCyx65XHLxaq1XcXZ0tnUods+aj4sEpVQPjIEJ/7Gs0++s9ki6te8cW6nHTffCVPvfEzTcOgmnxFiqF7gKgO/U8VSI3csTh7+k2bRnKVYnn11+sI1sPJJKeSvx6j+vciv21t0bCxjfoVptfJ8P1jViy5e7oWwZFr63H11QkrN5uniyoOsCelbpCUDkkrWU/Wkkawb9advAtMfS4qOLaTa7GQmmBFuHYresScL6APWBCSJyVilVAvgla8PStOwTdeA02+ecBqBWyRBqsZsTueuzachCYq/cIvDGdrZfL2nsbI8ZVwpcHF2Y1WkWVyOvMuzfYSnus2mTUSj28e8l8XMM57PEQfyFHrogJ3N3dueZCs8Q6B8IZjO3+g/jPEWp/ctgW4emPYZcnVzZcH4DM3bPsHUodsuawVqPiMhgEZlneX5WRD7J+tA0LevIteucenMapwPqkatqIMdfmkBoKHR8vzogLH95EYUGPcPRC7no3BnatLF1xA+udqHaDK0/lB/2/sDqM6vv3ujnR7nyim++Vfy9xR/PxFCasInV6kmio20Tr5YxieZEJm+ZzLlb5wC4PnUeha/tYWXjD6la19ouvpqWedoGtqV58eaM2zCO8Dg9wU5K0k3ClFINlVKrlFInlFJnlFJnlVJnsiM4TcsKV9r0xpS/IIFfDiYqJJYFtSdRYcE4fH3BP7fC0ceLCR8pSpZS1Kmr+HeV4udfMjYqsq2MbTaWMrnL8MrfrxAZH3lnQ0gIiCQtTonxRJSpwTsykSljI1M/oWa3tl7cyvDVw9kdtBtiY1GjR7FPVaf9nJ62Dk17TCmlmNxqMjeibzBpixXzsD2GrKmOnAl8BjTCmCu8FhmaM1zTslFCArGLlnKi1ets32qMXOpcoQy/FxvO3xMPUSp8H113DqP200WSahodb92doCQtWTBaclZzd3ZnVqdZnL91npFrRqa+o6MjXrO+pDCXKb9bT32UEy07uQwnBydalWqFOS6BI2W7cKjXZAo9TFddTcskNQvW5PnKz/PZts+4HnXd1uHYnXQHa1VK7RCRutkUT7rscbDWv479xZXIK/et93H1oUfl1GY70bKMCLJ1G1c/m4Pnst/xir1JMP58/txOPpxXytbR2cTg5YOZtnMaG3tvpHGxxqnuZ968FYeG9e2u7ZserDV9lb+pTIBHAGt7rc30c2taRpy7dY7D1w/TrnS7u6fSekykdf+yJgn7GHAEFgFxt9eLyJ7MDNJa9piE1Z9ZHxGhWv5qSetOBJ/gVMgpLrx1IdOvF50QTa0ZtYhJjLlvW73C9Zj3zLxMvyZAeFw4Zrl/HhxPF0+cHOxgGtLERHBygn//hdaticGNfxw7c7lpT6q/05rGT7jYfPgIW4mMj6TyN5VxdnBm/2v7cXd2T3P//1aGEOboT8uW2RRgOnQSlrYLYRco9kUxprSaQvt5bkQXr0CN/zXP1GtoWmYQkccuEcvQiPnA7VKw5CcQoEVGA3tUvNvoXcasH8M37b9J+uNqO6ctIxunUf2TAR7OHuTNlZdWJVvxfOXnk9YPXjGYcrnLZck1917ZS40ZNfB29UZx5x8oKiGK/jX681X7rBtkSsSYbkfEmHLnrv/fy5dJ+OU3Ir+bw3r3tnTYPwHn5s3Z8MovnK/amS4veWVsANRHhKeLJz90/IGWv7RkzPoxTGqVevsM2bGTCu2eYID/79Q/15ZcubIxUO2h7L2yF2cHZ1o5VaXE9PYs8+tJtbeaP7ZfOjT79MnmT/gv6D8Wdlto61DsRrpJmIjor1Pp6FimI2PXj+Wv43/xVLmnGL5qOBvPbyR/rvzsv7ofZ0dn/N39GdtsLADzD83ndOhpnB2ccXZ0xsnBidzuuZOqLtedXUdwTDDODsY2Z0dn/Nz8qF3IaIp37OYxXqzyIuM3jueZCs/g7uTO9ajrbLu4jV+6/IJZzDiozL37Vs1flYoBFZncanLSdCjxpnjKTCtzVyKYmQ5fP8zPfWrhEBd737ZXD7nhV6QBXrvW4Yxwktps8C9HhTNQtqwzTWe8kCUx5WRPlHyCV2q8wqfbPqVrha5Jf0/3UtWroQoVZNTFIXw8/gk++MQlmyPVHlTncp0JHh7Mpfr9MeGI//QPdAKm2R1HB0f+OPoHa86s4YmST9g6HLtgTXWkDzAGaGJZtQEYLyJhWRxbiuyxOhJgyfEljFk/hj3991Biagki4iNwc3IjwZRAgjmBAI8ATgwyRq3uMLcDS08uvev4MrnLcPwNY9b5Jj82YdOFTXdtr1mgJrv6G6+7xnc12Ht1713b8+XKx4BaAxjTbAxlppXh7K2zuDq64urkiqujK20D2zKz88yk64fHhePq5Iqbkxuujq40K96MN+q8AcA7q99BRIxtluOrF6hOcHQwk7dOZmiDobg7ubPh/AY2X9jMnKfnEJArAG/XzJ2UbsmhVXSd/ySd839AzXJCkQPn+MetFPMuT+Do5+44Rvsx37Ent9o9T5vBZWjRAv3Bk46w2DAqfl0RXzdfdvffjauTa8o7rlgBbdvyrsMn9D4ynLJlszfOe+nqyPTdWr0L31a1mVdyFD1Of5jp59e0jIpNjKXs9LLkds/Nrv67Mr2wwF5ltDpyFnAI6GZ5/iLwI/B05oT3aOhYpiNvLHuDXn/2wixmgt4OSvUDbkmPJUnJWYIpgURzIpJsrPKfu/xMRFwEiebEpH2St+H5rPVnBEcHs//afr7b/R1v1nmTj7d8zJv13gTg9dqvcy3qGnGJccSZ4ohLjKNyvspJx3s4exCVEEVUfBTB0cHEmeIo6VcyafusvbMIiwsj3hSftG5grYFMazeNsevH0n1h97teT+C0QIY3GM4nrT4hLDaMkl+WxMvFC29X76SlT7U+dK3YlbDYMD7f/jnert5J+3i5elE5b2WK+BQhwZRAeFw4Xq5ehOxqSd1LMNx8hkpjVuIWHMSWp//Ft0wZSkfv49cfbzCoi8Lnvpm2tdT4uPnwbYdv6TivIx9t+ohxzcelvGObNsQ92ZGR/37AK6+8wLwNBe2trb5msfLUSsZvGM+EySYqEEDVOcNtHZKmpcjNyY0JLSbw4uIXmXdwXtLMDo8za0rC9olItfTWZRd7LQmLjI8k96TcxJvi+ab9N7xW67VsuW6z2c04H3ae3lV7M6bZmEw9t4gQb4onzhSHg3LA08WT+Yfm8+GmD+lYpiP/nv6X0U1GExEXQfmA8tQqWIuw2DBGrR1FeFw4EfERxs+4CAbWHkjvar05EXyCstPvL1a5/Z7dbnsG4Gx2wicmEe84eGVFeQ7dnMKGxkeoW7kUCz982mgkpj2UFxe/yG+HfmPXK7uomr9qyjudPk1i+Uqs7TSVJ+b3x9Exe2NMTpeEpe6NZW/w474fWbJvHMGReei2rHemnVvTMptZzNSaUYtbsbc4Oegkjg42vLFkk4z2jtwGDBORzZbnDYEpIlI/0yO1gr0mYQuPLKTrgq4MqjOIya0mp17Nk8k2nNvAswue5eSgk/i6+Wb59cxipso3VTgfdp4VPVfQsGjDBz6HyWwiMj4yKUkLjwunmE8xCngV4FrkNeYfnk9E6FVCPp/CWWc/tnuWpk65Prz0bF7eXj2Ya+d8mbZpH89vj8LD2SMLXuWjr8CnBbgaefW+9YW8CnHp7Ut3VgQFQcGC2RhZyjIjCVNKuQEdgMZAQSAGo5R/qYgczniU1snMe5iIUPLLklTOW5klPZZkyjk1LavtCtqFi6MLVfJVsXUo2SKj1ZEDgJ8sbcMUEAL0zrzwHg2Lji4iwCOAz1t/nq2ZfdPiTbn01qVsS/oclAMft/yYeYfmPVQCBkbjTB83H3zcktUjmkwwbx5q5hLafDWXMnUVJ6Uvq9tN4UTnp9ntPoRDy91Qx57HOc8SXukEwz4rRJ9qfRhYe6AxV55mtS7luvD9nu9JNCcmrXNxdKFz2c5372hJwJZPPsQhU3mGvZMzv7UqpcZhJGDrgR3AdcANKAN8bEnQ/iciB2wW5EM4evMo526d45nTTTA9a8bR+fFoY6PlbLUK3slHHschK5KzZu7IfSJSFagCVBaR6iKyP+tDyzniEuP458Q/dC7b2SZFq9mVgN3WoUwH5jw9J3NOZjbDH38QXaYqPP8819Yc4tvxxqjKpdsG8prf7xz8qzWFTx7F6/Rezsz6iLBJh9iwwJPWpVozbec0Os7rSHolutrd3mvy3n1juzkqR95r+t79O+/aResRVTk76geOHs2mADPfThGpKSL/E5G5IrJaRP4Rkc9EpCPQE8hx3UD/ObgYgGZzDxMX//h+kGk5j1nMvLT4JYaverzbMKZaEqaUekFEflVKvX3PegBE5LMsji3HOBF8AmdHZ54ur/sqPJCzZ4lu8zQeJ/ZxnnJ85vUb5d7ryoev3/luoCxTBc2+eZxEcyLq24qA0VW3CXAl4goXwi6glCI6IZpGsxrRrWI3+lXvR0CuABu8qJyhgFcB+lTrww97fiDBnICjcqRPtT7k98x//841a5JYvzEfbBtFv1e7sniDf45rpC8iS+9dp5RyADxFJFxErmOUjuUozr8e4tUb4DjgSzxy5bBfivZYc1AOODk48eXOL3m9zusU9y1u65BsIq2SsNtDNHqlsHhmcVw5SuV8lbk29BqtSrWydSj2TwSuWKZ4KliQy7H+DMj1M0smHOLzoO78b5gDHik08yqbpywV81a8b30BrwLULWyMJ3wt8ho+bj68u+ZdinxehJcWv8SOSzt0KVkq3mvyXlLJrVnMKZeCASiFyzdf4kcoLTe9z++/Z2OQmUwpNVcp5a2UyoXRHuyIUmqYreN6GDFnr9J/9t88u/kZWo9rYOtwNO2BjW8+HgflwKi1o2wdis2kmoSJyHeWh6tFZFzyBViTPeHZPxFBRHBycLKPqXvs2bp1RNVszM1SdVizNBZcXQnYv4ZPgl5kxEhHPDOY2pfwK8G6Xus4NOAQL9d4mcXHFlNvZj0OXMtRzXyyze3SMIVCECLiIlLfuUoVGDiQAXzDD4P2ExWVfXFmsgoiEg48BSwHSmAMu5PjrO39P8LcY/H8cqIeH0/LkQp7F+atem8x9+BcdgfttnU4NmHNv+40K9c9ljac30DgtEAOXjto61Ds15YtRNVrAS1aELr3HBPMI7l42fjT8/UF78wd45WKeSsyvd10gt4OYu7Tc5OGYBj27zCG/juU0yGnM/eCOdh7Td6jiE8RABYcWZDmvg7jx2HKW5AJ3fenWFqZQzgrpZwxkrAlIpIA5Mii0m+bX6X8EDfqvPB4TkqvPRpGNBxBHo88jFmfuUMs5RRptQmrDzQAAu5pF+aNMaG3htErMigiiBJ+JWwdin3auhUaNSKCfIx1/gK3N19l9Dtu5M6d9Zf2cvVKmgpKRLgefZ05B+bw2bbPaBPYhtdrv07b0m0fm1GbU1LAqwDnh5ynwcwGLDiyIO35Tv39cblwijquRkcQEXJc2zDgO+AcsB/YqJQqBoTbNKKHYBYzOz0P0b5Ep8f671fL+XzcfPj92d8pH1De1qHYRFr1Zy4Ybb+cMNqB3RYOPJuVQeUUIsLiY4tpXao1ni66mVySffu4sfEIvgOex7l+fda/NIt/fbsxbFQu8ua1TUhKKX566ic+avERM3bPYMaeGXSY14HRjUfzQYsPkvbbeH4j686uS/H4/jX7p9xw/RHQrWI33lr5FieDT1I6d+nUd3R1BRH+fm0ps883Z+HyXDkiEbN8qdwuIl8CXyZbfwHIUfPjnvt1M8vnzeJ6neu0L93e1uFoWoY1L2H8C4oIgjxWXyzSahO2wdL+q949bcI+E5GT2Rij3doVtItL4Zd0r8jbDh8muv2zUL06MW++wy+zEkApmv3Uh4+m2i4BS66QdyHGNR/HhSEXmP/sfHpV6wXA5gub6f1nbxYeXsgPe3/ALOakJSwujLHrxxIel+MKTKz2bAXje1V6VZIAHD5MxxkdqbHyI377LYsDyzwvAbuVUr8ppXorpfIDiCExnWNRSs1SSl1XSh26Z/0gpdQxpdRhpdSkLIr9DhHiBv2PEzELUSjaBLbJ8ktqWnYIiQmh0Y+NmL1vtq1DyVbWpJvRSqnJSqllSqm1t5csjywHWHR0EU4OTnQo08HWoWQPf3+j/unexceHmC7PY65UmcRl//Khw/tM7XuAJ9s72zriVDk7OtOtYrekQV6P3zzOwiMLmfbfNK5GXsXd2Z13G7/LuObjyJsrL90rdadM7jI2jjrrFPYuTP3C9a1LwipVwtzzBYapKXz55mnCc0BuKiIDRKQGMBbwA2YrpbYppT5SSjVRSqXXxGI2cFfGo5RqDnQGqopIRWBK5kd+t0Pv/07ZWztZWic39QrXI7dHNtTra1o28HPzM3ppr3uP6IRoW4eTbaxJwuYAxzB6EY3DaE/xXxbGlGM0L9Gccc3G4e/ub+tQskdoKLn9hb59hFEjhdKlzPR6SSA8HPOSv5msRvD+C2d58cw4Pp3pS+HCtg7Yev1q9OPy25f5ss2X+Ln58e6ad6k5oybhseF8tu0z3muSyvANj5BuFbux7+o+TganX9DtMOkTHN1dePfGW4xLZQ5weyQix0TkcxFpA7QANgNdMUbRT+u4jRizhSQ3APhYROIs+2TpOGOm6Dh8J73LUecqLBm0ii/bfpn+QZqWQyilmNxqMkERQXyx/Qtbh5NtrEnCcovITCDBUkXZF+Pm9dh7stSTaTdkfoTExRk/l/wlzBq8j/cu9meuRz/27TPWH1sTxLMnJ/LFL7kpVsxmYWaIj5sPg+oO4tSgU/i6+dK3el++3vU1T5R8ggoBFWwdXpZ7oCrJggVxHPMenfibE1OXJw39llMopTyAisB/IjLoIeelLAM0VkrtUEptUErVztwo77b75W8oHH+Wa/+bRLlCgXdN/aJpj4JGRRvxVLmn+Hjzx1yPynFjJz8Ua5KwBMvPK0qp9kqp6kC6RT+ptaFItr2nUuqAUuqgUmqrUqrqA8Rtc1subOH4zeO2DiPbHJm6igScqNmxIFSvjvrlJ7Ye9KZBfaN3f81mXpR6RHrKe7t5M6LhCDad38Rn2z6jpF9Jhv077JEf9PV2leTvh60cjXXIEBIaNOWzj+MpUCBrY8sopVQnpdQ5pdQepVQ74DAwHTiolOr1kKd1wrgX1gOGAb+rVCbBU0r1V0rtUkrtunHjxkNdzPepZvxbeyS7Ox5m0dFFDxmyptm3iU9MJDoh+rEpDbMmCfvQMnn3/4ChwA/AW1YcN5t72lDc4yzQVEQqAx8AM6w4p914Y/kb9F3S19ZhZA2TCbZvR8aMJfyqUTefa99mwvFm8a1mvOY2m7eevkCrw19Qo2YO6Br3EF6v/TqbL2zmiZJPEBEXwZRtU3jl71cwmU22Di1LdavYjf3X9ltVJYmLC85b1lN6qDHpt523DfsAeBJ4FfgdeEJE6mHMiTv0Ic95CVhkady/EzADeVLaUURmiEgtEakVEPBw02mV6VaN5tvGMm7DWFacWvGQIWuafSuXpxxLn1/6WDQBgXSSMEtj1dIiEiYih0SkuWUS3CXpnTiVNhTJt28VkVDL0+1AjmlBdCb0DPuu7uPpco9Qr8jQUJg9m8SuzxHvGwD162Me/wHvd9oLQPGvhjOXHgRNmce08F58/Uc+ihSBaY/osL1erl4s7LaQKa2mMLXNVEY3Hs3MvTN57o/niEuMs3V4WeaBqiRvS0hgbeepNCsTRFhYFgWWcWYROSEi/wFnReQMJLXjSrd3ZCr+xDK8hVKqDMawPjczIda7XP/vPJtL9+HK7iA2X9hMRHyEHppCe6S1DmyNu7M7ieaH/dfMOdJMwkTEBPTIhjj6YUwhkqLMKMrPTIuPLgagS/kuNo4kA+LjYd06OGSpLT59Gvr04cbCjfwa+RQvusznxdY3qPJaQwBc/HLxmtdc/jdU4exi9Ir08lYcOKgQPz8bvpCs06x4Mwp5F0IpxQctPuDTJz9l4ZGFdP6t8yNbIvbAVZIAly7RbPlw3ro2gjH2O+i1g1LKTymVGzBbHvsrpfyxokZAKTUP2AaUVUpdUkr1A2YBJS1NLn4Dekkm1lmHhMC1a3C6x2hqnvqNuGgTS08uxcXRhSdKPpFZl9E0u3Tw2kHKTCvDtovbbB1KlrJmssMtSqnpwHwgacY4EdmTGQFYunn3Axqlto+IzMBSXVmrVi2bN8xZdGwR1fJXo6RfSVuH8mDOnIEVKzAvW4F5zVqcYqOY7z+Atme/xrtGDRaN2c/G0Mq0a6/4vgm4ud19uHN4CKGh8McfcOsWtGoFVavCo1kheb+367+Nr5sv4XHhSRNfP4qsHrj1thIlcBg2lBc/+ogZX77G/j4NqWp/LTx9gN3c+XNNfv9K954iIql9GX0hg3Hdx+zrj0NYKP7ASQKpzynW0IInOldl6Qf5aFqsqR4cWnvklfQrSUxiDMNWDWNTn02k0twy57s9AXVqC7AuhWVtesdZji0OHEpjexXgNFDGmvOJCDVr1hRbCo0JFdcPXGX8+vE2jUP8/ESMmWPuXvz87uwTFSVy4IDx2GyW+ICCIiBnVAmZzkDp4rREOrWIkNOnbfMScrqtF7bKlYgrtg4j010MuyiMRSZsnGD9QZGRYipQSPY7VpfGDRLFbM7cmIBdYuU9wt6XtO5hiYkiAjJ2rEh0lFn2+LeQm+SWEv63JMwVqfR1Jfli2xcP+zZqWo4yY9cMYSyy6Mii9He2Y2ndv7L0ZpNWEgYUBU4BDR7knLZOwkSMRCw4Oti2QYD07Svi4yNStqxI7twin39mNn6lU6aIqWUrMbm4yi2vQrLqX+MT8cyMVdI4/wl57VWzLFkiEhlp25eQk8UkxEiBKQUk8MtAORt61tbhZLoGMxtI1W+qPthB8+aJgLzu8p0cPJi58WQ0CcOY79Yz2fN6QBPL4pWRcz/oktY9bOVKsdyWRf4bv0wEZO1TU6VfvzvrTWbTQ76LmpazJJgSpPz08lJmWhmJT4y3dTgPLa37lzVtIfIppWYqpZZbnlewtIdI77j72lAopV5TSr1m2eV9IDfwtVJqn1JqV3rntBe+br52MUBr2C3h/OaLHDuYwLZt4PnBCGPD0KEcWxvEZ/Fv0C1qNrt3GbUtxV9uyYag0nzzraJjR8iVy4bB53BuTm4s6r6I4OhgGs5qyJEbR2wdUqbqWqGr9b0kb+veHen/KmN+q0ClSlkX20P6BBiY7Pk8jGEl3gNG2ySiFJw/f+dxkY7VWFfvHRr+8hqVK4PJUhvzOM2rpz3enBycmNRqEieCT/DH0T9sHU7WSC07u71gNJjvBuy3PHcCDqZ3XFYttiwJC44OliY/NpGN5zbaJoDLl0W+/17iXhskZpAEL18RkDWTd4uIyLpPdsgIPpIaARekb1+RhQtFbt2yTaiPiwNXD0j+Kfkl9ye5ZeelnbYOJ9M8VJVkMmazyJ49mRcPGS8J2ws4JX9u+amAzRk594Muad3D9hpRSVzcnXVms0iLNpESMAyZtWfWQ7x7mpZzmc1m+ffUv2LO7DYO2Sit+5c1X6nyiMjvGGPgIMZkt49m17B0/HPiHzae34ibk1v6Oz8sEePr8N9/w4cfQrduxK1cb2w7ehReeYXEGbP4j9r8ENGdAXzNkEkFEYH8neowmGn8d7UIM2fCM8+Aj0/WhapB5XyV2dxnM96u3ny/53tbh5NpCnsXpkGRBg/WS/K28HD2Nx9Cn5oHkmZUsAMOcvdE3SPAqN8D7KaVe7Vqxs+OHWHzZti3D/r3hzPmtdzIBUV9itoyPE3LdkopWpVqhVKKeFO8rcPJdNYkYVGWbt3G10al6gH2OxpQFlp0dBGFvQunOl2IiDHyg1jbfzMqCnbuNJIrgPPnMfv5Q/Hi0KkTvPce5xfvpk+HGyQkAA0aMOW1U7SsHc4s+nJ66Lc8v3EAm07mRyn4808oyBUcdG1FtirlX4pt/bbxVbuvAEgwJaRzRM5wu0ryRPCJBzswMZEqB3/la6dBvD5QMJuzJr4H5KKU8rr9RET+BbAMRJ2F36oenPj5sfJfRaPGimrVFd//oGjt0gnPeGhcrLGtw9M0m/jr2F8U+6IYQRFBtg4lU1nzcf02sAQopZTaAvwMDMrSqOxQZHwkK0+vpEu5Lil2lY3z9Ec5KFxcFcrBGEcLpcA/WdsxEaN0q2tXEgPLIl5eULcu656exvXrQKFC7CvfgwF8TSO1hZqlwxnW5TQVxnQ15m50d2foN6XYut2BqblGMnmKonEThY+vca133lWYfB7NMbvsXT7PfDg7OnM96jrVvqvGL/t/sXVIGZY0cOvhBxi4FcDfH4eJH9EgYSNFts3n55+zILgH9z0wXymVVJSklCqG0TbsB5tFlQIVEnJXn2cxm1naojCtqnTBxdHF1uFpmk1UzleZ4Ohgxqyz38EIH0a6SZgY44E1BRpgTPlRUUQOZHVg9mbFqRXEJsbydPn7R8n/4w9wjQpl00ZBIiI5Nns74wp9x4HGr2MOvUVIx17cvAkoRcz0mZxdvJe/TldirIzhKRbz1vV3jQa5Tk7kXfA1L+8awKqoBuw+4cXvv8Po0eB5T4WJa2QI69YKXZ4SalQXXu0vnDwhON5KdZICLRu4O7mT3zM/L/35EtN25OzpBG5XST7Q6Pm39euH1KjBly5DGTssitDQ9A/JSiLyGcaXyc1KqWClVDCwEfhbRKbYNrq0Hbx+kEvhl/Qo+dpjraRfSV6v/Tqz9s3i8PXDtg4n86TWWOz2glFU/zawCPgDGAK4pXdcVi22api/8tRK6TyvsySYEu7bVru2GN9Zb92SxMJFk77DhuElm2kg7zNWZlna0x7dHye9eolMmSLy778iV69m68vQskFMQox0ntdZGIuMXz8+Rzco/Xzb58JY5PjN4w9+8ObNIiBfeo+SnRnss0AmjhMGeJHNw1IkXx70Hnb+1nl5d/W7EhQe9EDHadqj5mbUTfGZ6CPt57S3dSgPJK37l5J0GjAppX4HIoBfLaueB3xFpGvmp4Tpq1WrluzaZV+jWfj6wq0wBSLc3HeJ16pv52rBmmy/UowRMpEqv42icWMoWNDWkWrZJdGcSL8l/fh5/8983vpzhtQbYuuQHsql8EsU+bwIHzb/kFFNRj34CaZOJeHJ9jiXD8xQHEqp3SKScmNM645/AZgrIim2UFNKlQIKiMjmh72GtezxHqZpOcWkLZMYsXoEBwccpFJe+xsLJyVp3b+sScKOiEiF9NZlF1vcwC6FX8LdyZ3cHrlT3N64Maza7IpLQgwOTg6Eh8ORI9CzJ5w+ox6gpb72KDGLmU82f8LLNV4mIFeArcN5aA1nNSQqPop9r+176HPEx8OcOdCrFw/VcSQTkrA3gb4YUxftBm5glPIHYjS3uAm8IyIPMDDaw3mQe1hYbBg7L++kSbEmuDq5ZnFkmmb/YhJiOHDtAHUL17V1KFZL6/5lze1wj6VH5O2T1QUeq69x49aPo/S00qnO6D5ucDAmnJgTMISbN2HHDiMBe++9bA5UsysOyoF3G79LQK4A4k3xfLz5Y2ITY20d1gN76F6St928yc0Gnfi973J+/DFzY7OWiEwFamA0xA8AnrA8vwy8KCLPZEcC9qCWnVzGk78+yZ4rmTJVr6bleO7O7kkJWExCjI2jyThrJvCuCWxVSl2wPC8KHFdKHcQYZqdKlkVnB0xmE38e/5PWga1xckj57ao8bySuxHHxVi7yBChaYUyISR/AT/dW1GDt2bW8u+ZdVp9ZzZ/P/ZmjJmB+tsKzvLXyLRYcXvBwVZJeXhQIP8Z37kOoO/wJ8uVzISoK6tWDYsUyP97UiIgJWGVZ7NL1qOv8eezPpOcz987E08WT/df24+vmS/mA8rYLTtPsxK8HfmXCpglcCLtA02JNcXRwBEChmNRqEuXylLNxhNazpiSsDVACo8i+qeVxG6AD0DHrQrMPmy9s5mb0TZ4ud3+vSADTtp3kXvw9P3i8yeu3Jt4/pXaI7q2oQZvANvz01E+sP7eelj+3JCQm5/xdZKiXJICrK2rqVIrGnOCFkKn06gULFkDNmjBkiK6tT+7YzWO89s9r7Li0g52Xd7L/6n7ye+Zn5JqRrD6z2tbhaZrdCI4OJjohmgKeBehfoz8dy3Rk1ZlV+LjmrBHKrRmi4jzgi5FwdcRolH/+9pLF8dncoqOLcHV0pW3ptvdvNJkI7vE6V8mP/9QxenR6LU0vVX2JP7r9wb6r+2jyY5McNehghqsk27Zli39HxjmMxy0kiHfegdOnYdMm+PXX9A9/XDQu2pj6RerzRMkn6Fu9L3GmOPrX6I+Lowt9q/e1dXiaZheeq/Qcfu5+1CpQi8XHFtOoaCOO3DjCazVfo4BXAVuH90CsmcD7TWAOkNey/KqUeiwGaxURFh9bTOvA1ilWH8mly8RdDWVWhU/p2s/bBhFqOU3ncp1Z3nM5t2JvcT3quq3DsdpDD9xqcf48VArZgLs5khm8gmPt6vj4KnbvUXTu65/+CR4TSinGNh3L+A3jWXlqJY7KkS0XtzC0wVByueSydXiaZhecHJx4r8l7mDFzK/YW4zaM4+f9PzO84XBbh/bArOkdeQCoLyJRlue5gG22aguW3b0jz4SeITohOtWusLFhcYRGuVCg4P2j6GtaauIS45J6u12LvEY+z3w2jih9GekleeQIVKio4J9/oEGDpLaSGzZA02bp9yDOaO/IZOdxBZ4BipOsTayIjM/oua2V3j1MRGj0YyMG1BpALudcDFg6gNODT+skTNOSSTQnUvHrivi6+XLs5jH6VO3DF22/sHVYKUrr/mVNw3zF3RN2myzrHgsl/UqmuD7o6z/x7fYkHnk8KKCrIbUHdDsB+2rnVwxfPZxmxZrdN4yFm5Mbnz75qd18+Hat0JW3Vr7FieATlMld5oGOLVvW+LnOoz3NLX1VROCHH4yGptnoL4y5b3cDcdl7aevcLg0btHwQFfNW1KVgmpaC26VhEzZNQKEY0WiErUN6KNY0zP8R2KGUGquUGgtsB2ZmaVR2QEQYtGwQa8+uvW9b4ubtFHy9C/Nr2/VsJ1oO0K50O5wcnFhxegUBHgE0K96MZsWb4ePqw7KTy3B2dLZ1iEkyUiXpaHReols3GDECZs6EDh3g0KHMjNAqhUWku4hMEpFPby/ZHkU6WpZsSW6P3Gw6v4kBtQbYOhxNs0vPVXoOs5jpU61PjmsLdps1DfM/wxhsIcSy9BGRL7I4Lps7evMo0/+bzvGbx+/eYDJx87nXuUxB8n/ylm2C0x4ZJfxKsOalNSgUX+78Em9Xb3pX682p0FOMbDzSriZsznAvSWDbNmOw1o0boXNn2LIlEwO0zlalVOVsv+oDUkrxdbuvmf3UbF0KpmmpcHJwYvWLq3my1JP0/rM36TWvskdWjV0tIntE5EvLsjerg7IHi44uQqF4qtxTd60P+XgG+S/vYW6tz2jbzcs2wWmPlFoFa/FS1ZfI456Hbgu68euBXzl47SB9qvWxdWj3yWgvycBAmDgRfvoJ+vcHD49MDjAVSqmDlvatjTAGoD6ulDqQbL3dqZq/Ku1Kt7N1GJpm14r4FOFG9A1+2v8TOy/vtHU4D+whJhB5PCw6uoj6RerfXcR54wbO40ax3qEF3RZ0s11w2iNnXLNxRCdEs7j7YuYdmsfIxiPtcpqaDPWS9PMDpe5fsmdA49vjGrbFmKroScvzx2K8Q017lHUq2wkXRxd+P/y7rUN5YKkmYZZeRI+ls6Fn2Xt1730DtEZfi+BEruqcGjKdYsUfm74JWjYo4lOEHpV78PWurzl47SCdy3a2dUgpylCVZEjI/YMZZ9OAxsnGNfww+TiHt9dleQCapmUZXzdfWpdqzYIjCzCL2dbhPJC0SsK2ASilfsmmWOxGUEQQ5fOUp0v5Lnet96hUkhoha+j9iZ46RMt87zZ6lzVn1tCqZCtKTyvNqZBTtg4pRRkeuNW2KiZ/opRyxJiaTdO0HKxbxW5cDL/Ijks7bB3KA0krCXNRSj0PNFBKPX3vkl0B2kLDog058vqRO8NTmEwcfXoU1/ZdQSlwsmZgD017QEV8irCt3zbGNB2Dg3Jg8PLBdtnQNKMDt9qCUupdpVQEUEUpFW5ZIoDrGMNWaJqWg3Uq24naBWsTGR9p61AeSFpJ2GtAY+6esuj20iHLI7ORmIQY4k3xd627Nu5byi/+iL/+t9FGUWmPi5oFa1LUtyjjm49n+anl/HXc/vKD21WSvx/JOe0vRGSiiHgBk0XE27J4iUhuEXnX1vFpmpYx3q7e7HxlJ61KtbJ1KA8k1SRMRDaLyABguIj0uWd5ZCcx+3n/zwRMDuBy+GUA5Np1ck0cxXqnJ+g8RzfG17LHG3XeoFLeSgxZMYTohGhbh3OfrhW6cuDagRxTJamUqqGUqgEsuP04+WLF8bOUUteVUveNbKaU+p9SSpRSebIkeE3TrBadEM3N6Ju2DsNq1vSO/EUpNVgptdCyDFJK2c8Ikpls0bFF5MuVj4JeBQE42/0dXBKjuTJyOvny68b4WvZwcnDiq3ZfcSXyClsuZP9gWunJgVWSn1qWr4AdwAzge8vjr6w4fjbQ5t6VSqkiGD0tL2RWoJqmPZx4UzxFPy/KhxtzTl8ba5KwrzEarn5tWWoA32RlULYSGhPK2rNrebr80yiliPx3KyU3/Mi8/G/T7f1ytg5Pe8w0KdaE80PO22Xxek6rkhSR5iLSHLgC1BCRWiJSE6gOXLbi+I0Yg1Xf63NgOGB/jfc07THj4uhC42KNc1QvSWuSsNoi0ktE1lqWPkDtrA7MFv458Q+J5kS6lDN6RcYXLsm/5QZRef7opGlXNC075ffMD8DOyzvtrpF+twrdclSVpEVZETl4+4mIHAIeqruzUqozcFlE9mdWcJqmZUy3Ct0Iighi68Wttg7FKtYkYSalVKnbT5RSJbl7Qu9HxqJjiyjkVYjahYwc079Cfp48+iU1mnjaODLtcfbXsb+o+0Ndu2uk/0yFZ4AcVSUJcEAp9YNSqpll+R544BHzlVIewEjgfSv376+U2qWU2nXjxo0HvZymaVbqUKYDro6uOWbgVmuSsGHAOqXUeqXUBmAt8L+sDcs23mn4DtPaTkOu3OBQ0XYcW3zU1iFpGu3LtLfLRvo5rUrSog9wGHjTshyxrHtQpYASwH6l1DmgMMZ0SPlT2llEZliqQGsFBAQ8VOCapqXPy9WLdqXbsfDIQkxm+y8vSnfEKxFZo5QqDZS1rDouInFZG5Zt1C1cF4Dj9XtT5uJqVpxyQLcE02ztdiP9prObMnHTRD5o8YGtQ0rSrUI3hqwcwongE5TJXcbW4aRLRGIx2nF9nsHzHATy3n5uScRqiUjO6ZalaY+o95u+j4jgoOx/ZkZrJ/COE5EDluWRTMB+2vcTmy9sJvTvzZTd/hMLiv6PjkPLpn+gpmWDJsWa0LNyTyZtnWRXI+nnlCpJpdTvlp8HLRN337VYcfw8jFlEyiqlLiml+mV1zJqmPZxq+atRvUB1lLL/EQ3sP03MBvGmeAavGMyPe2YS0et1LlCEmotGkwN+f9pjZHKryRTyKmRXSVgOqpJ80/Lz9oTd9y5pEpEeIlJARJxFpLCIzLxne3FdCqZp9mPPlT0MXj7Y7qsk00zClKFIdgVjK2vPriU8Lpx6OzwpGnqAjU99TrmauWwdlqbdpYBXAU4OOkmbwPuGq7Kp270kj988butQUiUiVywPWwIuKUzirWnaI+RUyCmm7ZzG5gubbR1KmtJMwsToE78sm2KxmUVHF+Hl4sWzb41nWdcf6fLLIz01ppaDOTo4YjKbmLV3lt000k+qkjxi31WSFkWB75RSZ5RSCyyDT1ezdVCapmWu9qXb4+7kbvf3JWuqI/copR7JccEATGYTfx77k/aB7fDL60e733uTy1PXQ2r2a1fQLvot6cfETRNtHQpwp0rS3m92ACIyRkRaABWBTRi9v3fbNipN0zJbLpdctC/T3u57SVqThNUFtimlTlsasR60piFrTnEm9AymuHiafrCO/XMP2zocTUtX3cJ17a6Rfk6okgRQSo1WSi0H/gUCgaEYw0tomvaI6VahG9eirrHpwiZbh5Iqa5Kw1hhj4rTAaMB6u2HrI6G0Twl2TClCqyOu+FYrbutwNM0qk1tNxtXRlcHLB9vFSPo5qEryaSA3sBpYBPyVrL2YpmmPkHal2xHoH8j1qOu2DiVV6SZhlkarRYAWlsfR1hyXE4gIhwZOJzDsEPuem0qxCroxvpYzFPAqwLhm41h+arldjKSfU6okRaQGRuP8nUAr4KBSyr5b7mqa9lByueTixBsn6Faxm61DSVW6yZRSagwwAnjXssoZ+DUrg8ouW3atpIPH23xXqj4dZz5l63A07YG8UecNnin/DP7u/rYOBcgZVZJKqUpAT6AX0B1j8u61Ng1K07Qso5TCLGYi4iJsHUqKrCnR6gJ0AqIARCQI8MrKoLLLzJkfcclHKD76C1xcdWN8LWdxdnRmYbeFNCnWxNahADmmSvJjwBv4EigvIs1FxKr5HzVNy3nMYqb8V+UZvmq4rUNJkTVJWLxlqAoBUEo9MnV22yvdoKZ7HVr3rmPrUDTtoUXGRzJi1QhOBp+0aRyFvQvTsEhDu07CRKSDiHwiIltFJMHW8WialrUclAPV81fnj6N/kGhOtHU497EmCftdKfUd4KuUegWjQev3WRtW1pL4BLZt38Sx4GP0eqKXrcPRtAyJiIvgm13f8OaKN23eSL9rha52WSWZ2nRF1k5bpGlaztWtYjduRN9gw7kNtg7lPtY0zJ8CLAT+AMoA74vItKwOLCvtfXk6y4a3AuCpck/ZNhhNy6DkjfSXHF9i01jsuErydq/uFZalp2VZxmMwILWmPc7aBrYll3Mufj9sf9OrWdvL8SDGwIYbLY/TpZSapZS6rpQ6lMp2pZT6Uil1yvJttIaVsWRI+LEgSv86hoCQarzX+H0KehXMjstqWpZ6o84bVMpbiTdXvGnTkfTttUoy2fRErURkuIgctCzvAE/aOj5N07KOu7M7ncp2sssqSWt6R76M0Z37aeBZYLtSqq8V554NpDXJXVugtGXpD3xjxTkz7MRTw3CWeJp9MIfxLcZlxyU1Lcs5OzrzVbuvOB92no83f2zTWOy1StJCKaUaJnvSgEdkyB1N01L3dv23+bnLz7YO4z7W3HyGAdVFpLeI9AJqYgxZkSYR2QiEpLFLZ+BnMWzHaHNWwJqgH9apH9ZT6/hcvn6iJ06N4rLyUpqW7ZoUa8LkVpPpUamHTeOw4ypJgH7A10qpc0qp88DXgDVfKjVNy8FqFaxFu9LtcHJwsnUod7EmCQsGkg+wEWFZl1GFgIvJnl+yrMsyV+es4bxDCRY8e4wef9j2g0rTssLQBkMpH1DepjHYa5UkgIjsFpGqQFWgiohUE5E9to5L07SsdzrkNGPXjyXBZD8do1NNwpRSbyul3gZOATuUUmMtA7duB05kV4CWWPorpXYppXbduHHjoc/TaN0HRB9YyY5r23i63NOZGKGm2Y/QmFC6LujKn8f+tFkM9lolqZRyVUo9D7wOvKmUel8ppccJ07THwKHrhxi3YRzrzq2zdShJ0ioJ87Isp4E/sYwTBvwFnM2Ea1/GmA7ptsKWdfcRkRkiUktEagUEBDzwhYIPBnHiD6M/wabYdQjC0+V1EqY9mjxdPDl28xhDVgyxWSN9O66S/AujKUQixgDUtxdNe2TMmQPFi4ODg/FzzpwsvqC3Nyh1/+LtncUXfjCtA1vj5eJlV70kU03CRGRcWksmXHsJ8JKll2Q9ICyrJtI91fl/FHi2AcGnb7Ho6CIC/QOplLdSVlxK02wueSP9iZsm2iQGO66SLCwi3UVkkoh8enuxdVCallkS3L3p+YLi3HmFWYyfPV9QJLhnYUIUkcqUQKmtzyQPmmy6ObnRuVxnFh1dZDdVkum2UFNK1QJGAcWS7y8iVdI5bh7QDMijlLoEjMGYdxIR+RZjbJ52GNWd0UCfh3oFKTh/Hj7+GDZuhIZxa5lx9jdWNRxLo6KubPl9CwNrDUQpPU2R9uhqUqwJPSv3ZNLWSfSq1otA/8Bsj6Frha4MWTmE4zePUzZP2Wy/fiq2KqUqi4hVQ+1oWk4hAmFhEBybh1sEEokXsbhixhETDphjHTENWoskJGKOT0z6SWIi5gTjuSSYkARjHYmJSOKdxyoxEUwm47HpnoWuOCAoBBMOxONKPC4k4oSp9o+YvXzA2xvl64Ojvw/Oub1xzuODu58bnl4KT0/w9AQvL5Iee3gYyVVqEty96RkbQc/bK84DL0DCy144x4Snely3Ct349cCvrDm7hjaBaQ3gkD1UeiNsK6WOY/SQPAiYb6+3jLmT7WrVqiW7du1Kdfvly+BRxB8/CSUBRy5QDCcSycMNcvm5EX7lHHGJcQTkevBqTU3LSa5EXKHs9LK0K92O3579Lduvfyn8EkU+L8IHzT9gdJPRGTqXUmq3iNTKaExKqSNAIEaTijhAAZLel8rMlN49TMtC3t4pl854eUF46h/c2X09kwlCgmIJOxtC+PlQoi6GEHclhIRrIZhuhKBCQ3AMC8E5MgS3mFByxYXgnRiCPyH4Epb5ryOZRBwxKydMDk6YlBNmBydM8YmYcURQOGLCnRjcSH8EgnicCcebMHzu+xmGDzHO3sS5+pDg7k28hw+mXD6YPb0Rbx/U6pU4YsKJRDryD/XYcefEaeQ1cYlxlJhagtFNRjOw9sDMeEvSldb9y5okbLOINMqSyB5CejewYcNg8hQFImzoMJmmS4ezctA/9Pi1PSGhKs1fjqY9alafWU21/NXI45HHJtdvNKsR4XHhHBiQsZmBMjEJK5bS+uz8UqmTMBtKqwYksz4bTCaIjYW4OMidG4AoPLhCfiLxJBY34nHB9GQ7CA7BISwE54hQ3KJD8IgLwTshBF8JwYOYVC+RiCNhjv5EufgR4+5PfC5/En38ET9/HDZtwJkEXInDlVgcMSUtTn8txsHFCSe3O4uDixM4OoKTU9qLo6OxpPQepvW+nj1rFNGFhSFh4SQGhxF3I5yEm2EkhoRjCglDwsIgPByH8DAco8Jxig7DJSYM19gwHMWU7lu+iKc4QBXe4RMj+Uvnd5loTszWoSrSun9ZE8UYpdQPwBq4k9qKyKJMii9T7dx557EkJLCt0LM8ObU9xXZE0awCjD6zmpYlW9ouQE3LRrf/1s1iJtGciIujS7Ze396qJG8nW0qpvICbjcPR7Mn48UbidDuBSv743p8prBPLT2W6P2nIRTSBnLl75b+bicadMEd/Ip39iXb3J8K7FCHetRFff1Ruf5zy+uOS3x+PQn54FvXHu7g/uYr44+TtRW6lyJ3S60grIerUJENv0UMpXjzpocJok+Rs7bEiEBNjlBpaErmkx88+CxilaZ34m9rs4lW+ZQhTqZ7OaW8nYPGm+Gy/J94XixX79AHKYbxvt6sjBbDLJKxw4TuPm60ciZiF2Fg4xUoii8MY5Wiz2DTNFmISYmj2UzNal2rN+Objs/Xaz1Z4liErh7DgyIIMV0lmBqVUJ+BToCBwHaOt61Ggoi3j0rLYpUvw559p7zNmjFHi4+pqLG5ud/0UNzcSHVyJUr5EOLgS7uBKKG4Em1y5Ee3GrVhXYnGzlD+54e7jik/YOfy4RW5u4k8IHkTjSSTehOMXchYPP3c8suUNyGJeXqlXu2aEUkbjMA8PyJ8/xV1cMBrY+xPCLPrxIaNYNt7EiJGOOKWS4cj/27vzsKqq9YHj35dRQJwncFacAAURbXC+DuWQmpmKGaXdvGWmdtNutzK9lb9rabN1s7I0U0wbTLPJUkstU0ycJ1RUnFNRHJjX748DCCJwgHM4DO/nefZzOPvsvfa72bp4z9pr7WUMPT7pQcMqDfl44MdFi7GIrEnC2htjHP8V1kqPPQYsgo0b4dZbIf6y8MQTUPW2L3G/Cp0bdnZ0iEoVKw9XD5pVa8bLG14mPCi8WDvp161Ul471O7Jk15ISkYQBLwK3Aj8ZY9qKSHdgpINjUrZmDOzZY0m8vvoKrLn9m5KCcXLm7FmIjoYDByyvmcteiIu7vrkI1K8PzVqDn59lCUx/bdLEkjfk2SpV1aOIJ5kLeyVEebFHf7oC8uIqibgxlRdZO/VX7v7qU2YtrkeLm2QvIkKDyg34as9XzOk/x6GtYdYkYb+JiL8xZrfdo7GB22+3vA4bZvl/eOkS9OmfxKVm3zB4IyVuygKlisPMXjNZvm85478bz8oRK4t1dHAJuyWZbIw5JyJOIuJkjFkjIm84OihlA2lplv4oX31lSb72pz9T/JZbLMPlBw2Cli0xwCnqcIBmRON3fWnvTHR09vwl49EHfn4wYsT1ZMvPDxo3tjSSlTglICEqFjdJNt1JggoV6GgiabMtiDFt5tFl5l2MG5dzpOXQgKHM3zafVQdX0a95v2IMPDtrMpJbgSgRcdhoogKrWpUjR6//kflhIyxuBoOPeTkwKKUcx8fbh/90+w///PGfLN+3nIEtBxbbsUvYLck4EakI/AosFJEz6MNaS6+kJFizxpJ0ff01nDxpuaX4t7/BxIkwcCBnXX3ZvBkiP4ONrGQrbTnF9WmKXUimETE094HOnbMnWg0bgltRGkkc0SpVXuSRbLru34/34GF8vmsAb0yYQN+vXub9+e40aHB9m55NelKlQhWW7F7i0CTMmtGRDh9NlFVhRhatjVnLzN9m8sXQL6jgUhK/uihlf8mpyYS8H4JPRR9+vP/HYj12UUdJ2nB0pBdwDcuDqu8DKgMLjTF5zocrIh8B/YEzxpjA9HUzgbuAJCwzi4wyxsTlF4OOjiyi+Hj4/ntLi9fKlZY/xl5e0KcPV3rfzeaafdm4twqRkbB5Mxw9atlN8hgcL2JpSLO1eq/V43h8zolg6nrXJfafsbY/oLouMREz+Snk7beIcmrLaI/FjJ/dnAceuH6XeNTXo/hyz5ecmXQGdxd3u4WSV/1lzQTeJpel1OjWqBsrR6zUBEyVa67OriwfvpwVYSuK/dj3+t/LjjM72PvX3mI/dlbGmCvGmDRjTAqwEng7vwQs3Tzgxic7rgIC0+8K7Af+bdNg1XVnzsCHH0L//lCzJgwdStqqnzjZ+V6+emgFD/T7i2ZRS6k4ZgTd767Cv/8N27ZZuqfMmgW//GIZUNfwpk0KZGshsaUBLQbk6G/k5uzGwBbF1xJdbrm7I2+9CV9/TetKR1h/LYTVoz5h0CA4fdqyyaOhj/LGHW9gHJjSWHM7ciWWpEuwDOluDOyjlIwmOhl/EhcnF304q1JA46qNAbiSdIX4pHjqVLz5iCNby7wluWspU7pOKZZjZpU+NdoM4DyWzvkLgBqAk4iEG2O+z2t/Y8yvItLohnVZmxM3AkNsGnRZl9+DTA8dyuxYbzZsQIzhUrVG/NZ0LAuv3E3EkdtJXWkZ7V6/PrRvD6NHW17btYOqVXMWfenv9SA1Z8vUJee6QMFapowxxCfFE5cQx4VrF4hLiLP8nHAhc11SahIpaSnZ9ktNS8XJyYmZG2ZSzaMa1T2rW149LK/VPKoVqVVGW99uMGAAzju24XHffXzy6wMs+mYVt/i/y6vve3PPPR3oULeDQ8PLNwkzxrTO+l5EQoDiecysDbyy4RXe//N9zj11TlvClMLyzLBbPryFBpUbFFsn/YxRkkt3OyYJA2YDz2C5/bga6GOM2SgiLYEIIM8kzAqjgc+KWEb5ksu8gqnxl0lqHoTHAcut630VglgsU/nSDGL7+TbUdhXat4cpo64nXLVrW3fI4W0H8EHkXFJIylznjCt3tuzCxtiNuSZTcYk3T7TSTN73MCu7V8bL1YvLSZcxGATBzdmNOZFzSE7Lfe5CL1evbAla1iQta7KW9fNqHtVwc3ZjQIsBzN06l6TU6+dY7lvf6tVDVq+Gl14i7IUX6HRlI4OGfMaykSE8//IZfohdwt9D/u6QHKHAQwWNMX+KyC32CMYWdp/dzYFzBwDLN5WFOxYSUDOA1YdX06tJL1ydrX5MnFJlkpM4Ude7Lt9Ff0ffhX0zW8cAfCr62C1JyhglufevvbSs0dIux8iDS0bLlYi8YIzZCGCM2VvUJFREngVSgFynDxaRMcAYgAb2uvdVCqUiHKM+V/CiNqepwXlA2HSgCst4jTWVBlH71saEhsK0UEvSVbdu3k9+yOr8tfMcPH+Q6PPRHLxwkHPXzpFK9uQnlWQidkUQsSsix/4VXCpQtUJVqlSoQlWPqtSuWJsWNVpcX5flsyoVqmRbV8m9Es5OzpyMP0mTt5qQkJJABZcKHJpwiNpetbmSfIVzV89x/tp5zl2zvJ6/dv6m63ae2Zn5840ta1lVdKtIlQpVckxO7YSTo778lBzOzjB1KtK9O/VHjGDzyVuZvPAVbtvfgnN9H6dB5QYMaDGg2MOyZgLvf2Z56wSEACfsFlERzVg/g7Uxa2nr05a4hDjOXj1LdY/q3BVxF8eeOIavt6+jQ1TK4eIS46jkXolNJzZxh98duDm78cPBH9h9drfdKmsH35LM2mRx43wwhe4QIiIPYumw38PkMcrJGPM+8D5YOuYX9nilWdqly8R+E8WZ7yIhMpKaNKAhR2nEURJwZw3d2U5rruFBq8X/4fH28Frj/GYaMpy6fCozycr2ev4gFxIuZNve19uXOhXrcPrKadJMGs7iTMf6HXkk9JEcyVSVClVs0jLi4+3DqOBRzNkyh1HBozK7AFR0q0hFt4o0rJJLR7Vczjc+KT5bspYjibt2jl9ifuHoxaOZfZ1EhBd/eZGw1mHcXv92nMSa7uBlVJcuyLZtOI8ezWvLn6DP3r7c0b0Kk+YtocdzA/Aq5ocoWDM6cmqWtylADPCFMSbBjnHlKr+RRVGnouizsA8Hxx9k+q/TeXnDy0y+fTLH44/zyd2fFGOkSpVc30d/zyPfPMKRi0eY0mUKz3d9nlbvtOL9/u/TvXF3ux23sKMkizo6UkRSsTyKQgAP4GrGR0AFY0y+TeTpfcK+yTI68k7gNaCrMeastbGUh9GR5uo1jq+M4vS3WzCbI6l+OJIGV/fgnJ4Lx0o9trg3ZnMNbyLrJ7A+MJYrPgfAyVD3EsS+ev3vUkpaCscuHsuRaB08f5CDFw5yNflq5rbO4kzDKg3xq+ZH06pNaVq1qeXnak1pUrUJnq6e2VqmPFw8ODThkN37Rp6MP0mnjzuxYfSGYumHmfUc3ZzcuMPvDlYdWkVCSgL1K9VnWMAwwlqH0bZO22J9ZmCJYgzMno2ZNIkH+ruwqAU0/OIcCz6ukPm8UVsp0gTeJY01FdjgzwbTuUFnPvjzA2p51WLX2V1sGL2B5tWbF1OUSpVsxhhum3sbrs6ueLl6ERYYxkdRH7H2gbV2q5SL0mHYVo+oKCwRiQC6YenMfxqYimU0pDuQMbpyozHmkfzKKmtJmElI5NSP2zn1TSQpf0RS7VAkDS/vwgXLHIqnqM2BKu251CwUt9tDqTewHc0612H8IGFuW0jKcj/GJRVuiYW2Q8YRfcHSmnU47nC2W3Duzu40rZYlwcqSaDWs3NCqLidjV45lzpY5PNLuEd7p947NfyclwY3nGJ8Yz/J9y4nYGcEPB38gJS2F5tWbExYYRlhgWEl4kLJjREXx44T+3PG34/z966HMj1rIP59y4T//scxaZQtFSsJEpDkwCWhEltuXxpi/2Sa8grGmAstoDVsdvprZm2cTnxivrWBK3eD76O954ocniPpHFIH/C7R7K9jYlWP58M8Ps3VIdnN24+9t/57vH0JHJ2G2VCKTsPxGKmZITubM6p2cWB5J8u+RVDkYScNLOzLn7ztLDfZXCiWuaSiut4XiOyCU5t18cXMXklOTiYmLYf+5/Rw4f4AtMyezKDCFtJvcGfN288avml+OJMuvmh++3r5Fvp1W3C1TjpDXOZ67eo4v93xJxM4I1sasxWAIrhNMWGAYwwOH06By+eq3mHzxAnVf9eWxXxMYsbcTfzu9iKqt67NgAQQFFb38oiZh24D3gC1A5vTwxpgtRQ+t4KytwAZ/Npg2tdvwzuZ3tBVMqZvIaA3z8fbh9OXTrB+1Hqcb5/awoay3SDJYezuoPCVh9SY5cdw7Z71cN16InWWHJ4pCrh2vzlGN4xNnkbghkkoHImkYt40KJAJwnqrsqxjK+SahuNzSjjr9Q2nWsx7nkk9kJlr7z+3PXG5s0apSoQppSW5cSvkLnNIg1ZlQ74F8O/Y9anjWKL+3yYrZifgTLNm1hMU7F/PH8T8A6Fi/I2GBYQzxH0LtilYOPS3l4hPj8f58OTzyCEm48rDzx0RcHci0afDUU+Q6Gbg1ipqEbTHGtCv84W3L2iQs6lQUbee05f4292srmFK5+D76e/os7IOLkwtrH1hLxwYd7Xq8sSvH8v6W90k1qbg6ufJwyMNW3Q4qT0nY2P45b9O5pcDf/4R3Vt6kvk5NtUzfk5xM6rUkkq8kkXw1mZSrSaRcs6xLTbC8T02wvE9LSCItMZm0BMu6D36aSZKT4J4iND3nQui5eNpeO4InloT5IpXY69mOvxqHIu3b4X5HEwhJ5NjV6Mwk68D5Axw4d4BrKdfHPXi4eNCsejOaV29Os2qW14yfa3jW4NTlU8XeP0vl7tCFQyzeuZiInRHsPLMTJ3GiR+MehAWGcXeru6lSoYqjQ7Q7s38/MmIEbNnCd37juDt6Jm1vrcD8+dC8kG05RU3CpgFngK8g/SsQYIw5X7hwiqYgTfkzN8xkiP+QbEPwlVLXGWP49sC3DP18KCNbj2TOXXPseryT8Sdp/GZjElMTC/RHtzwlYSe9hSYT4NZd9Thf4yweyYJnMlRMAq8UwSs5Da/kNCompeGdnIpXMnglg6cVi3uKZSRCXi7jxZ8urdhQoyoxNa/QYOwQrja+xJErBzJbt+IS4jK3d3FyoUnVJpYEq1rzzKSrefXmVt06LA/9s0qjnWd2ZiZkhy4cws3ZjT5+fQgLDOOuFnfh6erp6BBtLvyrcESE+X0/gH//G157jQsNg7jzwmJ2JLfklVegcmWYMsUyHVaDBjB9Otx3X97lFjUJO3yT1cYY08TaE7OlEtmfQqlSLvyrcJbvW86pSafs/sDCwvzRLU9JGCKM7Qe7nJtyqeo5ElzTSHJJI9kllQQPJxJdUkl0TiHRJffnReVaNEIFKuAuFaggFajg7IGnsxcu+w+xvxqkOQlJ7tfAOTXHfvUr179potWoSiNcnAp/r6Y89M8qzYwxbD6xmYgdEXy26zNOXj6Jl6sXA1sOZHjAcO7wu4MmbzYpE0/p/8eKf7Bwx0LOTj6Lh6sHfPstPPAAaVeu8kbT2Ty580GcnCTbPKOenvD++3knYuVudKRSqmB+OvQTvRb0YsmQJdwbcK9dj1WYP7rlLQk7WRGaTIAEV/BIhkNvQp3LZJuBOs2kkZCSwNXkq0VariRf4eqP37K7Jpz1AiOWLlodjsPk36D52h00rdrU8kdJlWupaamsO7qOiB0RfL7nc85fO0/VClWpU7EOB84fyNbnz9pBNyXJz4d+pueCnnwx9AsGtxpsWXniBIwcCWvWsJcWdGc11/DkY0ZxN8sAuCzeVEy7lGu5hUrCRKSTMWZ9HoVWAhoYY3ZaeX42oUmYUraXmpZKgzca0LZOW74Z8Y2jw8mhvCVhAGP7wZx28EgkvPNt+mf2+tJcqRInTXzOxE9uGB2pVLqk1CR+OvQTETsj+GrPV1xJvpLt89LYxy8lLQXfV335W+O/sXjI4usfpKbCjBnw3HMk48I4ZnM/C+jEhuvb5PF/M6/6K6+b9feIyG8i8ryI9BORDiLSRURGi8gC4BssDz1USpVyzk7OzBs4jzfufMPRoShvbwCm/AKN4mDKr9nX28WlS/jEG0bd9ihO4sSo28ZSJ95oAqZy5ebsRt9mfVlw9wLOTD5D7ya9kfQeh4IwsvXIUpWAgaV/4z2t7mHF/hXZHgKMszM8+ywArqTwHo9kT8CKcszcPjDGPCEi1YB7gHsBHyzTfewB5uTVSqaUKn16Ne3l6BAUZCY+PsBBgDeL79BTukzhh4M/6DyDqkA8XT2ZN2he5qAbg+H3478TeymWepXqOTq8AhnVdhQNKjfIc45OWz48Jc9hK8aY88aYD4wxDxpj7jDGDDLG/FsTMKXKpl9ifmHSj5McHYZyEB9vHw6OP1jqWjCU4/l4+zC67WicxIl+fv04EneE9h+0Z9PxTY4OrUA61O3Avzv/m0rulYrleOV4Fk+l1I22nd7Gq7+/ys4zxdrVUylVBkzpMoVGVRrx4cAP+f2h3/Fw8aDrvK4s3rk4/51LkKvJV1m6aylXkq7kv3ERaRKmlMo0PHA4Lk4uLNi2wNGhKKVKmawtqQG1Atj08Cba+7Yn7Iswpq6ZSpqx04wPNrbp+CaGfj6Ubw98m/2D3PplFqG/piZhSqlMtbxq0cevD5/u+JTUtNT8d1BKqVzU8KzBT+E/MSp4FC/8+gLDPx+evcN7CdW5QWdqe9Vmye4l2T+4dMkyCvLGpQgDWPJNwkTEU0SmiMgH6e+biUj/Qh9RKVWihQeFcyL+BKsPr3Z0KEqpUs7N2Y25A+Yyq9csPt/9OV0+7sLxSzkf7FqSODs5M8R/CCv3r+Ry0mW7HsualrCPsUxXdFv6++PAS3aLSCnlUP2b9yfEJ8TulY9SqnwQEZ68/UmWhy1n37l9tP+gPZEnSvbzPocGDOVayjVW7l9p1+NYk4Q1Nca8AiQDGGOuYtsRmkqpEqSCSwW2jNnC3a3udnQoSqkypH/z/vw2+jfcnN3o8nEXluxakv9ODtKxfkd8Kvrwy5Ff7Hoca5KwJBHxAAyAiDQly0TeSqmyKSk1idhLpWfeN6VUyde6dms2PbyJEJ8Qhn0+jBd+eYGSOH2is5MzW8Zs4Z2+9p12yZokbCrwPVBfRBYCPwNP2TUqpZTDdf64Mw8se8DRYSilyphaXrX4OfxnwoPCmbp2KiO+HMG15GuODisHH28fROx74y/fJMwYswoYDDwIRAChxpi1do1KKeVwff36subwGo5dPOboUJRSZYy7izvzBs7j5Z4v89nOz+g6rysn4086Oqwcnv7paUZ/Pdpu5VszOvJuIMUYs9IY8w2QIiKD7BaRUqpEuD/ofgyGhTsWOjoUpVQZJCI81fEpvhr2FbvP7qb9B+358+Sfjg4rm2vJ11i0YxHxifF2Kd+q25HGmIsZb4wxcVhuUSqlyrAmVZvQqUEnPtn2SYnss6GUKhsGthzIhtEbcBInOn3UiS92f+HokDINDRhKYmoiK/avsEv51iRhN9sm14m/lVJlR3ibcPb8tYetp7Y6OhSlVBkWVCeITQ9vIqhOEEOWDmH6r9NLxJe/2+rfRl3vunYbyWlNEhYpIq+JSNP05TVgi12iUUqVKEMDhrJu1Dra1mnr6FCUUmVcnYp1WPPAGu5rfR/PrXmOkV+NJCElwaExOYkT9/rfy3fR33EpsfBPxs+NNS1ajwNTgM/S368CHrN5JEqpEqdyhcp0atDJ0WEopcqJCi4VWHD3Avxr+vPs6mc5eP4gy4Yvo07FOg6LaWSbkaSZNK4lX6OSeyWblp1vEmaMuQI8bdOjKqVKjbiEOKasnsJdLe6id9Pejg5HKVXGiQjPdH6GljVacv9X99Phgw4sD1tOcJ1gh8TTzrcd7Xzb2aVsa0ZHNheR90XkRxFZnbHYJRqlVInj5erFkt1LeH/L+44ORSlVjgxuNZj1o9ZjMHT8qCPL9i5zWCxpJo11R9bZ/JakNX3ClgJbgeeAyVkWpVQ54OrsyojAEazYv4Lz1847OhylVDnS1qctm/6+icBagdz92d38d91/HdJhf/PxzXSZ14Wv935t03KtScJSjDH/M8ZsMsZsyVhsGoVSqkQLDwonKTWpRM/1ppQqm3y8fVj7wFqGBw7nmdXPEL4svNg77Heo24EGlRuwZLdt60BrkrAVIjJWRHxEpFrGYk3hInKniOwTkWgRydGvTEQaiMgaEdkqIttFpG+Bz0ApZXfBdYIJrBXIJ9s+cXQoDiEiH4nIGRHZmWVdNRFZJSIH0l+rOjJGpcoyD1cPFg1exIvdX+TT7Z9S+b+Vkf9IjqXea/XscnwR4V7/e/kh+gfiEuJsVq41SdgDWG4//obl0RRbgMj8dhIRZ+AdoA/gD4SJiP8Nmz0HLDHGtAWGA+9aH7pSqriICI+GPkpgrUBS0lIcHY4jzAPuvGHd08DPxphmWObU1QFMStmRiPBcl+dYeu9S0kjL8bmbsxsDWwy0y7Gf/flZ1sSsITktmdvm3kb3+d3pPr87d356JxcTLuZfQC6sGR3ZuJBldwCijTGHAERkMTAQ2J21eCBjvGdl4EQhj6WUsrOx7cc6OgSHMcb8KiKNblg9EOiW/vN8YC3wr+KLSqnyaYj/ELzdvLlzYfbvRc7izJSuU+xyTBHBy9WLWl61qO1Vm+e7PM+vR35l0c5FVHSrWOhyrWkJQ0QCRWSoiIRnLFbsVhfIOvNvbPq6rKYBI0UkFvgWyzPJlFIllDGGyBORpJmc30LLodrGmIwZh08BtXPbUETGiEikiESePXu2eKJTqgy7w+8OwtuEIwgArk6ujAoeZbfniT1x6xPsOruLiHsiWHX/Kro16sZPh3/i+S7P4+zkXOhyrXlExVTg7fSlO/AKMKDQR8wuDJhnjKkH9AUWiEiOmLQCU6pk+GrvV7T/oD3rj653dCglirEM18p1yJYx5n1jTKgxJrRmzZrFGJlSZdeMnjNwdXYFLF8Q7dUKBlDdszqPhj7K4p2LcXV2ZfXh1Zy5cobhgcOLVK41LWFDgB7AKWPMKCAIy63D/BwH6md5Xy99XVYPAUsAjDG/AxWAGjcWpBWYUiXDHU3voKJbxXLbQf8Gp0XEByD99YyD41GqXPHx9uGhtg8BkGpSOXPFvv8Fn7j1Cb7Y8wUxcTFM+2VakVvBwLok7JoxJg1IEZFKWCqa+vnsA7AZaCYijUXEDUvH++U3bHMUS4KHiLTCkoRpU5dSJZSXmxdD/IewZNcSriVfc3Q4jrYcy8Al0l9t+wAhpVS+pnSZQsPKDanqUZVHVz5q164SGa1h9yy5xyatYGD9BN5VgA+wjIz8E/g9v52MMSnAOOAHYA+WUZC7ROQFEcm4nfkk8LCIbAMigAdNSZg2XSmVq/A24cQnxfP1vvKTc4hIBJZ6r4WIxIrIQ8AMoJeIHAB6pr9XShUjH28fYibG8GrvV/nt2G/Mj5pv1+M9cesTHDh3wCatYABSkJwnfXRQJWPM9iIfuZBCQ0NNZGS+T8hQStlJmkmj0RuNaF+3PV8M/aJYjikiW4wxocVyMDvTOkwp20szaXSd15U9Z/ewb9w+qntWt9uxjl86jq+3LyJi1fZ51V/Wjo5sk956FQL4ichgq6NVSpUpTuLEt/d9y6d3f+roUJRSCrDUS+/2fZe4hDie+fkZux6rbqW6Vidg+bFmdORHwEfAPcBd6Ut/mxxdKVUqBdYKxMPVw9FhKKVUpta1WzPx1ol88OcHbIzd6OhwrGJNS9it6SMTHzDGjEpfRts9MqVUibZg2wKGLh3q6DCUUirT1K5T8fX2ZezKsaVidg9rkrDfbzLdkFKqnLuYeJGlu5ey/bTDuogqpVQ23u7evHHnG2w9tZX/bf6fo8PJlzVJ2CdYErF96ZNs7xARrXWVKueGBw7H1cmVBdsWODoUpZTKdE+re7ij6R08t+Y5TsafzH8HB7ImCZsL3I9l8tqM/mB32TMopVTJV8OzBv2a9+PTHZ+WimZ/lbeKFS3z3x05coSQkBCCg4MJCAjgvffeA+Dq1av069ePli1bEhAQwNNP33y+8mnTpjFr1qxs6xo1asRff/0FWObge/LJJzM/mzVrFtOmTcuxrzGGl156iWbNmtG8eXO6du3K9u3Xv/9nxJth3rx5jBs3LrOcunXrEhwcnLnExcUV8jdTumX9PR09epTevXvTqlUr/P39iYmJybbt+PHjc/xeM5Sm6yoizO47m8SURCatmpTHb8fxrEnCzhpjlhtjDhtjjmQsdo9MKVXihbcJ59TlU/x86GdHh1KuLFwIjRqBk5PldeFC25Xt4+PD77//TlRUFH/88QczZszgxIkTAEyaNIm9e/eydetWNmzYwHfffVfg8t3d3fnyyy8z/3jn5p133uG3335j27Zt7N+/n2effZYBAwZw5coVq47zxBNPEBUVlblUqVKlwLEWt4gICAwEZ2fLa0SEbcsPDw9n8uTJ7Nmzh02bNlGrVq3MzyIjI7lw4UKhyy5p19Wvmh9Pd3qaRTsWsfrw6oKeTrGxJgnbKiKLRCRMRAZnLHaPTClV4vVt1pd7/e/F293b0aGUGwsXwpgxcOQIGGN5HTPGdomYm5sb7u7uACQmJpKWZnkCuaenJ927d8/cJiQkhNjY2AKX7+LiwpgxY3j99dfz3O7ll19m9uzZeHp6AtC7d286d+7MQltmnCVIRAQ8+yy8/TYkJFhen33WdonY7t27SUlJoVevXoClxSnjd5uamsrkyZN55ZVXCl1+Sbyu/+r4L5pWbcrYlWNJSk2yefm24GLFNh5AItA7yzoDfGmXiJRSpYa7iztL7l3i6DDKlIkTISoq9883boTExOzrrl6Fhx6CDz64+T7BwfDGG9bHcOzYMfr160d0dDQzZ87E19c32+dxcXGsWLGCCRMmWF9oFo899hht2rThqaeeuunnly5d4sqVKzRp0iTb+tDQUHbv3m3VMV5//XU+/dTyLLuqVauyZs2aQsVqS9265Vw3dCiMHQsvvgje3vCf/1z/zNsbJk+GsDD46y8YMiT7vmvXWn/s/fv3U6VKFQYPHszhw4fp2bMnM2bMwNnZmdmzZzNgwAB8fHwKc1qZStp19XD14O0+b9N3UV9e/e1V/t3531aeSfHJMwkTEWfgnDGmZN9UVUo51LGLxzh/7TxBdYIcHUqZd2MClt/6wqhfvz7bt2/nxIkTDBo0iCFDhlC7dm0AUlJSCAsLY/z48Tn+mAK5PsQy6/pKlSoRHh7OW2+9hYeH7Z43l/UYTzzxBJMmlZ4/Xfv2QceO2ddVrgw7dtim/JSUFNatW8fWrVtp0KABw4YNY968efTp04elS5eyNp+MrrRe1z7N+nBPq3t48dcXCWsdRqMqjWwWly3kmYQZY1JFpGNe2yilyjdjDL0W9KJOxTqsfXCto8Mp9fJrsWrUyHIL8kYNGxasZcQavr6+BAYGsm7dOoakN8OMGTOGZs2aMXHixJvuU716dU6ezD4iLT4+PkffnYkTJxISEsKoUaNylFGpUiW8vLw4dOhQtkRvy5Yt9O5tuSnj4eFBUlISbm5uAJw/f54aNWoU9lSLRV7Xp1UrSytY+h1fANasgccft/xco0bRrm+9evUIDg7O/H0OGjSIjRs3UqdOHaKjo/Hz8wMsAzD8/PyIjo7Otn9pvq6v3/E630d/z4TvJ/D18JI15601fcKiRGS5iNyvfcKUUjcSEUa2GckvR37hSJyO2bG36dMhvTtNJk9Py3pbiI2N5dq1awBcuHCB9evX06JFCwCee+45Ll68yBt5ZIpdunRh+fLlxMfHA/Dll18SFBSEs3P2yY6rVavG0KFDmTt37k3LmTx5MuPHj8+M5aeffmLXrl2ZyWDXrl0zb0tdu3aNJUuWZPZZK42efdZyS3nNGkhOtrw+9JBlvS20b9+euLg4zp49C8Dq1avx9/enX79+nDp1ipiYGGJiYvD09MyRgEHpvq71K9dnWrdpLN+3nOX7lhepLFuzpk9YBeAc8Lcs67RPmFIq08g2I5myZgqfbv+UZ7vY6K+Guqn77rO8PvssHD0KDRpYErCM9UW1Z88ennzySUQEYwyTJk2idevWxMbGMn36dFq2bElISAgA48aN4+9//3u2/du0acO4cePo1KkTIkKtWrX48MMPb3qsJ598ktmzZ9/0s8cff5y4uDjatGlDcnIySUlJ7Ny5kwoVKgDw5ptv8o9//IO33noLYwzh4eF06dIlc/+sfYcAli1bRqNGjYryq7GrsDDL6+OPw549lpax6dOvry8qZ2dnZs2aRY8ePTDG0K5dOx5++GGr9y/t13XCLROYFzWP8d+Np2eTnni6eua7T3EQY4yjYyiQ0NBQExkZ6egwlFI36DavGycvn2TvY3ttNrltBhHZYowJtWmhDqJ1WMFdvnyZu+++m/bt2/N///d/jg5H2UhxX9d1R9bRZV4Xnun0DNN72Kjp2Ap51V/5toSJSD3gbSCjb9g6YIIxpuBjk5VSZVZ4UDhjVoxh37l9tKzR0tHhqDKkYsWKrFq1ytFhKBsr7uvauWFnHgh6gJm/zeT+oPtLRD1lTZ+wj4HlgG/6siJ9nVJKZRoWMIzj/zxeIio2pZS6mVd6vYKXmxePffsYJeFOoDVJWE1jzMfGmJT0ZR5Q085xKaVKGS83L2pXrO3oMJRSKle1vGrx3x7/ZfXh1SzeudjR4ViVhJ0TkZEi4py+jMTSUV8ppbI5GX+SHp/0YNneZY4ORSmlburhkIdp79uef/74Ty4mXHRoLNYkYaOBocAp4CQwBMj5ABClVLlX06smu8/uZv62+Y4ORSmlbsrZyZn/9fsfpy+f5vk1zzs0llyTMBF5Of3HDsaYAcaYmsaYWsaYQcaYo8UUn1KqFHFxcuG+1vexcv9Kzl3VBnOlVMnUzrcdY9uPZfbm2Ww9udVhceTVEtZXLOPMS95kS0qpEis8KJzktGQ+2/WZo0NRBVCxYkUAjhw5QkhICMHBwQQEBPDee+8Bliep9+vXj5YtWxIQEMDTTz9903KmTZvGrFmzsq1r1KgRf/31F2B5uO+TTz6Z+dmsWbOYNm1ajn0ffPBBGjduTHBwMMHBwbz11lsAXLx4kfDwcPz8/GjatCnh4eFcvGi5pRQTE4OHhwfBwcH4+/sTHh5OcnIyAGvXrkVEsj3bKioqChHJEW9ZknFdAY4ePUrv3r1p1aoV/v7+xMTEZNt2/Pjx2bbPqixe15f+9hI1PGvw6MpHSTNpeW5rL3klYd8DF4A2InJJROKzvhZTfEqpUqZN7TYE1Q7ik22fODqUsqlOHRDJudSpY5PifXx8+P3334mKiuKPP/5gxowZnDhxAoBJkyaxd+9etm7dyoYNG/juu+8KXL67uztffvll5h/vvMycOZOoqCiioqIYP348AA899BBNmjQhOjqagwcP0rhx42wPjG3atClRUVHs2LGD2NhYliy5PsF8YGBgtvcREREEBZWQ+U4bNbr5dbXhA2bDw8OZPHkye/bsYdOmTdSqVSvzs8jISC5cuFDoskvjda1SoQqv9n6VP47/wdw/b/6Ef3vLNQkzxkw2xlQBVhpjKhljvLO+Fl+ISqnS5l8d/8WwgGEO+3ZZpp0+XbD1BeTm5oa7uzsAiYmJpKVZrqGnp2fm9DFubm6EhIQQG1vwx0W6uLgwZswYXn/99QLvGx0dzZYtW5gyZUrmuueff57IyEgOHjyYbVtnZ2c6dOjA8ePHM9c1bNiQhIQETp8+jTGG77//nj59+hQ4Drs4cgSMybncbKLQQti9ezcpKSn06tULsLSQeabPf5WamsrkyZN55ZVXCl1+ab2u97W+j64Nu/Kvn/7F2StnCxx7UeX5sFYRcQY04VJKFUhYaxvNtVIeTZwIUVGF27dbt5uvDw7Of2bwLI4dO0a/fv2Ijo5m5syZ+Pr6Zvs8Li6OFStWMGHChEKF+dhjj9GmTRueeuqpPLebPHkyL730EgALFizg8OHDBAcHZ5uv0NnZmeDgYHbt2kWbNm0y1yckJPDHH3/w5ptvZitzyJAhLF26lLZt2xISEpKZcBaLm12foUNh7NjcP8/w11+QPr9ipgLM6L1//36qVKnC4MGDOXz4MD179mTGjBk4Ozsze/ZsBgwYgI+Pj9Xl3UxpvK4iwrv93iXovSCe/ulp5g4s3haxPEdHGmNSgTQRqVxM8Silyoj4xHgW7VikrWGlUP369dm+fTvR0dHMnz+f01la2VJSUggLC2P8+PE0adIkx765TVmVdX2lSpUIDw/P7A+Um6y3rVq3bm1V7AcPHiQ4OJjatWvj4+OT7Q84wNChQ1m6dCkRERGE2WpixlIgJSWFdevWMWvWLDZv3syhQ4eYN28eJ06cYOnSpTz++ON57l+Wr6t/TX+evO1JPor6iA1HNxRo36KyZgLvy8AOEVkFXMlYaYwZb7eolFKl3soDK7nvy/vwqehD98bdHR1O6ZFfi1Ve83IWoGXEGr6+vgQGBrJu3TqGpLfCjBkzhmbNmjFx4sSb7lO9enVOnjyZbV18fDxVqlTJtm7ixImEhIQwapT1Tzzy9/cnKiqKtLQ0nJwsbQhpaWlERUXh7+8PXO879Ndff9GxY0eWL1/OgAEDMsuoU6cOrq6urFq1ijfffJPffvvN6uMXWX7X52afZ1zvGjWKdH3r1atHcHBwZuI8aNAgNm7cSJ06dYiOjsbPzw+wDMDw8/MjOjo62/5l/bpO6TKFRTsW8ejKR/nzH3/i4mRNelR01jwn7EtgCvArsCXLopRSuRrYYiDebt58sr1sd9AXkSdEZJeI7BSRCBGp4OiYiiI2NpZr164BcOHCBdavX0+LFi0AeO6557h48SJv5JEodunSheXLlxMfHw/Al19+SVBQULZbTQDVqlVj6NChzJ1r/e0fPz8/2rZtm3krC+Cll14iJCQkM4nIUKNGDWbMmMF///vfHOW88MILvPzyyzliKsvat29PXFwcZ89a+j2tXr0af39/+vXrx6lTp4iJiSEmJgZPT88cCRiU/evq5ebFm3e+yY4zO3j7j7cLvH9h5ZuEGWPmA0uAjcaY+RmL/UNTSpVmHq4e3Ot/L5/v/pwrSVfy36EUEpG6wHgg1BgTCDgDw+160Nq5TA2V2/oC2rNnD7fccgtBQUF07dqVSZMm0bp1a2JjY5k+fTq7d+/OfIRF1scCZGjTpg3jxo2jU6dOBAcH89577910O4Ann3zSqtF0Wc2dO5f9+/fTtGlTmjZtyv79+3P9gz9o0CCuXr3KunXrsq2//fbbGTRoUIGOa3cNG958dGTDhjYp3tnZmVmzZtGjRw9at26NMYaHH37Y6v3Lw3Ud1HIQfZv15fm1z3P80vH8d7AByW8CSxG5C5gFuBljGotIMPCCMWZAnjvaSWhoqImMjHTEoZVSBfRLzC90m9+NT+/+lPva3FfockRkizEm1HaR2UZ6ErYRCAIuAcuAt4wxP+a2j9ZhSpVchy4cIuDdAAa0GMBnQ2zzrMO86i9rbkdOAzoAcQDGmCggZ29MpZS6QeeGnWlYuSEbjhVvZ9fiYow5juVL6lEs07pdzCsBU0qVbE2qNuGZTs+wZNcSfjxo///K1iRhycaYG2e41OFOSql8OYkTW8Zs4d1+7zo6FLsQkarAQKAx4At4icjIm2w3RkQiRSQyo0+OUqpkmtxxMs2qNeOxbx8jISXBrseyJgnbJSIjAGcRaSYibwPFOJxEKVWaVfesDkB+XR9KqZ7AYWPMWWNMMpaBTLffuJEx5n1jTKgxJrRmzZrFHqRSynoVXCowu+9sos9HM3PDTLsey5ok7HEgAEgEFgEXgYl2jEkpVcZM/3U6t390e1lMxI4Ct4qIZ/pcuz2APQ6OSSlVRL2b9mZowFCmr5vOwfMH89+hkHJNwkSkgohMBF7BUtHcZoxpb4x5zhhj3/Y5pVSZUs2jGhtjN7Lt9DZHh2JTxpg/gM+BP4EdWOrU9x0alFLKJl7r/Rquzq6M/3683b5A5tUSNh8IxVKx9MHS+VQppQpsWOAwXJ1cy+Sk3saYqcaYlsaYQGPM/caYREfHpJQqurqV6vJCtxf49sC3LNu7zC7HyCsJ8zfGjDTGzAGGAF3sEoFSqsyr5lGNu1rcxcIdC0lJS3F0OOomKlasCMCRI0cynwMWEBDAe++9B1iepN6vXz9atmxJQEAATz/9dK5lff/993To0IGWLVsSHBzMsGHDOHr0aObnKSkp1KxZM0cZjRo1yvZ8qbVr19K/f38ATp8+Tf/+/QkKCsLf35++ffsClierjx8/nsDAQFq3bk379u05fPjwTctbtmwZIsLevXsz18XExCAivP329Qd0jhs3jnnz5hXo91dSZVxXgKNHj9K7d29atWqFv78/MTEx2bYdP358tu1vVB6v6+O3PE6b2m2Y8P0ELiddLtC+1sgrCUvO+MEYo7WmUqpIwtuEc+bKmWIZ9l2WtZ3TFvmP5Fjazmlrk/J9fHz4/fffiYqK4o8//mDGjBmcOHECgEmTJrF37162bt3Khg0b+O6773Lsv3PnTh5//HHmz5/P3r17iYqK4r777sv2B3/VqlU0b96cpUuXWn2b5/nnn6dXr15s27aN3bt3M2PGDAA+++wzTpw4wfbt29mxYwdfffVVjql0MkRERNCpUyciIiKyra9VqxZvvvkmSUlJVsViD50+6nTT69rpo042O0Z4eDiTJ09mz549bNq0iVq1amV+FhkZyYULF3Ldt7xeVxcnF97t+y7HLh3jxV9eLHQ5uckrCQsSkUvpSzzQJuNnEblk80iUUmVal4ZdePK2J/H19uVS4qXMJSnVcX/4SqPb6t2Gm7NbtnVuzm7cXi/HoMxCcXNzw93dHYDExETS0ixPJPL09KR79+6Z24SEhBAbG5tj/5dffplnnnmGVq1aZa4bMGAAXbpcv5kSERHBhAkTaNCgAb///rtVcZ08eZJ69eplvs+YwPnkyZP4+PhkzjlYr149qlatmmP/y5cvs379eubOncvixYuzfVazZk169OjB/PmOmwymvW97Jt4yETPVZC4Tb5lIh7odbFL+7t27SUlJoVevXoClhczT0xOA1NRUJk+ezCuvvJLr/uX5unZs0JHRwaN5beNr7Dqzq0hl3SjXGSqNMeVnUi2llF2dvnwa39d88XDx4P0t1/utJ6Qk0KdZH74e/rUDoytZJn4/kahTUbl+npiSmOOWbkpaCltPbaXbvG433Se4TjBv3PmG1TEcO3aMfv36ER0dzcyZM/H19c32eVxcHCtWrGDChAk59t21axeTJk3KteyEhAR++ukn5syZQ1xcHBEREdx+e/4J5GOPPcawYcOYPXs2PXv2ZNSoUfj6+jJ06FA6derEunXr6NGjByNHjqRt25ytgl9//TV33nknzZs3p3r16mzZsoV27dplfv6vf/2LPn36MHr06HxjKaybXZ+hAUMZ234s424ZR8vZLdkYuxF3F3cSUxKJPBnJrF6W7th/Xf2LIUuGZNt37YNrrT72/v37qVKlCoMHD+bw4cP07NmTGTNm4OzszOzZsxkwYAA+Pj657l/er+vLvV7m46iPCfxfYI7P6nrXJfafOb+QWMOaR1QopVSR1K5Ymx6Ne/Ba79f4YugXLA9bzsWnL9LOtx33tS78dEblkbuLO7W9aiMIAIJQx6tOjtaxoqhfvz7bt28nOjqa+fPnc/r06czPUlJSCAsLY/z48TRpkvfkKefOnSM4OJjmzZsza5Ylmfjmm2/o3r07Hh4e3HPPPSxbtozU1FTLuYjkKCNj3R133MGhQ4d4+OGH2bt3L23btuXs2bPUq1ePffv28d///hcnJyd69OjBzz//nKOciIgIhg+3TOs5fPjwHLeumjRpwi233MKiRYsK8JuyHZ+KPtT2qs2xS8cAOHbpGLW9alO5QmWblJ+SksK6deuYNWsWmzdv5tChQ8ybN48TJ06wdOlSHn/8cavLKo/XtYZnDbo0zNk13s3ZjYEtBha63FxbwpRSypamdp3KiC9G4OHqQS2vWjzb+VkuJV5iiP+Q/HcuR6xpsToZf5ImbzUhISWBCi4V2PKPLdSpWMfmsfj6+hIYGMi6desYMsRyncaMGUOzZs2YOHHiTfcJCAjgzz//JCgoiOrVqxMVFcWsWbO4fNnSqTkiIoL169fTqFEjwPIHffXq1fTq1Yvq1atz4cIFatSoAcD58+czfwaoVq0aI0aMYMSIEfTv359ff/2Ve+65B3d3d/r06UOfPn2oXbs2y5Yto0ePHpn7nT9/ntWrV7Njxw5EhNTUVESEmTOzP4jzmWeeYciQIXTt2tVWv8Js8mq58nT1ZPPDmwl4N4DX73idngt6smvsrszrWsOzRoFavm5Ur149goODMxPnQYMGsXHjRurUqUN0dDR+fn6AZQCGn58f0dHR2fbX6woLBy+k/uv1MVzv7+YszkzpOqXQZWpLmFKqWHRs0JEWNVrQuUFnRrcdzdS1U5nadSpOotVQQfl4+zAqeBRO4sSo4FE2TcBiY2O5du0aABcuXGD9+vW0aNECgOeee46LFy/yxhtv5Lr/U089xfTp09mz5/oza69evQrApUuXWLduHUePHiUmJoaYmBjeeeedzNaLbt26sWDBAsDST+nTTz/N7Ie2evXqzHLi4+M5ePAgDRo04M8//8wcOJCWlsb27dtp2LBhtpg+//xz7r//fo4cOUJMTAzHjh2jcePGrFu3Ltt2LVu2xN/fnxUrVhTqd1dUPt4+PBD0AD0+6cEDQQ/Y9Lq2b9+euLg4MqbNWr16Nf7+/vTr149Tp05lXg9PT88cCRjodQXLIyvu8b8n872bs1vR//8ZY0rV0q5dO6OUKp3WH1lvGr7e0Czfu9z4v+NvUtNSrdoPiDQloP6xxWKrOuzEpROmy8ddzMn4kzYpz8vLyxhjzI8//mhat25t2rRpY1q3bm3mzJljjDHm2LFjBjAtW7Y0QUFBJigoyHzwwQc3Leubb74xoaGhpnnz5ub22283w4cPN/v27TPz5s0zw4YNy7btuXPnTI0aNUxCQoKJi4szYWFhmceePHmySU21/Bt55ZVXTKtWrUzr1q1NQECAmTVrljHGmO+++86EhISYgIAAExAQYEaNGmWuXbtmjDGmYcOG5uzZs6Zbt27mu+++y3bcN9980zzyyCPm8OHDJiAgIHN9VFSUERHz8ccfF/2XWggnLp0wdyy4w+bX1Zjr1zYwMNA88MADJjExMc/tb6TX1XJ93F50M0zDeLzkYdV1yqv+EmPHaURE5E7gTcAZ+NAYM+Mm2wwFpgEG2GaMGZFXmaGhoSYyMtIO0SqlikPvBb35PfZ35g6Yy9CAoVbtIyJbjDGhdg6tWGgdplTpNnblWOZsmcMj7R7hnX7v5Lt9XvWX3e4DiIgz8A6Wp+37A2Ei4n/DNs2AfwMdjTEB6JyUSpV5L3Z/kdvq3aZ9wZRSpdKULlNoVKVRkfqCZbBnx/wOQLQx5hCAiCwGBgK7s2zzMPCOMeYCgDHmjB3jUUqVALfUu4Uf79cHtiqlSicfbx8OjrfNpN727BFbFziW5X1s+rqsmgPNRWSDiGxMv32plFJKKVXmOfoRFS5AM6AbUA/4VURaG2Pism4kImOAMQANGjQo5hCVUkoppWzPni1hx4H6Wd7XS1+XVSyw3BiTbIw5DOzHkpRlY4x53xgTaowJrVmzpt0CVkoppZQqLvZMwjYDzUSksYi4AcOB5TdsswxLKxgiUgPL7clDdoxJKaWUUqpEsFsSZoxJAcYBPwB7gCXGmF0i8oKIDEjf7AfgnIjsBtYAk40x5+wVk1JKKaVUSWHXPmHGmG+Bb29Y93yWnw3wz/RFKaWUUqrc0PlClFJKKaUcQJMwpZRSSikHsOu0RfYgImeBI46OIx81gL8cHYSdlYdzhPJxnqXhHBsaY8rE0OhSUIeVhn8PtlAezrM8nCOU/PPMtf4qdUlYaSAikWVlnrvclIdzhPJxnuXhHJX1ysu/h/JwnuXhHKF0n6fejlRKKaWUcgBNwpRSSimlHECTMPt439EBFIPycI5QPs6zPJyjsl55+fdQHs6zPJwjlOLz1D5hSimllFIOoC1hSimllFIOoElYIYnInSKyT0SiReTpm3z+TxHZLSLbReRnEWnoiDiLKr/zzLLdPSJiRKRUjlCx5jxFZGj6Nd0lIouKO8aisuLfbAMRWSMiW9P/3fZ1RJyqeJSHOkzrr2zblOr6C8poHWaM0aWAC+AMHASaAG7ANsD/hm26A57pPz8KfObouO1xnunbeQO/AhuBUEfHbafr2QzYClRNf1/L0XHb4RzfBx5N/9kfiHF03Lo49N9Dqa7DtP7Ktk2prr8KcJ6lrg7TlrDC6QBEG2MOGWOSgMXAwKwbGGPWGGOupr/dCNQr5hhtId/zTPci8DKQUJzB2ZA15/kw8I4x5gKAMeZMMcdYVNacowEqpf9cGThRjPGp4lUe6jCtv64r7fUXlNE6TJOwwqkLHMvyPjZ9XW4eAr6za0T2ke95ikgIUN8Ys7I4A7Mxa65nc6C5iGwQkY0icmexRWcb1pzjNGCkiMQC3wKPF09oygHKQx2m9dd1pb3+gjJah7k4OoCyTkRGAqFAV0fHYmsi4gS8Bjzo4FCKgwuWJv1uWFoEfhWR1saYOEcGZWNhwDxjzKsichuwQEQCjTFpjg5MOU5ZrcO0/ipz9ReUwjpMW8IK5zhQP8v7eunrshGRnsCzwABjTGIxxWZL+Z2nNxAIrBWRGOBWYHkp7NxqzfWMBZYbY5KNMYeB/VgqtdLCmnN8CFgCYIz5HaiAZU42VfaUhzpM66/rSnv9BWW0DtMkrHA2A81EpLGIuAHDgeVZNxCRtsAcLJVXabz/DvmcpzHmojGmhjGmkTGmEZZ+IwOMMZGOCbfQ8r2ewDIs3yIRkRpYmvcPFWOMRWXNOR4FegCISCssFdjZYo1SFZfyUIdp/XXdMkp3/QVltA7TJKwQjDEpwDjgB2APsMQYs0tEXhCRAembzQQqAktFJEpEbvzHUuJZeZ6lnpXn+QNwTkR2A2uAycaYc46JuOCsPMcngYdFZBsQATxo0ocZqbKlPNRhWn+VnfoLym4dpk/MV0oppZRyAG0JU0oppZRyAE3ClFJKKaUcQJMwpZRSSikH0CRMKaWUUsoBNAlTSimllHIATcJUkYlIPRH5WkQOiMhBEXkz/TkuSilVomn9pRxJkzBVJCIiwJfAMmNMMywPAawITHdoYEoplQ+tv5SjaRKmiupvQIIx5mMAY0wq8AQwWkS8RGSWiOwUke0i8jiAiLQXkd9EZJuIbBIRbxF5UERmZxQqIt+ISLf0ny+LyOsisktEfhaRmunrHxaRzenlfCEinunr54nIW+nHOCQiQ7KU+y8R2ZG+zwwRaSoif2b5vFnW90qpMk3rL+VQmoSpogoAtmRdYYy5hGX6iL8DjYBgY0wbYGF6M/9nwARjTBDQE7iWzzG8gEhjTADwCzA1ff2Xxpj26eXswTJvWAYfoBPQH5gBICJ9gIHALen7vGKMOQhcFJHg9P1GAR8X6DeglCqttP5SDqVJmLKnbsCc9OkmMMacB1oAJ40xm9PXXcr4PA9pWCo+gE+xVE4AgSKyTkR2APdhqVAzLDPGpBljdgO109f1BD42xlzNEg/Ah8AoEXEGhgGLCnW2SqmypBtafyk70yRMFdVuoF3WFSJSCWhQwHJSyP7vsUIe22bMtTUPGGeMaQ3854Z9ErOGlM+xvwD6YPnWuaW0zammlCo0rb+UQ2kSporqZ8BTRMIB0r+NvYqlgvkB+IeIuKR/Vg3YB/iISPv0dd7pn8cAwSLiJCL1gQ5ZjuEEZPSLGAGsT//ZGzgpIq5YvknmZxWWb4wZfS+qARhjEtJj/R/alK9UeaL1l3IoTcJUkaTPUH83cK+IHAD2AwnAM1iayY8C28Uyq/0IY0wSlibzt9PXrcLyDXADcBjLN9O3gKydS68AHURkJ5aOtC+kr58C/JG+714rYv0eWA5EikgUMCnLxwux3Db4sYC/AqVUKaX1l3I0sfwbVKrkEpHLxpiKdj7GJKCyMWaKPY+jlCpftP5SeXFxdABKOZqIfAU0xfItVSmlSg2tv0o3bQlTSimllHIA7ROmlFJKKeUAmoQppZRSSjmAJmFKKaWUUg6gSZhSSimllANoEqaUUkop5QCahCmllFJKOcD/A8DPKjwusiZzAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -106,7 +106,31 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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JbY851xqa9bM0lAceKAlpH7kkex7um65xXrCBg2y3ImuaIulJwwROUhEzhSR8yNbogNzLi+uvhpefdUWwH3xxcSX17EjfPaZNfhat4Yff0x8mc651FW7NnzxBZx2muVEvOQS2LZt1+NEbEWPk0+2iUKzZiU/Vhc/saSouA14ItjaAvcDnRMcl3N5dvbZNouyb197nujp3IcfbrcRypSxJZQ+/zyx5TnnUluFCvD66zBggKWyyG4WeKlSts7tyJF2i9IVXbH0hHUFjgdWqOqF2FpquyU0Kufy6aCD7Erxt9+scvrii8SWd+CB8M03lsaiQwe7Jeqcc/lVogTccw8MG2YXdkceCQsW7HpchQp24Ql28TlnTnLjdPERSyPsb1XNALaLSBVgJVA3sWE5VzClS1sur/btYfToxJZVpw589ZUlcz3zTBg8OPf3OOdcTi68ED7+GFassF73b76Jftz27dYY69ABfv89uTG6got1Ae+qwHPYzMipwLeJDMq5gqpXz24VHnYYnHWWJVhNpN13twrzpJNsLMfAgT6F3DlXMMceC5Mm2eohxx1n416zKlUKRo2C1attrOq6dUkP0xVALLMjL1XVtao6GGgH9AhuSzpXqEUaRl262DixRA/Yr1ABxoyBCy6A22+Hyy5LbO4y51zqa9jQGmKHHw7nnmt1S9YLvBYtbEWP2bPh1FNh61YbS7ZkiV8MFnaxzo5sKiKdgRbA/iJyWmLDci4+ype325EPPABduya+vFKlbCxH//42ffyssxKfu8w5l9qqV7cLyh49rJe9e/dd65X27XeOI2vZ0tapPOwwG7f60UehhO1iEMvsyGHAMOB04ORg+1+C43IubkqWhOuus7XZNmywXrFEZrsXgXvvtdxlb77ptwiccwVXpgy88ALcfTe88gocfzysWvXfY847z1YQad0ali2D5cttKMZ553kqi8Iqlp6wI1Q1XVV7qOqFwdYz4ZE5lwBffw1PPWUpJVasSGxZV19ta0xOnGhjOxJdnnMutYnADTdY7/7UqXaLcvbsna/PmgV//mkNr02brP5p396GRjz7bHhxu+zF0gj7VkQaJzwS55KgQwd47z349Vdo1cqy3idSt247y/Ps+s65eOja1dLvbN5sKSw++cT2L1kCBxxgwyLuvhvOP9/Gke2zDyxeHG7MLrpYGmEvYQ2xX0RkhojMFJEZ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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", "text/plain": [ "
" ] @@ -118,16 +142,18 @@ } ], "source": [ + "# Get benchmark list\n", "unique_bms = perfdf[\"Benchmark\"].unique()\n", "num_bm = len(unique_bms)\n", - " \n", - "for bindex, bm in enumerate(unique_bms):\n", - " tmpdf = perfdf[perfdf['Benchmark'].str.contains(bm)]\n", + "\n", + "# Plot benchmarks\n", + "for bm in unique_bms:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", " unique_labels = tmpdf[\"Label\"].unique()\n", " num_labels = len(unique_labels)\n", " \n", - " flag = 'multi_insert' in bm\n", + " flag = ('find_all' in bm) or ('multi_insert' in bm)\n", " if (flag):\n", " plot_insert(bm, tmpdf, \"NumReps\", unique_labels, flag)\n", " else:\n", diff --git a/benchmarks/analysis/notebooks/Utils.py b/benchmarks/analysis/notebooks/Utils.py index c8a7c8879..619ec052c 100644 --- a/benchmarks/analysis/notebooks/Utils.py +++ b/benchmarks/analysis/notebooks/Utils.py @@ -7,21 +7,21 @@ colors = ['b','r','g','m','y','c'] styles = ['o','s','v','^','D',">"] -def plot_insert(bm, df, s, unique_labels, flag = False): +def plot_insert(bm, df, xaxis, unique_labels, flag = False): fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) fig.suptitle(bm) marker_handles = [] - ax1.set_xlabel(s) + ax1.set_xlabel(xaxis) ax1.set_ylabel('Performance (number of operations per second)') - ax2.set_xlabel(s) + ax2.set_xlabel(xaxis) ax2.set_ylabel('Bandwidth (GB/s)') lax = [ax1, ax2] if flag: - lnum = list(df[s]) + lnum = list(df[xaxis]) for item in lax: item.set_xscale('log') @@ -33,7 +33,7 @@ def plot_insert(bm, df, s, unique_labels, flag = False): for lindex, lbl in enumerate(unique_labels): tmpdf = df.loc[df['Label'] == lbl] - x = tmpdf[s] + x = tmpdf[xaxis] perf = tmpdf["Elem/s (elem/sec)"] bw = tmpdf['Bandwidth (GB/s)'] @@ -63,3 +63,4 @@ def plot_insert(bm, df, s, unique_labels, flag = False): mfc='none', linestyle="--", label=lbl)[0]) leg = plt.legend(handles = marker_handles, loc="lower left", ncol=2, frameon=False) + plt.savefig(bm+'.eps') From c1c1d962aeff61c11b675dab776d7c8ce61f38ae Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 22 Mar 2021 12:46:30 -0700 Subject: [PATCH 041/267] Fix an index-related bug + update benchmark & unit test for static multimap --- .../hash_table/static_multimap_bench.cu | 5 ++-- include/cuco/detail/static_multimap.inl | 2 +- tests/static_multimap/static_multimap_test.cu | 28 +++++++------------ 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index a12a425ed..dd78f0e06 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -15,11 +15,9 @@ */ #include -#include #include #include -#include #include "cuco/static_multimap.cuh" @@ -198,6 +196,7 @@ void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list <<>>( @@ -268,13 +267,13 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + // Use timers to explicitly mark the target region timer.start(); cuco::detail::find_all <<>>( d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); timer.stop(); - std::cout << "Output size: " << *num_items << std::endl; }); } diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 8cfcdc2c5..b25621a3a 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -126,7 +126,7 @@ OutputIt static_multimap::find_all( detail::find_all <<>>(first, last, output_begin, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - return output_begin + (*num_items - 1); + return output_begin + *num_items; } template diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index d519fed6c..d574c11d9 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -107,7 +107,6 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", auto view = map.get_device_view(); std::vector h_keys(num_keys); - std::vector h_values(num_keys); std::vector> h_pairs(num_keys); generate_keys(h_keys.begin(), h_keys.end()); @@ -117,14 +116,9 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; - h_values[i] = val; } - thrust::device_vector d_keys(h_keys); - thrust::device_vector d_values(h_values); thrust::device_vector> d_pairs(h_pairs); - thrust::device_vector d_results(num_keys); - thrust::device_vector d_contained(num_keys); SECTION("All keys should be found.") { @@ -170,7 +164,6 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", auto view = map.get_device_view(); std::vector h_keys(num_items); - std::vector h_values(num_items); std::vector> h_pairs(num_items); generate_keys(h_keys.begin(), h_keys.end()); @@ -180,29 +173,28 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", Value val = i; h_pairs[i].first = key; h_pairs[i].second = val; - h_values[i] = val; } - - thrust::device_vector d_keys(h_keys); - thrust::device_vector d_values(h_values); thrust::device_vector> d_pairs(h_pairs); - thrust::device_vector d_results(num_items); - thrust::device_vector d_contained(num_items); - thrust::device_vector> d_outputs(num_items); + thrust::device_vector> d_results(num_items); - std::set temp_set(h_keys.begin(), h_keys.end()); - std::vector h_unique_keys(temp_set.begin(), temp_set.end()); + // Get array of unique keys + std::set key_set(h_keys.begin(), h_keys.end()); + std::vector h_unique_keys(key_set.begin(), key_set.end()); thrust::device_vector d_unique_keys(h_unique_keys); - // bulk function test cases + // Bulk function test cases SECTION("Total count should be equal to the number of inserted pairs.") { map.insert(d_pairs.begin(), d_pairs.end()); + // Count matching keys size_t num = map.count(d_unique_keys.begin(), d_unique_keys.end()); REQUIRE(num == num_items); - auto output_end = map.find_all(d_unique_keys.begin(), d_unique_keys.end(), d_outputs.begin()); + auto output_end = map.find_all(d_unique_keys.begin(), d_unique_keys.end(), d_results.begin()); + auto size = thrust::distance(d_results.begin(), output_end); + + REQUIRE(size == num_items); } SECTION( From d82a1321d6b984eb4cfdec57effd37afa43ec078 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 23 Mar 2021 15:23:56 -0400 Subject: [PATCH 042/267] Remove data folder from git repo --- .../analysis/data/static-multimap-data.csv | 217 ------------------ .../analysis/notebooks/StaticMultimap.ipynb | 2 +- 2 files changed, 1 insertion(+), 218 deletions(-) delete mode 100644 benchmarks/analysis/data/static-multimap-data.csv diff --git a/benchmarks/analysis/data/static-multimap-data.csv b/benchmarks/analysis/data/static-multimap-data.csv deleted file mode 100644 index d6473d6c0..000000000 --- a/benchmarks/analysis/data/static-multimap-data.csv +++ /dev/null @@ -1,217 +0,0 @@ -Benchmark,Device,Device Name,Key,Value,NumInputs,Occupancy,Distribution,Skipped,NumKeys,Samples,CPU Time (sec),Noise,GPU Time (sec),Noise,Elem/s (elem/sec),GlobalMem BW (bytes/sec),BWPeak,NumReps (pow2),NumReps -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIQUE,No,100000000,11,0.06920442581818184,0.00366065791236223,0.06919912719726563,0.0036608494814078744,1445104931.9586136,11560839455.66891,0.01287329792580008,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIQUE,No,100000000,11,0.06900785154545455,0.00046053301761491355,0.06900233251398259,0.00046360521920327686,1449226371.8728068,11593810974.982454,0.012910012577259182,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIQUE,No,100000000,11,0.06708165454545455,0.0006289907616746042,0.06707600264115766,0.0006266077656208109,1490846145.6026042,11926769164.820833,0.013280770253729014,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIQUE,No,100000000,11,0.06524690463636364,0.0012178973094829188,0.0652412740534002,0.0012158158228520127,1532772028.9176092,12262176231.340874,0.013654254818607551,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIQUE,No,100000000,11,0.06404241445454546,0.00025336208261050397,0.06403677090731534,0.000257293675977584,1561602788.2595239,12492822306.07619,0.013911085271696157,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIQUE,No,100000000,11,0.06341475663636366,0.0003825017224831159,0.06340924523093483,0.00038245204062774794,1577057093.7377126,12616456749.901701,0.01404875546730431,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIQUE,No,100000000,11,0.06326109672727273,0.00029322812488110874,0.06325564540516247,0.0002949170708644907,1580886565.2936444,12647092522.349155,0.014082869203371262,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIQUE,No,100000000,11,0.0636532089090909,0.0002999547261766452,0.06364783755215732,0.00029998997010566525,1571145287.0343518,12569162296.274815,0.013996091852857325,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIQUE,No,100000000,11,0.06988678181818182,0.0006097483572236783,0.06988148429177024,0.0006114044551770101,1430994218.4753613,11447953747.80289,0.012747596729576694,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,UNIFORM,No,100000000,11,0.06918830272727274,0.004076046636656547,0.06918292999267578,0.0040787055884692934,1445443261.9518535,11563546095.614828,0.012876311840363575,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,UNIFORM,No,100000000,11,0.06897605027272728,0.0004355213737381127,0.06897068301114169,0.00043562856622579555,1449891397.8254466,11599131182.603573,0.012915936767971838,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,UNIFORM,No,100000000,11,0.06705543254545455,0.0006021725673874137,0.06704993785511364,0.0006033296206601019,1491425692.5351257,11931405540.281006,0.01328593297939643,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,UNIFORM,No,100000000,11,0.06428108272727273,0.03127848106145733,0.06427554945512251,0.03128327429446077,1555801558.2553747,12446412466.042997,0.013859406697685421,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,UNIFORM,No,100000000,11,0.06403595218181818,0.0008424562226042858,0.06403062612360173,0.0008416345207341068,1561752649.5362494,12494021196.289995,0.013912420267391047,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,UNIFORM,No,100000000,11,0.06345626490909091,0.0002616791219334027,0.06345085629549894,0.00026342360999119735,1576022859.8694856,12608182878.955885,0.01403954229501751,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,UNIFORM,No,100000000,11,0.06333125536363637,0.0002099589133498871,0.063326021714644,0.00020856218327940887,1579129673.5900152,12633037388.720121,0.014067218443468636,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,UNIFORM,No,100000000,11,0.06380253554545455,0.00033279867530066725,0.063797061920166,0.0003348330883940887,1567470303.3368123,12539762426.694498,0.013963354327045435,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,UNIFORM,No,100000000,11,0.07055124263636364,0.005059411064470772,0.07054587346857245,0.005054540167730359,1417517355.4913752,11340138843.931002,0.01262754200658651,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,GAUSSIAN,No,100000000,11,0.06919409681818182,0.0005224715930853448,0.06918860764936968,0.0005200745967572223,1445324648.0515208,11562597184.412167,0.012875255202853484,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,GAUSSIAN,No,100000000,11,0.06958156254545454,0.0003918305352390283,0.06957549424604936,0.00038972202243796306,1437287669.7987409,11498301358.389927,0.012803660114370197,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,GAUSSIAN,No,100000000,11,0.0681513359090909,0.0005948989257183495,0.06814571033824574,0.000595526495261821,1467443798.056303,11739550384.450424,0.013072297231829951,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,GAUSSIAN,No,100000000,11,0.06685825854545456,0.0007454757001334387,0.06685286365855823,0.0007474593173783835,1495822235.9888155,11966577887.910524,0.013325098310903788,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,GAUSSIAN,No,100000000,11,0.06627705681818183,0.0005630770491739888,0.0662715107310902,0.0005626588845737492,1508944022.8059664,12071552182.447731,0.013441989940902637,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,GAUSSIAN,No,100000000,11,0.06692918090909092,0.00025382878914624417,0.06692370536110617,0.0002531769891507106,1494238841.9831378,11953910735.865103,0.013310993104895398,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,GAUSSIAN,No,100000000,11,0.07026752027272729,0.00026362705904800846,0.07026194624467329,0.00026434211867263,1423245516.8800738,11385964135.04059,0.012678569670040565,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.07985989563636364,0.010859783543314126,0.07985459206321023,0.01085614344075895,1252276136.1155453,10018209088.924362,0.011155538555761343,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.10914429263636363,0.00045673407432265007,0.10913903808593749,0.0004579464402798095,916262427.7598883,7330099422.079106,0.008162257943984182,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,UNIQUE,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,UNIFORM,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,GAUSSIAN,Yes,,,,,,,,,,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIQUE,No,100000000,11,0.10274451318181815,7.919867067043338e-05,0.10273922452059657,7.937319902834375e-05,973338084.5205092,15573409352.328148,0.017341399738464033,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIQUE,No,100000000,11,0.08645334581818183,0.001069146654464478,0.08644775668057528,0.0010671316663770792,1156768016.19619,18508288259.13904,0.02060946437065618,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIQUE,No,100000000,11,0.0849845310909091,0.0009667560971783149,0.08497915302623403,0.0009668284317229073,1176759198.4486933,18828147175.179092,0.020965635662213034,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIQUE,No,100000000,11,0.08270579718181818,0.0006225482401469632,0.08270028825239702,0.0006211092880687401,1209185628.166194,19346970050.659103,0.02154335854058926,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIQUE,No,100000000,11,0.07897613554545456,0.00040252419577252956,0.07897078774192118,0.0004014339582821938,1266291028.1052647,20260656449.684235,0.022560772308032793,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIQUE,No,100000000,11,0.07642653472727273,0.0005395866182401395,0.0764211196899414,0.0005422698066863944,1308538796.6798143,20936620746.87703,0.023313476280640934,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIQUE,No,100000000,11,0.07490249536363637,0.000634047536343183,0.07489684989235618,0.0006325369521988604,1335169638.559202,21362714216.94723,0.023787942534193307,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIQUE,No,100000000,11,0.07593944427272728,0.0009142890604426159,0.07593388227982954,0.0009146761769850632,1316935167.7750735,21070962684.401176,0.023463069551294784,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIQUE,No,100000000,11,0.08843876872727273,0.00041083894043193324,0.08843329204212536,0.00041137249157570003,1130795854.0361114,18092733664.57778,0.020146733431373135,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,UNIFORM,No,100000000,11,0.10274524690909091,6.354018158648775e-05,0.10274024616588245,6.505868237862087e-05,973328405.6818581,15573254490.909729,0.017341227296213263,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,UNIFORM,No,100000000,11,0.08623861036363638,0.0010673083587560577,0.08623346016623758,0.0010686851723073897,1159642670.1099992,18554282721.759987,0.020660680411024784,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,UNIFORM,No,100000000,11,0.08475259200000002,0.0008236603929658194,0.08474735745516691,0.0008206519014245491,1179977795.212105,18879644723.39368,0.02102297953271282,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,UNIFORM,No,100000000,11,0.08255245990909091,0.0005501564153902886,0.08254696863347834,0.0005507180339496883,1211431523.8396688,19382904381.4347,0.02158337236031337,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,UNIFORM,No,100000000,11,0.07882271636363637,0.0007382712526508775,0.07881737240878019,0.0007369330540988989,1268755820.4980211,20300093127.968338,0.022604686083559384,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,UNIFORM,No,100000000,11,0.07642493618181818,0.0021891595178698607,0.07641953832452947,0.0021892748892233535,1308565874.5454836,20937053992.727737,0.023313958711257902,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,UNIFORM,No,100000000,11,0.07487487463636364,0.0004947702667866301,0.0748693882335316,0.0004976890232915997,1335659371.0647311,21370549937.035698,0.023796667814009607,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,UNIFORM,No,100000000,11,0.07613220190909092,0.0005209790978913337,0.0761271383112127,0.0005219125155713814,1313592001.7273405,21017472027.637447,0.023403506302154726,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,UNIFORM,No,100000000,11,0.08904410554545455,0.0002932838905896244,0.08903856867009943,0.0002917179813264836,1123108799.856321,17969740797.701138,0.020009777648523394,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,GAUSSIAN,No,100000000,11,0.10816177872727271,3.566492121809612e-05,0.1081567417491566,3.4091418821815285e-05,924584065.521554,14793345048.344864,0.016472777678191882,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,GAUSSIAN,No,100000000,11,0.07844791381818184,0.0007774184979175578,0.07844240153919567,0.0007768336933861818,1274820735.1866012,20397131762.98562,0.022712741148564017,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,GAUSSIAN,No,100000000,11,0.07857616672727273,0.00271679366288135,0.0785705892389471,0.002718763857120997,1272740868.6713836,20363853898.742138,0.022675685373991297,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,GAUSSIAN,No,100000000,11,0.078771252,0.0004900731018220413,0.07876580116965554,0.0004907366567772091,1269586527.5921922,20313384441.475075,0.022619486309724064,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,GAUSSIAN,No,100000000,11,0.07914328254545455,0.000779792374350826,0.0791376987804066,0.0007802219776220264,1263620266.208178,20217924259.33085,0.022513188893389716,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,GAUSSIAN,No,100000000,11,0.08218435618181817,0.000426789762216608,0.08217897935347124,0.00042696474574037044,1216856193.4783387,19469699095.65342,0.021680020550854096,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,GAUSSIAN,No,100000000,11,0.08990060427272728,0.0003185792309776693,0.08989519084583629,0.00032000463514696945,1112406559.8958762,17798504958.33402,0.019819102050596425,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,GAUSSIAN,No,100000000,11,0.10803566354545456,0.00023774928510362925,0.1080306028886275,0.00023995316819948022,925663629.8058382,14810618076.893412,0.01649201164847916,, -nvbench_static_multimap_single_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,GAUSSIAN,No,100000000,11,0.16119024045454547,0.00023327209159478972,0.1611849559437145,0.00023296292641002099,620405294.1201277,9926484705.922043,0.011053401049745719,, -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.06821054463636364,0.004518757391277612,0.06820500876686791,0.004522581115714032,1466167981.0321672,11729343848.257338,0.013060931986104682,2^0,1 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.07414215518181819,0.0002442139124343712,0.0741362963589755,0.0002402154537706555,1348866950.6201093,10790935604.960875,0.012015989796715625,2^1,2 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.087509521,0.00022051151123671586,0.08750433696400034,0.00021913974618767155,1142800499.6042702,9142403996.834162,0.010180306617056285,2^2,4 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.11585742990909091,0.00025986509574229763,0.1158519155328924,0.0002601219294654579,863170881.0339717,6905367048.271773,0.00768930730681631,2^3,8 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.17301705736363637,0.00014263782881344684,0.17301215431906958,0.00014381731895805118,577994074.4254284,4623952595.403427,0.005148892481697445,2^4,16 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.2845625553636364,0.00015372202418767293,0.2845579639781605,0.0001535428523047237,351422250.1524325,2811378001.21946,0.003130543134909782,2^5,32 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.5018689946363637,0.00020770102043540117,0.5018656560724432,0.0002082466096565821,199256511.7577307,1594052094.0618455,0.0017750188119809247,2^6,64 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,11,0.9222340671818183,0.000556648194377783,0.9222326438210225,0.0005566477496281188,108432509.59505938,867460076.760475,0.0009659395452809595,2^7,128 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8,,No,100000000,9,1.7673624833333335,0.00038052778852527245,1.767364963107639,0.00038057866158041693,56581409.096265785,452651272.7701263,0.0005040390633575558,2^8,256 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^0,1 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^1,2 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^2,4 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^3,8 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^4,16 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^5,32 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^6,64 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^7,128 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8,,Yes,,,,,,,,,,2^8,256 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^0,1 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^1,2 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^2,4 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^3,8 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^4,16 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^5,32 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^6,64 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^7,128 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8,,Yes,,,,,,,,,,2^8,256 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.08536571045454547,0.00039028855440837823,0.08536017469926314,0.00039028326257579125,1171506505.8420415,18744104093.472664,0.020872051486638423,2^0,1 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.09729859227272727,0.0005263976466797341,0.09729340570623224,0.0005262994272018765,1027818887.3554293,16445102197.686869,0.018312052582586752,2^1,2 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.12347132945454548,0.00026653618366292287,0.12346609913219106,0.0002663909969661335,809938928.1986897,12959022851.179035,0.014430211805136291,2^2,4 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.17666694827272733,0.00030476914761359364,0.17666187771883876,0.0003038166768234644,566053079.9924599,9056849279.879358,0.010085039195988809,2^3,8 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.2824962571818182,0.00010072454601307116,0.2824916270862926,0.00010048219195278699,353992792.7472804,5663884683.956487,0.006306884135320703,2^4,16 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.48905533781818195,0.00023076981571944953,0.489051230690696,0.00023064481082195662,204477555.16077155,3271640882.572345,0.003643057924044533,2^5,32 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,11,0.8969527960000001,0.00012232545382140375,0.896950838955966,0.00012244915401747237,111488830.44292387,1783821287.086782,0.001986331785257338,2^6,64 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,9,1.6962511944444445,0.00038631756977580033,1.6962525906032984,0.000386339580966324,58953484.02352828,943255744.3764524,0.0010503400089710711,2^7,128 -nvbench_static_multimap_multi_insert,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8,,No,100000000,5,3.2905120279999998,0.00038547888143643054,3.290520166015625,0.0003854291119151701,30390331.909464173,486245310.55142677,0.000541446905456531,2^8,256 -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.1,,No,100000000,17,0.030851307941176475,0.0022650732636574984,0.030845771004171935,0.002266629399241108,3241935498.596383,25935483988.771065,0.028879841599525932,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.2,,No,100000000,19,0.026449221947368422,0.0008253173910985551,0.026443668164704975,0.0008271069798394431,3781623615.042655,30252988920.34124,0.033687496570719205,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.30000000000000004,,No,100000000,23,0.022465648956521738,0.0007264679211652522,0.022460104403288467,0.000730043899022379,4452339054.370497,35618712434.963974,0.03966237042448062,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,23,0.022631443739130435,0.011430483669021833,0.02262590333689814,0.011435552785415044,4419713039.1218815,35357704312.97505,0.03937173103550707,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.5,,No,100000000,22,0.022819085272727278,0.0008192435837584734,0.022813602880998086,0.0008159684844073193,4383349728.739779,35066797829.918236,0.03904779903737688,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.6,,No,100000000,22,0.023425075772727275,0.0005757309816581208,0.02341948483207009,0.0005752889173025987,4269948750.668604,34159590005.34883,0.038037599332495405,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7,,No,100000000,21,0.02472987876190477,0.0005648620931997654,0.024724333717709497,0.0005639783645839629,4044598375.905766,32356787007.246128,0.03603013091421185,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.7999999999999999,,No,100000000,18,0.027860730388888883,0.0005571224569463895,0.027855303022596572,0.0005533948568001576,3589980691.248584,28719845529.98867,0.031980301197696195,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.8999999999999999,,No,100000000,14,0.03840460892857143,0.0002420097491422894,0.03839919580732073,0.00024399529926795408,2604221205.615332,20833769644.922657,0.02319894888126543,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.1,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.2,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.30000000000000004,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.5,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.6,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.7999999999999999,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.8999999999999999,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.1,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.2,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.30000000000000004,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.5,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.6,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.7999999999999999,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.8999999999999999,,Yes,,,,,,,,,,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.1,,No,100000000,11,0.068847447,7.054018023164516e-05,0.0688421235518022,7.203100005969825e-05,1452599002.4806857,23241584039.69097,0.025880113356625673,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.2,,No,100000000,15,0.03524321166666666,0.001650529442398669,0.03523741022745767,0.001648292123721572,2837893005.033556,45406288080.536896,0.050561092592530575,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.30000000000000004,,No,100000000,16,0.031927686312499995,0.0020041208961081945,0.031922111988067624,0.0020052068452505846,3132624809.955546,50121996959.288734,0.05581215810211563,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,19,0.026822425842105264,0.0011111774650891613,0.026816889311137956,0.0011088392005559964,3728993278.8165193,59663892461.06431,0.06643730898689637,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.5,,No,100000000,19,0.026969198526315793,0.0013579985487244533,0.02696380635311729,0.0013671279581181654,3708675202.988876,59338803247.822014,0.06607531362223625,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.6,,No,100000000,19,0.027730592263157893,0.0012563867319355922,0.027725177162571956,0.0012576373151306354,3606829973.119039,57709279569.904625,0.06426079627136258,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7,,No,100000000,17,0.029531005647058822,0.0011698700131234213,0.02952505212671616,0.0011606651967315915,3386954223.5122285,54191267576.195656,0.06034339765379541,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.7999999999999999,,No,100000000,15,0.03383637233333333,0.0009077916542839276,0.03383104883829753,0.000908598413189415,2955864610.582149,47293833769.314384,0.05266292421932278,, -nvbench_static_multimap_find,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.8999999999999999,,No,100000000,11,0.04776554863636364,0.0004635063337864464,0.04776010443947532,0.0004571527281544445,2093797766.4334137,33500764262.93462,0.03730397959010501,, -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.12107264445454548,0.0002888403006084369,0.12106742720170453,0.00028523266936586786,825986000.6225694,6607888004.980556,0.007358056590494668,2^0,1 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.13438666109090908,0.0005865902986289532,0.13438147527521302,0.0005877756359823397,744150187.3319978,5953201498.655982,0.006629045996044735,2^1,2 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.14746722963636363,0.0005470865870191734,0.1474622372713956,0.0005474430105601299,678139718.0076406,5425117744.061125,0.006041010885900447,2^2,4 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.15730588109090912,0.0004655900701124892,0.15730073408647016,0.0004660007318761322,635724941.6587514,5085799533.270011,0.005663171159303301,2^3,8 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.16485765590909093,0.0006792304572982247,0.16485292191938916,0.0006785413570261261,606601319.7442666,4852810557.954133,0.005403731824973869,2^4,16 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.17627661436363637,0.0010419775160612906,0.17627154679731888,0.0010428692726222341,567306532.5453933,4538452260.363147,0.005053685616318,2^5,32 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.22831155145454549,0.0003346988531024427,0.22830722462047232,0.0003356444486342128,438006288.08937395,3504050304.7149916,0.0039018519107163444,2^6,64 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.343012823,0.00013615565054172037,0.34300853382457386,0.0001364498010068651,291537936.05363584,2332303488.4290867,0.0025970811008198744,2^7,128 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I32,100000000,0.4,,No,100000000,11,0.5712359422727272,0.00010408496369820208,0.57123291015625,0.0001044324803036856,175059941.7891502,1400479534.3132017,0.0015594706901114436,2^8,256 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^0,1 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^1,2 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^2,4 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^3,8 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^4,16 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^5,32 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^6,64 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^7,128 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I32,I64,100000000,0.4,,Yes,,,,,,,,,,2^8,256 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^0,1 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^1,2 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^2,4 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^3,8 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^4,16 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^5,32 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^6,64 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^7,128 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I32,100000000,0.4,,Yes,,,,,,,,,,2^8,256 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.12221130081818181,0.0002000734255192767,0.12220602208917791,0.00020057244323789153,818290279.7296404,13092644475.674246,0.014579002988341654,2^0,1 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.13576571445454544,0.0003030118102881788,0.13576052301580258,0.00030194008643213716,736591151.6734505,11785458426.775208,0.013123417040932341,2^1,2 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.14913550090909092,0.0004339145518877869,0.1491303308660334,0.0004332491773554188,670554403.1135551,10728870449.816881,0.011946878618756327,2^2,4 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.15929928772727273,0.0006312398564412787,0.15929455705122514,0.0006315074357204146,627767839.9761174,10044285439.617878,0.01118457525613094,2^3,8 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.1686964322727273,0.000658022645946661,0.16869152415882455,0.0006575345582514861,592798011.0361035,9484768176.577656,0.010561538109964786,2^4,16 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.21259125472727272,0.00025829907868773946,0.2125865880792791,0.00025848914851093883,470396561.24829185,7526344979.97267,0.008380782519389464,2^5,32 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.30872113981818183,0.00015102865045400039,0.30871700772372157,0.0001507158431270966,323921253.1157093,5182740049.851349,0.0057711169668562805,2^6,64 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.49863340836363645,0.0001678603470263395,0.49862963312322445,0.0001682559561403036,200549653.20379862,3208794451.260778,0.0035730767745830714,2^7,128 -nvbench_static_multimap_find_all,0,Tesla V100-SXM2-32GB,I64,I64,100000000,0.4,,No,100000000,11,0.8690732562727274,0.00011058842912884806,0.869071494362571,0.0001106222336976893,115065331.96482986,1841045311.4372778,0.0020500522371156974,2^8,256 diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index 43f622e8f..c91fbfe04 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -39,7 +39,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Define the data path\n", + "# Specify the data path\n", "datafile = '../data/static-multimap-data.csv'\n", "\n", "output_keys = ['Benchmark', 'Label', 'Distribution', 'NumReps', 'NumInputs', \\\n", From 41eedb1f560e2e16e0ec2daf64090f48dbd41b4e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 24 Mar 2021 09:47:04 -0700 Subject: [PATCH 043/267] Add multi-insertion CG size benchmark --- .../hash_table/static_multimap_bench.cu | 103 ++++++++++++++++-- 1 file changed, 96 insertions(+), 7 deletions(-) diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap_bench.cu index dd78f0e06..15570770d 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap_bench.cu @@ -21,6 +21,10 @@ #include "cuco/static_multimap.cuh" +/** + * @brief Generates input keys with a specific distribution. + * + */ template static void generate_keys(OutputIt output_begin, OutputIt output_end, const std::string& dist) { @@ -46,6 +50,10 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end, const std: } } +/** + * @brief Generates input keys by a given number of repetitions per key. + * + */ template static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_t const num_reps) { @@ -60,11 +68,15 @@ static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_ } } -template +/** + * @brief Helper function to launch insertion benchmark. + * + */ +template void launch_nvbench_insert(nvbench::state& state, std::vector const& h_keys, - const std::size_t num_keys, - const std::size_t size) + std::size_t const num_keys, + std::size_t const size) { std::vector> h_pairs(num_keys); @@ -87,7 +99,7 @@ void launch_nvbench_insert(nvbench::state& state, auto const block_size = 128; auto const stride = 1; - auto const tile_size = 4; + auto const tile_size = cg_size; auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); @@ -106,6 +118,14 @@ void launch_nvbench_insert(nvbench::state& state, }); } +/** + * @brief A benchmark evaluating single-value insertion performance by varying occupancy: + * - Total number of insertions is fixed at 100'000'000 + * - Map occupancy: 0.1, ... , 0.8, 0.9 + * - CG size is fixed at 4 + * - Three different key distributions are tested: Unique, Uniform and Gaussian + * + */ template void nvbench_static_multimap_single_insert(nvbench::state& state, nvbench::type_list) { @@ -118,14 +138,25 @@ void nvbench_static_multimap_single_insert(nvbench::state& state, nvbench::type_ auto const occupancy = state.get_float64("Occupancy"); std::size_t const size = num_keys / occupancy; auto const dist = state.get_string("Distribution"); + std::size_t const cg_size = 4; std::vector h_keys(num_keys); generate_keys(h_keys.begin(), h_keys.end(), dist); - launch_nvbench_insert(state, h_keys, num_keys, size); + launch_nvbench_insert(state, h_keys, num_keys, size); } +/** + * @brief A benchmark evaluating multi-value insertion performance by varing number of repetitions + * per key: + * - Total number of insertions is fixed at 100'000'000 + * - Map occupancy is fixed at 0.7 + * - CG size is fixed at 4 + * - Unique key distributions is tested + * - Number of repetitions per key: 1, ... , 128, 256 + * + */ template void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_list) { @@ -134,6 +165,38 @@ void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_l return; } + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + std::size_t const num_reps = state.get_int64("NumReps"); + std::size_t const cg_size = 4; + + std::vector h_keys(num_keys); + + generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + + launch_nvbench_insert(state, h_keys, num_keys, size); +} + +/** + * @brief A benchmark evaluating multi-value insertion performance by varing number of repetitions + * per key and CUDA CG size: + * - Total number of insertions is fixed at 100'000'000 + * - Map occupancy is fixed at 0.7 + * - Unique key distributions is tested + * - Number of repetitions per key: 1, ... , 128, 256 + * - CG size: 1, ... , 16, 32 + * + */ +template +void nvbench_static_multimap_insert_cgsize( + nvbench::state& state, nvbench::type_list>) +{ + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); std::size_t const size = num_keys / occupancy; @@ -143,9 +206,16 @@ void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_l generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); - launch_nvbench_insert(state, h_keys, num_keys, size); + launch_nvbench_insert(state, h_keys, num_keys, size); } +/** + * @brief A benchmark evaluating single-value retrieval performance by varing occupancy: + * - 100'000'000 uniformed keys are inserted + * - Map occupancy: 0.1, ... , 0.8, 0.9 + * - CG size is fixed at 4 + * + */ template void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list) { @@ -206,6 +276,15 @@ void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list) { @@ -279,6 +358,7 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< using key_type = nvbench::type_list; using value_type = nvbench::type_list; +using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; NVBENCH_BENCH_TYPES(nvbench_static_multimap_single_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) @@ -291,7 +371,7 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_multi_insert, NVBENCH_TYPE_AXES(key_ .set_type_axes_names({"Key", "Value"}) .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", {0.8}) + .add_float64_axis("Occupancy", {0.7}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); NVBENCH_BENCH_TYPES(nvbench_static_multimap_find, NVBENCH_TYPE_AXES(key_type, value_type)) @@ -307,3 +387,12 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, NVBENCH_TYPE_AXES(key_type .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.4}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert_cgsize, + NVBENCH_TYPE_AXES(key_type, value_type, cg_size)) + .set_type_axes_names({"Key", "Value", "CGSize"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.7}) + .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); From 3889d1950def5ab977400e29acce46b4b5af337d Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 24 Mar 2021 15:57:52 -0400 Subject: [PATCH 044/267] Update notebook: add multimap CG size analysis + update comments --- .../analysis/notebooks/StaticMultimap.ipynb | 214 ++++++++++++++++-- benchmarks/analysis/notebooks/Utils.py | 45 ++-- 2 files changed, 216 insertions(+), 43 deletions(-) diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index c91fbfe04..ff6a5ec89 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -5,7 +5,7 @@ "id": "exceptional-dining", "metadata": {}, "source": [ - "# Prep" + "# Preparation" ] }, { @@ -29,7 +29,7 @@ "id": "cleared-delight", "metadata": {}, "source": [ - "## Global Parameters" + "### Global Parameters" ] }, { @@ -42,7 +42,7 @@ "# Specify the data path\n", "datafile = '../data/static-multimap-data.csv'\n", "\n", - "output_keys = ['Benchmark', 'Label', 'Distribution', 'NumReps', 'NumInputs', \\\n", + "output_keys = ['Benchmark', 'Label', 'Distribution', 'CGSize', 'NumReps', 'NumInputs', \\\n", " 'Occupancy', 'GPU Time (sec)', 'Elem/s (elem/sec)', 'Bandwidth (GB/s)']" ] }, @@ -51,7 +51,7 @@ "id": "removed-period", "metadata": {}, "source": [ - "# Import Data" + "### Import Data" ] }, { @@ -67,15 +67,18 @@ "# Filter out skipped tests\n", "perfdf = rawdf[rawdf[\"Key\"] == rawdf[\"Value\"]].reset_index(drop=True)\n", "\n", + "# Set 'Int64' as CG Size type. Default is 'float64'.\n", + "perfdf['CGSize'] = perfdf['CGSize'].astype('Int64')\n", + "\n", "# Add labels\n", - "perfdf.loc[perfdf['NumReps'].isnull(), 'Label'] = perfdf[\"Key\"] + \" \" + perfdf[\"Distribution\"]\n", - "perfdf.loc[perfdf['Distribution'].isnull(), 'Label'] = perfdf[\"Key\"]\n", + "perfdf.loc[perfdf['NumReps'].isnull() & perfdf['CGSize'].isnull(), 'Label'] = perfdf[\"Key\"] + \" \" + perfdf[\"Distribution\"]\n", + "perfdf.loc[perfdf['Distribution'].isnull() & perfdf['CGSize'].isnull(), 'Label'] = perfdf[\"Key\"]\n", + "perfdf.loc[perfdf['CGSize'].notnull(), 'Label'] = perfdf[\"Key\"] + \" \" + perfdf['CGSize'].astype(str)\n", "\n", "perfdf[\"Bandwidth (GB/s)\"] = perfdf[\"GlobalMem BW (bytes/sec)\"] / (1000 * 1000 * 1000)\n", "\n", "# Trim data frame for visualization\n", - "perfdf = perfdf[output_keys]\n", - "#perfdf" + "perfdf = perfdf[output_keys]" ] }, { @@ -86,15 +89,56 @@ "# Visualization" ] }, + { + "cell_type": "markdown", + "id": "careful-produce", + "metadata": {}, + "source": [ + "### Visualization Parameters" + ] + }, { "cell_type": "code", "execution_count": 4, "id": "imported-sharing", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nvbench_static_multimap_single_insert\n", + "nvbench_static_multimap_multi_insert\n", + "nvbench_static_multimap_find\n", + "nvbench_static_multimap_find_all\n", + "nvbench_static_multimap_insert_cgsize\n" + ] + } + ], + "source": [ + "# Get benchmark list\n", + "unique_bms = perfdf[\"Benchmark\"].unique()\n", + "for it in unique_bms:\n", + " print(it)" + ] + }, + { + "cell_type": "markdown", + "id": "blocked-confidence", + "metadata": {}, + "source": [ + "### Single-Value Insertion" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "periodic-champion", + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFhCAYAAAA4HX3WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAADHbElEQVR4nOydd3hURReH30lPSA+9hN57r1IEVIqCAqJiAaUoiliwIoKKnxUUBBSkKkgHlSIC0nvvvbfQQ3rdPd8fdxMChCSk7N3AvM8zT3bnzr3zu7vJ5NwzZ84oEUGj0Wg0Go1GY1+czBag0Wg0Go1G8yCijTCNRqPRaDQaE9BGmEaj0Wg0Go0JaCNMo9FoNBqNxgS0EabRaDQajUZjAtoI02g0Go1GozEBbYRpNNmAUqqEUkqUUi527leUUmXs2Wd6KKUilVKlzNYBoJRapZTqmcbxX5RSg+ypKbNk1+eqlOqulFqXxWvkms9No3Fk7PoPQ6PRODZKKQHKisixDLZfBUwVkfFJdSLinUPysoRSqjvQU0SaJNWJyKvmKbo3HOlzNetzU0qdwvgOl5vRv0aT3WhPmEaj0WgcGnt7mDUae6GNMI3mNpRSp5RSA5RSe5RSYUqpmUopD6XUQaVU+xTtXJRSV5RStVKc/rJS6oJSKkQpNSBFWyel1IdKqeNKqWtKqVlKqUDbsaSpzJeUUmeUUleVUgNTnOuslPrYdm6EUmq7UqpYij5bKaWOKqVuKKVGK6VUOvdXRim12nZvV5VSM231a2xNdtumvroqpQKUUgtt9xlqe13U1v5L4CFglK39KFt98hSpUspTKTVMKXXa1t86pZRnGtqSPoseSqmztj5fVUrVtX0fN5L6sbUfopSamsr5LrddtyLwC9DQpvWGrX6yUmqo7XVzpdQ5pdT7SqnLtu+wo1KqrVLqiFLqulLq4xTXrKeU2mjTFKKUGqWUcktxXJRSbyqlTtg+5++UUmmOuXf7blL5XCfbvutFtt+JzUqp0inaPqKUOmy7zhjbNVOdllVKVVBKLbPd32Gl1NNpaUzjc3s3xefWI0XbtkqpAzad59WtfxftlVK7bJ/hBqVUtRTHTimlPlBK7QGilFLTgWBgge07fD89nRqNwyMiuuiiS4oCnAK2AIWBQOAg8CrwKTAtRbt2wEHb6xKAANOBPEBV4ArQyna8P7AJKAq4A2OB6bed+yvgCVQH4oCKtuPvAXuB8oCyHQ+yHRNgIeCP8Q/qCvBYOvc3HRiI8RDmATRJcUyAMineBwGdAC/AB5gN/Jni+CqM6SFSuwYw2tamCOAMNALc09CW9Fn8YtP2CBAL/Ankt13nMtDM1n4IxnTo7ee73K4P6A6su62/ycBQ2+vmQKLte3YFetk+zz9s914ZiAFK2trXBhpghHWUwPg9eeu2z2Elxu9QMHDk9s8qs9+NTfc1oJ6t/2nADNuxvEA48JTtWH8gIbXPAeN39SzQw9a2JnAVqJSOztQ+t89tn1tbIBoIsB0PAR6yvQ4Aatle17R9l/VtvxsvYfztuaf4O9wFFAM8U9S1MnuM0EWX7CraE6bRpM5IEbkgIteBBUANjH/GTyilvGxtnsP4p5mSz0QkSkT2ApOAZ231rwIDReSciMRhGA+db/PYfCYiMSKyG9iNYWwB9AQ+EZHDYrBbRK6lOO9rEbkhImcw/unXSOfeEoDiQGERiRWRuwZpi8g1EZkrItEiEgF8CTRL5/qA4f0DXgb6i8h5EbGIyAbb/afHFzZtS4EoDIP1soicB9Zi/APPCRKAL0UkAZiBYdCMEJEIEdkPHMD2vYjIdhHZJCKJInIKw7C+/bP5RkSu276bH7n5+5BW/xn6boD5IrJFRBIxjLAatvq2wH4RmWc7NhK4eJdrtAdOicgk233sBOYCXdLRmZruz0UkQUQWA5EYDw1JxyoppXxFJFREdtjqewNjRWSz7XdjCsbDR4MU1x0pImdFJOYe9Wg0uQJthGk0qZPyn1Y04C1GsPpB4HGbIfYEhmGWkrMpXp/G8KaB8Y91vm3a5YbtOhagQFp92l4XA47fi9Y02gK8j+FR26KU2q+UevluDZVSXkqpsbbpxHBgDeCvlHJOpw8wDBiPdLTfjUspXsek8j6ngtSviYglRT+pafEGUEqVs03PXrR9Nv/DuOeU3O334W5k+Lvh7t974ZT9iogA5+5yjeJA/aTfS9vvZjegYDo6b+eazeBLTU8nDMPwtG1atGGKvt+9re9i3PoZpfz8NJr7Dm2EaTT3xnQMb0YH4IDcuYowZaxWMHDB9vos0EZE/FMUD5tnJz3OAqXTbZVBROSiiPQSkcJAH2CMunuai3cxPBr1RcQXaGqrT4o7kzS6uooxlZht2lMhCmOqNIm0jIe0tGaGn4FDGKtJfYGPufm5JHG334dUucfv5m6EYEx7A6CUUinf38ZZYPVtv5feIvLaPfZ5V0Rkq4h0wJhO/hOYlaLvL2/r20tEUnqXb//Osvs71GhMRRthGs29MQMjTuk17vSCAQyyeY8qY8TZJAVW/wJ8qZQqDqCUyqeU6pDBPscDXyilyiqDakqpoMzegFKqi7IF1wOhGP/YrLb3l4CUuah8MLw/N5SxkGDwbZe7vX0yImIFJgLDlVKFlbHAoKFSyj2z2lNhF9BUKRWslPIDPkqj7SWgaMrg+SzigxF7FamUqoDxO3E77yljcUMxjNismam0SSad7yajLAKqKmNRgQvwOnc3ThcC5ZRSLyilXG2lrjIWMmQZpZSbUqqbUsrPNsUbzs37+RV4VSlV3/Z7nUcp1U4p5ZPGJe/6+6bR5Ea0EabR3AMiEgJsxAgwT+0f6mrgGPAf8L0tpglgBPA3sFQpFYERpF8/g90Ox/AeLMX4JzYBI4A/s9QFNiulIm2a+ovICduxIcAU2/TQ0xhxTJ4YXq1NwJLbrjUCI7YtVCk1MpW+BmAsKtgKXAe+IRvHHRFZhvE97AG2YxgVd2MFsB+4qJS6mg3dD8CIC4zAMChS+334y6ZrF4ZxNCGda6b13WQIEbmKEdP1LUbwfiVgG0a81e1tIzAeKp7B8NJdxPiOstNQfgE4ZZuyfRVjuhMR2Yax+GEUhsF5DGPRQFp8BXxi+/0ckE5bjcbhUUa4gEaj0WiyE3WPiW9zUIcTRkxYNxFZaaYWjUZzK9oTptFoNPcZSqlHlVL+tqnfpFi1TSbL0mg0t6GNMI3mPkQZe/tFplJ+cQBt3e6ibb/Z2uyBnb6bhhirUq8CjwMd7zXNg211Zmo6u2WjTo3mgUZPR2o0Go1Go9GYgPaEaTQajUaj0ZiANsI0Go1Go9FoTEAbYRqNRqPRaDQmoI0wjUaj0Wg0GhPQRphGo9FoNBqNCWgjTKPRaDQajcYEtBGm0Wg0Go1GYwLaCNNoNBqNRqMxAW2EaTQajUaj0ZiANsI0Go1Go9FoTEAbYRqNRqPRaDQmkCuNMKXURKXUZaXUvgy0La6U+k8ptUcptUopVdQeGjUajUaj0WjSIlcaYcBk4LEMtv0e+E1EqgGfA1/llCiNRqPRaDSajJIrjTARWQNcT1mnlCqtlFqilNqulFqrlKpgO1QJWGF7vRLoYEepGo1Go9FoNKmSK42wuzAO6CcitYEBwBhb/W7gKdvrJwEfpVSQCfo0Go1Go9FoknExW0B2oJTyBhoBs5VSSdXutp8DgFFKqe7AGuA8YLG3Ro1Go9FoNJqU3BdGGIZH74aI1Lj9gIhcwOYJsxlrnUTkhl3VaTQajUaj0dzGfTEdKSLhwEmlVBcAZVDd9jqvUirpPj8CJpokU6PRaDQajSaZXGmEKaWmAxuB8kqpc0qpV4BuwCtKqd3Afm4G4DcHDiuljgAFgC9NkKzRaDQajUZzC0pEzNag0Wg0Go1G88CRKz1hGo1Go9FoNLkdbYRpNBqNRqPRmECuWx2ZN29eKVGihNkyNBqNHdm+fftVEclnto7sQI9hGs2DRVrjV64zwkqUKMG2bdvMlqHRaOyIUuq02RqyCz2GaTQPFmmNX3o6UqPRaNJBKVVMKbVSKXVAKbVfKdXfVv+dUuqQUmqPUmq+UsrfZKkajSYXoY0wjUajSZ9E4F0RqQQ0AF5XSlUClgFVRKQacAQjF6FGo9FkCG2EaTQaTTqISIiI7LC9jgAOAkVEZKmIJNqabQKKmqVRo9HkPrQRptFoNPeAUqoEUBPYfNuhl4F/7nJOb6XUNqXUtitXruSwQo1Gk1vQRphGo9FkENv+s3OBt2zbpSXVD8SYspyW2nkiMk5E6ohInXz57otFnhqNJhvIMSNMKTVRKXVZKbUvjTbNlVK7bIGuq3NKi0aj0WQVpZQrhgE2TUTmpajvDrQHuonegkSj0dwDOekJmww8dreDtlVEY4AnRKQy0CUHtWg0Gk2mUUopYAJwUESGp6h/DHgfYxyLNkufRuMIhITAhQtmq8hd5JgRJiJrgOtpNHkOmCciZ2ztL+eUFo3mnvD1BaXuLL6+ZivTmEdj4AXgYZv3fpdSqi0wCvABltnqfjFVpUZjAocPw0MPQZUqUK0aNGgAe/aYrSp3YGay1nKAq1JqFcYgNkJEfkutoVKqN9AbIDg42G4CNQ8oERH3Vq+57xGRdYBK5dBie2vRaByJmBh45BF47z3o0wecnGDKFHjsMTh0SD+7poeZgfkuQG2gHfAoMEgpVS61hjqoVaPRaDQax+PPP6FiRXj9dRABZ2fo0QMaNYIZM8xW5/iY6Qk7B1wTkSggSim1BqiOkfBQo7EvcXGwYQMsXZp2uxIloFixu5e8eY2py0wwbRoMHAhnzkBwMHz5JXTrlqlLaTQajV04eBCio6FCBejdG9591/CALVkCu3cbMWJ16hilYEGz1ToeZhphfwGjlFIugBtQH/jBRD2aBwkR2LcPli0zypo1xkji7Jz2eU2awNmzsGkTzJkDCQm3HvfwgKJFbxplwcF3Gmp+fndcNsHTl26xESTbXKeB5yGhpw+uMeF3tNdoNBozWb4cxo41PGGJidCYdZQb8A0MWIgT5ejCh2w9UZ8vvqiE1Wqcs3gxtGkDJ0/CkSOGYRYUZOptmE6OGWFKqelAcyCvUuocMBhwBRCRX0TkoFJqCbAHsALjReSu6Sw0miwTEnLT6Fq+HC5eNOrLl4eXX4bWraF581SNpGSmTr352mqFy5fh7FnkzFkST57Fcsp4rc6dxfnAClyuXEAljUA24j18iAwoRrhvMUJ9ihGapxhXYh/jMvm5RAEA/AgnP5fJH3uZ/Nshf36juLtn82ei0Wg0GSQ0FAICjNdffw27dsEbb0CvHyvxQfsD+L/fhA3O8MMPcOkS7FuriIwQdu2CbdsMowtg7lwjhgygZMmbnrLXXgMfn4zriYmBrVuNc2rUyPQkhKmo3JbWpk6dOrJt2zazZWhyA1FRhocryfDaZ7Px8+aFVq0Mo6tVK8NbZWt+/Djsq/4cFyjMcUoTSgAxeBKLB5F4E1+nMTExEBtrDABJJTY2dQnOJFKIEIpx9q6lIJfuOC+SPIRQ6I4S5lmI2IBCWPIXwqlwQTyLBlGgoEo20lKWgAAjSDZVfH1TX2jg4wPhjud5U0ptF5E6ZuvIDvQYpslNJCbCP//Ar78a0RonTkDhwsaEQH73MNxDTkGNGixv/yPTj9Rmu2cTOj0lvNv5NF6VSxqzDrcRHg7btxuG2bZthiF17pxR7+EBw4bBjh2GYVa3LtSsCXny3HqN6dPhzTehVCm4fh08PWH2bOOZ2tFIa/wyczpSo8leLBbjLzfJ6NqwAeLjDfdRkyZIt+e5Ubc1R7xqcOyEE8ePw/FBhuF1/PhNxxj8cdcu2uQz/tg9PY3BIun13d+74OlZDE/PYrccT/laJA7l6ZHchwBuxFGIEApwiVqFL+J2bTFucZEQg1EuALsgHlcuUjDZSDtAIf6zvb7sVIjYwEJY8xfCuVB+8hZ0IX9+KFAA8kd0MjxtXCaYMxTAliFGrwDVaDTAlSsw9vsIVk0+hdflk1T1OcWTj5fG2bkdREdTrFoRuHEjuX2rhW/R6oMP4OsmcPwElCljHGjXzrCk6tUzovX9/fH1hRYtjJJEWJgxLia9XrMG/rANxU5ORgqMVauM94sXQ//+xoRG9eqGnTd2LDz+uBGjll5UiSORridMKZUfI0dOYYzhfx+wTUSsaZ6YQ+inyAeM9Dw2p07dNLr++894JAIiSlfnZOnWbAtozX9xTTh42ovjx+908hQtCqVLG+NF6dJG6d8/pUF2k+LFje5yhLT86El/o5GRxpTqxYvGT1uxXggh8UwI1vMhOF0OwS382h2XsKK45pyfC1KI89ZbvWsnKMlLTOEZZt3anwOhPWEaTQYJDDTmDW8nICB5fEwmMtIY1Gwl0SeAy627UbgwJBYvjcuZE7e279btZkjGgAFGpH2JEtCli2G1BQUZY9m1azBrFvTtC5Urw4EDxrgyezZ07mxE7i9YYBhntWvfdQ7y4kXDY7Z1q3H6Z58Z9UFBhv1XrZrhLXv7bahUCWrVMrxoKY07RyBTnjClVAvgQyAQ2AlcBjyAjkBppdQcYFjK/dM0mmwnFQMsARciI5xwK1KWPBeOAXDNvTBr3B/nT+fWLLG04vLxAnAcXF2NmIPSpaFx45uGVpkyRr2Hxx2XJyHBWOUTnSL/uZeXsVrRVLy9oWxZo6TACWNlSzLx8XcYak4hIeSzlSrnQ5BdS3HGkpz4ahCfsYvq1GC3nW5Go9HkCKGhNx+koqJuGlnt28Po0UYuCTBcS+vW3XLqZtdmfN6iG//+Cy69ehCV4EaeyiUMQ6tkSSOUI4nvv7+135THgoKMAK++fY0wkIgIY5aialXj+Lp18P77xmuljKWVdevCN9/csoSyYEHDkdau3a1dVatmjMmJiUYajI0bjZWYxYoZ9l9u4q6eMKXUd8BPSRntbzvmgrFXmrOIzM1ZibeinyIfLEKVPwepRCTeFOE85TmMCxYiycMqmrOM1qz3ak1imYqULqPu8GoVK5Y517Td00XYO0YrhectFndcSOQZpvMLr5FXrmZ/f1lEe8I0mgyilGGEvfDCrQuJwBgcjx41Xo8ezeFtEczcUpJFB0pw1qkE9drnp3cfRdu299jnvXjfkrhy5WZA2NathpF25IgR/PXZZ4anrF49wzirW9dIRmYbzCdPhqd6BeKbGMosuvAuw1hFc0pzAqt/AE6haW3WY3/SGr90YL7GobhxNoJDE9YTtXg1eQ+splLUVlxJJBFnDlOeo5QllADciKPk+j8oXdoIQs+Nq2JM5bYPLBZ3rhJEP35idsJTuDhYtKg2wjSaNLh61UiZM38+LF3K4kXC0SFT8b16koB6ZWnVswTerRuCxcKBQ06ULGnEo373Hfz8M/TsCd27GwH3DsHEicaT8LZtNx9CixY1noqVIn79Vtya1KN9WyvdeyguX4YffzTszkGfKocLqciUEaaUeieti6bcxNae6AHs/iLs9A2OTFxH1OLV5DuwmvLRO3DBQgIuHPGtQ2i4E36EUY4juHNbTi4H+0PLVaTiebPgxL88yn9vLWTYD2ZupnEn2gjTaG4jMtJI0jV9urFsMTHRmNY7dIgypYWPP4ZCheC332DvXnhv/0v82ngK69fD77/D888bOapdXdNYRW02VqvhHdu61QgC69fPqK9WDfbuJcY7L/s867Kg6kDq9G9MyZJQtVruMsLSet5NipQrD9QF/ra9fxzYkn3yNA8SEaevc2T8GqL/WU2+g6spG72buliJw43DvvXY8NCH+HdoRrnujagclEe7uHKKVKY4nceMoe3rr7Pqx+/5vdb7vPCCCbo0Gs3diY01/nbz54djxwzXT3AwvPMOPPss14tVJzCvE6tWGY6j2FhjVu/IEejOFMpdMbxfjz5qXM7h8w46ORmGZYUKt9ZPmQK1auH59BPUXbyYusee46Vph/l3tQfH8SJP6ldzTEQkzQKsAXxSvPcB1qR3Xk6V2rVriyb3EHHisuwYOEfW1e4nRzyriQUlAhKNh2z3ay4rmg6WHcNWSPS16NQv4OMjYjzX3Fp8fOx7Iw8CVqtYnuosiThLc9d1snWr2YJugrEi25QxJ7uLHsM090RCgsi//4p07y7i62v8FBGxWkU2bRKxWJKbLlkictY5WFbzkAiIFaQem+R5fpN/nNuK1WrSPeQEYPxcvlykXDnZPv2wgMj/+NBcXamQ1viVkRQVh4FqIhJne+8O7BERU1KiaVe+iWQgeDz6xEWOjl9NzJLV5D+0mlIxBwCIwosD/o0Iq96MgI7NqPhSPbwCHP0x7AEkLAxL9VpcOhfPo/l3sXxnEAUKmC1KT0dqHlA++wzGjDF25vDxgaeegpdeuiMHgwhs3mxksf/7byO2PSTEWFBttRppG44ehXHjTLqPnEClmHa0WMDZmccfh3ULQzlxPSA5s78jkNVkrb8BW5RS823vOwJTskmbJjeRigEWgwfHIoKJrdmbAodWExx7hOpABN7s82/CsQYvENCxGZVeqE3dALc7r6lxLPz8cJ47i4ING/HtpZd4uvPfLF/hhKur2cI0mvscEdizB/76y1ia7exszCc+9BA89xy0bZtqTp1Vq4xQqX37DOMrKAg6dbrZdP9+YxuhP/+0693kPAEBd4SrjKAEZTjOt9/CV1+ZpOseSdcIE5EvbXs8NrFV9RCRnTkrS+OoCHCcUoThT0EuUoQLVGU/N3adY5//Q+xr1IvAjs2o+mJNGvo52BI7TcaoXRun4cNo068f/60bzttvD2DUKLNFaTT3KcePG8H1f/xxM917hw5GKvhULAkRI5t83rxGHtSAAMPgGjsWnnnGyDb/7LNGaq/8+Y3tgL7/3sj2cF9xe+qLN96g1PjxvPHYOTZsCMZqdeAFBynIUIoKpZQzUIAURpukkj/MHmhXvjlcX7GLUy17UILTBBLKdQLYS1Ui8CGQa1S7sQ5vv1y0V4QmbUSgc2csf/5NE+saeo5vyCuvmCdHT0dqciV3y5/l72/Ur10LTZsadQ89ZFhPnTtDvnx3nHLpkhGPPn68MbX4yivG67tx+LDRRY0aqSelvu84cwbKlSPhqa64TJviUGu6spQnTCnVDxgMXAIsgMIIiKuW3UIzgh7A7EfC+cscHvwHeWZPpmT4buJwYx1NiMeNhmzAnxQr7HJoSXDR4UU5H3H+jvoiPkU49865HOlTY+PGDaRWLS6HWKhu2cmfawJp0MAcKdoI0+RKUsYtXb8Oc+caHq9Vq4z6hAQji32nTkZm6bvQp4+ROisx0bDVevUyTvHyss9t5Bref99w++3cydUi1UlIMNJ0mE1WY8L6A+VFJJdtBqDJFPHxnP1lEeEjJ1Pu+GKqkMhOl7rMbzmKSv+NoCUr7CrnifJPMGHnBOIt8cl1bs5udCjfwa46Hkj8/VGzZpG/USOmunan01N/sW27cohBTZN9hESEsPNi6hEmDwU/hI976vv6aTLIlStGgP24cYbRVa7czWOurvDWW3eccvYszJxpZJ5wcjL2re3f30iqenu2Bk0KPvoIxo/H+t4HVNmzhFat7tw0wNHIiCdsJdBaRBLtIylt9FNkDiBCxJqdnBoymWLr/sA/8RohFGRT2Rfw7/8STXpXNgKz7b21DnD8+nEqjal0ixHm4ezBybdOUtC7YBpnarKNkSOhf38+dB3GmjrvsHKl/fMLaU9YzjFswzA+X/M5jYs1Tq4ThH+P/cvibot5rMxj2d7nqwtfZeb+mXfUuzi5sK3XNor7F8/2PsNiw4iMj7yj3tPVk0DPwGzvDzA8Yc88Y2xc/corhkurZk3Dsrrtf29CAixcaEwxLllirGrcssXYsUdzDwwfDosXM6jaX3z5Yx527765ZaVZZHU6cgJGwtZFQFxSveiM+bkea8gljn02DY+Zkwm+sZc43Fjp15GYp7vTeEhr8he2b2B9dEI0uy/uZnvIdrZd2Mb2kO0cuHIAq1hvaeeknKhdqDb1itRLLuWCyuGkckEUZm5EBDp1wvr3Ahpa1lGjd33GjrWvBG2E5Rw3Ym9QZmQZNvfcTOnA0gAsPrqYD5Z/wO5Xd+fI39W0PdP4YdMPLH1hKcq2jfw/x/7hq3Vf5VifVcZU4Vz4OfK43UzlGZsYS7wlnvAPw1HZFUQkYrix6tSBsmWxHDnOhhWxHKASdetCrVrcOk2JEb/VvDlcvGhsHfTyy0YpWTJ7JD1QWK2gFKE3FCVLGiF3f/+d/mk5SVaNsMGp1YvIZ9mg7Z5xtAEs1xEXx6UJC7nx42RKH/0HFyxsda7P8SbdqTC4K9WbB9gloDEmIYbdl3YnG1vbLxgGl0UsAOTzykedwnWoXag2JQNK0ndRX+Iscbg5udG7dm/2X9nP1gtbk59s/dz9qFukLvUK3zTMCvnoebNsIzQUatUiNFQoFbaTr38JoE8f+3WvjbCcZciqIZwJO8PEDhMREeqPr0+NgjUo7FMYFycXnJUzzk7OFPcrTtcqXQGYvnc64XHhxnEnZ5yVM8X8itG8RHMAlhxbQoIlIfmYs5MzhbwLUTl/ZSxWC6VGluKDxh/QsGhD3JzdeHbus7zd8G161OgBQLwlHlcn12wzjoZvHM7GcxuZ3WV2ct07/76DxWphRJsR2dIHGzYYc4ibN2N9+y0mrfqRT4qNxM3dMK4OHzZCvwavfI+4z2OJjzfSfiUmGo6yzp2hTRscbu/WXMnZs0wZepbu4xqxYQM0bGielGzZwFsp5Q0gInf6c+2IIw5gDo8IMeu2c/qzyRRaPR2/xOucpzDrSr6Azxsv8XDfijm6eibJ4Np+YXuyl+t2g6t24drUKVSH2oVrU7tQbYr6Fr1l8O27qC9jt4/l1dqvMrrdaAAsVguHrh5iy/ktRrmwhT2X9pBoNWbOi/oWNQyywvWoX7Q+tQvV1vEtWWHLFqRJEzYFtKXZ9fmsWKlo0iT907IDbYTlLDdib1B6RGnKBJXh0dKPMv/QfNyd3dkesv2Wds2KN2NV91UAlPupHEevH73lePty7Vnw7AIACg0rxMXIi7ccf7bKs/zR6Q8APIZ6EGeJu+V4z1o9+fXxXxERnD43vGEeLh64O7vj7uLO63Vf59NmnxKdEE2zyc1uOebh4sEzlZ+hS+UuhMWGMXjV4FuOKaUYtmEYK19aScmAksw5MId+i/sxt+tcygSWwc/dDz8PP1ycMmEBnTgBH35oTDsWKgRDhxL//LMUGpSHhueEkrYFktcjKrIsrBc3Dr9IQnwQjRrB+vX33p0mAzRujPX8BUrGHqLn6+4MGmSelCwF5iulqgC/A4G291eBF0Vkf7aq1GQ7ciGEU19Ow+2PyRS5sZ8SuLPc+0kiOnfnoSGt6Fr83lJKZGSlYkxCDHsu7bllSnH/5f13GFxPlH8i2dN1u8GVGoOaDuLf4/8yqNnNvyRnJ2cq569M5fyV6VGzR3L/Oy/uvGmYnd/CvIPzAFAoKuWrdMs0ZtX8VXF1vjUTqV6ReRfq1UN98w0N33mHT/OOpHPn/mzbZuxRp8nd+Hv4075ce37b8xvXo6/zVauv6FypMyKCRSwkWhOxWC23nLPhlQ3EW+KTj1nEgqeLZ/LxZS8sIy4xzjguFixWC3m98iYfn9d1Hr0W9KJXrV78vud32pZpy7NVnwXAKlaGthhKnCWOuMQ4YhNjibPEUSlfJcB4AMvnlY84i3HsRuwN4ixxXI2+CkBEfASTd01OPi+JDuU78PmazxncbDA9/jLGjEenPpp8/NfHf6VnrZ7svribrnO64ufhl2yc+bn70bduX2oVqsW58HMsP7H85rHRv+K3fgFFBw/EY8CH4O1NVChEbvsKr967+KnrdAYNglFDAed48gSGs2gatGyZvd+jJgVDhuD0yCMcHDoGr4Fvm63mrmRkOnIDMFBEVtreNwf+JyKNclxdKjjiU6Qp3C1I3tuba99PJPSHyZQ4/C8uWNjk1JDDDbpTduDTNGzjn+npxr6L+t6xUtHFyYVGRRtRJrAM20O2s+/yvmSDK69XXmoXqp1sbNUuXJtivsWyL/Yig1yNvsrW81uTvWVbzm9JHqw9XDyoVajWLdOY32/4nom7Jt6xIrNnzZ7JXrgHFhHo2BFZ/A/NXdcTU6Uua9bkfB4i7QnLed5Y/Aajt46mYt6K7Ou7zy4xltP2TGPAsgHk9cqbY7FgIkK8JZ44i2EQVh5TmV/b/8pz855j/BPjcXVyJTwunLC4MFqVakWlfJU4eOUgg1cNJiwujLDYMMLiwgiPC2fCExN4rMxjLDgwnydmP3VHX8tfWE7LUi2Zd3AefRa8xrULvjj5n6duser4W8rC4ce5kn8WERNnc/hwtt+q5nYeeQS2b4fjxzl21Z9SpcxJ4JrVmLDdIlI9vTp74agDmN25zZCJx4UzFKcAl/AhkrMUZVWxF8jz2ks80q883t5Z73JnyE7qj69PgjXhjmNJBley0WWSwZURRIRTN06x5fwWNp/fzJbzW9gesp3YxFgAAjwCCIsLu2VBgKeLJyf6n9ArMsHId1SzJlGxThS5vJOOL/kzadIdv5LZitlGmFKqGMYWbgUwNo4YJyIjlFKBwEygBHAKeFpEUsnOeRNHHcPKjyqPu7M7P7X5iWYlmtmlT4vVQu1xtRnSfAgdK3S0S5/DNw5n4IqB9K7V+95jwUTg77+J/XAAIRePEdbjWcLe7JNsrD1S+hEKeBdg8e7NvDttIodOhuFZ8CxexQ7j5uyGs5MzNY7NoEieEoz8Kh9uznortxxl506oXZtz3d6n+B9fM2MGdOlifxlZNcLmAzswpiQBngdqi8iT2aoygzjqAGZ3lEKA8xTBmUQKcYkYPFjCY9x4ti8PDX6YMuUzn8FeRDh54yRrTq9JLsdDj9/Sxkk50bpUa8a2H0uwX7BDGlwZJcGSwP4r+5OnMOcfms/1GGNbDCflRM+aPRn7uJ2XBDoymzbBQw9xoMzjVD40l5EjFf365Vx3DmCEFQIKicgOpZQPsB1jH93uwHUR+Vop9SEQICIfpHUtRxzDjlw7QvlR5RnVZhSv13vdrn1bxWrXlc3RCdF0mNGBKR2nUNincMZP3LHDCLpfvdpI1vX998Z+jinGvZgYI0PC118b2z4+/TT8uzKSqJ6lqefxLPsuH6DoyqX49mvByfCj9KvXj961exPg6UC7Td9vdO+ONY831VaPIjHR2GPT3gsf0hy/RCTNAgQAIzEMse3AjxgDTbrn5kSpXbu2PNCEh8uV7ybJSYqLBSUCsp6GMpZe8h/NJRGnTF3WarXKgcsH5Jetv8hzc5+TosOLCkMQhiCB3wRKxxkdZfiG4bLk6BJx/8JdGIJ4DvWUkIiQbL5Bx+BC+IXk+2QIUnpEaVlxYoXZshyL778XAfmlykhxdhZZuTLnugK2iUljTmoF+AtoDRzGMM4ACgGH0zvXEcew3Rd3y+N/PC4nQ0+aLcVx+eEHkbx5RUaPFomPT7XJW2+JgMiTT4ocOWLUXb4s0vZ/XwtDkIFj10lMjMiiI4uk5ZSWwhAkz5d5pN/ifnL8+nH73cuDhMUiIiLz5xvfzfjx9peQ1viV4dWRjoIjPkXmOImJRP25jIvf/U6RbX/iYY3hGKVZQ1O8iOIx/sWfsJvtM/CdWqwW9l7ey5rTa1h9ejVrT6/lSvQVAAp6F6RZ8WY0Ld6UpsWbUilfpVueVFNbqXg/knSfbcu05cDVA5wIPUH3Gt35vvX3BHkFmS3PfESgQwdkyRK6FN7A6qg6bN8OwcHZ35XZnrCUKKVKAGuAKsAZEfG31SsgNOn93Xggx7DcSEQEfPMNVKoEzz0H8fGGq8vP75Zma9YYm2hXrQrnz8OxY9DsttncyPhIZuybQc9aPW+p33VxFz9s+oHpe6fzTatveLvh21jFikLl6pkFR0Q2b6Frbz82Xi/P0aP23U8zq56wZYB/ivcBwL/pnZdTxRGfInMEq1XiN++Q40+8JaEeBURArhIo0/xek4m9NsgJihtmfWolFeIT42Xj2Y3yzbpvpN20duL3lV+yl6fEjyXkxfkvyoQdE+TotaNitVrTlHYh/IKUGlHqvvWCJZHyPqPio+TDZR+Ky+cukvfbvPLbrt/S/ZweCK5dEylWTOKKlpRiPqFSs6ZIVFT2d4ODeMIAb4wZgads72/cdjz0Luf1BrYB24KDg7P/A8oCUfFRci7snNkyHIeEBJGxY0UKGOOuvP12qs2OHDE8XiDStWvWujwffl4i4iJERGTijolS/9f6MnPfTEmwJGTtwhqDqCiRgAC5Ur+tuLuLrFpl3+7TGr8yMujszEidvcr9boRZz5yVM69/LecDK4uAxOEqC9yelHFt58uWdXGS9H+/yLsq2YhKWYq8q0REJDo+WladXCWfr/pcWv3WSry+9EpuU2FUBen9d2+ZunuqnL5x2sS7zX3subhHGoxvIAxBWk5pKUevHTVbkvls2CDi4iIXGnUShVW6dRPJbvvUEYwwwBX4F3gnRV2un46cuW+mMATZfmG72VLMZ/VqkSpVjH+NjRuLbNp0R5Nr14xpR1dXkTx5RIYOzd4Hj1n7ZknpEaWFIUjxH4rL8A3DJSw2LPs6eFD59lsRkOtz7R9WklUjbDsQnOJ9cWBHeuflVHG0ASxbsMV5nSj1cHKc1wbVSMbV+ln+mXYt1fCD1xa+Jm5fuN1igLl87iK1fqklTSY2ST6mhiip/nN16be4n8zeP1suRly0//3dZ1isFhm9ZbT4fuUr7l+4y9DVQyUuMc5sWeZiG+D+aT9KQGTYsOy9vNlGGKAwVkf+eFv9d8CHttcfAt+mdy1HG8NemPeCBH4TKImWRLOlmM+ff4qULi0yZ85dnyS+/FLEyUmkZ0+RkByaDEi0JMr8g/PloYkPCUOQppOa5kxHDxIxMSLBwSJ16ohYLHLqlP26zqoR9hhwBmN15FTgNPBoeuflVHG0ASzTJCRIxOx/5Gi95yTGyVME5CilZVLxwTLzy6MSGnr3U8Niw+TPg3+Ky+cud3jCnD9zlvq/1pf3lr4nCw4vkOvR1+12Sw8a58PPS+dZnYUhSOXRlWXd6XVmSzIPi0WkXTuxurnJuy22i5OTyLJl2Xd5BzDCmmCkptgD7LKVtkAQ8B9wFFgOBKZ3LUcawxItiRL0TZA8P+95s6XYh4AASTWEw8PDOG61isTd+kBltYrMmyfy77/G+8hIkd277Sd5y7ktsubUGhERCY0JlRfmvSBbzm2xn4D7iSlTREDmdJ4u3t7Gogl7kNb4laHAfKVUXqCB7e0mEbma7kk5RK4OahUhYesuznz5O4FLpxMQe5HrBLDUvytxT79A848aUrzEzWBMq1g5fv04ey7tYc+lPey+tJs9l/Zw8sbJOy7tpJxoV6Ydf3T+A2+3bEgKpskwC48spO+ivpwNP0uf2n34utXX+Hv4my3L/ly7BjVqYHV1p6H7Do5d9mXrVihVKuuXdqTA/KziSGPY+jPraTKpCTM7z+Tpyk+bLSfnSdo4OzoafvjhZi6JxMRUFzRt2wbvvmsE3z/+uPkbQa86tYoOMzoQHhdOk+AmvNvwXR4v9zjOTplPR/RAYbFAixaEtHyeop/3pn9/I6VITpPVPGEK6AaUEpHPlVLBQEER2ZL9UtPHkQawjCLnznP262m4TP+dwtf3EY8ry93aEdL6RWp83JZaDd0Ji7vB3kt7bzG29l7eS3RCNGAYWeWCylGtQDWqF6hOtQLVKJCnAA9Neog4S5xOJmoykfGRfLryU0ZsHkH+PPkZ8dgIulTq8uCtcFq/Hpo1I+LRTgSvn0GxYMXGjZAnT9Yuq42wnOGj5R/x/cbvufLelQfjwUEp+Ocf6NULzp2Djh2NFZDly99ihJ09CwMHwu+/Q7588Pnn0LOnY2ysHR4XzoQdExixeQSnw04bu5X03o6vuy+Xoy4zbMOwWxJNJ9GsRDPal2tvgmIHQwSUokcPmD4djh41NlXPSbK0dyQwBrACDwOfAxHAXKButim8Dyg6wInzPjf/iL3j4Klteem+xYdmYacIRtikGrKo9iic+tXGq+ZZTl7dzl+nJ7Fnyx5Oh51OPjfAI4DqBavTq1YvqhWoRrUC1aicrzKerp539PtyzZcZu30sPWr00AaYiXi7eTP80eF0q9qN3gt703VOV6aUncLotqMp4V/CbHn2o3Fj+PJLfD78kPVvNKfqmNfo0QNmzszZjPqazNGvfj8aFmt4/xtgV64YKSbAsKpKlICpU+/MJWFj1SqYNcvYk/ujj4xd4hwFX3df3m74Nv3q92P+wflsPLcRX3dD4NwDc/lh0w+81eAt8nnlSz7nl+2/4Ofhp40wSPaGflt/HgunteKzz/wYP95EORnwhO0QkVpKqZ0iUtNW59DbFt1uECVRJEJx7vs7nxAyjdVquLUjIhjybGH+KQP5b+Sh66ZCPHnhHHEesSzJX4hFFatzsZEPN/Kd4uC1fcQkxgDgrJwpn7f8Ld6t6gWqU9incIY9KCERITSZ1IT1L6/XRpiDkGhNZNSWUXyy4hME4bPmn/FWg7dwcXKAx2h7YLVC+/awYgWT+2ykx8iafPWV8Q8ts2hPmCZTnDgBw4bBxInwzDMweTKXLwkHDxrT5EkeEItyZtKvxp63PXsav8Lnz+e8hyQ7uR5zncLDCpNgTaBi3opMfWoqNQrW4Oi1ozSc0JBjbx67/43tjLJ/P1SpwrI6H/HS+f9x9GjWvfVpkdXpyM1AI2CrzRjLByxNMsjsTUYGsL7tFRNqQrwLYFWQ4IlLrAed9nrw1pDVRF0LJTY0jNiwcOLDw0iICCc+KoLEmAis0ZFY4iKxxkVijY/GmhiFSoxCLDEoawxIDIpYlMSinOKwOEGCEyQ4Q6ITRLnCnnwubC3oSqhvTLKmIM8gqhesnmxsVStQjUr5KuHhYseMcRq7cibsDG8sfoMFRxZQo2ANxrUfR90iD4gD+coVqFkT8fTk5WrbmTLfl8WL4bHHMnc5bYRlP4uPLuZc+Dl61upp122D7MLOncY04+zZ4OwML76I5e0BOFepSIC/UKUKHDxo7O/83HPw8eN72Es12rWDBQtyr9f2ROgJvljzBZN3TQagXdl2+Lj7UDFvRT5t9qm54hyNbt2Q+fOJ2nkU7/JFcrSrrBph3YCuQC1gCtAZ+EREZme30IyQkQEsxEdRobcr4b53bjSd0yirEyS6gUssDc7Bp2ug+o4LFPQu+ODFB2kQEeYdnEe/f/pxKeoSb9R9g6EPD8XH3cdsaTnP2rXQogWJHTtT5+h0Tp9RbNkCZcve+6W0EZb9PDb1MU7eOMnhNw6bLSV7SPpfphT07w+TJsGrr8Jbb0HhwgwfDj0/CMQ30dhf/QhleZsfWEw7Sjqd4tuZJejUKfcaYCl55a9XOHb9GPuv7CfRmsipt05pL9jtnDxp7AH6wgsk/jKe69chf/6c6SpLRpjtAhWAlhi5cv4TkYPZKzHjZGgAU4rX2sANgkjAGYtyIk+cEwUjFS616+Pi7omrZx5cPfPgnscbd29vPHy98fT1wcPfB+8AH7w83XF1dsHVyRUXJxdcnV1vee3iZBxLfu2Rh8teUKY/xLqCZwKcGAEFI8nQNkKa+5uw2DA+/u9jft72M0V8izCqzSg6VOhgtqyc56uv4OOPuTr0F8oP74OnJzg5GTHRwcHw5ZfQrVv6l9FGWPYSGR9J0LdBvFH3DYY9OsxULVkmMRHmzIFvvzWWujVvDlevgqvrLVsMVagAI0dC5cpQpIjxjPD448biyGvXcnY6yt6cDTtLjbE1qFekHg2LNmRQ00GExYVpQ+x23nkHGTGCF6rt4VrByvzzT850k9Vti0oD7rbXzYE3SbGNkb1LhnLsgFzwRjwGGrmzPAciId62fDA5hS3fzGvtEKdPkb5tU+Sg0WhsbDy7UaqOqSoMQTrO6Chnw86aLSlnsVhEHn1UxN1dfuyx6470TF5eIlOnpn8ZHCBjfnYVR8gTNv/gfGEIuXtT+qgokVGjREqWNH6ZypcXWbLkliaHDolMmCDyyisizs5Gs549bx4PDRVxd8+ZrbbMpu/CvuL/tb+ExoTKd+u/k+AfguXI1SNmy3Isrl4VqV5dZvRZIZBz2xmlNX5lJBBgLmBRSpUBxgLFgD+yahnmNIUioccucLJCj502j1RO4mNMLw1aDSVuwKA1t9ZrNAANijZge+/tfN3ya/499i+VRlfip80/UWRYEdRn6o5SdHhRsyVnDScn+O03CAqi/e9P403ELYejo41UABr7svDIQnzdfWkS3MRsKZlDBOrXhzfegAIFYP58orcdYLXHo8yZc7NZ+/bwyiswb56xKLJNGyM7RRLLl0P16uDlZf9byGm+ePgLFjy7AH8Pfx4u+TDRCdE8NOkh9lzaY7Y0xyEoCHbu5IkfWlCkiLES1t4TVxkxwqwikgg8BYwSkfcw9khzXMwwiMLDQYRCEcLxEULBCNvDfnh4zvWpyZW4OrvyQZMP2Nd3Hw2LNeTNJW+SKIl3rJ50c3ajQ/n7YMoyf36YPp0Sicf4hVcxEs/f5MwZc2Q9yFyMvEibMm1wdXY1W0rGOX0aBg82ph+VgsGD2f7DGt6qt4F6/+uIX4ATzZsbdlnSP9Lx4+HAAWN2csUK2LHDmLlcsgS++AL69jVmMe9HAj0Dk43sWoVqsbbHWlycXGg2uRkbz240WZ0DoRSeKpapLSexcaOwcKGdu5eMrY78ERgIPC4iJ5VS+0Skih303YEjxFNoNNmFiDB933Te/OdNrsVcu+XY/ZaAN06540488biwnia0YBUAkcoHb2vaDys6Jiz7SbTeafjbk/Bw+PVXWL3asNN79TKcW3ewezfWb75DzZqBVRSft1rLwAUNcHODd96BX34xzmvUyCgNGhgOjtQ4fRp++gn27IEyZQyDrVKlHL1Nh+LUjVO0/r01lyIvcaL/CfJ65TVbkmMwbRo8/zz9Cs7ictMuzJyZvZfP6urISsCrwEYRma6UKgk8LSLfZK/MjOEoA5hGk51cj7lOk4lNOHjVWPPi5uxGz5o9Gd1utMnKspG0lp2lPw5pIyybEBHTV2rfuAFNmhhB8k8/DadOGem8vv4aXnzR1ujqVa63fZ7Arf8SgTfj6M2PvIUqVoyVK6F0aQgLM6YSXXORQ89sLkZeZO3ptXSp3MVsKY6DxQI1apAQEYPTwQM4e7pl6+WzvDrSkTB7ANNocoqQiBCK/VAMi1hwc3Lj9Nun7xsvGKCNMBtmj2FNJzWlUbFGfN3qa9M0fPkl9P88EO/4UKwojlCODTRiIw24qIrw+uJ2PPaIlRu1H2balUc41/41aj4cQMOGuSuBqqPzz9F/uBx1mZdqvGS2FPNZvBjatYOffiLshTfw9AS3bLLF0hq/7rMMfRpN7qWQTyFeqfkKAM5Ozg9Ohn2N3bgQcYG1Z9aanqpg+XLwjg/l5AmhQF4rNdjFZurzPt/xhzxDHokEJyf8d67i9XMf89UvATz9tDbAspuft/1M97+6M3LzSLOlmE+bNtCiBZbBn1G9ZDgTJtin2xwzwpRSE5VSl5VS+9JpV1cplaiU6pxTWjSa3MKQ5kMo4lMEi1h4deGr5DZPtcaxWXRkEYDd9xCMjzf2Y/zwQ6hZ8+ZijOLqDJOCP+W6bwnG8ipRrv74EMlDj9y5T64m+5nVZRYdK3Sk/5L+fLH6iwd7vFEKvv0Wp/JlqV/qCl98YazezmnSNMKUUs5Kqe8zee3JQJqblCilnIFvgKWZ7EOjua8o5FOIc++c44sWXzD34Fym7Z1mtiTNfcTCowsp7lecyvkq263PPn2gdGAoQ1ssx+m7r/nhXBfer2wYg1f2XaL9ji/wbFCD37qv4M36W4yTnJ3tpu9BxsPFg9ldZvNi9Rf5dNWnvLv03QfbEKtTB7V+Pf1+LE1IiLGII6dJc75DRCxKqUwlkhGRNUqpEuk064eRh+wB2VBPo8kY7zZ8l78P/80bi9+gWfFmFPO7D+ZhfHwgIiL1ek2OE5MQw/ITy+lRo0eOBOZHRxvertV/3eDEnkhmbSiKCr3O/2bVZWzUCaORFfArTfMuT8ACqPx8TRo0DuXAUX/yhxnpI7gPftVzEy5OLkzqMAk/dz+iE+zg+nF0lKJJ2Ut8U2MFX3/zLH36gL9/znWXkaCTnUqpv4HZQFRSpYjMy0rHSqkiwJNAC9IxwpRSvYHeAMHBwVnpVqPJFTg7OTOl4xSq/1KdHn/1YOkLS3P/Jss6Z56pxFvieb/R+7Qu3Tpbr7t12Bp2jN1CwPHt1LRuoy3HWFG4G+HhU/ELCCCoY1Oo0Bvq1IFatSAgwDjxxRc5etKFbdv8yZ8fqlW7P/ZtzI04KSdGPDYCwVg5eybsDAXyFMDdxd1saebw3Xe8t+cHJllrMG9eRV5+Oee6ykiKikmpVIuIpCvL5glbmFpOMaXUbGCYiGxSSk22tZtze7vbMXtlkUZjT8ZtH0efhX0Y+dhI+tXvZ7Yc09CrI3MWCQxEhYbeeSAgAK5fN15HRhKxZicnZm3j2P5Yyk38iKpVIax4VfzO7OO6TzAJ1WoT+EgdXFs2g8aN0+40MBDS61Njd6IToqk0uhIV8lZg7tNzyeN2H22qmVGuXoXSpYmo3RyfFX9l+XJpjV/pesJEpEeWFaROHWCGzS2eF2irlEoUkT9zqD+NJtfRq1Yv/jr8F+8vNzwYFfJWMFuSJhciIvx7/F+aFm+Kl6vXbcdAhYZSo7rQs6cxrTh+VCzdX/Xg44GKmM+/I3LUJIKuHMIHoTrg4lSVQ0cMI8x3wR9QsACB+fPfmyhtaDkkXq5efNrsU3ot6MWjUx9l4XMLTV9Na3fy5oUPP8Tn449h7VrCqj2Uci/4bCXd+Q2lVDml1H9JqxyVUtWUUp9ktWMRKSkiJUSkBDAH6KsNMI3mVpRSjH98PF6uXrw4/0USrYlmS9LkQvZe3kubaW2Yvnf6HceWLTN+btoEbyT8wNsTKnPwgh8//s+ID3J2hs3XyvBr4SH89switvx9kfJxe+jUyThPVatqpLzX3De8XPNlZnaeyZbzW2gxpQWXoy6bLcn+9O8PRYpw9ZX3KVpEOHkyZ7rJSJDJr8BHQAKAiOwBnknvJKXUdGAjUF4pdU4p9YpS6lWl1KtZEazRPGgU8inEL+1+YeuFrXy19iuz5WhyIQsOLwCgXbl2dxz75x/jp/vebfDOO2w74stQy4fk9YkDwG3gezQN/Zs+5z/lxeltqfd4AVx0Crv7ns6VOrPg2QUcvnqY95a9Z7Yc++PlBV98gVelkrgnRjFkSM50k5E/JS8R2XLbapp0H8dF5NmMihCR7hltq9E8iHSp3IXnDj/H52s+p23ZttQuXNtsSZpcxMKjC6lbuG6qOzB4exs/r3V/Fyv5mP3Kv7z4hi+bPgKWGMd8fe2nVeM4PFrmUVZ1X0W5oHJmSzGHHj3w6tGDHu8Z22q9/76x1VZ2khFP2FWlVGlAAGxJVUOyV4ZGo0mPUW1GUSBPAV6Y/wIxCTFmy9HkEi5HXWbzuc13TdDarZstc8SBDfxS6HO+/cWXq1fBwdYOaEyiXpF6+Hv4E5MQQ9c5Xdl9cbfZkuzOwCf28pTHYj7JciDWnWTECHsdGAtUUEqdB97C2NBbo9HYkQDPACZ1mMTBqwcZuGKg2XI0uYRlx5chyF2NsAoVICFPACcpwWMhE3BxVbRqrbhyVd1MJ6F54LkUdYmNZzfSbHIzNpzdYLYcu+I/uD+TnXqwakEEp09n77XTNcJE5ISItALyARVEpImIZLMMjUaTEVqXbs3rdV/nh00/sPLkSrPlaHIBz1V9ju29t1OzYM1Uj1svXsY98jr5Q49yds5WFi0UYmPEWDapVzBqbJTwL8G6l9eRP09+Wv/emqXHH6CNbr7+Gu+oyxzq+T3LlkHPnvDpp3DqVNYvnZHVkUFKqZHAWmCVUmqEUioo611rNJqUHDsGf/wBq1eD1Xr3dt+0+oaygWXp/ld3wmLD7CdQkytRSlGrUK3Us+Rfv050iYrMrvElfn7QqRO0awceHvbXqXF8gv2CWdtjLWUDy9L+j/b8ffhvsyXZh3r1iH/yaXx+HcbKP0KoVs3Y/KNuXViZxWfhjExHzgCuAJ2AzrbXM7PWrUajScJiMfbXa9QI/v4b+vUzNjk+dy719nnc8vDbk79xLvwcb/37ll21PqgopSYqpS4npeqx1dVQSm1SSu1SSm1TStUzU2NqrD+znj4L+nAp8lKqx6++NRSvuFCOVXxcZ6vXZIgC3gVY1X0Vbcq2oWxgWbPl2I3Rhb7ETeLoc+kzpk6F4cPht9/g1VcNp3FmyUjG/H23Z7xXSu0VkaqZ7zbzOGK2aY0mK4wdC1OmwNKlxko1ERg6FNauNeruxqAVgxi6dijzu86nY4WOdtNrBmZnzFdKNQUigd+SxkOl1FLgBxH5RynVFnhfRJqndy17jmFvL3mbn7f9zLX3r92R+VyOHiOxfCWmu75IuwvjCdLzG5pMsO/SPoauHUqw351bCj5T5RlqFaplgqrsp3Zt2LLPg73x5WnNMjbTgFIYycMsfgE437j71H1a41dGPGFLlVLPKKWcbOVp4N/M3IRGo7mT33834guOHYN33oGvvjL20duyBULSWIc8qNkgahasSe8FvR/MZIp2RETWALePsgIkJW/wAy7YVVQ6iAgLjiygZamWqW49c7H7h8SJG7Eff6ENME2mmbF/BjP3z2RHyA6CPIPI65WXIM8gxmwdw7nwu7jzcyF58oBzfBxVEnZzIjw/peQE8XFCUKDgHJbK9lsZJCNGWC/gDyDOVmYAfZRSEUopvSOvRpMFDh6EsDDw94c9e2D0aBg4EDp2NOqrVIFLtpmkI0fgwAFj+hLAzdmN35/8nfC4cHov6E16Xm1NtvMW8J1S6izwPUZSa4fh8LXDHA89TvuyqayKvHwZr80rmBD0Ad0/KmR/cZr7hsHNBpPfKz//nfyPi5EXGdBoAJXyVaJsUFkeL/e42fKyjRdeMH7Gxgg+G5ci5y/w/fdG6EhWyMjekT5Z60Kj0aTk8mWYMcOIJ9i+HVq2hCrNAqkRH00nnEnEhT1UYxc12BdZi/z5je1bv/4aJk0CT0+oWhVq1IBatSrz5cNfMmDZAKbsnkL3Gt1NvbcHjNeAt0Vkrm2GYALQKrWGSqneQG+A4OA7p21ygoVHFgKpZ8knf37i9x2l2XVP3NzsIkdzn+Lq7MrvT/1O1zld+XHzj1ixsu7MOgY3G5z6YpBcyiuvAL2hUqlYOtcNZsWFwlgssHgxkIU/6XRjwhwNHROmya0kJsJTTxl/tBaL8QT1wgvQpg1UqKjo2CaOLk0vsutCASZPd2fWLGjxsEqO+jxyBDZvhl27bpZ8+eDAQSsPT3mYDWNe4pEiT9Oobh5q1jSMtIIFuWvA9dy5hmF36BBUqmR44J54wk4fxj1idkyYTUMJYGGKmLAwwF9ERBn/bcJEJN3c8vYaw37Y+ANLTyzln27/3FIfd/gUrqWDcXLJyESIRpM+IkKTiU3wcvVixakVVMhbgX2v7buvjDAAlOLoEWHLFihSBJo2BScnoz6t6Pw0xy8RyVWldu3aotHkBiwWkRUrRIYPt1WEh8vgNpvl9w6zJeT94SJvvSXSqZPIyZMiIOu6jhABSXBylbiK1UV69BABkbCwVK9vtYpcv268Phl6UlzqThCPfOdsCZ6M0qHDzfYLF4ocOCCSmCgyY4ZI8eIiixeL3Lgh8vffIkWLisyfn2MfR5YAtonJYw9QAtiX4v1BoLntdUtge0auY+oYFh0t13yCZVH+lyQ+3jwZmvuPZceXSekRpaXCqAoy/+B8s+XkDHBv9cmH7z5+6W1YNZrbCQyE0FQCLQMC0k5eGRYGGzYQsuUsh5ae4fquMwRGn+Vf76H07t2YPMuWMeSfTjfbe3lBcHDyNRsPbg0Pj8Xl5EnYuRMWLrz1+qNGwZo1hgutZk1UzZoEFCgAGIkUx46FV/4uyv8aj6aJe99kTxlAXJwRZ5aYaExnAjz8MLi6gp8fPP44ODsbCwQ6dszUp3Zfo5SaDjQH8iqlzgGDMeJlRyilXIBYbNONjkB4XDg+bj53eCIuD/yR/BFnONS8O21dTRKnuS9pWbIlBb0LEpUQRYfyHYhJiMHT1dNsWdlLQEDqUwtZ2FkiIykqSgPnRCROKdUcqIaxTPtGpnvNAno6UpPj3M21rJSxlPHsWThzxihnz8JHH8Gzz8LWrVDPSBWViDPXPYpA8WB8f/wCj8eaGxH2mzcbhldw8K1/0Kn1KWL4upPqv/oKfv0VTp682aZ8eSO6Xylkxw56r32f38PXsuPVnVTKVym5mdUK+/YZU5g7d8KPPxrdf/QRvPee0SYmxlggEBeXHR9i9uII05HZhT3GsG7zunHgygF29tl5s/LyZaKLlGElLah34a9kA12jyS6OXT9GXGIcU/dMZfGxxezovQNnJ2ezZZlOlqYjgV0YAfxlgCPAd8Di9M7LqaKnIzU5DoiMHCnSsqVIoUIiQ4ferE8qQUFiqV5TztbuIIPqLJZZs0QkKkouzV8vv356Ri6eS7j3PjNaHxoqsnKlMc/5xRc362vXFgEJ9VSytZy3JPbvb8wzpkKoU4BYQeJwlThcZTSvSQzucsM54N502wkcYDoyu0pOj2EJlgQJ+DpAuv/Z/Zb6M+1elXhcZPx7h3K0f41m5r6ZwhBkwo4JZktxCNIavzIyHWkVkUSl1JPATyLyk1JqZ7pnaTS5DasVmjUzXr/5JkddK7LP+zHU8aq0TzSeROTgIdacLMaU2V7MmWNsXVGsGAyNAby8yN+xET07ZqLve3Fz+/tD8+ZGScm4cbBtG9dXzCNx3b9YfhmN84ULxlwjQNu2ULQo1KyJvzWUmuWiGDfVi+hoeL05DAocw7Xr91kg7QPIxrMbCY0NvTU1RWwsrFrFH36v8fwX5c0Tp3kg6FKpC8OLDGfQykF0rdw11Tx1GoOMLI9JUEo9C7wEJAWp6GgCTe5GxEjMNWQIvPyyUefkRGzVugB89/JBrHsPkH/BREaeeiI5Rwzly/Pau4YB1rkzrFhhbOL64otZ1HP9eko/281yLxso16oFvXtTasYSfh71Ij4fWNn+aS/jWGysMc84Zw707QvA9qM+rH70S1q1MhIRRkVBCAWzeCMas1l4ZCGuTq60Lt36ZqWHB/ku7Kbhf1/i7m6eNs2DgVKK7x/5ngsRF/hh0w9my3FoMmKE9QAaAl+KyEmlVEng95yVpdHkEPv2wfvvQ9myUL06fP65EWMVHw/A6NLDAXhvQgX8/Y0wr9BQmDkTovFEKSO1w8WLMHEitGhhW6LsYIx4bAQF/Ivw3Ko3iE6INnZk/u8/uHbNsBoBp0Gf8O6sBkRFwa4dVkTgY/5nrnBNlll4dCHNSjTD193IlhG16ygxV6Pw8HWjXG2d9lFjH5oEN+HJCk8yeuto4i3xZstxWNL99yEiB0TkTRGZbnt/UkS+yXlpGk02kJhouKuSVjuuXm1EpZcta0zfhYTAypUkZazcvh02eLSgrVpMkYKJvP02OO/axg/Sn7g8gQBUrGgsbHRk/D38mdRhEkeuHeHD5R/ePKAUFC9uvP7sM1Srlrgd2kOZJyrxzbO7mEwP9LqX3IuI8E2rb/iwse07t1gIb92JfUUfIzLSXG2aB48Rj41gR+8duDnrjMB3I10jTCnVWCm1TCl1RCl1Qil1Uil1wh7iNJpMERsLCxZAjx5QoICRkn7+fOPYiy8aKev/+Qd69YICBbBYYPlyY0ugkiVhTKcV7A9uy/sfubB/P2yx1GFkqRGcWJ279kFrWaol/ev356ctP7H8xPK7NyxWDK5d443Db9CGRQ7p2dNkDKUU7cu1p2WplgBc+nYyha7uZWvDN/H2Nlmc5oGjmF8xCvkUQkSIiIswW45DkpEUFYeAt4HtgCWpXkSu5ay01NEpKjSpImJ4ea5eNSypyMibCbCeegoeffQO99WePUbGiT/+gAsX4LXXjJnKunXhp5+gSxfjMoMGwe7dsGrV3bPPOyoxCTHUGleLyPhI9r62F38Pf+PA3XKheXkZwWEOhk5RkTGm7JpC7cK1qZK/CkRGEpq3LIcSSlHi7DoKFc5lv7ya+wIRod0f7XB3cWd+1/lmyzGFtMavjDzzhonIPyJyWUSuJZVs1qjRpE5goGH53F4CA434pkmTDEMrKXI+b14YMACWLDE8Xr//Dk8+eYcB1qqVERL2449QuzbMmgXDhkGJEvDXX/D990YXRYvClSswb17uM8AAPF09+a3jb4REhNDvn343D9y+EMBiMaxPX1+unQzn448hOto83Zp7JyIugl4LejFl1xQATr7+HQFxFznUa5g2wDSmoZSicbHG/HnoT9aeXmu2HIcjI0bYSqXUd0qphkqpWkklx5VpNGB4a25fMThzplFfoICxsnHPnptxTgCDBxueL1ucV2SksVn2888bWSgA2rc3vF0XLsDffxter6RM8o0aGQH5x48bIWPTp0NQkJ3vOxupW6QunzT9hKl7pjLnwJzUGzk5GRn5L17kxvfj+eorwxDV5B6WnVhGgjWB9uXagwgRq7bzt1dXnvmhgdnSNA84bzd8myI+RRiwbADpzb49aGQkT1h928+UrjQBHs5+ObmTM2FnuB5zZyoBHzcfSgeWNkHRfUZ8PEyeDC+9BO7uhtEF8OGHxlRjzZp3uKkSE404r99/hz//NLw6pUoZRlfRovDWW2l3qZThVLtfGPjQQBYdXcSrC1+lSXATCnqnkoqiXj1YvZrSTZrQ+TJ8841h4xYtan+9mntn4ZGF+Hv40zi4MShF1ZMLCDoek/xwodGYhZerF1+0+IKX/36ZWftn0bVKV7MlOQzpxoQ5Go4YE1ZpdCXC48LJ63Xzv3ZYXBihMaHc+PBGtvcXnRBNvV/rEZMYc8exBkUbMO2padneJ8DFyItYxXpHfaBnIB4uHtnfYWKisblh8eJw+rSxirF5c0hIMLxct/3uitw8tHChMUsZEABduxqzlQ0b5s4pxezi4JWD1BpXi1alWvH3M3/fsa9gSk7vvkH5en507qKYOtWOIu+CjglLG6tYKTSsEC1LtuTX0p8RJV7kr1kkW/vQaLKCxWqh5tiaBHoGsqr7KrPl2JW0xq90PWFKKT+MzWqb2qpWA5+LSFj2SczdvFHvDRYfXczC525uuNx7QW/y58mfI/15ungS5BVE61KtebbKs8n1b/37FmUDy+ZInztDdlJrXC0KehdEcfOfd2hsKD1q9GBMuzHZ15nVCjNmGNOKQLx/fpa0H8eZvc3oUBqKFbs1V/Dp00Zw/e+/GwlUP/8cHnnEWBDZpg06OaWNivkq8nXLr3nr37eYsHMCPWv1TL3h3r0Ub9GMCe3H8/y0p3jjDWigZ7QcmmPXjxEeF077su249HhvXM6e4PK54+QvnJHJDo0m53F2cmZe13kU8dEPBynJyOrIucA+YIqt6gWguog8lcPaUsURPWFxiXGU+akM856eR90idTl14xRVf67Kp00/xc/DD2fljLOTM77uvjxV0fjY1p1Zx5WoKzgpJ5ydnHFWzvh5+NGoWCMAdl/cTVRCFM7KObmNj5sPZYMMI2v63ul89N9HLH9xOe7O7oREhNBmWhuO9z9+cwVcNiIi1BpXi8+af8YT5Z9I9b6zDYsFqlQhxlmY5naYN4q+RekyCqXg2HFo3Ai+/fEHDnwjTJhgpP4CaNIE3nzTiO/SpI5VrLT+vTVbzm9h96u7KRVQ6s5GiYlQqxbWG2G88fBB3h/iRYkSdpd6C9oTlj7RCdFcnbyY4N5dmFxnFN23vp7tfWg02UFcYhyJ1sQHZjujtMavjBhhu0SkRnp19sIRjTCAMVvHMPfAXOY8PYcPln/A6tOrOXLtyC1tSviX4GT/kwC0/r31Hbmbquavyp7XjHinBuMbsPn85luONyzakA2vbACg8pjKHLhy4JbjpQNKc+zNYwCUGVmGkMgQ3J3dcXdxx93Znfbl2jOq7SgA2k5rS2xiLO4u7rg5u+Hu7E6rUq3oXbs3AO8tfQ9nJ2fcnW3HXdyJTYxl3sF5bOm5hbkH57Lm9Bp2XtzJL+1/wdfdl7xeefF2y0QyIhFYtAhGjDCWIfr4wLlzzDh7iJcWt2boCnAWSLS6cjKyIb91WMP0xd78VjqCvXuNqcZu3YzMFJr0ORN2hqo/V6V6geqsfGklzk7OdzZavdqY+v30U/jsM7trvB1thGWAhAQuBFUhIlLhdWwvxUrp3eU0jkd0QjTVfq7GUxWf4tvW35otxy5kaToSiFFKNRGRdbaLNQbuDEZ6wHml5iu8t+w9SowogbNyZnvv7Xi6emKxWrCIBYvVgpO6uRh1bPuxhMeFYxVrcpuUcVUj24wkNCYUi1iS26T0cH3d8ms2nN3ApF2T6FevH1+t+4rPmn92i56r0VeJt8QTZ4kjzhJHuaByycddnFxIsCYQGR1JnCWOeEs8ZQLLAIbXa9yOccQmxt6y3UT/+v0RhLkH5/LM3GeS66v/Uh2ATx76hC8e/oIrUVeo8nMVfN198XHzwdfdF193X3rW6skT5Z/gesx1ft76M77uPvgcO4vvrL/w3XeUyl7FKXTyJIlVKhGTz4+QOS0IsDTG+8u3OLm4MxMnGlkpApo+yYGu85jY17DXHuQ4r8wQ7BeMs3Jm7Zm1uHxx6xBQxKcI5945Z2xk/uyz8M03nGz6EkN+K8WYMcYek7kVpZQH0B54CCiMMY7tAxaJyH4ztWWFc+Hn6DijI+8fbcrTEUeY1vVvumkDTOOgeLl60SS4CSM3j+T1uq9T3L94+ifdx2TECHsNmGKLDVPAdaB7TorKjSQZWBFxEXz80MeUDEjbLZPqNFAK6hWpl+bxx8s/Tvty7dlwbgMTdk5gQKMBdKvWLfn4Rw99lOb5fz/7912PKaUI+9AI+RMREqwJxCXG4ezkzNLjS/ls1WcMbDKQladWMrj5YMLjwomIi6BqgaqA8Vk8WeFJwuPCk8vZ8LOExRrXPBd+jk9WfnKzw1pGmdjuE3pUq8a2c5toOKGhEXvmlIe+C/pD3KfU6/gJvu4bqezeE6tV4eub5i1q0qBr5a6M3T4W4aYn3M3ZjQ7lO9xs9N13Rv6OefP47bcBlCjhEE6xTKGU+gzDAFsFbAYuAx5AOeBrm4H2rojsMU1kJll0ZBHbQ7Zj2VOVNe6t6Di+vdmSNJo0GfrwUGbun8nAFQOZ+pQDrPwxkQyvjlRK+QKISHiOKkoHR52OXHZ8GY9MfYSHgh9iftf5BHnZJ7HUypMr6TK7C8fePJYjsWC3kxQbdvjqYVZ3X33vsWDnzkHRosQlxhHxyvOE165CRMe2hEssZQLLUMinEOfCzzFj3wwOnQxnwtRw3AofplzVcF5v/AI/bxnPmfHf02fwLj549CUCPANy5kbvc0IiQig5oiRxlrjkOk8XT070P3Fr+grb9/Xss0aqj8OHITjY/nqzOh2plGonIovSOJ4fCBaRHB9csnsMa/9Hew5ePcixfscIv5aIX17tBdM4Ph//9zFfrfuKbb22UbtwbbPl5CiZiglTSj0vIlOVUu+kdlxEhmejxgzjqEbYqwtfZeqeqVx57wqervZNzBObGJszKSLuwtLjS5lzYA7jHh+X8ZN27jTii5Ytg6NHjf0KbyMmBsaMgf/+M0LElIIvvoDhfy5HtXsdFzxI+PdLqrRfxTrrMDxdPHmmyjO8Vue17F0Y8IDQd1Ffft3xK4nWRJyVM31q92F0u9Gptr2w4hAV25ak7ZPuTJ9uZ6HkTEyYUsoJ8Lb3g2V2jmHRCdEEfRPI0z4dmdJ/RrZcU6OxB2GxYZT5qQzPVH6Gn9r+ZLacHCWz2xYlRX/4pFL0VrApsIqVPw/9Sbty7exugAF2NcAAHin9SMYNsP37jbwRtWrBunWGIRZwq/cqLg5Gj4bSpY0dhywWCLMlQBk0CNb/3hIf53y4OruyZnw71g76np19dvJCtReYtX8W9cbXo9OsTtl8l/c/g5oOwlndDMof1GxQ6g2PHKHwo1WZ3fhHZsyA9evtJDAHUEr9oZTyVUrlwYgHO6CUes9sXZllxckVxFri6DTyL07u0lmDNLkHPw8/Nr2yiZFtRpotxVTuGhMmImNtL5eLyC3Dri04X2PDSTmxtsdaEq2JZktxLC5fNrLZe3gYxtfbb4O//y1NDhwwcnmdOQMPPWSkB2va9NbLVKqkWNFvConWRMrnNaLwaxSswdjHx/Jt62+ZumcqXq7G3pDxlngGrxxM9xrdKZ+3vD3uMtdSyKcQL9d8mZ+3/YxSCl/3uwTZlSsH7drRevkXfP/281Spkqvz/FQSkXClVDfgH+BDYDvwnbmyMod161k6HYAorwGUrOFnthyN5p5I2lHmavRV/D38cXF68PLaZWTvyNT8hPe37zATlA0qS8V8Fc2WYT6nThl7EALkzw/TpsHJk0ZEt80As1iMfRnB8H7Vrg1LlxpZEW43wJIoHVg6VaPKz8OP1+u9To+aPQDYdmEbwzYOo8LoCrT8rSVzDswhwZKQzTd5/zCo6SAKeRci0ZrIP0f/uXvD4cNRiYm8e/E9/HL3/3pXpZQr0BH4W0QSgNy1bUgSIlR86zdGzipEo5kfmq1Go8kUR68dpfTI0kzaOclsKaZwVyPMtmH3u0A+pdQ7KcoQIJXEQg8mVrHSZ0EfvTv8+fPQt6/hNXnvPeM9GJlTbbtfW60wZw5UrWqkoIqNNbLZz5sHrVtnT6qJRsUacfbts3z58Jccu36MLrO7UPzH4pwJO5P1i9+HFPIpxJm3z5DXKy9zDt5lc28wNt784AOYPp39Y1bzyCPGxui5kLHAKYxwizVKqeKAqYuNMsvmL38lT9wmNrYdSvFKuTh3iOaBpkxgGarkr8Knqz4lMj53DipZIS1PmBtG7JcLt8aDhQOdc15a7mDr+a2M2zGOkzdOmi0l5wkMNCyl24uHh+HSGj8eXnnFCLwvcnPKSsTYy7F2bcMmE4Hhw409HnOCAt4F+Pihjznx5gkWPLuAJ8o/QTFfYyHApJ2TWHZ8Wap7YD6ouDi58GSFJ1l4ZCExCWmkAPzgAyhbljwn9rJsGXz1lf00ZhXbQ6USkZEiUkRE2oqxKukM0MJsfZlh/JUFFHsb6kx43GwpGk2mUUrxXevvuBh5kWEbhpktx/6ISJoFKJ5eG3uW2rVriyPx3tL3xOVzF7kefd1sKTkP3HxttRo/r1416nv0EDlxItXT/vvPaFKqlMhvv4kkJtpBaypYrBYpM7KMMAQpM7KMfL/+e7kaddUcMQ7Gv8f+FYYg8w/OT7thbKyIiDz/vIi7+12/8mwH2CZZGDeAn4EdwAyMPIcFs3K9rJTsGsPq/VpP6o2rny3X0mjMptPMTpLnyzwSEhFitpRsJ63xKyMxYdFKqe+UUouVUiuSSs6YhLkLEWHewXm0LNnywclXdfq04RFp2dJwadmmGpk48ZZ9g9atgym23UZbtIBZs+DQIWOLIWeTJrOdlBP7XtvHtKemUdC7IAOWDaDI8CJM3Dkxuc2UXVNo90e7O0r7P9pz+Ophc4TbgRYlWhDoGcicA2lMSULybujD2yyjoNNl3n/fDuKyARF5TURqAUOAAGCyUmqjUup/SqmmSqlcE2IRe/YKyz6ZyJbzW3i8vE7Mqrk/+KrlV8Rb4vn78N0Tid+PZGQpwjRgJka26VeBl4ArOSkqt7Dn0h6Ohx7ng8YfmC0lZxGBlSuN16Vsmf47dYKICG5PW791q5FW4t9/oWxZeP55w+hylE213V3cea7qczxX9Tn2XtrLz9t+pkbBGoDxfa4+vZo9l/bwS7tfks85H3Get5a8ZZdkuGbh6uxKx/IdmX1gNnGJcbi7uN+98blz5HupLfOrvkitORPYsAEaNbKf1qwgIoeAQ8APSilPjKnILsBw4K55yJRSEzHGwMsiUiVFfT/gdcCCsf1Rjpul+5/+jNOxY6AjPF5OT0Vq7g/KBpXl+JvHKeZ3Zw7J+5mMeMKCRGQCkCAiq0XkZeDhHNaVK7gcdZkKeSvQoUKH9BvnZubPNzxfwNWeH/Dtayfpm3cW8//zxWIxmhw5Ah07Qr16sG2bsePNrl3meb0yQtUCVRnTbgy1CtUCYNb+WUzaNYkLEReYsHMCJQNK0q5cO/Ze2kvfun0p4F3AZMU5S+dKnYmIj2Dp8aVpNyxaFN56i5o7J/Lnx1uol/YOWw6JUsoLqAxsFZF+kn4i2MnAY7ddowXQAaguIpWB73NCa0qurD1E9U2/MKlGSYr6FqVagWo53aVGYzeSDLAHaSFVRoywpPX9IUqpdkqpmkBgDmrKNbQu3ZqDrx8kf578ZkvJXo4fh3fegZ9/Nt63a5c8t1hx3v+47h1MuXLwv//BE08YTSIjjRQTX3xhZKQYMAC8vEzSn0m+aPEF63qso0GRBvx56E8qj6nMM3OeYeqeqbzXKNfm88wwLUu1xN/DP+1VkkkMGgSFCtFh2Ru4OFnJ4O5npqGUekIpdUoptUMp1RbYD4wC9iqlXkrvfBFZg7FvbkpeA74WkThbm8vZrft2zj//PlHk4bvu85neaTpK716vuc9YcmwJJUeUZNWpVWZLsQsZMcKG2jbvfhcYAIwH3k7vJKXURKXUZaXUvrsc76aU2qOU2quU2qCUqn5Pyk0mMj7y/so/ZbXCkiXQvr0xj/jTTzeTebm7E9XpRUJVAFeuKr7+RvHE26WotG0KBRZPJC5PALVqGVkpPvkEfHzMvZXMopSicXBjVvdYTQn/Ejxb5VnOhJ3hlVqv3PdeMLi5gfdfh/4i3hKfdmNfX8PduXUru/pPonp1CHfsRA9fAI8AfYBZQEsRaQBUwxjXMkM54CGl1Gal1GqlVI7unXV07ApqnFnA2iYf06hZNZoEN8nJ7jQaU2hWvBlFfIrw3rL3HohV7GkaYbZg1bIiEiYi+0SkhYjUFpGMRM5N5jb3/W2cBJqJSFWMAfIeNiI0n5GbR1JwWEHC4xz7P0+G6dnTSF2/bZuR3f70afj+5uzK+vXQotp1Bn4stG4llHc5wSyPl7jU9mWeb2M4CHKb5+tuuDi58Fnzzzh09RCHrh7ivUbvsf7Mek6EnjBbWo7TuVJnwuLCWH5iefqNn3sOOnTAN8iVvXvhyy9zXl8WsIrIERHZCpwUkROQ7L3K7FYXLhizAg2A94BZ6i6uKaVUb6XUNqXUtitXMhdSG3Yplh1eTTjxuS9Tdk3JpGSNxrHxdPVk6MND2XZhGzP3zTRbTo6TphEmIhbg2cxc+C7u+5THN4hIqO3tJqBoZvoxi7kH51IuqNzdt3pxdA4fhn794OxZ432PHkZ2+zNnCO0/hGX7C/O//xlxXtevg6cnXLoE33wD167Bm2/CsWPGTOX9Ynyl5NmqzxIZH8nLNV8myCuIl/58iQbjG7Dp3CazpeUorUu1xtfdN/1VkmDkiPvzT0oNeZGXXoIff7zpPHVAnJRSAUqpIMBqex2olAokYzMCqXEOmGdbhb4FsAJ5U2soIuNEpI6I1MmXL1+mOqvzaVtqRKzhxz3fZWzKWKPJpTxf7XlqFKzBxys+Ji4xzmw5OUpGBp/1SqlRSqmHlFK1kko263gFYx+3XMHJ0JPsCNlBp4q5bNNoiwUWLIBHHoEKFWDcOOLWbCImBnjoIVYUfI5yVdwIDDSaDBwIBw8a04yNGhnJVadMgR07YNgw4/0PP0C3bmbfWPbj4uTCipdWMPThobg4ubDouUX4uvvSYkoLZu+fbba8HMPdxZ0nyj/Bn4f+zPh0u8XCj5V/pYbzHt5z3NA5P4w9IrcBvhg5w7bbSmYn0P/EluhVKVUOI8H11awKvZ2461FsePYnEiLjOHTtICdvnKR9WZ2aQnP/4qSc+K71d4REhLD5/Gaz5eQsd0sgllSAlamUFemdZzu3BLAvnTYtgIMYqzDv1qY3xuC5LTg4OFPJ0rKT79d/LwxBjl8/bqqOS5dEvvtO5I03RKZMEYmJSaNxbKxYy5UTAYkMKCLz6wyVh6tcEhcXkd9/N5rs2yfSsaPIl1+KLFsmcv22/LPbtokULizSvLnIM8+IBAaKDB6cU3fneFyJuiKNJjQShiDfrPtGrEkJa+8z/jz4pzAEWXJ0ScZOuH5dJChITpdoKmCVHTuyXxNZTNaa1QJMB0IwFiqdw3hwdAOmAvswjLqHM3Kte03Wuv6RISIg20ZtlG/WfSMMQc6Gnb3HT1CjyX1cjLhotoRsIa3xS0kOLmtSSpUAFkqKvDq3Ha8GzAfaiMiRjFyzTp06sm3btuwTmQkaT2xMdEI0O/vsNE3D9u3Qtq0RR1+1KixeDJcvG+m8AgKM1F7nluzlyvTlRLzyNs2aQfh7n/PK9xX5k454+7tSty7UrQtPPw3VM7gsIi7OiN+/cQMefhiKPVgpXYhNjKX7n91RSvHHU3/cl6vTYhNjyfddPp6p/Ay/PvFrxk769Vfo3Zs9H/5Bta8yFcGQJkqp7ZJ+Gom0zncGPEUk0va+AYYRBbBTRCKyQWaGSG8Mi401pv2nTQOfiAusuViWbfnb0ezSLJpOakpEfISpY49GY2+OXjtK2aCyZsvINGmNX+kaYUqpAsD/gMIi0kYpVQloKEbusPTOLcFdjDClVDCwAnhRRDakfxsGjmCErT+znqiEKB4p/YhpGsJcAvGzhN5RP8T5c5yrVqbFvp9okriKaDx596lT/DzXSKMxaxbUqAFlyoBTZiNhHnCsYiXRmoibsxtnw87i5+GXe2MD78Jzc59j6fGlXBxwERenDOR0tligfn0ICYHDh4lz9U5Krp8tZIMR9j1GotVvbe9PYniwPIAdImK3jMvpjWERboH4JBh/2xtoSG22c5aiFA+8zkPflOfR0o/yWYvP7CVXozGV4RuH89F/H3Ho9UOUDCiZ/gkOSJrj191cZHLTDf8P8DSw2/beBdibgfNSc9+/CrxqOz4eCAV22UqGphscbe9IMwgJETlFsIwfb+zh162bUX/ot80SQgERkCvexWXTU9/InpVXJT7eXL33K4mWRKk6pqpUHVNVztw4Y7acbGXugbnCEGT58eUZP2njRhGQ3W0+kKJFRUJDs09PRseHuxVgJ+CS8r3tpwLWZeXa91rSGsO2bhURkPh4kaOzd4oFJctrvCvt2hn1IsYeqBrNg8K5sHPiOdRTnpnzjNlSMk1a41dGfCF5RWQWxsofRCQRY4uONBGRZ0WkkIi4ikhREZkgIr+IyC+24z1FJEBEathKpp9y7cnIzSPZen6raf0PHw4NG0JpjjOs5wG8//6DKjfWARAaVIYCXIL588l74zj1575P1eZBuLqaJve+xtnJmeGPDud02Gnqj6/P9gvbzZaUbTxW5jG8XL2YfeAeFiE0aACDB+PVrgXnzxuJex0IJ9vYlcQHYFg1gLc5ku5kp22W0dUV4uOEbYGPUHPOQB55BCy2mW8npV3YmgeHIr5FeLfhu8zYN8PU/705RUb+mqNsy7qNx0YjliIsR1U5KFeirvD2v2/z1+G/cryva9dg3jx44w2oWTk+ORFmswXvsvRGXWLx4ACV+Tm8Gx9GDCQ+HoaMDESBkVfCkfcLuo9oVaoVG17egJuzG00nN71vNp/1cvWifbn2zDs4D4s13WeumwwZQpnXH+Xll2HkSGM7KwfBTSmVvApSRJYC2BJRe5im6jaStmYVgUrdalLv2hICSwewfWcCxd6BEZtGmCtQozGB9xu/T/48+RmwbECSJ/u+ISNG2DvA30BppdR64DegX46qclD+OvwXVrHmaGqKTXPO8Xapv/gp72fQ6SneHVOKOWfrc9W28L124CnK1vbDBQsfFv6NblV206fUMsqWzb2Z6nM7lfNXZlPPTVTOV5mha4beN1meO1fszJXoK6w9s/beToyNZYTXRzzpuoB3380ZbZngV2CmLRYVAKVUcYywifGmqbqNFi2Mnx99BBERkJBgrHlYsGc9IT4Q7Bec9gU0mvsQH3cfhjQbwqGrhzgbftZsOdlKhlZHKqVcgPIY8ROHRcS0/XrMDMxvM60Nh68e5vibx1NdFRcdbeQ+LVw4fYMoJjSWvTP2c27RbiJ3HsHrx6/o3EVxo+1z+P8zHVGKmGLlcK9XHef6dY3NGFOiFJZEYdkyI7l9vXpQs6ZRz332pJBbiE6IJiIuggLeBYhOiMbd2R1np9zrkYyKjyLfd/noUaMHo9uNzviJiYlQsyY3zkdS5MYBth/wpEKFrGnJamC+7RqvAh8DeWxVkRh7P/6cNXX3RrpjmFJ07iT8809SeyjRewAzDg3j6ifh+Ljrpy3Ng0eCJYGYxJhcuQgqrfEr3WVPSikPoC/QBGNKcq1S6hcRic1emY7Njdgb/HfiP/rX73+HASYCsXkC8YoJpfztJwYEwKFDxk9XV2LGT+Ni/68oFn2IelioB0Q75WFV7HtAEP7/ex8G90dVqYJXnjy3X+2W6zq7qDv3hQoIyPK9ajKHl6sXXq5eWMVKl9ldcFbO/NHpD7zdHCbk6J7I45aHtmXbMu/QPEa2GZlxg9LFBX76Cf8WLTj5+nfkr/BpzgrNILZ41F+SpiXFjmkp7omAAObMTTHGrIEK1aB5lIs2wDQPLK7Orrg6u5JoTeTotaNUzFfRbEnZQkamI38DKgM/AaNsr3/PSVGOyIErB/B286ZTpTunIseNA8+YUE6dFLh8mRu/TOeP4A/ZW/QxIkPjoUABhnbdC4BHUB6ueJdgVYMP2fnRLCJ3HMErIZy2LwQZF6tRw1jqn5YBBsZeQsZ6qVvL9bvuFKWxE07KiXZl27Ho6CKaTW7GhYgLZkvKNJ0rdeZi5EU2nM1wFhmD5s2ha1fyT/gKTp1Knk43C6XU80oZEe0iEnG7AaaUKq2UcowdsW/72z569QiH80L7PsPNVqbRmE6vBb1oMaUFEXGO+Qx1r2QkT9gBEamUXp29MHM6MsGSgLOT8x2rk6pUgX37bdOAy5dD69Yk4MIBKrGLGlzMXx3n57oy4IcipujWmMOiI4voOqcrgZ6BLHpuEVULVDVb0j0TERdBvu/y0bt2b0a2GXlvJ587B+XLc7hUGxqHzOHIEQgMzJyObMgT1h94mZtbFV3BCMgvAzTD2G7oQxE5mtk+Msq9jmEhESGM2z6OHjV76JgwzQPP5nObaTChAYOaDuLzFp+bLSdDZDVZ61RglIhssr2vD7wuIi9mu9IMYIYRZhUrCnXX7OgBARB6w2aERUUx/oOjbIuqyPjf3TlrKUQhCbGrXo3jsDNkJ+2ntyePax4OvH4gY4lPHYwnZz7JlvNbOPv22XtPjzBzJoddq1CpS2XeeANGZHJxXzbFhDkDDwONgUJADMaWaf+IyJmsXPtecISE0xpNbqbrnK4sPLKQo/2OUtinsNly0iWt8SsjI2ptYINS6pRS6hSwEairlNqrlNqTjTodlrkH5lL2p7KcunEq1eMNGkAYvqxr9xUJrl70HFWDDk+7U6UKFOKifcVqHIqahWqyuedmZnaeiYuTS65cXt25YmcuRFxg07lN935y166Uf6oyvXrB6FHCwYPZry+jiIhFRJaJyBAR6SMib4nIWHsaYPdKRFwEC48sJDoh2mwpGo3D8FGTj4i3xPP6otfZGbIzuey6uOveUuo4ABl5LL8j9vtBY96heYTHhVPMN/WNEr/ufQKPJTGE/LOTpcsUFy7AoEEwYQLQ3r5aNY5HUd+iFPUtCsBH/32EiPBVq69yTdLN9uXa4+bsxuz9s2lUrNG9XyAujh8vdyevW23eeWdA8qo/Tfr8e/xfuszuwtoea2kS7BghaxqN2UzfOx2FYsnxJZy4cQIn5YSIsPvS7lz3t5KuESYip5VS1YGHbFVrRWR3zspyHGITY1l4ZCHPVnk29dVhIhT6Xz/icSdECvBme2PKshcYBpheraixISKEx4Xz87afOXHjBL91/A1PV0+zZaWLn4cfj5Z+lDkH5zDs0WH3bjy6u+OREMmn8hmVVj/Hs88WJioKGjWCPn30n0hKQiJCmHNgTvL7qXum4uXqxbbz2/D38KdK/ju24dVoHjj61OnD+B3jOdLvCEFexqK2vw79xZDVQ2hcrLHJ6u6NdEdTW0DrNCC/rUxVSj0wyVqXHV9GZHzkXRO0xs36i/zbFjMm/2e8GveTXq2ouStKKUa3Hc2wR4Yx98BcHv7tYS5HXTZbVoboXKkz58LPZX7bkB9/xNkSz1fW96lRA3r0gP37jYXAZq+cdCSOhx6n/5L+HLhygENXD7Hn8h6K+hTli7VfsOb0GrPlaTQOQamAUnSs0JGftvxEWGwYh64cYsjqIQxuNviusduOSkYeaV8B6ovIpyLyKdAAm6PnQWDuwbn4e/jTomSLOw8mJhLV5232UJWGf/TDzc3++jS5C6UU7zR8hzlPz2H3xd00m9yMBItpuY8zzBPln8DVyfUWL829kBBcmp883qdL3DTea7CWSpXg99+NDPE//JDNYtNAKeWulHpOKfWxUurTpGI/BWnTuFhjmgQ3oVGxRjxf7XliE2PpUbMH7s7u9KjRw2x5Go3DMLDpQH7a/BMPTXqIF+a/AECH8h1MVnXvZCQmTHHrht0WW90DQZdKXahfpD5uzqlYWC4unP12Blu3O9Gzpd4lW5Nxnqr4FKu6r+L0jdP0XtiblSdX3tHGw8WDTT034e/hb3+Bt+Hv4U/r0q2ZfWA237b+9p6fNg8fhu5RowA40bwH3/Eh4+nFWCDMOQC+tJvH+C+MvW+3A3H26jSjKKUY0nwIry58leerPY+zcmbdmXW83/j9XDF1rdHYiyRv2MGrB9l0bhO/PflbrvOCQcaMsEnAZqXUfNv7jsCEHFPkYLQr1y71AwkJ4OpK9d71qW5fSZr7hHpF6lGvSD1O3jjJtgvb6F69e3Iy4HkH5zFz/0z83P1MVnmTzhU7s/joYraHbKdO4XvLFhEQAP5yg/i1mykaXILxwfmBnsycCV2fsevAWVREHHqxUYsSLSjoXZASfiWY8/Qc+i7qy+wus82WpdE4HAObDqTi6IoIQrwl3mw5mSLd6UgRGQ70AK7bSg8R+TGHdTkES44t4ci1I3ceEOFCjTYsq/0BsQ/U5k2anOC1Oq9x5NoRBiwbwKSdkyjmW4yJOycypNkQh3qy61ChAy5OLpmakixiy1P86cJ6uBbJD8DFi/C5/XMtblBKOXTW3CRv2NC1Q5m0a5L2gmk0d6FUQCkGNhlIIe9CzD6QOx9UMrTMSUR2iMhIW9mZ06IcAYvVwkt/vsSglYPuOBYxbjqFD/zHrhsldRyYJsv4uPswuNlgSviX4PM1n9P9z+7kccvDY2Ucy2ET6BlIy5ItmX1gdqbznW3cCKVKGbFgFStC167ZLPIupMhr2ATYoZQ6rJTa46j5DpO8YVvOb6FP7T5my9FoHJZPm3/Ki9VfZPmJ5YTGhJot557Jfem77cT6s+u5HHX5zlWRYWFY336HrdSlzbxeOOWOVE8aB+fN+m/y46YfaVa8GX/s/YPJHSc7lBcsic6VOtNrQS92XdxFzUI17/n81ath3z4ICYFatSAoCBic/TpTIVdl7FNKMabdGEIiQrQXTKNJh9frvs4L1V4gwDP35bu5qwmhlHK3pxBHY+6BuXi4eNC2bNtb6s+/MgifmMtseulnqlRPJW+YRpMJvN28GdBoAMeuHwMFMYkxZktKlY4VOuKsnDO9ShKMvVZbt7YZYHZCRE6LyGlgaNLrlHX2U5JxquSvQuvSrc2WodE4PMX8ilE5f2WzZWSKtPw4GwGUUr/bSYvDYBUr8w7N49HSj+Lt5p1cL1ev4Td/Mr/79OXl0bVNVKi5H+lbty8WsTD1yan0rt3bbDmpktcrL81LNM/clGRAACh1Z7FvttZbRmrbfpL6j1mjyeUcuHKAF+a/wJWoK2ZLuSfSmo50U0o9BzRSSj11+0ERmZdzsszl6LWjXIq8xFMVb71tlTeIayv3UiHGjzx5TBKnuW/xdvPmVP9TuLsYTugdITuokr9K6ulRTKRLpS68uuhV9l7eS7UC1TJ+oomJi5VSHwEfA55KqfCkaiAeGGeaMI1Gky3EW+KZumcqDwU/5LAPsamRlifsVYytivyBx28ruSq+4l4pn7c8l9+7TOdKnZPrYg6eQqxC8abFqf+ov3niNPc1SQbY3kt7qTOuDiM2jTBZ0Z10rNARJ+WUpSlJeyMiX4mID/CdiPjaio+IBInIR2br02g0WaN6geqUCyrHrP2zzJZyT9zVCBORdSLyGvC+iPS4rbxsR42m4O/hj5erFwBy+QqJ1Wvxd5WPTValeVCoWqAq7cq147PVn3E+/LzZcm6hgHcBmhZvmqVVkvZGKVVLKVULmJ30OmUxW59Go8kaSimervQ0K0+t5FLkJbPlZJiMrO37XSn1plJqjq30U0rdt+nh91zaQ5OJTdh7aW9y3ennPsQjIYIb7Z83UZnmQWPEYyNItCYyYNkAs6XcQZdKXTh09RAHrhwwW0pGGWYro4HNGFOQv9pejzZRl0ajySa6VulqxHQfzD3RUhkxwsZgBK6OsZVawM85KcpM5hyYw8ZzGynoXRCA6GXrKfHfRKbme4du/8udqy80uZNSAaX4sMmHzNg3I9VtjczkyQpPolC5ZkpSRFqISAsgBKglInVEpDZQE0jX1aiUmqiUuqyU2pfKsXeVUqKUypv9yjUaTUapnK8yj5Z+FCeVe3JHZURpXRF5SURW2EoPoG5OCzOLuQfn0rR4U/LlyQeJidx47jXOUIzKMwbhorOqaezMB40/oHK+ypy8cdJsKbdQyKcQTYKb5MYs1eVFJNnNLSL7gIoZOG8ycEf2XKVUMeAR4Ex2CdRoNJlDKcWS55fQp07uSXCcESPMopQqnfRGKVWKWzf0vm9Iml55qoKxKjJ673Gcrl9l8aMjqPewdzpnazTZj6erJ7tf3c3LNR0vDLNLpS7sv7Kfg1cOmi3lXtijlBqvlGpuK78C6WbMF5E1GNu23c4PwPtA7giO02geABKtiVyIuGC2jAyRESPsPWClUmqVUmo1sAJ4N2dlmcPcA3MBklNTeNUsj/vpozw7o6OJqjQPOs5OzogIcw/MdaiBJenvZO7BuSYruSd6APuB/rZywFZ3zyilOgDnRWR39snTaDRZpfXvrXlmzjNmy8gQGdnA+z+gLPAm0A/Dne9YASrZRLmgcrxe93WK+Bbh5I9/kRgdT0DRPPj5O972MZoHi/MR5+k2rxvvLXvPbCnJFPEtQqNijXJNXBiAiMSKyA8i8qSt/CAisfd6HaWUF0besU8z2L63UmqbUmrblSu5K5mkRpPbeLjEw6w7s87hVpanRkY38I4TkT22EpfTosyiS+UujGo7iuuzllPy7Y7Me+QXsyVpNAAU9S3K+43f54+9f7D61Gqz5STTpVIXdl/azdFrR82WkiZKqVm2n3ttG3ffUjJxydJASWC3UuoUUBRjY/CCqTUWkXG2xQB18uXLl9nb0Gg0GaBL5S4Ikiu89LlnCUEOs+/yPq5FX4O4OGJ7vs5xSlNjTO7Juqu5//mwyYcU9yvO64tfJ8GSYLYc4OaUZC7whvW3/WzPncmnH7/Xi4nIXhHJLyIlRKQEcA5j1eXFbNKr0WgySYW8FahWoFquSNyaphGmDIrZS4yZ9F7Qm0enPsqxV7+ncMQRNjw3inLVPMyWpdEk4+XqxY+P/cj+K/sZtWWU2XIACPYLpn6R+sw56NhGmIiE2F62AtxS2cQ7TZRS0zH20y2vlDqnlHolJ/VqNJqs8XSlp1l/dj1nw86aLSVN0jTCxEiHvdhOWkzjfPh5Np7bSPugZhSdMpR/8nSmy4Q7VqNrNKbToXwHetToQTE/x3k26lKpCztCdnAi9ITZUjJCMDBWKXVCKTXblny6RnonicizIlJIRFxFpKiITLjteAkRuZpTojUazb3xUo2XWP7Ccgr5FDJbSppkZDpyh1Lqvs0LBjD/0HwAmqmm7PesQ55xP+ChnWAaB0QpxcQOE2/Z19RsOlXqBOSKKUlEZLCIPAxUBtZirP7ebq4qjUaT3RT1LUrLUi1xcXLsBJ8ZMcLqAxuVUsdtQax7MxnI6rDMPTiXinkr0uKpDtQIX0vT54qaLUmjSZMESwLfrf+OdWfWmS2FEv4lqFO4Tq4wwpRSnyil/gGWAmWAARhB9RqN5j7jXPg5BiwdwJkwx82lnBEj7FGMlUAPYwSwJgW23heExoSy5vQaGu4IIOx0KM7OZivSaNInwZrAqK2j6LuoL4nWRLPl0KVSF7Ze2MqpG6fMlpIeTwFBwHJgHvBXingxjUZzHxFviWfYxmHM3u+4O3tkJE/YaaAY8LDtdXRGzsstBHgGsGhvb4bO2sCa0XdsC6fROCRerl78+OiP7L28l9FbzN9/ulNFY0oyKeGxoyIitTCC87cArYG9Sinz3YkajSbbKRVQijqF6zBz/0yzpdyVdI0ppdRg4APgI1uVKzA1J0XZk7DNh3h4zgS2u79E268eMluORpNhOlboyKOlH+XTVZ9yMdLczAilA0tTs2BNh18lqZSqAnQDXgK6YmzevcJUURqNJsd4utLTbL2wlZOhjrX/bhIZ8Wg9CTwBRAGIyAXAJydF2YsbMaE8M6YZGwu6EzzjWz0VqclVKKX4qc1PxCbG8sHyD8yWQ+dKndl0bpOjLwn/GvAFRgIVRaSFiGQo671Go8l9dKncBYDZBxxzSjIjRli8LVWFACil8uSsJPsx4btPWFLqMuvqv0a1VvnNlqPR3DNlg8oy8rGR9Kndx2wpySs2HTlLtYi0F5FvRGSDiDhGxluNRpNjlPAvQatSrYhJiDFbSqpkZO3mLKXUWMBfKdULeBn4NWdl2YdlQccIOuPNG5O+NFuKRpNp+tQx3wADY+/VagWqMefAHN5q8JbZcm5BKbUX24NkaohINTvK0Wg0dmTp80tRyjH3gM5IYP73wBxgLlAO+FREfsppYTlNZHwkq2+s4bnmPfALcDVbjkaTJeIt8fRd1Nf0IP3OFTuz/ux6R9w4N2lV9xJb6WYri3kAElJrNA8ySQbYjdgb5gpJhYyuctyLkdhwje11rubSv7sY/XAzYhNjk1d1aTS5GVcnV45dP8bHKz7mUuQl03QkxV/MOzjPNA2pkWJ7otYi8r5t78e9IvIh8IjZ+jQaTc7y/LznaTGlhdky7iAjqyN7YiznfgroDGxSSr2cgfMmKqUuK6VSzftg25dypFLqmC0JbK17FZ8prFZuPPcagTeOUiewPk2Cm9ilW40mJ0kK0o9JiDE1SL9C3gpUzlfZkVdJKqVU4xRvGnEfpdzRaDSpU6dwHXZd3MWRa0fMlnILGRl83gNqikh3EXkJqI2RsiI9JgNpbcDYBihrK72BnzNwzSyzu/9Eyl/fRMGKo9jabxPOTnpJpOb+oHze8rzb8F2m7J7C+jPrTdPRuVJn1p5ea3rajLvwCjBGKXVKKXUaGIMR56rRaO5jkhYOzdo/y2Qlt5IRI+waEJHifYStLk1EZA1wPY0mHYDfxGATRuB/ju60GX3mKsFjPmBZYH2aT346J7vSaEzhk6afUNS3KAOWDTBNQ5dKXRDE4aYkAURku4hUB6oD1USkhojsMFuXRqPJWYr6FqVJcJPcY4Qppd5RSr0DHAM2K6WG2BK3bgKyw59XBEiZUOicrS7H2NP1S3ysYYz4qADVxlfEyLyh0dw/5HHLw/RO0/njqT9M01ApXyUq5K3gkHtJKqXclVLPAa8D/ZVSnyqldJ4wjeYB4OlKT7P38l4OXjlotpRk0kpRkZSQ9bitJPFXzslJHaVUb4wpS4KDgzN9nfIzhrDyhyast/TkiTJPOOySVY0mKyTFOYoI8ZZ43F3c7dq/UorOFTvzv3X/43LUZfLncagcfH8BYcB2IM5kLRpN9uPrCxERd9b7+EB4uP31OBBPV36aQM9AivkVM1tKMnc1wkTksxzu+zzGnpRJFLXVpaZlHDAOoE6dOvfsvrLGJ2K1CAHF/ZB+PtyYekOvitTc14gIHWd2JMgziIkdJtq9/y6VuzB07VDmH5zvMHnMbBQVkbRiVTWa3E1qBlha9dlBLjH8CngXoFu1bmbLuIV0k7UqpeoAA4HiKdtnQ3LDv4E3lFIzgPpAmIiEZPGaqbLlpdHk/fNXfHesZu6xueRxzUPrUq1zoiuNxiFQSlExb0W+Wf8NvWr1omGxhnbtv2r+qpQNLMucg3MczQjboJSqKiK5PtWORoMIhITAkSNw9KjxMy2qVwd//1uLn1/adX5+4JKOqWCG4ZdJQmNCmbBzAk+Uf4JyQeXMlpOhjPnTMFZI7gWsGb2wUmo60BzIq5Q6BwzG2PwbEfkFI0FiW4yYs2igx70ITwsRWL0a1qyBfAkXeH7GIPYHNKZ4GT/+XPQn7cq1w9PVM7u602gckk+afsK0vdN4ffHrbO211a4rgZVSdK7UmW/Xf8vV6Kvk9cprt77ToQnQXSl1EmM6UgGiM+ZrHJpr124aWSkNrqNHISrqZjv3m6EHAiTighUnrChAQYESEHYDp8OnUBFhOIffwDkyLN3uEzy8iffwI87Tn1hPf2Ld/Ylx9yPG3Z9oV3+ieJQo8hBFHuJxwwkrzlhwJRG3caG45/Uhj58L3t6Gc8zb+2Zxc8vkZ5JJ71ucJY4Pln9AeFw4n7f4PJOdZx8qveB0pdQ6EXGYZFp16tSRbdu23fV4QgLE5gnEJyEUgE3Upwa7OEsxSgdcZdPuRXi6eFKzUE17SdZoTGP2/tk8PedpRrcdTd+6fe3a986QndQaV4tfH/+VnrV6ZulaSqntIlInq5qUUsVTq7clcrUL6Y1hmvuIezEUIiPvbmhdv5loQJydicpfktC8ZbnkV45znmU54VyOQ5ayHIkpxpV1h7hGENcJ/H97dx5WVbU+cPy7OAwyirMgIuKEoII4lZpDmlfDzNTrUGnaYP1Mza5aNpjeypullZZ2m0ytzKmszMqcr0MOoeKIGiIi4qwIKDK+vz8OIsh0gHM4DOvzPPs5nH32Xvvdbly8Z+211yKVwjMcG9JxJQF34qjKddyJy1rufp/fOoMJ7TM3cCIBV+Jxy/GaqNxIsncjxd6VlCpupDq6ku7kRoazK+Lqhqrqhk1VVwzV3LCr7opDDRec3Qy4jHgEFxJxIZFADuBEtrkhC8lr7l98P7EJsYQ/H14qfcMLqr9MaQmbppT6EthIto6sIlL2nj8HvvoKnk29RkqycGz+Ru75V09WNJ/G62nTOfG3omP9jtYOUdNKzSD/QfRo2IN5e+bxXNvnsFGlNy5pUN0gfKv58v3R70uchJnL7WRLKVUbqGLlcLSKLo8E7Bb2JCbYkfLiLDhxAttTJ3CO/Rvn6zl745y3r0+koQnH0gdzmCacoCknaEpUug+p5+whc3M7O6hR487ixzFqcIUaXKEq17EjNWux/fy/2NmRtdjagp2dATs7d+zs3DPfk8c2+b+3MQgYctYr6SiScSAFB1JemUba1QTS4+KR6wlUiY/HMSGeujcTsL0Rje2tBBxuxeNwMwG7BNOelUnEOUcyN5fx3MMuuvM/k/YfEjCE5359jkMXD9GqjnUbwU1pCfsW8AOOcOd2pIiIVQY4LOxbZK9esG69AhH+9BqM54V91Dp3iKCODgzyNjD02zAC6waWYsSaZl0x8TG42rtStUrVUj/2y+tf5oNdH3Bh0gWqO1YvdjlmbAnrB7wPeAIXMfZ1DReRgJKWbSrdElZxicDVk9eI3RFJ3L5IUj76LwYycCGR2lzAi7PYZJtH/gK1+TszwfqbJkRXacrlak1JrNMIl9pOOZKr7EvNmnd+dnGB7I05iTZuuEju5C9RueKSYaFO8gW1JhVlKKiUFGPiGh+f6zXjegKpV+NJvZJA2tV40r9aRAYKBdTkCpvozma6MYV3cZYbBR7m0o1L1H2/LlM6TWFGjxmmx1dMJW0Jaycizcwck8Vk/11oe+I7zu6MxqmGI0nVdzPzPvC/cFAnYVql4uXmBUBqeioXblzIel8a/hnwT9778z1WH1/NyKCRpXbcArwF3ANsEJHWSqnuwONWjkkrR9KT0zj/1xku7ook8cBJ0v+OxP5sJO5XIvFMOkkN4qiRbfvL1OA8dYjBi2M0J4kqpGPAsHgR7g2qUqMG9KkBj1XP0aWr2H7+Jp7Ro+HmzTvrnJzg88+NM9ZbhKtr/rddi8Le/k52eRcbwCFzAeCrD7I+S8aeTuygFQd5kQ95Ygd06pSriCy1nGvxgO8DXLhhvXl2bzMlCftTKeUvIkctHo0ZDBoErIPkZHBwsqVhD19++AFu+vyAbTr0bdrX2iFqmlU8tPQhLt28xJ6n95RaJ/02Hm1oULUBK4+uLCtJWKqIXFFK2SilbERks1JqjrWD0kqJiX20bl24Tuz2SK6GRpJ0+CTqVCRO5yOpER+JZ+pp6pGWNbJ4CnbE2DXkSlVfDjbqgPj64hjQiOptfak3sD01uULNvCaZGWGZlunHMjOt116D6Gjw9oYZM+6stwgrD0PhQAoAKSTzOc/yUecjrJnwLtPeqUKVfDod/Pror2Vi2kJTbkeGA42AMvE0UWFN+WlpYGunaNJY6N8fIiNh23bBfmJjWhyKZO03epR8rXJadngZw34YxicPfsL/tfu/UjvupHWT+Gj3R1ycfBH3Ku7FKsOMtyM3AP2Bd4CaGG9JthORUussqm9HWlG2WyXXceM8dYnHjRTssGvojevlSOreOEm1jJwz7l1RNYh1bMT16r6kePliaOKLS2Ajat/ji2e7ehjs8/ljbq7bdFpu+STUKXZO2KfeJIxAXvNdxvRlfrRrl38xyWnJFh/QuqS3I8vVwIa2tiDVqvF3hILZxnVhdaF1EkyLcrJucJpmRUMChvD53s95bdNrDPIfRC3nWqVy3EH+g3h/5/v8cvwXhgcOL5VjFuBhIAl4EePdmaqA9Z9T1yxGUtO4uOUoZ38OJYX2uHOdhpyiKvFUxdiCk4otZ6IvccnVl3ONB5PewBcH/0a4B/vi2akhNXyrUqMYD9F5TVScdc2dbNVLUMSU9MQqu3xa3+wB1qzB//FRrDzVhhc6fMTPrzzJG9NUruEwXtnwCj+E/8DxscetNoOOKUlYuUvX1dWc32Kijv1E7TXP8vBaPT6jVnkppfi4z8cEfRbEKxtf4ct+X5bKcTvU60B9t/qsPLrS6kmYSFaP3Qyl1K/AFdGTyFYc6elc232C6FV/cWt7KG4nQvG5FkYdkqiDsfXrOE3ZQlcAnLlBTS5TnzP4pv2Nr5nD6df9ORbsX0BKekrWOnuDPQ93LxtPC1dYfftif/QAathwvtj6NMv+s577f/6U+UvcCczWJbxJjSb8ffVv9p3bRxvPNlYJ1ZQk7FeMiZjC+Eh3Q+A4UGpPE5VUf7/+9GvWr1Qfz9e0siigdgAvdHiBDZEbSEpNKpVBi5VSDGw+kE9CPyE+OR43BzeLHzOPGO4BZgJXMXbO/wbj7UgbpdQIEVlbyP5fAX2BiyLSInPdLOAhIAXj/LqjRCTOYieh5ZSRQeKBk5z+IZSbW0NxDg/F+8o+qkki1TAOY3DMMZj/NX8O1a4tdULa0mxIK9pjmVvBIkLcrThi4mOIiY/hbMJZHG0dSc9Iz7FdekY6NZxqsPzwcupXrY93VW88XDzKRP+kCsXTE7tN62DWLAa/9jodw3fzWJvv6DXtXqZMMQ6v0d+vP8+ueZblR5ZbLQkrtE9Yrh2UCgbGiIhVUvmi9qdISU/BzsZOT9ataZmSUpOwM9hha2PKdzDz2BG9g84LO7NkwBIebflokfcvaZ8wpVQo8CrG24+fA31EZJdSyg9YKiIFjt6slOoCJAJfZ0vCegGbRCRNKfUugIi8XFgsuk9YMYhw61gU0atCSdgcSpUjodS/uBe3DONo70lUIdwhiAv12yLBbanZuy1+/f1wq5YzsfGaqDibx3eAevEQ837+fwtFhMs3L2clWFlLQs73N1Nv5thPoXC0cyQpNQlBUChsbWxJzUjNsZ1BGajnVo/6bvWNiZmbd1aCVt/N+FrdsbpJf8e8PvDibELuaZjrudYj5l+V9Cborl2kD30UoqN5Q/7N+uApLPzaQEAAhHwXwpGLRzj1wimL5Qkl7ROWg4jsU0p1KHlYpWPWjll8FfYVB587iLO9s7XD0TSrc7Rz5LFVj3E2/iw3Um/k6Czv5ebFwocXmv2Y99a/F09XT1YeXVmsJMwMbEVkHYBS6k0R2QUgIsdMqXhFZKtSyueudeuyvd0FDDJfuJVAfk8quriQejCcmJ9CidsQiv2Bv6h3PhT39Ks0xfg04lHbQHbUH0ZaUFuq92pL0/7+BHvaFXrIfpF2LGiRSkq2v3x2adAz2pY9Z/fkTrKytWplv6UIxsTJ09UTLzcvAusEEtIkBC83r6ylnms9PFw9uHLzCr4f+XIr7RZVbKsQ+UIkjraOnIk/Q/T1aM5cz3yNP8OZ+DPsObuHVeGrch3P0dYxV2KWlbRl/uxs70y/Zv3yvgXa7OEiXZ4K5Z57MBzYD889x4xlr9P70Eb6tv6GMTPqMajHYH77eyR/xf5F+3rtSz00Uybw/le2tzZAMBBrsYhK6GbqTa4lXct6v+zIMtyruJOYkqiTME3LFHcrjtNxp7mSdIWFDy/EzcGNxQcWc/1W4fPIFYeNsmFg84F8vvdzEpITcHUo4vhBJZd9XpWkuz4zR5+wJ4Hl+X2olBoNjAbw9vY2w+EqgMwELAM4Sz2uUh0D6XgknqeGb30aAmkYCDe0YGedR0hp1Ra3nu1o0r8Fgb4OBJnYaJGSnkL09WhOXTuFz6S3Sd/4KsidW4SptrC4RRqLv7zTtmBvsM9Kpu6tfy9erl45Eyy3etRxrmPSLUQPVw9GBY3is72fMSpoFHVd6gJQtUpVWtRukec+GZLBxRsXcyRoWYna9TOsjVjL+cTzyF2/utUdq1PXpS5pGWk51huUgaldp5r2D1ZRVa0K330H//gHncc8z4H0QB57aSEXuzzMyxNn4+PuY5WwTBmiYlq2t2lAFPCDiNyyYFz5Kqwpf8j3Q1hzYg3uVdxJy0jj4o2LuNi7kJiSyOkJp/GuqitATdtzdg/9lvbj8s3LPNX6KT7s/SGNPmrE74/9TlDdIIscc+vprXRd1JVlA5cxpMWQIu1rhtuR6cANjH1bHYHb940UUEVECm1GyWwJW3P7dmS29a8BbYEBpnTyr7S3I0VIPxNL7C97ubZxH4YfV1KHC1ljaGWgOIYfp2lAUvcQXLu3xfeRQHwDHAsZ6UG4dPMSp66dIvJaZNZyKs74/kz8GTLkTg5uo2yy3tsoG1rXbc3TwU/nSLJqONYw662pcwnn6LywMzue3JGVhJVUSnoKZ+PP5tmititmF1eS7oxN5uniyetdXmeg/0BqO9c2y/HLtePHkaFDUWFhfGY/jik27/Hvd6swdizYWKDreEH1V5H7hFlbYRXYHxF/8K91/+LgcweZs2sOk9ZP4p0e77AhcgMbRmwoxUg1rWwL+S6E5LRkNp3axKR7JxFxLYJVQyw3JWx6RjpeH3rRqX4nvh/8fZH2Ndc4YSWRVxKmlBoJPAv0EJGb+eyaQ6VIwkRIO3WGs7/sI27jXmwP7qVu7D5qpBpHKE/HhmM0Y5+TN/tqOPNXgyTC/E5xw/ME9RIzcvXPSkpNIiouKs8kK/JaJDdSc05TU9elLr7VfPGt5ktD94ZZP/tW80WhaPxxY26l3cLR1pHIFyLNlhiVFecSzmXdArW1scXH3YeIqxHYKBt6NOzBkIAhPNL8kRJNJVbuJSfDlCkwZw5Hq7WgZ/3H8fLqy/J5ATRsaN5DlahPmFKqKTAJ8Mm+vYjcb64AzalXo164Objx/dHv+SH8B4LqBvHZ3s/4uv/X1g5N08qUaV2n8ciyR7C1sWV+6Hx2PLnDoscz2BgY4DeAhWELuZFyo9x3D1BK9QZeArqamoBVSCKkRpwm5ue9xG/ei92hfXic20u1tMs0ALyw4ZjyZ3et3txs3gbnzsF49wvi4+lVWdgmPEf/LNs0aHYZpm+ZniPhOpeYc3JrJzunrATr/ob350iyfNx9cLIreEzIvG4PViTZb4GODh7NvAfncejiIZYfXs6yI8t4+pen+b9f/49ejXoxtMVQ+jXrZ5Wnlq3KwQE+/BB69qTeMyO42m8KtfZtoFXLdcx+XzF6dMFj7ZqLKbcjDwCfAnuBrBvpIrLXsqHlzZRvkbdbw97s9iabozZz7PIx3QqmaXkI+S6EnWd24mLvQvSL0RY9Vkme2rJ2S5hSainQDeOwFheAacArGKeyu33fZ5eIPFdYWWWyJczE6XwQITk8krOr9xK/ZR8Oh/ficX4f7unGsRlTsSXcJoAztdtwq3kwTl2DqdnbByef61y4Gcu5hHOcSzzHuYRznFz4AaubgeRx+0eh8HLzypFcZW/Rqu1cu0S3Cy1xe7Csye8cRYS95/ay/PBylh9Zzpn4MzgYHAhpGsKQgCH0bdq30CS2wjl3jv7/aUWo/WW+XvJPBlz4nA693PnyS6hfv+TFl+h2ZObO1hlAIw+mVGAiQsevOvJ8u+d5Y/MbLO6/mPsa3FdKEWpa+bHn7B46fNmB/c/ut1hfsNvG/DqGL/d9mePxfHuDPU+3fpr5IfML3NfaSZg5FVaHeU2yyX+U9dkZeexRcnkN3aAyoFOkPV81W8yN/+3F4chevC7uwzX9OgKcd7RlR9UmHPNqwIWmtbnp50paQ+Gm/SXOJcZmJVtJaXc/B2F80s/z0i1u2AoXnSHDBgzp0CcCPtjujHfkFYtPJaMZHwDYFbOLZYeXsfLoSs4nnsfZzpmHmj3E0ICh9G7cu9Jch+8OfMtjPw1n62IDgde96H/jO/ZV6cicOfDEEyVrFStpEjYd4/xqP2KcOxIAEbma3z6WZOq3yD8i/qD/8v50qt9Jt4JpWgGir0fjXdXb4gOpZu+ncpupfXIqUxI2pq9iQWty3KazT4On98H8XwvvwyvpGaTfTCY1MZm0G3eW9Jt3XjNupRhfk5KRW8n8uuh1jta0wZCh8ExQ1Eu+gbvtBeJdbhHrCjEuNpxwcyO2mj1X3NO47pBAKqm5ju3m4IaHiwcerh7G18yfPV09c6x3c3BDKZXjd6Ki9s8qL9Iz0tl6eivLjyzn+6PfcyXpCm4Objzi9whDAobQ07cndobChwEprxKSE6g9uzbPeD7ER2+FItHRfOn1b547PYWQhwx89hl4eBSv7JImYafyWC0iYu4ZHkxiahImIgz7YRgv3vMiHbzKzbBmmmYVH+/+mFc2vkLsxFiLJmJjfh3DF/u+IC0jDTsbO54JfqbQVjCoXEnYOVeF7wvQ6mgjEqpdRilBVAYGEcRWIWQgyrhkZH4mShAlZNgIGQrSFcZXG0x6L4V8y3e3r069qjmTK09XzzvvM1+L089vzK9j+GzvZzzX5jmTfhc0y0tNT2XTqU0sP7KcVeGruJ58neqO1RnYfCBDWwyla4OuFXKE/4ErBhKfHM/6ft/D//0fLF1KdOPudD/zDXHO9Zg/H9LS4PXXIToavL1hxgx47LGCy61UT0dqmlZ0u2N2c8+Ce1jQbwFPtn7SYscpbstHZUrCUIoxIRBpU48rNS+jRKHEBtt0hbJzQGFAYcAGAyjjq1K2KGXARtmibGyNrwYDNsoOG4MtNjZ2KIMtBls7bAx2xldb46vB1g7DmjXsryv8XQMSXW5gY3+dh0/A++ug7qUkqthWsdi/R2Xon1WeJacls+7kOpYdWcbq46tJTEmkjnMd/un/T4a0GELH+h3x/tC7QozSfzP15p3+cCKweDGMHUuaXRWm1F7I+ycewmCA9GwzUTk5weefF5yIFSsJU0p1FpHtBRTqBniLyOHCT818dBKmaeYnIvjN98PDxYMtI7dY9FjFafmobEnYORfwfQFu2YFjKkTOhbqJGP8wWII1jqmVO0mpSfz2928sO7KMNSfWcCvtVta4akcuHckxSKyp/T3LogzJuDPX9PHjMGwY7N/PbtrzAOuoQjKLeYI+GKecTVSuuGTE51teQfVXQcOSDVRK/amUekMpFaKUaq+U6qKUelIp9Q2wBuOgh5qmlXNKKYa3Gs7/Tv+PqLgoix5rapep+Lj76BG8C+CRCKPCwCYDRu3PTIYsydU172O6lvrMBloZ5mjnyED/gaz850ouTrrIkgFLCPYI5uiloxVmlP6Pd39Ms3nN7ky83qwZ7NwJL75IB/ZwgTp04X/Yc2daKBfJ48liE+WbhInIi0Bf4BzwT+At4F9AE+AzEekiIn8V+8iappUpj7d6HIAlB5dY9Dgerh6cHH9S33rKT2biM/V/4BMHU7fmXG8R8fEgwtSlsfjU8GXq8nPGFrD4/L/da5Wbq4Mrj7Z8lJ+H/szFyRfp7tMdhbFzoULxWMvHyuX/8boudYm4GsHW01vvrHRwgA8+AMCRZFYymB5sMsvxChysNfMJyC8yF03TKjAfdx+WDFhCN59u1g6lcstMfDyAkwBzS+/QtxNkTSsK9yruLBmwhIZzG5KcnowgbI7aTPilcJrXam7t8IokpGkITnZOrDiygu4Nu+e5jTnHcLXALEmappVXj7Z8FE9XT2uHoWlaOePh6sGTrZ/ERtnwcLOHSUhJoP2X7VkVbrmp0CzByc6Jh5o+xA/hP+S6xWoJOgnTNC2HFUdW8Mlfn1g7DE3Typnb/T0/7fspe0fvJaBWAANXDOSVDa/c6WNVDgwOGMylm5fYErXF4sfSSZimaTn8dOwnpm6eSkp6SuEba5qmZcre39PLzYv/jfwfz7Z5lpk7ZtJnSR+u3LxSeCFlQJ/GfXi508v4uPvk/CC/fpkl6K9ZaBKmlHJSSk1VSn2R+b6JUqpvsY+oaVqZNrzVcK4mXeW3v3+zdiiappVjDrYOfNr3Uxb0W8DW01tp83kb9p3bZ+2wCuVo58jMnjNpXL1xzg8yH2DJtZTgARZTWsIWYpyu6N7M92eBt4t9RE3TyrQHGj1AHec6fH3ga2uHomlaBfBk6yfZNmobGZJBp686sThssbVDKlR6RjobIjdw6MIhix7HlCSskYi8B8aJwkTkJuZ9OEDTtDLE1saWR1s+ypoTa8rN7QNN08q2dvXasXf0XjrW78jIn0cy9rexZbrLQ2pGKgOWD2DOrjkWPY4pSViKUsoREAClVCOyTeStaVrFMyJwBH41/TgTf8baoWiaVkHUcq7FH4//waR7JzH/r/l0X9yd2IRYa4eVpyq2VXjY72F+PPajRZNFU5KwacBaoL5SagmwEXjJYhFpmmZ1gXUCOfDcAYLqBlk7FE3TKhBbG1tm9ZrF8kHLOXD+AG0+b8P26HxnSLSqIQFDuHbrGhsjN1rsGIUmYSKyHhgAjASWAm1FZIvFItI0zeqUUiiluJFyg7hbcdYOR9O0CmZwwGB2Pb0LF3sXui/uzvw988lvLmtrecD3Aao6VGX5keUWO4YpT0c+AqSJyK8isgZIU0r1t1hEmqaVCYkpidT7oB7v//m+tUPRNK0CalG7BX898xd9Gvdh7O9jGfnzSJJSk6wdVhYHWwf6+/VnZ8xOiyWIJt2OFJHrt9+ISBzGW5SaplVgLvYu3ON1D98c/IYMybB2OJqmVUDuVdz5aehPvNntTb458A0dv+rIqWunrB1Wlg/+8QFHxhxBKcs8j2hKEpbXNgXOOalpWsUwvNVwTl8/XWb7bGiaVv7ZKBumdp3KmkfXEBUXRdsv2rLu5DprhwVAdcfq2NpYLuUxJQkLVUp9oJRqlLl8AOy1WESappUZ/f3642LvoscM0zTN4h5s8iB/PfMX9Vzr0fvb3ryz7Z0y0U9sxZEVtPikBbfSbpm9bFOSsHFACrA8c0kGnjd7JJqmlTnO9s4M8h/EiiMrylRfDU3TKqbG1Ruz86mdDGkxhFc3vcrAFQOJTy7+iPTmUNWhKkcuHeGPiD/MXrYpT0feEJEpItI2c3lFRG6YPRJN08qkKZ2msHXUVqrYVrF2KJqmVQLO9s58N+A7Puj1AauPr6bDlx04dvmY1eK5v+H91HCswYqjK8xetilPRzZVSn2ulFqnlNp0ezF7JJqmlUnNajYjqG6QxTqmapqm3U0pxYv3vsiGERu4cvMK7b5ox4/hP1olFjuDHQOaD2D18dVmvyNgyu3IlcB+4HVgcrZF07RK4u8rfzPyp5GcTzxv7VA0TatEuvl0Y9+z+/Cv5c+AFQN4deOrpGekl3ocgwMGk5iSyNqItWYt15QkLE1E/isie0Rk7+3FrFFomlampWWksfjAYpYeWmrtUDRNq2S83LzYOnIro4NH8872d+izpE+pz2vbzacbz7Z5lvpV65u1XFXYkwdKqenAReBHss0ZKSJXzRqJidq2bSuhoaHWOLSmVWrtv2hPakYq+5/dX+rHVkrtFZG2pX7gO8f/CugLXBSRFpnrqmN8WMkHiAIGi8i1wsrSdZimFd+X+77k+d+eJz0jnXTJ3SJWz7UeMf+KsUJk+Suo/jJl8IsnMl+z34IUwNeEA/cG5gIG4EsRmXnX597AYsA9c5spIvKbCTFpmlbKhrcazvi14zl04RAt67S0djilbREwD8g+VscUYKOIzFRKTcl8/7IVYtO0SuPp4KdpVacV9y++nxupOZ8RtDfY83Czhy1y3Dm75hAaG5o1jZt7FXcAHAwOzO0zFxd7l2KVa8rTkQ3zWExJwAzAfKAP4A8MU0r537XZ68AKEWkNDAU+KfopaJpWGoa2GIqtjS3fHPzG2qGUOhHZCtzd+v8wxi+RZL72L82YNK2yal+vPTuf2omNypnCGJSBqV2nWuSYkdciOXn1JNujt3PxxkV6N+5NHec6rI9cj73BvtjlmtInDKVUC6XUYKXUiNuLCbu1ByJEJFJEUoBlGCut7ARwy/y5KhBrauCappWuWs61GBk4MusboEYdETmX+fN5oI41g9G0yqRlnZY8E/wMCuNT23Y2dowKGkVdl7oWOd7LnV7m+JXjPOL3CIcvHqa/X3+OXTnGq/e9WqIkrNDbkUqpaUA3jK1Zv2Fs2dpOzmb5vNQDzmR7HwN0uGub6cA6pdQ4wBnoaUrQmqZZxxf9vrB2CGWSiIhSKt8Otkqp0cBoAG9v71KLS9Mqsmldp7EobBHJ6cmkSzqvd3ndYseq51aPx1s9zoXEC7g5uPFD+A8cunCIVYNXlahcU1rCBgE9gPMiMgoIxNhqZQ7DgEUi4gU8CHyjlMoVk1JqtFIqVCkVeunSJTMdWtO04siQDI5eOmrtMMqCC0opD4DM14v5bSgin98e8LpWrVqlFqCmVWQerh482fpJFIoMyWBnzE6LHu/lTi+z7uQ69o7ey4ojK3j1vldxsHUoUZmmJGFJIpIBpCml3DBWNKY8o3n2ru28Mtdl9xSwAkBEdgJVgJp3F6QrME0rO17Z8ArtvmhHQnKCtUOxttXceXDpCeBnK8aiaZXS1C5T8XH3wb+WPxPWTuBGiuUm9KnnVo/hgcMZ9fMoDl04xKigUSUu09QJvN2BLzBO3L0PMCXd/AtoopRqqJSyx9jxfvVd20RjbGVDKdUcYxKmm7o0rQzr79efm6k3WRVesmb48kQptRRjvddMKRWjlHoKmAk8oJT6G2NXipkFlaFpmvl5uHoQ+UIkn/f9nDPxZ3hr61sWPd7LnV5m6+mtZmkFAxPGCcuxsVI+gJuIHDRx+weBORiHn/hKRGYopd4EQkVkdebTkl8ALhg76b8kIusKKlOPsaNp1iUiNJ3XFO+q3mwcsbFUjmntccLMSddhmmYZo34exbcHv+XgcwdpXqu5xY4Tdj6MFrVbYGtjyihfBddfpj4d2Uop1Q8IBhorpQaYsp+I/CYiTUWkkYjMyFz3hoiszvz5qIh0EpFAEQkqLAHTNM36lFIMbzWczac2E3092trhaJqmAfBuz3dxsXfh+d+epygNTEUVVDfI5ASsMKZM4P0V8BUwEHgoc+lrlqNrmlYuPd7qcQRhxZEV1g5F0zQNgNrOtXmnxztsjtrM0sPlY4o1U1K5e0Tk7kFWNU2rxHyr+bJ91HY6eN096oymaZr1PBP8DAv2L2DiuomENAmhahVzDeZgGabcjtyZx0j3mqZVcp28O5mtSV7TNM0cDDYG/hvyXy4kXmDalmnWDqdQpiRhX2NMxI4rpQ4qpQ4ppUzqmK9pWsX21v/eYsbWGdYOQ9M0LUtbz7Y82+ZZPt7zMQfOH7B2OAUyJQlbAAwHenOnP9hDlgxK07Ty4fClw8zZPYfU9FRrh6KVkIuLcQLi06dPExwcTFBQEAEBAXz66acA3Lx5k5CQEPz8/AgICGDKlCl5ljN9+nRmz56dY52Pjw+XL18GjA92TJw4Meuz2bNnM3369Fz7ighvv/02TZo0oWnTpnTt2pWDB+98/78d722LFi1i7NixWeXUq1ePoKCgrCUuLq6Y/zLlW/Z/p+joaHr16kXz5s3x9/cnKioqx7bjx4/P9e96W3m7rjN6zKC6Y3XG/DaGDMnI51/H+kxJwi6JyGoROSUip28vFo9M07Qyb0SrEVy+eZm1EWutHUqlsmQJ+PiAjY3xdckS85Xt4eHBzp07CQsLY/fu3cycOZPYWOO0vpMmTeLYsWPs37+fHTt28Pvvvxe5fAcHB1atWpX1xzs/8+fP588//+TAgQOcOHGC1157jX79+nHjhmmDcb744ouEhYVlLe7u7kWOtbQtXQotWoDBYHxdaua+5SNGjGDy5MmEh4ezZ88eateunfVZaGgo165dK3bZZe26Vneszns93+PPM3+yOGxxUU+n1JiShO1XSn2nlBqmlBpwe7F4ZJqmlXm9GvWitnNtvj5Y2FSymrksWQKjR8Pp0yBifB092nyJmL29PQ4OxkEok5OTycgwtiI4OTnRvXv3rG2Cg4OJiYkpcvm2traMHj2aDz/8sMDt3n33XebNm4eTkxMAvXr14r777mOJOTPOMmTpUnjtNfj4Y7h1y/j62mvmS8SOHj1KWloaDzzwAGBscbr9b5uens7kyZN57733il1+WbyuTwQ9Qcf6HXlpw0tcTbpq9vLNwZRetY5AMtAr2zoBKs9w2Zqm5cnOYMewFsP4b+h/uZZ0jWqO1awdUrk3YQKEheX/+a5dkJycc93Nm/DUU/BFPvOrBwXBnDmmx3DmzBlCQkKIiIhg1qxZeHp65vg8Li6OX375hRdeeMH0QrN5/vnnadWqFS+99FKen8fHx3Pjxg18fX1zrG/bti1Hj5o2b+mHH37It99+C0C1atXYvHlzsWI1p27dcq8bPBjGjIG33gJXV/j3v+985uoKkyfDsGFw+TIMGpRz3y1bTD/2iRMncHd3Z8CAAZw6dYqePXsyc+ZMDAYD8+bNo1+/fnh4eBTntLKUtetqo2z45MFPCP48mNc2vsZ/+/7XxDMpPQUmYUopA3BFRCaVUjyappUzTwQ+wfnE88Qnx+skrBTcnYAVtr446tevz8GDB4mNjaV///4MGjSIOnXqAJCWlsawYcMYP358rj+mYOwblJfs693c3BgxYgQfffQRjo6OZos7+zFefPFFJk0qP3+6jh+HTp1yrqtaFQ4dMk/5aWlpbNu2jf379+Pt7c2QIUNYtGgRffr0YeXKlWwpJKMrr9c1sG4g49qP46PdH/Fk6ydpV6+d2eIyhwKTMBFJV0p1KmgbTdMqt9YerVk2aJm1w6gwCmux8vEx3oK8W4MGRWsZMYWnpyctWrRg27ZtDMpshhk9ejRNmjRhwoQJee5To0YNzp07l2NdQkJCrr47EyZMIDg4mFGjck+C7ObmhrOzM5GRkTkSvb1799Krl/GmjKOjIykpKdjb2wNw9epVatasWdxTLRUFXZ/mzY2tYJl3fAHYvBnGjTP+XLNmya6vl5cXQUFBWf+e/fv3Z9euXdStW5eIiAgaN24MGB/AaNy4MRERETn2L8/X9d/d/s3yI8sZ89sYdj21C4ONoUTlmZMpfcLClFKrlVLDdZ8wTdPyc+zyMc4nnrd2GBXejBmQ2Z0mi5OTcb05xMTEkJSUBMC1a9fYvn07zZo1A+D111/n+vXrzCkgU+zSpQurV68mISEBgFWrVhEYGIjBkPMPX/Xq1Rk8eDALFizIs5zJkyczfvz4rFg2bNjAkSNHspLBrl27Zt2WSkpKYsWKFVl91sqj114z3lLevBlSU42vTz1lXG8O7dq1Iy4ujkuXLgGwadMm/P39CQkJ4fz580RFRREVFYWTk1OuBAzK93WtWqUq7/d6n9DYUL7Yl889eysxpU9YFeAKcH+2dbpPmKZpWS4kXsB/vj9vdH2D6d2mWzucCu2xx4yvr70G0dHg7W1MwG6vL6nw8HAmTpyIUgoRYdKkSbRs2ZKYmBhmzJiBn58fwcHBAIwdO5ann346x/6tWrVi7NixdO7cGaUUtWvX5ssvv8zzWBMnTmTevHl5fjZu3Dji4uJo1aoVqamppKSkcPjwYapUqQLA3LlzefbZZ/noo48QEUaMGEGXLl2y9s/edwjgp59+wsfHpyT/NBY1bJjxddw4CA83tozNmHFnfUkZDAZmz55Njx49EBHatGnDM888Y/L+5f26DmsxjC/3fcmrG19lYPOB1HKuZfK5W5Ky5CSXltC2bVsJDQ21dhiapt3lgW8e4OTVk5wcfzLf/iPFpZTaKyJtzVqoleg6rOgSExN55JFHaNeuHf/5z3+sHY5mJqV9XY9eOkrgp4EMbzWcrx7+yuLHu62g+suUCby9lFI/KqUuZi4/KKW8zB+mpmnl2YhWIzgVd4odZ3ZYOxStgnFxcWH9+vU6AatgSvu6+tfyZ+K9E1kYtpAd0WWjnjKlT9hCYDXgmbn8krlO0zQtyyPNH8HZzplvDnxj7VA0TdPyNLXLVOq71WfMb2NIy0izdjgmJWG1RGShiKRlLouAsnEzVdO0MsPF3oUBzQew+sRq0jPSrR2OpmlaLs72zszpPYeDFw4yf898a4djUhJ2RSn1uFLKkLk8jrGjvqZpWg7/6fEfwp8PL1OPgGuapmX3iN8j9G7cm6mbpxKbEGvVWExJwp4EBgPngXPAICD3ACCaplV6Xm5euFdxt3YYmqZp+VJK8XGfj0lJT2HSOusO6JtvEqaUejfzx/Yi0k9EaolIbRHpLyLRpRSfpmnlzJ9n/qTjgo5cvHHR2qFomqblqXH1xrzc6WWWHl7KplObrBZHQS1hDyrjc+avlFYwmqaVf1UdqrIzZidLD5lp5mGtVLi4uABw+vRpgoODCQoKIiAggE8//RQwjqQeEhKCn58fAQEBTJkyJc9ypk+fzuzZs3Os8/Hx4fLly4CxFWLixIlZn82ePZvp06fn2nfkyJE0bNiQoKAggoKC+OijjwC4fv06I0aMoHHjxjRq1IgRI0Zw/fp1AKKionB0dCQoKAh/f39GjBhBamoqAFu2bEEplWNsq7CwMJRSueKtSG5fV4Do6Gh69epF8+bN8ff3JyoqKse248ePz7F9dhXxuk7pPIWG7g15/rfnSUlPKXBbSykoCVsLXANaKaXilVIJ2V9LKT5N08qZgNoBBHsE8/XBr60dSsVUty4olXupW9csxXt4eLBz507CwsLYvXs3M2fOJDbW2G9m0qRJHDt2jP3797Njxw5+//33Ipfv4ODAqlWrsv54F2TWrFmEhYURFhbG+PHjAXjqqafw9fUlIiKCkydP0rBhwxwDxjZq1IiwsDAOHTpETEwMK1asyPqsRYsWOd4vXbqUwMDAIp+DRfj45H1dzTjA7IgRI5g8eTLh4eHs2bOH2rVrZ30WGhrKtWvXil12ebyujnaOfNznY45dPsaHOz8syumaTb5JmIhMFhF34FcRcRMR1+yvpReipmnlzYhWI9h3bh9HLh6xdigVz4ULRVtfRPb29jg4OACQnJxMRkYGAE5OTlnTx9jb2xMcHExMTEyRy7e1tWX06NF8+GHR/+hFRESwd+9epk6dmrXujTfeIDQ0lJMnT+bY1mAw0L59e86ePZu1rkGDBty6dYsLFy4gIqxdu5Y+ffoUOQ6LOH0aRHIveU0UWgxHjx4lLS2NBx54ADC2kDllzn+Vnp7O5MmTee+994pdfnm9riFNQ3i42cO8ufVNoq+Xfk+rAjvmK6UMgE64NE0rkmEth2FQBr45qMcMK7IJE6Bbt/yXguS3Tz6TbefnzJkztGrVivr16/Pyyy/j6emZ4/O4uDh++eUXevToUaRyb3v++edZsmRJ1u2m/EyePDnrttWhQ4c4evQoQUFBOeYrNBgMBAUFceRIzoT/1q1b7N69m969e+dYP2jQIFauXMmff/5JcHBwVsJZKvK6Np98UvDnt12+XLTfhbucOHECd3d3BgwYQOvWrZk8eTLp6cahZObNm0e/fv3w8PAo3nllKq/XdW7vuYgIL/7xosn7mEuBSZiIpAMZSqmqpRSPpmkVQG3n2rzU6SWCPYKtHYpWDPXr1+fgwYNERESwePFiLmRrZUtLS2PYsGGMHz8eX1/fXPvmN2VV9vVubm6MGDEiqz9QfrLftmrZsqVJsZ88eZKgoCDq1KmDh4cHrVq1yvH54MGDWblyJUuXLmWYuSZmLAfS0tLYtm0bs2fP5q+//iIyMpJFixYRGxvLypUrGTduXIH7V+Tr2sC9Aa93eZ1V4atYG7G2SPuWlCkTeCcCh5RS64Ebt1eKyHiLRaVpWrn3nx56iplimTOn4M8LmpdzyxZzRoKnpyctWrRg27ZtDBo0CIDRo0fTpEkTJuTTulajRg3OnTuXY11CQgLu7u451k2YMIHg4GBGjTJ9xCN/f3/CwsLIyMjAxsbYhpCRkUFYWBj+/v7Anb5Dly9fplOnTqxevZp+/fpllVG3bl3s7OxYv349c+fO5c8//zT5+CVW2PXJ6/Pb17tmzRJdXy8vL4KCgrIS5/79+7Nr1y7q1q1LREQEjRs3BowPYDRu3JiIiIgc+1f06zrx3oksPrCYsb+N5fCYw1SxrVKk/YvLlHHCVgFTga3A3myLpmlagS7fvMz6k+utHYZFKaVeVEodUUodVkotVUqVTu1tITExMSQlJQFw7do1tm/fTrNmzQB4/fXXuX79OnMKSBS7dOnC6tWrSUhIAGDVqlUEBgbmuNUEUL16dQYPHsyCBQtMjq1x48a0bt2at99+O2vd22+/TXBwcFYScVvNmjWZOXMm77zzTq5y3nzzTd59991cMVVk7dq1Iy4ujkuXLgGwadMm/P39CQkJ4fz580RFRREVFYWTk1OuBAwq/nV1sHVg/oPzOXntJO/tKH7fuKIqNAkTkcXACmCXiCy+vVg+NE3TyrvXNr7GI8sfITEl0dqhWIRSqh4wHmgrIi0AAzDUogetU6do64soPDycDh06EBgYSNeuXZk0aRItW7YkJiaGGTNmcPTo0awhLLIPC3Bbq1atGDt2LJ07dyYoKIhPP/00z+0AJk6caNLTdNktWLCAEydO0KhRIxo1asSJEyfy/YPfv39/bt68ybZt23Ks79ixI/379y/ScS2uQYO8n45s0MAsxRsMBmbPnk2PHj1o2bIlIsIzzzxj8v6V4br29O3JkIAhvLP9HSKvRRa7nKJQIlLwBko9BMwG7EWkoVIqCHhTRPoVuKOFtG3bVkJDQ61xaE3Timh79HbuW3gfX/f/muGBw4tdjlJqr4i0NWNoZpGZhO0CAoF44CfgIxFZl98+ug7TtLLrbPxZ/Ob70bVBV34Z9ku+feGKoqD6y5TbkdOB9kAcgIiEAbl7Y2qapt2lU/1ONHRvWGHHDBORsxi/pEZjnNbtekEJmKZpZVs9t3r8u9u/+fXvX1l9fLXFj2dKEpYqInc/b5phiWA0TatYlFIMbzWcjZEbORt/tvAdyhmlVDXgYaAh4Ak4K6Uez2O70UqpUKVU6O0+OZqmlU3j2o+jRe0WvLD2BW6m3rTosUxJwo4opR4FDEqpJkqpj4FSfJxE07TybHjgcASx6vxsFtQTOCUil0QkFeODTB3v3khEPheRtiLStlatWqUepKZpprMz2PHJg59w+vppZmydYdFjmZKEjQMCgGTgO+A6MMGCMWmaVoE0rt6YmBdjStQnrAyLBu5RSjllzrXbAwi3ckyappXQfQ3uY0TgCGb9OYvjl49b7Dj5JmFKqSpKqQnAexgrmntFpJ2IvC4itywWkaZpFU49t3oAFPYgUHkjIruB74F9wCGMdernVg1K0zSzeK/nezjZOfH8b89brO4qqCVsMdAWY8XSB2PnU03TtCITEYZ+P5SXN7xs7VDMTkSmiYifiLQQkeEikmztmDRNK7k6LnWYcf8MNp7ayIojKwrfoRgKSsL8ReRxEfkMGAR0sUgEmqZVeEop0jLSWBS2iNT0VGuHo+XBxcUFgNOnT2eNAxYQEMCnn34KGEdSDwkJwc/Pj4CAAKZMmZJvWWvXrqV9+/b4+fkRFBTEkCFDiI6+MzlyWloatWrVylWGj49PjvGltmzZQt++fQG4cOECffv2JTAwEH9/fx588EHAOLL6+PHjadGiBS1btqRdu3acOnUqz/J++uknlFIcO3Ysa11UVBRKKT7++OOsdWPHjmXRokVF+vcrq25fV4Do6Gh69epF8+bN8ff3JyoqKse248ePz7H93SrjdX2u7XMEewTzr3X/IiE5oUj7mqKgJCyrphSRNLMfWdO0SmVE4Agu3bzEupN6BIeSaP1Za9S/Va6l9WetzVK+h4cHO3fuJCwsjN27dzNz5kxiY2MBmDRpEseOHWP//v3s2LGD33//Pdf+hw8fZty4cSxevJhjx44RFhbGY489luMP/vr162natCkrV640+TbPG2+8wQMPPMCBAwc4evQoM2fOBGD58uXExsZy8OBBDh06xI8//phrKp3bli5dSufOnVm6dGmO9bVr12bu3LmkpKSYFIsldP6qc57XtfNXnc12jBEjRjB58mTCw8PZs2cPtWvXzvosNDSUa9eu5btvZb2uBhsDnzz4CecSzjF9y/Ril5OfgpKwQKVUfOaSALS6/bNSKt7skWiaVqHd530fNRxrsGD/AuKT47OWlHTr/eErj+71uhd7g32OdfYGezp65Xoos1js7e1xcHAAIDk5mYwM44hETk5OdO/ePWub4OBgYmJicu3/7rvv8uqrr9K8efOsdf369aNLlzs3U5YuXcoLL7yAt7c3O3fuNCmuc+fO4eXllfX+9gTO586dw8PDI2vOQS8vL6pVq5Zr/8TERLZv386CBQtYtmxZjs9q1apFjx49WLzYepPBtPNsx4QOE5BpkrVM6DCB9vXam6X8o0ePkpaWxgMPPAAYW8icnJwASE9PZ/Lkybz3Xv7T9VTm69rBqwNPBz/N3N1zOXThUInKulu+E3iLSOWZVEvTNIu6kHgBzw88sVE2/HjsR9a/vx6lFLfSbtGnSR9+HvqztUMsMyasnUDY+bB8P09OSyYtI+fNibSMNPaf30+3Rd3y3CeobhBzes8xOYYzZ84QEhJCREQEs2bNwtPTM8fncXFx/PLLL7zwwgu59j1y5AiTJk3Kt+xbt26xYcMGPvvsM+Li4li6dCkdOxaeQD7//PMMGTKEefPm0bNnT0aNGoWnpyeDBw+mc+fObNu2jR49evD444/TunXuVsGff/6Z3r1707RpU2rUqMHevXtp06ZN1ucvv/wyffr04cknnyw0luLK6/oMDhjMmHZjGNthLH7z/NgVswsHWweS05IJPRfK7AeM3bEv37zMoBWDcuy7ZeQWk4994sQJ3N3dGTBgAKdOnaJnz57MnDkTg8HAvHnz6NevHx4eHvnuX9mv6zs93mHB/gW0+rRVrs/qudYj5l+5v5CYwpQhKjRN00qkjksdejTswSudX2F61+lEvxjN9SnXaePZhsdaPmbt8MoVB1sH6jjXQWGcTkWhqOtcN1frWEnUr1+fgwcPEhERweLFi7lw4ULWZ2lpaQwbNozx48fj61vw5ClXrlwhKCiIpk2bMnu2MZlYs2YN3bt3x9HRkYEDB/LTTz+Rnp5uPJc8poi5ve4f//gHkZGRPPPMMxw7dozWrVtz6dIlvLy8OH78OO+88w42Njb06NGDjRs35ipn6dKlDB1qnNZz6NChuW5d+fr60qFDB7777rsi/EuZj4eLB3Wc63Am/gwAZ+LPUMe5DlWrVDVL+WlpaWzbto3Zs2fz119/ERkZyaJFi4iNjWXlypWMGzfO5LIq43Wt4VSD+7zvy7Xe3mDPw80eLn7BIlKuljZt2oimaeXP9tPbpcGHDSQ5LVlERNb+vVb85/tLekZ6ofsCoVIG6h9zLOaow2LjY6XK21WE6Yjj245yLuFcict0dnbOc/2oUaNk5cqVOd6PGzcu33Ief/xx+eqrr3KsmzVrlkybNk1ERAYMGCC1a9eWBg0aSIMGDcTR0VHWrVsnIiJt2rSREydOZO33ww8/yMiRI/M8TkhIiHz//fe51s+aNUvGjh0rIiINGjSQS5cuyZUrV8TR0VG8vb2lQYMG4uXlJfXr15eMjAw5deqUBAQEiIhIeHi4BAQEyJgxY2ThwoX5nqOlxMbHSrWZ1WRf7D6p/m51s17XnTt3SpcuXbLWf/311zJmzBhZs2aN1KlTJ+t6KKWkUaNGucrR11Uk5nqMqOlKmE7WYsr/v4LqL90Spmlaqejk3YmmNZqyOGwxIsL0/01nWtdp2ChdDRWVh6sHo4JGYaNsGBU0iroudc1WdkxMDElJSQBcu3aN7du306xZMwBef/11rl+/zpw5c/Ld/6WXXmLGjBmEh98Zs/bmTePUL/Hx8Wzbto3o6GiioqKIiopi/vz5Wa0X3bp145tvvgGM/ZS+/fbbrH5omzZtyionISGBkydP4u3tzb59+7IeHMjIyODgwYM0aNAgR0zff/89w4cP5/Tp00RFRXHmzBkaNmzItm3bcmzn5+eHv78/v/zyS7H+7UrKw9WDJwKfoMfXPXgi8AmzXtd27doRFxfH7WmzNm3ahL+/PyEhIZw/fz7rejg5OREREZFrf31djeMdDvK/c0vY3mBf8v9/+WVnZXXRLWGaVn7dbg1bfWy1ya1gIrolLC+x8bHSZWEXs7SWiNxpMVm3bp20bNlSWrVqJS1btpTPPvtMRETOnDkjgPj5+UlgYKAEBgbKF198kWdZa9askbZt20rTpk2lY8eOMnToUDl+/LgsWrRIhgwZkmPbK1euSM2aNeXWrVsSFxcnw4YNyzr25MmTJT3d+Dvy3nvvSfPmzaVly5YSEBAgs2fPFhGR33//XYKDgyUgIEACAgJk1KhRkpSUJCJ3Wky6desmv//+e47jzp07V5577rkcLSYiImFhYaKUskpLmIjxuv7jm3+Y/bqK3Lm2LVq0kCeeeEKSk5ML3P5u+roar4/9W/ZFaoUuqP5Sxs8tQynVG5gLGIAvRWRmHtsMBqYDAhwQkUcLKrNt27YSGhpqgWg1TSsNvb7pxc6YnSzot4DBAYNN2kcptVdE2lo4tFKh6zBNK9/G/DqGz/Z+xnNtnmN+yPxCty+o/rLYfQCllAGYj3G0fX9gmFLK/65tmgCvAJ1EJAA9J6WmVXhvdX+Le73uzdGsr2maVl5M7TIVH3cfpnadWuKy8h2iwgzaAxEiEgmglFoGPAwczbbNM8B8EbkGICIXLRiPpmllQAevDqwbrgds1TStfPJw9eDk+JNmKcuSPWLrAWeyvY/JXJddU6CpUmqHUmpX5u1LTdM0TdO0Cs+SLWGmHr8J0A3wArYqpVqKSFz2jZRSo4HRAN7e3qUcoqZpmqZpmvlZsiXsLFA/23uvzHXZxQCrRSRVRE4BJzAmZTmIyOci0lZE2taqVctiAWuapmmappUWSyZhfwFNlFINlVL2wFBg9V3b/ISxFQylVE2MtycjLRiTpmmapmlamWCxJExE0oCxwB9AOLBCRI4opd5USvXL3OwP4IpS6iiwGZgsIlcsFZOmaZqmaVpZYdE+YSLyG/DbXeveyPazAP/KXDRN0zRN0yoNPV+IpmmapmmaFegkTNM0TdM0zQosOm2RJSilLgGnrR1HIWoCl60dhIVVhnOEynGe5eEcG4hIhXg0uhzUYeXh98EcKsN5VoZzhLJ/nvnWX+UuCSsPlFKhFWWeu/xUhnOEynGeleEcNdNVlt+HynCeleEcoXyfp74dqWmapmmaZgU6CdM0TdM0TbMCnYRZxufWDqAUVIZzhMpxnpXhHDXTVZbfh8pwnpXhHKEcn6fuE6ZpmqZpmmYFuiVM0zRN0zTNCnQSVkxKqd5KqeNKqQil1JQ8Pv+XUuqoUuqgUmqjUqqBNeIsqcLOM9t2A5VSopQql0+omHKeSqnBmdf0iFLqu9KOsaRM+J31VkptVkrtz/y9fdAacWqlozLUYbr+yrFNua6/oILWYSKilyIugAE4CfgC9sABwP+ubboDTpk//x+w3NpxW+I8M7dzBbYCu4C21o7bQtezCbAfqJb5vra147bAOX4O/F/mz/5AlLXj1otVfx/KdR2m668c25Tr+qsI51nu6jDdElY87YEIEYkUkRRgGfBw9g1EZLOI3Mx8uwvwKuUYzaHQ88z0FvAucKs0gzMjU87zGWC+iFwDEJGLpRxjSZlyjgK4Zf5cFYgtxfi00lUZ6jBdf91R3usvqKB1mE7CiqcecCbb+5jMdfl5CvjdohFZRqHnqZQKBuqLyK+lGZiZmXI9mwJNlVI7lFK7lFK9Sy068zDlHKcDjyulYoDfgHGlE5pmBZWhDtP11x3lvf6CClqH2Vo7gIpOKfU40Bboau1YzE0pZQN8AIy0ciilwRZjk343jC0CW5VSLUUkzppBmdkwYJGIvK+Uuhf4RinVQkQyrB2YZj0VtQ7T9VeFq7+gHNZhuiWseM4C9bO998pcl4NSqifwGtBPRJJLKTZzKuw8XYEWwBalVBRwD7C6HHZuNeV6xgCrRSRVRE4BJzBWauWFKef4FLACQER2AlUwzsmmVTyVoQ7T9dcd5b3+ggpah+kkrHj+ApoopRoqpeyBocDq7BsopVoDn2GsvMrj/Xco5DxF5LqI1BQRHxHxwdhvpJ+IhFon3GIr9HoCP2H8FolSqibG5v3IUoyxpEw5x2igB4BSqjnGCuxSqUaplZbKUIfp+uuOnyjf9RdU0DpMJ2HFICJpwFjgDyAcWCEiR5RSbyql+mVuNgtwAVYqpcKUUnf/spR5Jp5nuWfief4BXFFKHQU2A5NF5Ip1Ii46E89xIvCMUuoAsBQYKZmPGWkVS2Wow3T9VXHqL6i4dZgeMV/TNE3TNM0KdEuYpmmapmmaFegkTNM0TdM0zQp0EqZpmqZpmmYFOgnTNE3TNE2zAp2EaZqmaZqmWYFOwrQSU0p5KaV+Vkr9rZQ6qZSamzmOi6ZpWpmm6y/NmnQSppWIUkoBq4CfRKQJxkEAXYAZVg1M0zStELr+0qxNJ2FaSd0P3BKRhQAikg68CDyplHJWSs1WSh1WSh1USo0DUEq1U0r9qZQ6oJTao5RyVUqNVErNu12oUmqNUqpb5s+JSqkPlVJHlFIblVK1Mtc/o5T6K7OcH5RSTpnrFymlPso8RqRSalC2cl9WSh3K3GemUqqRUmpfts+bZH+vaVqFpusvzap0EqaVVACwN/sKEYnHOH3E04APECQirYAlmc38y4EXRCQQ6AkkFXIMZyBURAKA/wHTMtevEpF2meWEY5w37DYPoDPQF5gJoJTqAzwMdMjc5z0ROQlcV0oFZe43ClhYpH8BTdPKK11/aValkzDNkroBn2VON4GIXAWaAedE5K/MdfG3Py9ABsaKD+BbjJUTQAul1Dal1CHgMYwV6m0/iUiGiBwF6mSu6wksFJGb2eIB+BIYpZQyAEOA74p1tpqmVSTd0PWXZmE6CdNK6ijQJvsKpZQb4F3EctLI+ftYpYBtb8+1tQgYKyItgX/ftU9y9pAKOfYPQB+M3zr3lrc51TRNKzZdf2lWpZMwraQ2Ak5KqREAmd/G3sdYwfwBPKuUss38rDpwHPBQSrXLXOea+XkUEKSUslFK1QfaZzuGDXC7X8SjwPbMn12Bc0opO4zfJAuzHuM3xtt9L6oDiMitzFj/i27K17TKRNdfmlXpJEwrkcwZ6h8B/qmU+hs4AdwCXsXYTB4NHFTGWe0fFZEUjE3mH2euW4/xG+AO4BTGb6YfAdk7l94A2iulDmPsSPtm5vqpwO7MfY+ZEOtaYDUQqpQKAyZl+3gJxtsG64r4T6BpWjml6y/N2pTxd1DTyi6lVKKIuFj4GJOAqiIy1ZLH0TStctH1l1YQW2sHoGnWppT6EWiE8VuqpmlauaHrr/JNt4RpmqZpmqZZge4TpmmapmmaZgU6CdM0TdM0TbMCnYRpmqZpmqZZgU7CNE3TNE3TrEAnYZqmaZqmaVagkzBN0zRN0zQr+H84BrV7ceJrzwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -103,10 +147,34 @@ "needs_background": "light" }, "output_type": "display_data" - }, + } + ], + "source": [ + "for bm in unique_bms:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm] \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " \n", + " if \"single_insert\" in bm:\n", + " plot_perf(bm, tmpdf, \"Occupancy\", unique_labels)" + ] + }, + { + "cell_type": "markdown", + "id": "spatial-patent", + "metadata": {}, + "source": [ + "### Multi-Value Insertion " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "homeless-grave", + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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JbY851xqa9bM0lAceKAlpH7kkex7um65xXrCBg2y3ImuaIulJwwROUhEzhSR8yNbogNzLi+uvhpefdUWwH3xxcSX17EjfPaZNfhat4Yff0x8mc651FW7NnzxBZx2muVEvOQS2LZt1+NEbEWPk0+2iUKzZiU/Vhc/saSouA14ItjaAvcDnRMcl3N5dvbZNouyb197nujp3IcfbrcRypSxJZQ+/zyx5TnnUluFCvD66zBggKWyyG4WeKlSts7tyJF2i9IVXbH0hHUFjgdWqOqF2FpquyU0Kufy6aCD7Erxt9+scvrii8SWd+CB8M03lsaiQwe7Jeqcc/lVogTccw8MG2YXdkceCQsW7HpchQp24Ql28TlnTnLjdPERSyPsb1XNALaLSBVgJVA3sWE5VzClS1sur/btYfToxJZVpw589ZUlcz3zTBg8OPf3OOdcTi68ED7+GFassF73b76Jftz27dYY69ABfv89uTG6got1Ae+qwHPYzMipwLeJDMq5gqpXz24VHnYYnHWWJVhNpN13twrzpJNsLMfAgT6F3DlXMMceC5Mm2eohxx1n416zKlUKRo2C1attrOq6dUkP0xVALLMjL1XVtao6GGgH9AhuSzpXqEUaRl262DixRA/Yr1ABxoyBCy6A22+Hyy5LbO4y51zqa9jQGmKHHw7nnmt1S9YLvBYtbEWP2bPh1FNh61YbS7ZkiV8MFnaxzo5sKiKdgRbA/iJyWmLDci4+ype325EPPABduya+vFKlbCxH//42ffyssxKfu8w5l9qqV7cLyh49rJe9e/dd65X27XeOI2vZ0tapPOwwG7f60UehhO1iEMvsyGHAMOB04ORg+1+C43IubkqWhOuus7XZNmywXrFEZrsXgXvvtdxlb77ptwiccwVXpgy88ALcfTe88gocfzysWvXfY847z1YQad0ali2D5cttKMZ553kqi8Iqlp6wI1Q1XVV7qOqFwdYz4ZE5lwBffw1PPWUpJVasSGxZV19ta0xOnGhjOxJdnnMutYnADTdY7/7UqXaLcvbsna/PmgV//mkNr02brP5p396GRjz7bHhxu+zF0gj7VkQaJzwS55KgQwd47z349Vdo1cqy3idSt247y/Ps+s65eOja1dLvbN5sKSw++cT2L1kCBxxgwyLuvhvOP9/Gke2zDyxeHG7MLrpYGmEvYQ2xX0RkhojMFJEZ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\n", + "image/png": "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e+9t+XweecRy+RSWKnz+uZ3vjTes8mzVysaRxfbIVaxo+YUyU2PkxGdHOucy65WLLrKer5wMHWpDJP77D/75x1JhRKmgsyOfAdKxBlgn4N4QYnPOJVHNmtsaWWecYYvrtmplPWBdutgtyenTbfHdwhCxMR2vvGJLId10E8yateMtUV+v0jkXr8x65aOPcj+uYkW74Pz8c6vzDjvMEsd++23h67ZEy60R1kJVz1LVx7GFao9IUkzOuRClpdltwquusm7+Rx6xMVyzZlnS19atLVni8cfbrKUvvyxcxVWvnuX9yekcixYV/NwucSoHWXgXLlxImzZtaN26NS1btmTEiBEArF+/ns6dO7PnnnvSsmVLBg0aFGW4CVU5JgPxokWL6NChA3vttRctWrRgwYIF2x3br1+/7Y53ydegAeyyS/avidjg/Vq1rJd///1hxQq7TXnQQVC7Nvzyix1bFBpkuTXC/n+yZ1G4DemcS5x+/Wxc2Pr1lnj199/ta//+No7s9NOtB+v6620ppcxRC2+/De++a+u/5VejRtnvz20dS5e9MMfW7brrrkyaNIlp06bxzTffMGzYMJYuXQrAwIED+fHHH5k6dSpfffUV7733XuIKjtPYsXb7vFQp+zp2bGLPf84553D11VczZ84cvv32W2rXrv3/r2VkZLCmIL/8LuHuvXfHpdcqVrQJQRMn2i3JJk1g9mxrdKnaBeEuu9gySStWWH237762pNKECTv21CeFqma7AVuAv4JtHbA55vFfOb0v7G3//fdX51zhbNmiesstqjvvrNqokWqNGqq33666dev2x/3+u+rEidueH3CAKqiKqO6zj+rFF6u+9VZ8ZT7/vGrFivb+zK1iRdufFyBDI6pzEr0Vtg4rzPcxN5UqVdph3++//64NGjTQ3377bYfX+vXrpyNHjixcofn0wguqTZqoTpig+t9/9rVJE9tfGJmfffbs2XrYYYdle8zmzZu1Xbt2unTp0my/Vy75nn/e6i8R+5rd38B//6lOmqR6552qHTuqVq687e9ml11U69ZVLVXKnleqpNqnT87lzZ2r2ru36p57qh5zjOqbb8YXZ271V1zLFhUlPqjVucTZsAGWLYO6dS07dV7Wr7dxFRMn2m3Kr7+2nrKXX7bX+/WDFi2gbVv7mhbT175pk6XCePddG6hfpozdNrjrrrzLLUkD8/v3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\n", "text/plain": [ "
" ] @@ -115,10 +183,35 @@ "needs_background": "light" }, "output_type": "display_data" - }, + } + ], + "source": [ + "for bm in unique_bms:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " \n", + " flag = \"multi_insert\" in bm\n", + " if flag:\n", + " plot_perf(bm, tmpdf, \"NumReps\", unique_labels, flag)" + ] + }, + { + "cell_type": "markdown", + "id": "apparent-skiing", + "metadata": {}, + "source": [ + "### Multi-Value Insertion by Varying CG Sizes" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "aquatic-accreditation", + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -130,7 +223,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -142,22 +235,93 @@ } ], "source": [ - "# Get benchmark list\n", - "unique_bms = perfdf[\"Benchmark\"].unique()\n", - "num_bm = len(unique_bms)\n", - "\n", - "# Plot benchmarks\n", "for bm in unique_bms:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", + " flag = \"insert_cgsize\" in bm\n", + " if flag:\n", + " # Plot INT32 performance\n", + " tmp_int32df = tmpdf[tmpdf[\"Label\"].str.contains('I32')]\n", + " unique_labels = tmp_int32df[\"Label\"].unique()\n", + " plot_perf(bm+'_INT32', tmp_int32df, \"NumReps\", unique_labels, flag, True)\n", + " \n", + " # Plot INT64 Performance\n", + " tmp_int64df = tmpdf[tmpdf[\"Label\"].str.contains('I64')]\n", + " unique_labels = tmp_int64df[\"Label\"].unique()\n", + " plot_perf(bm+'_INT64', tmp_int64df, \"NumReps\", unique_labels, flag, True)" + ] + }, + { + "cell_type": "markdown", + "id": "supposed-kruger", + "metadata": {}, + "source": [ + "### Single-Value Retrieval" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "middle-omaha", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for bm in unique_bms:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm] \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " \n", + " if bm == 'nvbench_static_multimap_find':\n", + " plot_perf(bm, tmpdf, \"Occupancy\", unique_labels)" + ] + }, + { + "cell_type": "markdown", + "id": "wrong-skiing", + "metadata": {}, + "source": [ + "### Multi-Value Retrieval" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "peaceful-bernard", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlcAAAFhCAYAAABd8I+pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABtA0lEQVR4nO3dd3hU1dPA8e8koTdBUFGaBZUqQkQBsWEXe3lVVMSCFQEpdkEExYKKFRHsiL0r2LGBhSYgNgSCiAgWFOll3j/m5keMKTfJ3Zr5PM8+2b27e+6kcDh77jkzoqo455xzzrloZCQ6AOecc865dOKDK+ecc865CPngyjnnnHMuQj64cs4555yLkA+unHPOOeci5IMr55xzzrkI+eDKuRgTkSYioiKSFefzqojsEs9zFkdE/hGRnRIdB4CITBKR84p4fpSIXBfPmIojIkNF5DcRWSoijYKfZ2Yp21ooIgeXMZ7//Y2JyKMiMrQs7TmXLnxw5ZwLpaSDtYIGL6paXVXnRx9d2YjI2SLySd5jqnqhqt6YqJjyE5FGQD+guapup6qLgp/npkTH5pz7Nx9cOedcamgE/K6qyxIdiHOuaD64cq4Egksp/UVkloj8JSLPiEhlEflGRLrmeV2WiCwXkbZ53n6OiCwRkV9EpH+e12aIyJUi8qOI/C4iz4pIneC53EuK3UVkUXBJ6Jo8780UkauD964UkWki0jDPOQ8WkR9EZIWI3CciUsz3t4uIfBh8b7+JyDPB8Y+Cl3wVXIr6PxGpLSKvB9/nn8H9BsHrhwGdgXuD198bHM97GamKiIwQkZzgfJ+ISJUiYsv9WfQQkZ+Cc14oInsFv48VuecJXj9YRJ4s4P1Z+dptBowCOgSxrgiO/+8yl4gcICKLRWSgiCwLfofHiciRIvK9iPwhIlfnabO9iEwJYvpFRO4VkYp5nlcRuUxE5gc/59tEpND+OLh89w6wfRDjo/m/n2Cm8EYR+TT4W3hbROrmaePM4Gf9e96/oaIU93045wrmgyvnSu4U4HBgR6A1cDYwHjgtz2sOA35T1el5jh0INAUOBa6QLetdegHHAfsD2wN/AvflO+e+wG5AF+D6YEAAcHlw3iOBmsA5wOo87+sK7BXEeUoQV1FuBN4GagMNgHsAVHW/4Pk9gktRz2D9xyNAY2xWZQ1wb/D6a4CPgUuD119awLluB9oBHYE6wEBgczHxAeyN/Rz/D7gLuAY4GGgBnCIi+4do439U9RvgQmBKEOtWhbx0O6AysANwPfAQcEbwPXQGrhORHYPXbgL6AnWBDtjv7eJ87R0PZANtgWOx311hMb4LHAEsCWI8u5CXng70ALYBKgL9AUSkOfAAcCb2N7Y19vstTpjvwzmXjw+unCu5u1V1iar+AbwGtAGeAo4RkarBa07HBlx53aCqq1R1NjYoyR2MXQhco6qLVXUdMBg4Kd8Myw2qukZVvwK+AvYIjp8HXKuq36n5SlV/z/O+4aq6QlUXAR8EsRZlAzZY2l5V16rqJ4W9UFV/V9UXVHW1qq4EhmEDxGIFszTnAL1V9WdV3aSqk4Pvvzg3BrG9DawCxqvqMlX9GRvQ7RkmhlLYAAxT1Q3A09iAY6SqrlTVr4G5BL8XVZ2mqp+p6kZVXQg8yH9/Nreo6h/B7+Yu/j04L61HVPV7VV0DPMuW3/dJwOuq+lHwM76OEAPZkN+Hcy4fH1w5V3JL89xfDVRX1XnAN8DRwQDrGGzAlddPee7nYDMIYIOZl4JLLyuCdjYB2xZ1zuB+Q+DHksRaxGvBZo8E+EJEvhaRQmdTRKSqiDwYXGr6G/gI2ErC7V6ri80CFRV7YX7Nc39NAY+L+x5L6/c8i8fXFBJLdQAR2TW4TLo0+NnchH3PeRX291AWhf2+t897PlVdBeQdhBco5PfhnMvHB1fORSf30uCxwNxgwJVX3rVQjYAlwf2fgCNUdas8t8rBTExxfgJ2LmvguVR1qaqer6rbAxcA90vhOwT7YZcq91bVmkDupcPcdV1axKl+A9YSYewFWAVUzfN4uyJeW1SspfEA8C3QNPjZXM2Wn0uuwv4eYuGXvOcLPgBsHeJ9Yb4P51w+PrhyLjpPY+upLuK/s1Zga3KqikgLbF3MM8HxUcAwEWkMICL1ROTYkOccA9woIk3FtBaRMP9pFkhETs5dlI6t/VK2XD76Fcibo6oGNluzQmwB/qB8zeV//f+o6mbgYeAOEdlebGF+BxGpVNrYCzAT2E8sH1Qt4KoiXvsr0CDCxdo1gL+Bf0Rkd+xvIr8BYpsCGgK92fL3EAvPA11FZN/gexxCuP4/zPfhnMvHB1fORURVfwGmYAu0C/qP8kNgHvAecHuwZghgJPAq8LaIrAQ+wxZth3EHtrbmbew/wbFAoTvuQtgL+FxE/gli6p0nL9Vg4LHg8uUp2DqhKtgs1GfAxHxtjcTWjv0pIncXcK7+wGzgS+AP4BYi7JNU9R3s9zALmAa8XsTL3we+BpaKyG8RnL4/tu5uJbbwvaC/h1eCuGYCb2C/u5gI1oRdgg36f8EGzotDvDXM9+Gcy0dUo54Nd845VxQRUexSW/5Lx865NOAzV84555xzEfLBlXPljFjNvH8KuI1Kgti6FRLb14mOLR4S8bsRkQmFnPPq4t/tnCuIXxZ0zjnnnIuQz1w555xzzkXIB1fOOeeccxHywZVzzjnnXIR8cOWcc845FyEfXDnnnHPORcgHV84555xzEfLBlXPOOedchHxw5ZxzzjkXIR9cOeecc85FyAdXzjnnnHMR8sGVc84551yEkm5wJSIPi8gyEZkT4rWNROQDEZkhIrNE5Mh4xOicc845V5ikG1wBjwKHh3zttcCzqroncCpwf6yCcs4555wLI+kGV6r6EfBH3mMisrOITBSRaSLysYjsnvtyoGZwvxawJI6hOuecc879R1aiAwhpNHChqv4gIntjM1QHAYOBt0WkF1ANODhxITrnnHPOpcDgSkSqAx2B50Qk93Cl4OtpwKOqOkJEOgBPiEhLVd2cgFCdc84555J/cIVdulyhqm0KeO5cgvVZqjpFRCoDdYFl8QvPOeecc26LpFtzlZ+q/g0sEJGTAcTsETy9COgSHG8GVAaWJyRQ55xzzjlAVDXRMfyLiIwHDsBmoH4FBgHvAw8A9YEKwNOqOkREmgMPAdWxxe0DVfXtRMTtnHPOOQdJOLhyzjnnnEtlSX9Z0DnnnHMulfjgyjnnnHMuQkm1W7Bu3brapEmTRIfhnIuTadOm/aaq9RIdRxS8/3Ku/CmsD0uqwVWTJk2YOnVqosNwzsWJiOQkOoaoeP/lXPlTWB/mlwWdc8455yLkgyvnnHPOuQj54Mo555xzLkI+uHLOOeeci5APrpxzzjnnIuSDK+ecc865CPngyjnn4mj1apg/H9auTXQkzrlYSbnB1bhx0KQJZGTY13HjEh2Rc84Vb/NmuPZaaNAADjrIvt58M3h5V+fST1IlES3OuHHQs6d98gPIybHHAN26JS4u55wrzi23wKRJMGuWDazmz4eTToLateHCCxMdnXMuSik1c3XNNVsGVrlWr7bjzjmXrFTh7rvhoYdsYLVhAzRsCPfeCyNHJjo651zUUmrmKqeQQhmFHXfOuWSwcSMsXw677WYDrW7d7NioUbB4caKjc85FLWVmrv74w9ZZFWTbbeMbi3POlUSFCtC6NUyYACLQuTO89BIccgi0a5fo6JxzUUuZwdXEibDnnlC16n+f22ab+MfjnHMlMXQonHsujB1rC9pPP93WX61cCf/8k+jonHNRSpnBlQjssAOMHg3169uxKlWgbl2YPRsefTSh4TnnXJGOPBKeew5efdUWsq9fD0OGwFdfwSmnJDo651yUUmbN1RFHwCWXWGe0ZIktAu3Tx55r1w7OOQc2bbJPhs45l4w6d7ZbXi1awHbbJSYe51xsFDu4EpFtgE7A9sAaYA4wVVU3xzi2f9lqK5u1OvBAOOYYqFHDbitX2pqrgw+G886zAVZuegbnnEt2J5yw5f4jj9gHSR9sOZfaCh1ciciBwJVAHWAGsAyoDBwH7CwizwMjVPXvItroC5wHKDAb6KGqpc5LfNJJsO++8MILsGYNfP45fPghXHwxPP20LRq94AIbYF10UWnP4pxz8bdkCfTqBdtvD++9Z6kanHOpqaiZqyOB81V1Uf4nRCQL6AocArxQ0JtFZAfgMqC5qq4RkWeBU4FHyxLwdtvZ5cFczZrZgKtlSzj2WBuAXXyxbXPu1assZ3LOufjZfnt4+22buercGd5/H3baKdFROedKo9AF7ao6oKCBVfDcRlV9WVULHFjlkQVUCQZjVYElpQ+1cC1b2tdp0yxdw1FHwWWXwV13xeJszjkXGx072qBq5UobYH37baIjcs6VRlGXBS8v6o2qekcxz/8sIrcDi7C1Wm+r6tsFnKcn0BOgUaNGYWIu1Pz58NprsP/+ti6rb1+7RNivX5madc65uGnXzpY7HHIITJ4Mu++e6IiccyVV1GXBGsHX3YC9gFeDx0cDXxTXsIjUBo4FdgRWAM+JyBmq+mTe16nqaGA0QHZ2dplKmJ5xhn3t3h06dYLjj4f+/e0S4RVXlKVl55yLn5YtbdaqVi17vGaNpZ5xzqWGoi4L3qCqNwANgLaq2k9V+wHtgDBTTAcDC1R1uapuAF4EOkYRdFHOOMMKPE+eDMuWwYknwpVXwk03xfrMzjkXndyB1eTJtvbq448TG49zLrwwea62Bdbnebw+OFacRcA+IlIVuyzYBZha4ghL4dRTITPTyks8/DBUrmzFnTduhOuvj0cEzjkXjcaNbaB12GGWgPTggxMdkXOuOGEGV48DX4jIS8Hj44DHinuTqn4epGuYDmzE0jmMLmWcJXbyyXYDuOUWW3s1aJB9HTzYMr4751yy22GHLWuwunaF55+3r8655FXs4EpVh4nIRGDf4FAPVZ0RpnFVHQQMKkN8ZbZpk+0erFDBankNGWLHbrzRB1jOudSw7bYwaZLNXh1/PHzyCey9d6Kjcs4VJmz5m5nAL7mvF5FGhaVpSDaZmVYw9cQTYfNmW5M1bJgNsG66yQdYzrnUUKcOvPsu3HsvZGcnOhrnXFGKLdwsIr2AX4F3gNeBN4KvKaNrV1t/9fXXMGeO7SYcPhwGDgQt0/5E55yLn1q1bP1oZiYsXgxPPJHoiJxzBSl2cAX0BnZT1Raq2lpVW6lq61gHFrUjj4RXXrHtzWvXWpb322+Hyy/3AZZzLvXccgucdRbceWeiI3HO5RfmsuBPwF+xDiQeDjsMJk6E3XazNQyZmZbFfdMmGDnSLxE651LHiBHwyy/2AXH1apvRcs4lhzCDq/nAJBF5A1iXe7C4DO3Jav/97euGDZCVBT17wj332ADrnnusfI5zziW7ihWtYH2PHnDttbBqla0n9Q+JziVemKHEImy9VUUsa3vuLaV9+y08+KBtcb7oIrj/fiv4vHlzoiNzzsWLiDwsIstEZE6eY7eJyLciMktEXhKRrRIYYpGysuCxx+xD4htv2ADLOZd4YVIx3AAgItWDx//EOqh4aNUKJkywtVjvvmtrsO67z2awHnzQZ7CcKyceBe7F8vnlege4SlU3isgtwFVA0hbQysiAUaPg77+henVYt84GXZmZiY7MufIrzG7BliIyA/ga+FpEpolIi9iHFnudO8Nbb8HSpbYWq1cvGDMGzj3XBlnOufSmqh8Bf+Q79raqbgwefoaVAEtqIraTcNMmS57cvbtVpHDOJUaY+ZnRwOWq2lhVGwP9gIdiG1b8dOwI77wD69dbDqzBg+HRR20dgw+wnCv3zgEmFPakiPQUkakiMnX58uVxDKtgmZnQoYPVVz31VOvXnHPxF2ZBezVV/SD3gapOEpFqMYwp7vbeG374ASpVgvbtrUO66SYbXD32mE2xO+fKFxG5BivdNa6w16jqaIKyXtnZ2UmR1OWqq6BqVejTx7K5P/SQ1SRcutRm6w86yBe9OxdrYWau5ovIdSLSJLhdi+0gTCuVKtnX+++3xHz9+sFTT9lslk+vO1e+iMjZQFegm2rqZcLr3dvWjk6YADvtZBt3Nm6048cc4zNazsVamMHVOUA94EXgBaBucCwtdexoOWOefhoGDIBnnoFOnawyfUYGNGliU+7OufQkIocDA4FjVHV1ouMprfPPh+22gxtugPHjrQzYjBmWRHn06ERH51x6K3Zwpap/quplqtpWVdupah9V/TMewSVCmzbw/vu24+bJJ610zhdfwKJFlsk9J8e2PfsAy7nUJyLjgSnAbiKyWETOxXYP1gDeEZGZIjIqoUGW0ty5ULmylfkCG1D9+iv07QsvvJDY2JxLd2F2C76TN8+LiNQWkbdiGlWCtW4NH3xga67efPO/z3s2ZOfSg6qepqr1VbWCqjZQ1bGquouqNlTVNsHtwkTHWRoZGVvy9i1caEsd9twTpk/3NVfOxVqYy4J1VXVF7oNg1mqbmEWUJFq2hJdfLjypaE5OXMNxzrkS2X13y3v19NO2nGHqVKhXD667DmrU8ITJzsVSmMHVZhFplPtARBoDKbfAszS++AKqFbIvsmbN+MbinHMlIQKPP261B487znYNrl8PDRrY7sFu3RIdoXPpK8zg6hrgExF5QkSeBD7CMhanvQUL4NhjoUqV/z73999wxRWeC8s5l7zatrU0M8cdB3XrWmqZnBy4+25bT+qci40w5W8mikhbYJ/gUB9V/S22YSWHdu2sMxo9Gq68En7+2Y5XrQqHHQa33mq7b8aPh623TmyszjlXkOrV4eyz/32sV68t9594wjbrnHVWXMNyLq2FWdAuwOFAW1V9HagqIu1jHlkSOPlkWL4cPvrI8sV8/DE0bGgL2teuhQcesPwx2dkwc2aio3XOuZJRtQ+H3btbAft16xIdkXPpIcxlwfuBDsBpweOVwH0xiyiJVK5suwZr1IATToALLrDcMffcAzvsYI8//hg2bLD8WE89leiInXMuPBFbfzVwoBV/7tzZ0s4458omTGGXvVW1bVC8GVX9U0QqxjiupFGnDowYYbeC1KxpSfoee8wWiE6bBrfc4iVznHOpISvL+qx99rEZrLZt4dtvbY2Wc650wgwBNohIJsEOQRGpB/gm3sBNN9mahYEDLT/WHXfYJcKnn7Ztz845lwqOPx5atLDcfj6wcq5swlwWvBt4CdhGRIYBnwA3xTSqFPLQQ3ap8NZb4ccf4b774NNPbR3W9OmJjs4558LbdVcr+Azw2We2HOLPtK3H4VzshCl/Mw6rs3Uz8AtwnKo+F+vAUkWlSrab8MEH4b33bObquedsoWinTjar5Zxzqeb77+H1123X9IwZiY7GudQSZrfgzsACVb0PmAMckrccjjM9e9rOwVat4NBDbe3VPvvY9ubevW3Ru3POpYqzzrKd0rkbdh55JNEROZc6wlwWfAHYJCK7AA8CDYFi98WJyG5B0dPc298i0qds4Sa3Dh3gpZdsNisrywZZvXtbwr6DD7aiqc45lyr22ceWN3TqBOecYzsLnXPFC1X+RlU3AicA96rqAKB+cW9S1e9yC58C7YDV2NqtcuGZZ+Dqq+Gbb2yL85df2jqsL79MdGTOORdevXrw1lswdiwcdZQd88oUzhUtzOBqg4icBpwFvB4cq1DC83QBflTVclPu+MILbbH7pEm2zfmRRyAz0/LI+PS6cy6VZGbazFVmplWqaNUKJk5MdFTOJa8wg6seWBLRYaq6QER2BEq6TPtUYHxJg0t1551n67DWrYMePeC222xwdc45cMklVkTVOedSybp1UKECHHmk5fjb7Il5nPuPMLsF56rqZao6Pni8QFVvCXuCIOHoMUCBOwxFpKeITBWRqcuXLw/bbMrYZx9b3H7UUTawmjABBgyA+++Hgw6CpUsTHaFzzoW3004wZQqccQYMHmx92x9/JDoq55JLmJmrsjoCmK6qBS7nVtXRqpqtqtn10jTr5nbbWXqG7bazxxUr2iXDGTNsm/NnnyU2PuecK4mqVa0qxQMPwPvvw7XXJjoi55JLPAZXp1EOLwkWZvp0uzw4bJitvapcGfbbzwZbzjmXKkRsbemnn8LNN9uxlSu3PP/777Y+SzUx8TmXSEUOrkQkU0RuL23jIlINOAR4sbRtpJv27bcUez77bLjySrs82LOnFYL2qvTOuVSSnQ21asHatXDAAXDqqXDYYXb5sE0bq1U4ZUqio3QuvoocXKnqJmDf0jauqqtUdWtV/au0baSj9u1tHVZ2tg2q9tsPrrrKMr0fcAAsWZLoCJ1zrmQqVIAjjrA0NLNm2XKHX3+1lDTHHuv9mitfwlwWnCEir4rImSJyQu4t5pGluW23tXI5ffpYstGbbrJ1WbNn2zqsQYOgSRPIyLCv48YlOGDnnCtCZqbNwu+4o81idewIL78MJ51kN09B48qTMIOrysDvwEHA0cGtayyDKi8qVIA777QZLIAfftjSAQ0ZAjk5tl4hJ8dmuHyA5ZxLZosWWTb3adPsQ+HQoXa8ZUv46aeEhuZcXGUV9wJV7RGPQMq7P/+09Ay//Walc/JbvRquuQa6dYt/bM45F8Zee9llwIcegs8/33Ip8KWX4Jdf4O234ZBDbDG8c+ksTOHmXUXkPRGZEzxuLSK+8TZitWvbp73mzeGffwp+TU65yW/vnEtFLVpAly6WYHTyZMt/dcEFMH8+/PWXLXTfd1945x3fRejSW5jLgg8BVwEbAFR1FpZx3UVsm22gdWvLg1WYk06Cr7+OX0zOOVcSjzwCxxwD/fvDmWfaB8cvvoB58ywv1qJFts50v/1gzZpER+tcbIQZXFVV1S/yHdsYi2CcdTx9+xY8wOrc2abVW7WC00+H776Lf3zOOVeUrCzbqDN1qn0QvOUW2HprqFTJ8mLNmwf33WezXFWq2Hu+/dZnslx6CTO4+k1EdgYUQEROAn6JaVTlWNu2sHEjPPwwNG5saxO22sqea98eZs6EK66AV16xS4hnnw0//pjAgJ1zrgQqVYKLL4ZRo+zxvHm24P2AA+CDDxIamnORCTO4ugR4ENhdRH4G+gAXxjKo8uyyy2xX4MKFlqrh3Xdhhx1g991hxAjbWVizJsyZY58On3nGnjv/fF+T5ZxLPQ0awF132SDroINskDVpUoKDcq6MwhRunq+qBwP1gN1VdV9V9f/GY6RhQ/joI/j+e+toBg60AdfcuVY6p1Mn243Ts6cNtn780abaH38cmjaFSy6xkhPOOZcKKleGSy+1vuzuu63vO+wwS0DqXKoKs1twaxG5G/gYmCQiI0Vk69iHVn41bWpFUXNybN1Cz552eXDPPeG116yUxODB9toqVWxKfe5cOOccy/K+8862bss7J+dcqqhcGXr1skHWxImWaBlsGcRHHyU2NudKKsxlwaeB5cCJwEnB/WdiGZQr2j772AwW2GXBCy+Egw+243Pn2mL3e+6x2l5XXGG5s5xzLhVUqQIHHmj3ly2zWfn997cUD598ktjYnAsrzOCqvqreqKoLgttQYNtYB+bCueACmDDBduP06AFdu9o252++geOPh9tus3IU115riUqdcy5VbLONzWTdcYftPOzc2ZKQLlyY6MicK1qYwdXbInKqiGQEt1OAt2IdmAtHBA4/HL780rIgV6xoC+KbNoUnn7SF70ccAcOG2SBryBD4++9ER+2cc+FUrWrLHObPt3WmS5bYh0mwxKQAmzfbDuoePWwZhe86dIkmWkxyERFZCVQDNgWHMoFVwX1V1ZpRBZOdna1Tp06NqrlyafNmWLEC6tSxT3xnnmlFoLfbztZpvfyyPTdggC0irV49wQG7ck1EpqlqdgLP/zBWK3WZqrYMjtXBlj40ARYCp6hqsfO+3n/Fh6p9qNy0yXL+NWxoBe6XLrWB1dq1cO+9VipsyJBER+vSXWF9WJjdgjVUNUNVKwS3jOBYjSgHVi4aGRk2eAJYvNg+5R1+uC0U7dvXFsjvsw9cdZWtyRoxwuoWgs14NWlibTRp4oWiXbnwKHB4vmNXAu+palPgveCxSxK5dQk3bbJNPF98YQvg69a1TT99+1pdw/vvt9ku5xIhzGVBl6L239+2Nd93n+WQ2X9/m8V67TWr+9WmjZWo2Hln6N59S64sVfvas6cPsFx6U9WPgD/yHT4WeCy4/xhwXDxjcuFUrGj9V/futs505kzo0MFyZNWtayV43vIFLC5BfHCV5ipWtGzIP/5os1Rt29rMVIcO9snuww9ht91sR07+Ol+rV8M11yQmbucSaFtVza1CsRTfwJPUtt4amjWDBQtg5MgtO6m//NIKRC9enNj4XPnkg6tyokoVuPzyLWsQPv7YFr3fe6/NbBXGs7678kxtUWqhC1NFpKeITBWRqcuXL49jZC7X6afb5p2FCy3hcoUKVt3ihx9sjWmTJrZz+u23bU2qc/EQJonoziJSKbh/gIhcJiJbxTwyF1OtWll6hgkT7H5GIX8JGRmWR+vDD71jcuXGryJSHyD4uqywF6rqaFXNVtXsevXqxS1At8XOO1tev/32s8zu++1ni9knTrQZ+/79LT/WYYdZBQvn4iHMzNULwCYR2QUYDTQEnoppVC7mttoKbrzRFnxuvXXhg6v27eGJJ6zeV+PGtstw+nSvYO/S2qtA9+B+d+CVBMbiQjjtNJtlv/hi26yTk2N91o47wvDhdmlw3DgrdA+2BvWss+Czz7wvc7ERZnC1WVU3AscD96jqAKB+bMNy8VKvnu2++fxzy+beuLEdr1YNsrJsZmvZMnjqKVsAf9dd0K6drXEYMsSm3p1LVSIyHpgC7CYii0XkXGA4cIiI/AAcHDx2Sa5GDTj2WMvrV6nSv5+rVMkuH+69tz2eNcsuGXboYOtQR4+Gf/6Je8gujYUZXG0QkdOwT3CvB8cqxC4kF2+dO9sarOHDbd3C999bZ7Rxow2kRo2ydA6vvWa5ZB58cEverF13hb32gjvvtLQPzqUSVT1NVesHaWYaqOpYVf1dVbuoalNVPVhV8+8mdCnuhBOswP2oUbbc4YIL7PLiunWJjsylizCDqx5AB2CYqi4QkR2BJ2IblounwYMtg/vgwbY24Y03IDPTptd32MHWLOywA3z1lV1C7NnTtjsvWgS3326d0+WXQ4MGcNBB8NBD8If/d+ScS2I1atigauZM+PRTm4nPnfHq1QvGj/fBliu9YjO0x5NnOE6cH36w2aevvrLkor17Q3aQc/arr2y9ws0326DrkUfssuHxx9vOHIDvvrPOaPx4m/mqUMFmu04/HY4+2l7vXH6JztAeJe+/0sOff9ps/I8/2rKJ886zD5RNmiQ6MpeMCuvDwpS/6QQMBhoDWYBgO5R3ijpI75ySn6rlkZkyBerXt52EPXvaZcLc56dP3zLQWrLEBlbHHmsDrUMP3TIgc84HVy4Zbd5sObIeeMCWQ6jCq69C165bXrN0qc3cf/CBJS3t2RNOPDFxMbvEKHX5G2AscAewL7AXkB18deWQyJZLh23aWMb3Ro3g7ru3PN+unXU6ixZZx9Otmy2M79p1y4Dso49sF6KX23HOJZuMDEvd8PLLtg71uuuswgXA009bcuX27WHDBkvGfN55ltpmuG99cIEwM1efq+repWrc8mGNAVpiifjOUdUphb3eP/mlnh9+sM7lpJNsRuuHH2xx/GmnWeLSXOvXWymK8eOtev3q1TYQy/vnV7Wq7drp1i3+34dLDJ+5cqnmootsIXxGBpxyij3u3NkWyLdqZYOxWrUSHaWLl7LMXH0gIreJSAcRaZt7C3nekcBEVd0d2AP4pgQxuxTQtKmt1cotOfH003Duuba4feBAK0kBVobn6KMtpcOyZTaNnn9cv3o1XH11fON3zrmSeOAB6NjR+rMJE2xG66qrrM9r1szSPDgXZnC1N3Yp8CZgRHC7vbg3iUgtYD/ssiKqul5VV5Q6UpcSrr3WdhIedBDccYdtbz711H8PpKpVg99/L/j9ixbZzJZng3fOJaumTS1J6ZIl9oGwa1e7RLhggS19cC6ruBeo6oGlbHtHYDnwiIjsAUwDeqvqqlK251KAiH2S239/y4r84IOWL0vEnh83zj7xNWxoA6n8srLguOOgRQv7NPh//2fHnHMuWVx4oeXK6tTJ0tisXg39+kHr1rDLLomOziWDMLUFa4nIHbnFSUVkRDArVZwsoC3wgKruCawCriygfS98mqYaNLASOzffbI9nz4YzzrCcWRUqbBlw5RKBPn22LGw/4wxLUjpqFKxdG9fQnXOuUPvsY8shjj/eZrEaNLBahrVrJzoylyzCXBZ8GFgJnBLc/gYeCfG+xcBiVf08ePw8Ntj6Fy98Wn60agVffmmf+H780S4V5ibta9zYiqrOmGEpG2bNssuD9erZgtEdd7QdiCtXJvZ7cM45sFn1hQstRcM339hGnGeegWefTXRkLhmEGVztrKqDVHV+cLsBKDbHlaouBX4Skd2CQ12AuWWI1aWB7Gy45RbL9H7zzbD77rBqlXVSl1++pVZhRgYcc4wVVn3vPbtMOGCADcIGDSp8zZZzzsVLVpYtYt92W1t71b69XTL8+edER+YSLczgao2I7Jv7IEgquiZk+72AcSIyC2iDLYp35VzdurZ7sGtXKz1RtaqVmXj9dZvdykvEFse/+64Vl95/fytT0bixrXHweoYOQEQqi8hJIjJSRJ4TkcdFZKCItEh0bK58qFDBcvetWwc9evimnPIuzODqIuA+EVkoIjnAvcCFYRpX1ZnBJb/Wqnqcqv5ZlmBdesjKssXqp5xiSUaXL4fmza2G4ZX/WZW3Rfv28NJLMGeOrXUYOdIuF15wgV1mdOWTiNwAfIrVQP0ceBB4FtgIDBeRd0SkdQJDdOXErrvCiBGW62/OnERH4xIpdG1BEakJoKp/xyoYT8JXfqjC44/botCFC20268cf7diZZ4ZrY8ECuO02ePhh2wZ96qk2OMs/++WSVxRJREXkKFV9o4jntwEaqWpMOxfvvxxY35aT47UIy4sS1xYUkTNU9UkRubyg51X1johj9M6pHNu0yS75zZljtwYNwr/3l19skPbAA/DPP5bq4eqrbUePS26xytAuIhlA9Vh+GMzP+y+X32uvWRmdihUTHYmLldJkaK8WfK1RwK165BG6ci0zEx591Gagzjvvv9nbi1K/Ptx6q31avOEG+PRT6NBhy1qtkrTlUpeIPCUiNUWkGjAHmCsiAxIdlyufvvjCNuUMGZLoSFwiFDq4UtUHg7vvquoNeW/Ae/EJz5Unu+xil/mWLYM//ij5++vUgeuvt0HWiBHw7bdwyCGw9962VmvzZsuh5cWi01bzYKbqOGAClsg45EVm56LVvr0tbL/5Zpg8OdHRuHgLs6D9npDHnCuzCy+0XYFbb136NqpXt7QOCxZYIejff7fcWo0awTnn2OArd11Ez54+wEojFUSkAja4elVVN2AF451LiLvusn7nzDM9R195U+jgKijU3A+oJyKX57kNBjLjFqErVzIybEvzn3/aJ76ybGeuVAnOPx+++25Lwej16//9mtWr4ZpryhazSxoPAguxJQ0fiUhjLOmxcwlRs6alZ1iwwD7wufKjqJmritjaqiz+vd7qb+Ck2IfmyrPXX7dF6ffeW/a2srLgtNNsPVdBCqpx6FJH8EFQVPVuVd1BVY9U26mzCChtbVTnIrHvvlZ/8NBDEx2Ji6dCS+Kq6ofAhyLyqKrmxDEm5zjjDCslccUVtttmt92Kf09xGje2S4H5NWpU9rZdQp2F5eL7HpgITFTVpcEAa2NiQ3PO8vrlUv1vXVWXfsKsuVotIreJyJsi8n7uLeaRuXJNBB56CKpUgbPPtlQNZTVsmGWDzysry4671KWqF6lqW2AwUBt4VESmiMhNIrKfiPgyBpcU7r3Xkif7Dub0F2ZwNQ74Ftt5cwO2puHLGMbkHGApFu67z+oL3nln2dvr1s0WuDdubIO3atVsTVfLlmVv2yWeqn6rqneq6uHAQcAnwMlY1nbnEm7TJnj+efvg6NJbmMHV1qo6Ftigqh+q6jlYx+VczJ16Kgwfbl+j0K2bZYTfvNnWWtWta3m1NvrFo7QhIlWBFsCXqtorFklKnSuNXr2gSxfo2xfmzUt0NC6WwgyucpcB/yIiR4nInkCdGMbk3P+I2LqrBg1sQBTlIKhOHbjnHpg6Fe6+O7p2XXyJyDFB7dPpInIk8DVWA3W2iHRPcHjO/U9GhiVLrljR0jP4h7r0FWZwNVREagH9gP7AGKBvTKNyLp+1a223zdCh0bZ78slWLufaa2H+/GjbdnFzI3AocAFWsLmLqu4DtMb6LOeSRoMGVqrr88/hww8THY2LlSIHV8FC0Kaq+peqzlHVA1W1naq+Gqf4nAOgcmXYfnsbXE2bFl27InD//baw/YILfKFpitqsqt+r6pfAAlWdD6Cqy/Ddgi4JnXoqfP21XSJ06anIwZWqbgJOi1MszhVp5EjYdlvo3t1msqLSoIGt63r3XXj88ejadXGTISK1RWRrYHNwv46I1CHc7LxzcdesmX395BNLZuzSS5iO51MRuVdEOotI29xbzCNzLp/atWHsWPvEN2hQtG1feCF06mQLTX/9Ndq2XczVAqYBU4GawPTg8TQs8bFzSWn+fDjgABjg5cXTTpjBVRts580QYERwuz2GMTlXqMMPt3qAzz0Hq1ZF125Ghm2PXrUK+vSJrl0Xe6raRFV3UtUdC7jtlOj4nCvMTjvBZZfZ0oQJExIdjYtSoRnac6mql49wSWXECNs5WK1atO02a2YL26+/3lI2dO0abfsuNoK1oVVU9Z/g8T5Y+S6AGarqJXNd0rrpJnj7bSsqP2dO2YrWu+RR7MyViGwrImNFZELwuLmInBv70JwrWPXqVhB13Tp4NeKtFVdcAS1awEUXeRX7FHILcHGex+OBAcB1wLUJici5kCpXhiefhN9/90016STMZcFHgbeA7YPH3wN9YhSPc6HdcQcceyy8H2ExpooVYcwY+PlnKxztUkIX4I48j1eo6tFYeoZOiQnJufDatIFbbrEizy49hBlc1VXVZ4HNAKq6EYig0ptzZdO7NzRtCj16wN9/R9fuPvtYJuX77oPJk6Nr18VMRtAv5boCICjcXL20jYpIXxH5WkTmiMh4Ealc1kCdK0zfvrbe04s6p4cwg6tVwRZnhf+tZ/grplE5F0LVqvDYY7B4MfTrF23bQ4dCw4ZWGmfdumjbdpGrKCL/2xWoqm8DBMmPSzUgEpEdgMuAbFVtCWQCERVhcq5wL74Ixx8fTbF6lzhhBleXA68CO4vIp8DjQK+YRuVcSB062DbmMWPgzTeja7dGDRg1Cr75Bm6+Obp2XUw8BDwjIo1yD4hIY2zt1ZgytJsFVBGRLKAqsKRMUToXwsqV8PLLtnHHpa4wuwWni8j+wG6AAN+p6oZi3uZc3NxwA/z0EzRqVPxrS+KII+D00203z8kn20J3l3xU9Q4RWQ18IiK5e0j/AYar6gOlbPNnEbkdWASsAd7OnRFzLpbOOgtee812Lh92GOyxR6IjcqUhWszWhGCdwcXAvtilwY+BUaoaYY5sk52drVOnTo26WedKbflyS9HQtKllUs7MTHRE6UVEpqlqdoTt1QAoa/oFEakNvAD8H7ACeA54XlWfzPe6nkBPgEaNGrXLyckpy2mdA+C336BVK0vLMHWq7Sh0yamwPizMZcHHsSSi92CV5lsAT0QbnnNl988/9qnvxReja7NePbjrLvjsMyu26pKPiJwhIhlgg6r8AysR2VlESroP62CsTuHyYKb+RaBj/hep6mhVzVbV7Hr16pX2W3DuX+rWhYcftmoUL7yQ6GhcaRR7WRBoqarN8zz+QETmhmlcRBYCK7HdhRuj/ITqXH6VKllnNHEidO5sA6ModOtmeWiuugqOOSb6y4+uzLYGZohIbsmb5dhC9l2A/YHfgCtL2OYiYB8RqYpdFuyClddxLi6OOMJmrdq1S3QkrjTCzFxND3YIAiAie1OyTuZAVW3jAysXaxUqWOHlv/6yWoFRJeMTscXtmzdbclFP8pdcVHUk0BZbwF4PGwi1BX4GzlTVE1X1hxK2+TnwPFancDbWV46OMm7nipM7sJo7F/78M7GxuJIJM7hqB0wWkYXBTNQUYC8RmS0is2IanXMl1KIF3HijXRocPz66dps0gWHDbEfi009H166LhqpuUtV3VHWwql6gqn1U9UFVXVSGNgep6u6q2lJVz1RVT8rh4u6PP2DvveHSSxMdiSuJMIOrw4Edsen1/YP7hwNdgaOLea8Cb4vItGDhp3Mx16+fpWi47jrYuLH414fVqxfstZcVWv3tt+jadc65wtSpAwMHwlNP+Qe7VBImFUOOiOwBdA4OfayqX4Vsf99gS/M2wDsi8q2qfpT3Bfl225QgdOcKlpkJ48bZZcKsMKsKS9DumDE2Vd+vnyUwdc65WLvqKnjjDVuWsHGjlefaeWdbA1qxYvHvd/EXpnBzb2AcsE1we1JEQiURVdWfg6/LgJeA9gW8xnfbuMjtuCM0aGDrpL75Jrp2W7e24s6PP26V7J1zLtaysmy38t9/2wBr+XK4/35bBrGo1Be+XSyF+Vx/LrC3qq4CEJFbsHVX9xT1piCZX4aqrgzuHwoMKWO8zpXI1VdbJzR7NjRuHE2b114Lzz9vFeznzIFq1Yp/j4s9EakEnAg0IU/fpqre77iU9/TTtiyhUyerGlGhgpXpuvRSePXVREfn8guz5kr4d6HmTcGx4myLZUz+CvgCeENVJ5Y8ROdKL3fX4Dnn2CxWFCpXhocegoUL4frro2nTReIV4FhgI7Aqz825lPfsszB2rJXFqVDBjvXtC+++C6tXJzY2919hZq4eAT4XkZeCx8cBY4t7k6rOBzxxv0uoJk3gjjugZ0+bwYpqx03nzjZwu+suOPVU+0TpEq6Bqh6e6CCci4XNm7dUiHjvPdsRfdtt9tjTwySfYmeuVPUOoAfwR3Droap3xTgu5yJz3nlw+OG24+aHEmU7Ktrw4bDddtb+Bq+2mQwmi0irRAfhXCyccILNWqnacoT774dLLoH99/elCcko1F4qVZ2OJdNzLuWI2C6/o46Cb7+FV16x3DEHHwwHHmjPl0atWtbBHXecfYK8+upIw3YhichsLO1LFtBDROYD67DlC6qqrRMZn3NRuP56OOQQmzU/8ECoXt0qR8ycmejIXEHCrLlyLuXtsIMtAu3RA77/3rYvX3op/N//lS0X1rHHwkknwZAh8N130cXrSiQ3594RWMmbQ4PHYXLxOZcSateGKVPg8sshI8M21GzcCK+/nujIXEEKHVwFO2+cSwvr19ui9meftZqDp5wCM2bATz+VPTHfPfdAlSq2riuqRfMuPFXNUdUcYGju/bzHEh2fc1GpUMEuD95wA9x+u+W5GjoUli5NdGQuv6JmrqYAiMgTcYrFuZiZMgUaNoSWLWH0aOje3XLHXHIJvPRS8e8vynbbWUf30Ud2+dElTIu8D0QkEyvf5VxauuMO63s8RWTyKWrNVUUROR3oKCIn5H9SVV+MXVjORSsryxadb7MN3H03nH66ZVgXiSaL+znnWFb4AQOga1fYfvuyt+nCEZGrgKuBKiLyd+5hYD1ebNmlsZ13tptLPkXNXF2IlbzZClu3kPfWNeaRORehvfe2Reyvv26pEzp0sAXoI0bYuquyErEZsfXrvcBqvKnqzapaA7hNVWsGtxqqurWqXpXo+JyLtaeesg91viwheRT6mV1VP8GSgE5V1WLzWjmXzLKyYPx429nXsSPUr2+XChs0gOOPj+Ycu+xiayGuuMJy0Jzwn/leFwsi0ja4+1ye+/8T7HZ2Lm1t3Gi1B594wpY8uMQTLSb7mIhUxGax9gsOfQiMUtXIM/tkZ2fr1KlTo27Wuf9ZudLWWP3xB+TkwNlnwx4RprrduBHat4dffrGahlttFV3b6UhEpqlqdhnb+CC4WxnIBr7CLgu2BqaqaoeyRRmO918uUTZvtg+NOTm2G7pGjURHVH4U1oeFScVwP7Yo9P7g1hZ4INrwnIuPGjXgrLOgTx+4885oB1ZgM2Rjxlhh1YEDo23bFUxVD1TVA4FfgLZBIfh2wJ7Az4mNzrnYy8iAkSNt1+BQ3x+bFMIMrvZS1e6q+n5w6wF4sQ+XFn77Dc48Ez77LLo227a1XDQPPQSTJkXXrivWbqo6O/eBqs4BmiUwHufiZu+97ZLgnXfCkiWJjsaFGVxtEpH/7UcQkZ34dyFn51JWpUrwzjs2GIqyPtfgwbDTTnD++bBmTXTtuiLNEpExInJAcHsImJXooJyLl5tvhtde893KySDM4GoA8IGITBKRD4H3gX6xDcu5+KhRw6bRp0yxBKNRqVrVdg/Om2fZ211c9AC+BnoHt7nBMefKhfr14bDD7H5ZKk+4sgtTuPk9oClwGdALm3r/oOh3OZc6evSwtVdXXAFr10bXbpcu1vatt9onyYwMaNLE8mG56KnqWlW9U1WPD253qmqEv1HnUsNdd0F2theUT6RQtQVVdZ2qzgpu62IdlHPxlJlp+a5ycmxRaJT23tt28vzyi112zMmxMjk+wIqOiDwbfJ0tIrPy3xIdn3PxtvPO8NVXVljeJYYXbnYOm2W6557oc8TcfPN/j61eDddcE+15yrnewdfcQs35b0lj3DibvfRZTBdLXbva5cFBg2znsou/IgdXYhrGKxjnEunSS61OYJQWLSrZcVdyqvpLcPdgoGIBxZuTwrhxNmuZk+OzmC62RGzX4KpVcO21iY6mfCpycKWWYfTNOMXiXML9+CMccADMiuhiUqNGJTvuyqQR8KCIzBeR50Skl4i0SXRQua65xmYt8/JZTBcrzZrZB8ZHH7VlCS6+wlwWnC4intfKlQu1a9vAql+/aFIzDBtmOwfzqlzZjrtoqeogVT0IaAF8jO10npbYqLYobLYyJ2nm1ly6GTQIZsywXYQuvsIMrvYGpojIj8EC0dm+SNSlqzp1LEfVu+/CmxHM2XbrZikZGje2x7lrbU4/vextu38TkWtFZALwNrAL0B9okNiotihstjIjwwbbK1bENRxXDmy1FTRvbvf//DOhoZQ7YQZXhwE7Awdhi0NzF406l5Yuugh23dVmr6LYytytGyxcaDNh99wD334LL79c9nbdf5wAbA28C7wIvJJnPVbCFTSLWakStGpl62IaN7ZLhL4A2UXtuuss3Uz+y9IudsLkucoBGgIHBfdXh3mfc6mqQgW47Tb47jt45JFo2+7Z0z5JDhgA6zypSaRUtS22qP0L4BBgtoh8ktiotsg7iyliX8eOhZkzYfp0OPRQ213auLHVvly8ONERu3Rx6KHw009wyy2JjqT8KHaQJCKDgCuAq4JDFYAnYxmUc4l29NHw2GNWdzBKWVmWU+vHH+Hee6Ntu7wTkZZAN6A78H9Y0eb3ExpUPrmzmJs329du3ez4nnvCc8/B3Llwyin2t7HTTjYY//HHREbs0kHnznDqqZbQ2Nf4xUeYGajjgWOAVQCqugSoEcugnEs0ETjrLKhSxf4jjNLhh8MRR8CNN/oloIgNB2oCdwPNVPVAVb0+wTGVyO672+6uefPgvPPg8cftEvUZZ8DXXyc6OpfKbr3V+rUBAxIdSfkQZnC1PkjJoAAiUi22ITmXPL74wi7j/fBDtO2OGAH//GO7eVw0VLWrqt6iqpNVNaULfzRpYtm1FyywouIvvwwtW8Lxx8PUqYmOzqWihg3hyiutUP3SpYmOJv2FGVw9KyIPAluJyPnYYtGHYhuWc8mhUSP4+WcYODDadps1gwsvhAcf9BmJsiqs7E06lL+pX9/W/+XkwPXXw6RJsNdeln37ww+jSRfiyo8BA+D776NPluz+K8yC9tuB54EXgF2B61X1nrAnEJFMEZkhIq+XPkznEmO77eCqq2zm4IOIy5UPHgw1a9quRFcmuTuYJwa3bsHtTdIkCfLWW8MNN9gga/hwWwR/wAG2lmbCBB9kuXCqVIF69Wypw/ffJzqa9BZ2199sLCnfR8H9kugNfFPC9ziXNPr2tRmsyy+HTZuia7duXZuNeOst+w/SlU6eMjeHqOpAVZ0d3K4EDi1tuyKylYg8LyLfisg3ItIhuqhLp2ZNuOIKWwx/zz2WmPTII6FdO3j++ejXB7r01KcPdOwIf/yR6EjSV5jdgudhW5tPAE4CPhORc8I0LiINgKOAMWUJ0rlEqlJly2zBq69G2/Yll0DTpjZwiyKnVjknItIpz4OOlC1tzEhgoqruDuxBEn1IrFLFSpvMm2fpHP75B04+GVq0sEXw/rfkinLeeZZUdPDgREeSvsJ0PAOAPVX1bFXtDrTDUjOEcRcwECj085SI9BSRqSIydblvnXJJ6tRT4fXX4dhjo223YkVbU/Ptt7b+ypXJucD9IrJQRHKA+4FQHwTzE5FawH7AWABVXa+qK6IKNCoVK8I558A338DTT9vj7t1th+EDD8DatVYYukmTLdUBvFC0a90aLrjANk3MmZPoaNKTaDEX60VkMnCAqq4PHlcEJqlqx2Le1xU4UlUvFpEDgP6q2rWo92RnZ+tU3wrjktz69fafWFRU4eCDbWZs3jyrb1heiMg0Vc2OuM1aAKr6VxnaaAOMBuZis1bTgN6quqqw9yRD/6VqHwKGDYPPP7fyJ6tW/Xsmq2pVS2aam2PLlU+//Waz5u3a2Q5CkURHlJoK68MKnbkSkctF5HJgHvC5iAwOEop+BoRZCtcJOEZEFgJPAweJiCcfdSnt9dctg/ZPP0XXpgjccYdN0994Y3TtljciUklETgcuAXqLyPUiUto8V1lAW+ABVd0Ty/N3ZQHnTKqZdxFLgDtlitXHXLv2v5cIV6+2MjuufKtbF4YMsXQfy5YlOpr0U9RlwRrB7UfgZYI8V8ArwILiGlbVq1S1gao2AU4F3lfVM8oUrXMJ1qqVDYKuvjradvfYA8491xYp+y6eUnsFOBbYiA2Gcm+lsRhYrKqfB4+fxwZb/6Kqo1U1W1Wz69WrV8pTRU8EunQpvMRSTo7NwLry7aKLrCrAttsmOpL0k1XYE6p6QzwDcS4VNG5si89vvhl69YL27aNr+8Ybbd3MgAHwyivRtVuONFDVw6NoSFWXishPIrKbqn4HdMEuEaaURo0KL3fSoIGtzzr3XMsM78qfrCy7rV4N06ZZag8XjTC7BbNF5CURmV7axHyqOqm49VbOpYqrrrJPepdfHm1+oe22s8s1r74K7ydVRbyUMVlEWkXYXi9gXNDftQFuirDtuBg2zNZY5VWliuVW23dfuOsuS2jbqRM8/LDtOnTlT58+VpLr558THUn6CLNbcBzwCHAilqgv9+ZcuVSjBgwdCp9+amtbotSnj+3o6ts32pxa5cS+wDQR+S74EDi7LBnaVXVmcMmvtaoep6p/RhhrXHTrZovXGze2S4WNG8NDD8Htt8OLL8LixVZz7vffbQarfn04/3z47DNPTFqeXHmlrc278j+rCl1phdkt+Imq7huPYJJht41zYWzaBNOnWymSqD37LPzf/9l/iuefH337ySTK3YIi0rig40GC0ZhL5f5LFSZPtpxZzzxjl4maN7cB15lnWlZvl96uvtqWO0yeDB0Sni43dRTWh4UZXHUBTgPeA/63PFJVX4w6yFTunFz59ddfUKtWdO2p2tqHH36wW82a0bWdbGKUimEboHLuY1VdFGX7hUmX/uvvv22ANXaspXOoUMHyu517LhxyCGRmJjpCFwv//AO77QY77GAzlxllSb9bjpQ4FUMePbD1Boez5ZKgr59yDptd2nHHaLcyi8Cdd1qbN98cXbvpTkSOEZEfsN3MHwILAS8sVEI1a265NDh7tmWC/+ADW5Oz444waJCV33HppXp1uOUWqFzZy+JEIczgaq9g3UF3Ve0R3EqV9di5dLP//rBypf2HE6W99rLLMXfcYXloXCg3AvsA36vqjtgOv88SG1Jqa9nS/gZ//tkuVzdvbrtad9rJZrGeftpyabn00K0bfPih5cByZRNmcDVZRJrHPBLnUtBuu8HFF9sMVtRlJG66yS7BXBG22JTboKq/AxkikqGqHwCRXnIsrypVstqFEyfarNWgQXbJ+rTT7DJS794wK8/WAS+5k5pE7LZkiQ2mXemFGVztA8yMageOc+nm+uttzVW/ftHusGrQwAZWzz0Hn3wSXbtpbIWIVAc+wlIojKT0SURdIRo1ssHV/Pnw9ts2gzVqlCXC3Wsvq3V4/vmWX0vVvvbs6QOsVHLDDXDGGZ7QuCzCLGiP2w6cdFkQ6sqfu+6ybcyzZ1u9rqisWmWzY/Xr2+LidFtkGvFuwWrAGuxDYzegFjAumM2KufLcf/3+uw2exoyxfwMFadzY12qliqVLrfj3/vvDa68lOprkVpYF7VrIzTkXuPhi+PbbaAdWANWq2aL2qVPhSa/MWSRVXaWqm1V1I/AGcE+8Blbl3dZbw2WXwVdfFf6anBwrELzK5xKT3nbbwXXXWS3ViRMTHU1qCjO4egN4Pfj6HjAf34Hj3L9UrGhrSyD6LMfdukF2tmWG9/+Y/ktE9hGRSSLyoojsKSJzgDnAryISSTkcF05uotLCHHoobLUVdOxoeZXeesuzwier3r3tw2KfPl6HsjSKHVypaqsgQ3ErVW0KtAcizkvtXHq49lpbe/JnhLm8MzLssuOSJXDbbdG1m0buxUrTjAfeB85T1e2A/QBPZhFnBZXcqVrVMsNPmAD9+9tarNtug8MPh9q1LWnllVfaLMnKlYmJ2/1bxYrW7zRsaGk4dtsNTj+96NlJt0WJV3Co6nRg7xjE4lzKO+kkyxEzdGi07XbqBKecYqVKFi+Otu00kKWqb6vqc8BSVf0MQFW/TXBc5VJBJXdGj4bzzrPB1M03W9moP/+0masBA+wDxIgR9p947dqw9962mePNNy2pqUuMFStsucO558LLL1uh+oMPhhkzEh1Z8guzoP3yPA8zgLbA1qp6WNTBlOcFoS59nHsuPPEEzJ0Lu+wSXbsLF8Luu9uW+CeeiK7dRIpiQbuITFfVtvnvF/Q4lrz/KptVq2zQNWmS3b74wurdZWRAu3a2uPqAA6zgdJQVEVzBNm+2/mvcOEssOmmS1Ty9915LKvvCC4mOMDmUZUF7jTy3Stjaq2OjDc+59DF0qE2pDxwYbbtNmsDll9vC9i++iLbtFLeHiPwtIiuB1sH93MetEh2cC6daNZsVGTrUUo+sWAHvvgvXXGP/ud99N3TtCnXq2BrE/v1twfWKFfZ+z60Vrd9+s9JeHTpYn9OvnxWr79oVvvwy0dElv2JnruLJP/m5dDF0qP1n8PXX0Ra9XbnSFpnusgt8/LFddkllsagtmCjef8XWmjVWkmfSJMsiPmWKLbTOvfS4eDFs3Ljl9VWr2uXIbt0SFnJKW7fOdg3Onm0zhXvsYT/rm2+GkSNtoOXKVrh5V6A/0ATIyj2uqgdFHKN3Ti5trFljlzRiUXR5zBhL0vjMM7YOK5X54MqV1po1lvvtww/tP/x16/77mho1bJ1iixZ2q1Mn/nGmsoEDbQH7Y49ZRv7997c+bfTo1O97olKWwdVXwChgGrAp97iqTos6SO+cXLrZuBF+/NF22kRl0yZbg5K72LRy5ejajjcfXLkoZGSEq45Qv77VS2zZ0gZbLVtavcQaNWIfYyrasMF2cT78sP2Mfv8dVq+2fGUHH5zo6JJDYX1YVkEvzmejqj4Qg5icS3s9etiOqIsusjqBxx0HrVuXrc3MTLjzTjjoIPt61VWRhOpcymrUyJKUFnT844/t8vycOVu+jhplM1+5GjfeMtjKHXg1awZVqhR93nHjbE3YokV2rmHD0usyZIUKtotzyBBYvtySxY4ZA/vtl+jIkl+YwdVrInIx8BLwv4lXVf0jZlE5lybq1bNO6a23oHNnOOwwG2hdf33Z2j3wQDj2WCvu3KOHrY1wrrwaNszqF65eveVY1ar276NRI7sdccSW5zZtst23eQdcc+bYjMyGDfaajAzYaaf/znTtuqttWBk37t/nzK2hCOk1wALbbFCtmt3v29e+/vOPHUv1dZ+xEuay4IICDquq7hR1MD6t7tLJokXQpo3lqHrvPSuCWrGiHZs4sewzWD/8YB1+9+6WoDEV+WVBF5UoZpE2bIB58/494Pr6a/u3tilYFJOVZQOshQv/PZjLVR5qKC5caLNXQ4bA2WcnOprEKvWaq3jyzsmlk3vvtWR7111n+alOPNH+Axg40D7xDRpU9nNcfrllUZ4+3QZtqcYHVy4VrFsH33337wHXq68W/voZM6BVK7uEn442bbJlCTNmwKxZW0p/lUclznMlIvsW02BNEWkZRXDOpaPMTFvQ3qSJZZuePdtSKWzcGF2ne911tgPq8svDLeh1zpVcpUo203z66Xap8ZVXiq6huOeelmn+0EPhhhts5jqdaihmZtoOQrCZ802bin59eVRUEtETRWSyiFwvIkeJSHsR2U9EzhGRJ7BizsUs93Ou/DruOHjtNdvRd801MHWqlfx48kkrkxOF2rWt8/7gg6I/STvnolVQDcUqVWyTyZNPwhlnwNKl9u/z4IOtYHW7dlYQ+dlnoy/wHm9Nmlguv48+su/Z/VuRlwVFpA5wItAJqA+sAb4B3lDVT6IOxqfVXbp5/HGrKn/MMbZW44UXbFH7009Hd46NG+1T9YYNdrmiYsXo2o41vyzoUlmYdV4rVljy008/tczzn3++Zadi48ZWzqdTJ7u1aJFalxJV4YQTrA969dXyubjd11w5lyBLlljR002bYNkyy97+/PO2BisqEyfabqgRI+wSYarwwZUrbzZsgJkztwy2Pv3UZrjAMqF36LBlsNW+/ZZdermSLf3DqlU2Y5cRppheGor74EpEKgMfYfUIs4DnVbXIJbzeObl0t2GDdZ6LFkVfGueII6wkyLx5ULdudO3Gkg+uXHmnCgsW/Huw9fXX9lxWlq3fyh1sLV1q6zfzp5xIhjI/ixdbKosePRIbR7wlYnAlQDVV/UdEKgCfAL1V9bPC3uOdkysPvv4a2raFo4+G556Lbip97ly7PHjhhbZTMRX44Mq5//rjD/ug9OmndvviC1i7tvDXJ0P6h8sus37nww8tp195UeLdgmWlJnd/RIXgljzXIJ1LkBYtLD/MCy9YfcCoNG8OF1xg2afnzo2uXedcfNWpA0cdZTsTP/wQ/vrLBluFWbQofrEVZtgw2HFH2z24cmWio0m8YgdXIlJVRK4TkYeCx01FpGuYxkUkU0RmAsuAd1T18zJF61ya6NfPMh137BhtuzfcANWrW/vOufRQsSLss0/h6R8aNoxvPAWpUcM28OTkbMniXp6Fmbl6BCt70yF4/DMwNEzjqrpJVdsADYD2BeXFEpGeIjJVRKYuX748XNTOpbisLLjjDluQqhpdjqq6da20zsSJsO22tsi0SRNbBOucS20FpX8AqwFYUG3FeOvUyZIkjx0Lb7yR6GgSK8zgamdVvRXYAKCqq4ESrRJR1RXAB8DhBTw3WlWzVTW7XpSre51LAStWwOGHwxNPRNfm1lvbOq5ly2zQllvzzAdYzqW2bt1s8XrjxvZvvHFjW+u0fLktfH/99URHaLPn115rA63yLMzgar2IVCFYLyUiO5OngHNhRKSeiGwV3K8CHAJ8W/pQnUs/NWrYzp/LLosuqeCgQf+dCVu92rZvO+dSW7dutnh982b7OnKklb9q0sQ2yVx5peWdSpSKFeHGGy1p6oYN5bdyRJjB1SBgItBQRMYB7wEDQ7yvPvCBiMwCvsTWXCXBuNq55JGZCY88Yp3QeedF0xEVtrg1GRa9Oueit/POMHmybWi55Rar+7dkSWJjWrYM9trL+rfyqNjBlaq+A5wAnA2MB7JVdVKI981S1T1VtbWqtlTVIWUN1rl0tMsu1iFOnAgPP1z29ho1Ktlx51zqq1zZdgo/+eSWQu7vvpu4eOrWtfJcvXtbHq/yJsxuweOBjar6RjDztFFEjot5ZM6VIxdfDAceaBnWy1oEtaBFr1lZdtw5l966dYMvv7QExbmFoxNRWDkjAx591L6Wx+LOoS4LqupfuQ+CxelFZlp3zpVMRoZ94pw8uey1xfIveq1e3Tq2HXaIJtbyJEgnM0NEfEmDSxnNmlni0TPOgMGDbdPMsmXxj6NxYyvu/PHH9sGxPAkzuCroNVlRB+Jcebf99rYIdP166xjLIu+i16VLoWlTOPNM+PPPKCItV3pjxeqdSynVqsFjj8GYMVZWZ889bZATb2edZcWdn3++fM1ehRlcTRWRO0Rk5+B2BzAt1oE5V17162cLUufPj6a9atXgqadskHXBBeV3905JiUgD4ChgTKJjca40RODcc+Gzz6wfOPBAuPVW+9AVzxgeftgGdmWdlU8lYQZXvYD1wDPBbR1wSSyDcq48GzjQOqEePaLrBNu1g6FDrZbh449H02Y5cBe2MzqO/xU5F7099oCpU20G6Yor4NhjrX5hvNSqBZUqWRmf556L33kTKcxuwVWqemVuok9VvUpVV8UjOOfKo4YN4a674KOP4J57omu3f3844AC49FL48cfo2k1HQYmvZapa5Cy9V5hwqaJmTatles898NZbdpmwrMsPSmr4cPi//7O+Ld2JFnONQER2BfoDTciz1kpVD4o6GK8q75xRha5d4YMPYOZM2HXXaNr96Sdo3Rp2282m6StUiKbd0iqsonyiicjNwJnARqAyUBN4UVXPKOw93n+5VPHll3DyyZYLa8QI+8AlJaq7Ujr//GMpIjZtgq++sgFfqiusDwtzWfA5YAZwLTAgz805FyMi8NBD0L69JRiNSsOGtpPw88/tMqErWDBD30BVmwCnAu8XNbByLpXstZflwjr8cKsOccopdsku1qpXt1JfixZBnz6xP18ihRlcbVTVB1T1C1WdlnuLeWTOlXPbbw+TJkGLFtG2e/LJcPbZNrj69NNo23bOpYY6deCVV2yB+0svQXa2zZLHWocOcNVVlrn9lVdif75ECTO4ek1ELhaR+iJSJ/cW88icc4B9orzgAvgmwoQAd99ttcjOOCM+n1hTmapOUtWuiY7DuaiJwIAB9iFu9WrYZx+bMY/1juLrr7dLkW3bxvY8iRRmcNUduww4GUvBMA3whQXOxcnatfDCC5blOKqCrDVqwLhxtgbr0kujadM5l5r23ddmrfbbD3r2tL5mVQy3rVWsaAvrGza0gVw6pocJs1twxwJuO8UjOOccbLst3H+/LUK97bbo2t1nH/sE+eSTlgfLOVd+1asHEyZYuZwnn7T1nnPnxvacf/1l676iqKmabMLMXCEiLUXkFBE5K/cW68Ccc1uccordBg2C2bOja/fqq6FjR7joIsvo7pwrvzIz7QPXO+/Ab7/ZwveLLrIlBBkZ9nXcuOjOV6OGbdjp0ye6pMnJIkzh5kHAPcHtQOBW4JgYx+Wcy+e++6zK/GWXRddmVpZ9SlW18jjlqTyFc65gXbrAjBnQqBGMGgU5OdZH5OTYZcOoBlh5izufdVZ69T9hZq5OAroAS1W1B7AHUCumUTnn/qNuXavP9dhj0ba744522fGTTyzJn3PObb+9LXLPb/VquOaa6M7TqJF9cPz0U7j99ujaTbQwg6s1qroZ2CgiNYFlQMPYhuWcK0jnztYZqUKUCcG7dYPTTrPLjvHO2uycS04//VTw8UWLoj1Pt26WImb0aFi3Ltq2EyVs4eatgIewnYLTgSmxDMo5V7QePay4c1QdkYjNXu2wA5x+umVSds6Vb40aFXy8bt1ozyMCDz4I06ZZDcJ0EGa34MWqukJVRwGHAN2Dy4POuQQ5+WSYMweGDImuza22svVXCxZA797RteucS03DhkHVqv8+lpFhi91vvz3aFAq1a1sftH49vPmm9W8ffZS6H/TC7hZsLSLHAG2BXUTkhNiG5ZwrylFH2ezV8OHRXsbr3NmyJz/8sK3vcs6VX9262aW6xo1tdqlxYxgzBk46yZKPXnRRdLn3cl13nfVvXbrAFVfY7NmDD0Z7jngIU7j5YaA18DWwOTisqnpO1MF44VPnwvvrL2jZ0up1zZgBlStH0+6GDdCpE8ybB7NmQYMG0bRbkGQt3Fwa3n+58mLzZlvUPnw4HHYYPPtsNEWYVS39w8KFUK2a9T+//moDraeesg9/yaYshZv3UdVsVe2uqj2CW+QDK+dcydSqBWPH2rR5lDliKlSwrdbr19v26M2bi3+Pc678yMiAm2+2Waz33rMPYzk5ZW939mz44w949VVYvBh69YKmTW2WbOzYsrcfT2EGV1NEpHnMI3HOldihh8IPP0DziP+FNm1q9Qc/+ABGjIi2bedcejj3XJg40XYV7r23VZEoi99/t001HTtaMtMnnrB1Xw0b2jqvVBJmcPU4NsD6TkRmichsEZkV68Ccc+FUrmyzTCNGFJyXprR69IATT7Tp/+nTo2vXOZc+unSByZOhShXYf3946aXSt9WuHXz9tc3EX3+9rb868US7JHjggdHFHA9hBldjgTOBw4Gjga7BV+dckpg6Ffr3t3I2URGxxazbbGPpGaIcuDnn0kfz5vDZZ9C6tQ2GSruTsGZN2wF90EGWGT47GwYPhu++21LkOVWEGVwtV9VXVXWBqubk3mIemXMutI4d4dJLYeRI+PDD6NqtUwcefxy+/x769YuuXedcetl2W1tGkHcn4YYNJW/n0kvhkUesYsQDD9gAa+BA+L//gyuvTJ0BVlaI18wQkaeA14D/pSxU1RdjFpVzrsSGD7eq9j162C6b6tWjafegg2xW7Lbb4Igj4BivLOqcK0CVKvD007DzztYfLVhgOwlrlbBg3oEH/vsyoKpderz1Vns8fLjNrCezMIOrKtig6tA8xxQocnAlIg2x9VrbBq8fraojSxmnc64Y1apZEdT99rPt0ZUr27GzzrKp+rJ0RjfeCO++awtYZ82C+vUjC9s5l0ZydxLusgtceCHsuy+8/rrlyCotEas/CDbAErFzJPMAq8jBlYhkAr+rav9StL0R6Keq00WkBjBNRN5R1bmlCdQ5V7zsbEu6V6mSzTb98QfccIOtySpLUeZKlSw9Q7t2cPbZNkOWESoFsXOuPDr3XGjSxD7Y7b03vPaa5bAqLRG49167P2KEJTht1SqSUGOiyO5RVTcBnUrTsKr+oqrTg/srgW+AHUrTlnMunPHjYdddLffMEUfAqafaGqzRowsvwhpWs2Zwxx3w9ttwzz3RxOucS1/5dxK+WMbFRBkZNsD6/PPkHlhBuAXtM0XkVRE5U0ROyL2V5CQi0gTYE/i8NEE658L56COrOwhw/vlwyim2A+fAA+HTT8ve/gUXwNFH2wLTWZ6QxTlXjLw7CU86qew1CTMyoG1bu//CC5auIRkXuYcZXFUGfgcOwlIw5KZjCEVEqgMvAH1U9e8Cnu8pIlNFZOry5cvDNuucK8A229giUhFo0cI+KXbvbnljtt227O2LWKbk2rVtWn7NmrK36ZxLb1HtJMzvgw9g6FC49trkG2AVu6BdVXuUtnERqYANrMYVtrtQVUcDo8Fqc5X2XM452ym43362o69PH8tNdc01tlsnqrpc9erZwvkjjrCt0SN9m4pzrhi5Owl32cUWo5d2J2Fed99tg7SbbrLHQ4cmzyL3YmeuRKSBiLwkIsuC2wsiUmwpVxERLAHpN6p6RxTBOueKtvvutr7qhBNsTcKoUbaz76+/os1TdfjhcNll1rlNmBBdu8659JWRYQOhMWPg/ffLXpMwI8NyYZ1/vrWbTJcIw1wWfAR4Fdg+uL0WHCtOJyyz+0EiMjO4HVnqSJ1zoRx3nHVYjzwCb71lBVCvvdZmmqJ0yy3QsqXNli1bFm3bzrn0lVuTcPHistckzMiwD5Hnnw/r1hX/+ngRLWaYJyIzVbVNcceikJ2drVOnTo26WedcHjNmQJs20Uyfz55t26sPOcQq2Ze0TRGZpqrZZY8k8bz/cq5k5s6Fo46CX3+FJ5+0GffS2rzZ+h8RWL4c6taNzyXCwvqwMDNXv4vIGSKSGdzOwBa4O+dSzOTJlqtqyJBo2mvVymawXn/dPj0651xYUe4kzMiwwdTixdYvDRqU2EuEYQZX5wCnAEuBX4CTgFIvcnfOJc4++1gS0MGDy5ZUNK9evSwjfO/esMMO1sk1aWJJR51zrij5dxJeeGHZdhJuvz107WpVJRI5wCp0t6CI3KKqVwDtVdWriTmXBjIy4KGHYP16uOoqy7zet2/Z2+za1dZ3LVlix3JyoGdPu9+tW9nad86lt/w7CSdPtk04ixdbxYlhw8L3IxkZtqkHbIAlYlUq4q2omasjgx1/V8UrGOdc7GVmWiqFk06Cyy+HL74oe5u33/7fY7lpIJxzrji5OwnPOw/mzLGKEqpbPqiVZCY8d4B1zjm2BOLRR2MWdqGKynM1EfgTqC4ifwOCFWAWQFW1Zhzic87FQFYWPPWUZXNv377s7S1aVLLjzjlXkHfe+e+x3A9qJZkFz52lb958S9WKeCp05kpVB6jqVsAbqlpTVWvk/Rq/EJ1zsVChgpXHAdtB+PTTpW+rUaOSHXfOuYIU9oGsNPmwMjIsv1+1avD33/Dww2WLrUTnLupJEckEfCDlXJrLXdPw7LOlf3/Vqv8+VrWqHXfOubAK+0CWmQnvvlv6dh94wPJrRbVTujhFDq5UdROwWUTKkKDeOZfsHnsMOnaE00+Hl18u+fu7dbM1Do0b2wLSxo3tsS9md86VREEf1CpVsrqphxxiu5NXry55u/37W53VQYNsoXushUnF8A8wW0TGisjdubdYB+aci59q1eCNNyA72y4Vvvlmydvo1g0WLrRkfgsXpvbASkQaisgHIjJXRL4Wkd6Jjsm58qCgD2pjx8KPP1q6l3vvtSTIn31WsnYzM62d7t3h+utjP8AKk6G9e0HHVfWxqIPxDMfOJdaKFdCli3VoLxZYaj1ayZqhXUTqA/VVdbqI1ACmAcep6tzC3uP9l3Ox98EHVnLrp5/giissZ1/FiuHfv2mT7SJ87z2rMFG7dtniKawPK2q3IGCDKBGpAjRS1e/KFoZzLplttZWta8idlldNnirz8aSqv2BJk1HVlSLyDbADUOjgyjkXewceCLNmWX6+m2+2GfcnnrAs72FkZtrC9l9/tYFVrPq4Yi8LisjRwEwsNQMi0kZEXo0+FOdcMqhd29Y4/P67dWRTpiQ6osQSkSbAnsDnCQ7FOQfUrGmX+F591QZJ2dk20Nq4Mdz7MzMtk7sqXHaZrfNavRpeecVm7P/6q+wxhllzNRhoD6wAUNWZwE5lP7VzLpmtXw8//wyHHw7l9WqXiFQHXgD6qOrfBTzfU0SmisjU5cuXxz9A58qxo4+2hKPHHgtXXw377Qc//BD+/Zs321KIa6+FevXgnntgzBjYcUcYP75ssYUZXG1Q1fzjuM1lO61zLtnVrw/vvw916sChh8JXXyU6ovgSkQrYwGqcqha4Ak1VR6tqtqpm16tXL74BOueoW9dSyIwbB998Y4vd77vPBk7FycyEO++0NVurV9t60zffhI8+sl2JCxeWPq4wg6uvReR0IFNEmorIPcDk0p/SOZcqGja0AVa1anDwwTC3nKw4Ckp/jQW+UdU7Eh2Pc65wIpZGZs4c6NwZLr3Uisn/9FPx7331VZsBO/10m/166SVo2RJOPbVss1dhBle9gBbAOuAp4C+gT+lP6ZxLJTvuaAOsZs1skFVOdALOBA4SkZnB7chEB+WcK9wOO8CECTBqlK0VbdXKFrsXlRRh1SrYemt4/HFL89C1qx2vUwf++af0sRSaikFEKgMXArsAs4GxqhpyuVjp+FZm55JX7q6azZth2TLYbruyt5msqRhKw/sv55LHjz/C2WfDJ5/A8cfbgGubbf77uh9+gE6dbFa+bl07tmoV7LGHDbg6diz6PIX1YUXNXD0GZGMDqyOAAureO+fKi9ztyn37wj77eFFm51zy2nlnmDQJbrvN0jW0bGmX/PJr2hQuuMAK2N92G4wcafe7dIEOHUp//qIGV81V9QxVfRA4Cdiv9KdxzqWL7t1th81BB9luQpfcqlevDkBOTg5t27alTZs2tGjRglGjRgGwevVqjjrqKHbffXdatGjBlVdemchwI5X7vQMsWrSIQw89lGbNmtG8eXMW5lutfNlll/3r9S71ZWZa2Ztp06BBAzjhhC39V1433giPPGIL2OfOhdtvt5musuS/KmpwtSH3TqwvBzrnUkfbtvDWW5ZfpksX++qiMW4cNGkCGRn2ddy46NquX78+U6ZMYebMmXz++ecMHz6cJUuWANC/f3++/fZbZsyYwaeffsqECROiO3FI48fb7EJmpn0t61b4/M466ywGDBjAN998wxdffME2ea4RTZ06lT///DPaE7qk0bKllcu57jr7N9Wq1X+LQO+/v+0yfPBBOOKIsicWLWpwtYeI/B3cVgKtc++LyH/yvTjnyo+997Ytyz/9ZDttNm+2NVmrV1t5CVdy48ZBz56Qk2M/y5wcexzVAKtixYpUqlQJgHXr1rE52KtetWpVDjzwwP+9pm3btixevDiak4Y0fjxcc43lGVq71r5ec010A6y5c+eyceNGDjnkEMBmtKoGZQg2bdrEgAEDuPXWW6M5mUtKFSvCkCEwebJtzClLEegwiq0tGE++INS51PL++/Z13Tq46ir49lvruC66yKrPV6hQ9PvL04L2Pn1g5szC3//ZZ/ZzzK9SJVvjVpA2beCuu4qOq3r16vwTbHv66aefOOqoo5g3bx633XYbl1xyyb9eu2LFCtq2bcu7777LTjtFmyv6gAP+e+yUU+Dii6F5c/tbyVvn7c8/rUrA4sXw229w0kn/fu+kScWfM/d7f/nllxkzZgwVK1ZkwYIFHHzwwQwfPpzMzExGjhzJ5s2b6du3779+Vi59rVlj/dXIkbbm6rHHYP58G9AvWgSNGlnW9jDF50uzoN0554p00EFQpYoVUj3qKFi61LK5f/EFDBiQ6OhSS0EDq6KOl0bDhg2ZNWsW8+bN47HHHuPXPNd0N27cyGmnncZll10W+cCqON99B7Vq/ftYrVoQXLUss40bN/Lxxx9z++238+WXXzJ//nweffRRlixZwnPPPUevXr2iOZFLCVWq2IeS99+3ShSdOtnOwihnjYst3Oycc0W5805L2jdkiM0mvP02PPWUfSIcPNiKQbviZ5iaNLFOPb/GjcPN0pTE9ttvT8uWLfn44485KZgS6tmzJ02bNqVPnz7RnixQ1PfQrBnccIPVssz1wQd22QZsi3xZfgYNGjSgTZs2/xs0HnfccXz22Wdst912zJs3j1122QWwxf277LIL8+bNK/3JXMrILQK9/faWfiGv1attJivM7FVBfObKOVcm8+ZZ/cGnnrLLO5Ur23+G223nuwlLYtgwCJYB/U/VqnY8CosXL2bNmjUA/Pnnn3zyySfstttuAFx77bX89ddf3FXcCDBGrrkGzj3XBlQbNtjXc8+141HYa6+9WLFiBbn1H99//32aN2/OUUcdxdKlS1m4cCELFy6katWqPrAqZ2rWLHzdVVnSzfjMlXOuTFq3tun1gQO3rIv56SfbRdikSUJDSym5n5BLs+4jjG+++YZ+/fohIqgq/fv3p1WrVixevJhhw4ax++6707ZtWwAuvfRSzjvvvGhOHMJpp9nXXr2sPlyzZva95x4vq8zMTG6//Xa6dOmCqtKuXTvOP//8aBp3Ka9Ro4JnjRs1Kn2bMVvQLiIPA12BZaraMsx7fEG7c6lnzhybXh861PLIfPcd9O5tleqvv77o95anBe3OueSUu1M37wxW1aowenTxH24SsaD9UeDwGLbvnEsCLVtaPa/XXoPddoMLL4Tzz7ecMs45l+y6dbOBVOPGlt+qceNwA6uixOyyoKp+JCJNYtW+cy55ZGfD668nOgrnnCudbt2iuwQPvqDdOeeccy5SCR9ciUhPEZkqIlNzd3I455xzzqWqhA+uVHW0qmarana9evUSHY5zzjnnXJkkfHDlnHPOOZdOYja4EpHxwBRgNxFZLCLnxupczjnnnHPJIpa7BSNK/+acc845lzr8sqBzzjnnXIR8cOWcc845F6GYlb8pDRFZDuQAtYC/8j2d/9iOwII4hRblOQv63sp6zuLaLOz5wo7nP2dJYy6psD/XKOLIbSOKn2uY1+V9LszPNeyxsKL6d1KSGAo7Z0FtNFbVtNgm7P1Xqc8Z6/4rzDnKKsr+JGwbUZ0z7M8/7P8LUfZhUf47CRtDUecM34epatLdgNHFHQNWJSCuMp+zoO+trOcsrs3Cni/i+KqStB+vn2sUceS2EcXPNczr8j4X5uca9ljUP9sof/aFnTPWf0fJcvP+q2TnjHX/VZq4Y/GzjbL/ivKcYX/+Yf9fiLIPi/LfSQn680LPWZLvI1kvC74W8lgqisX3UVybhT0fNpZk+dlHEUdJ2oji51PS55L1bz/eP/tUlqy/wyikYv9V0tfGSiL+DYV5fdQ//2T9+4/rzz+pLguWhIisUtVqfs7UP2d5+B79nC6v8vJ78XOmzznLw/cY5TmTdeYqjBf9nGlzzvLwPfo5XV7l5ffi50yfc5aH7zGyc6bszJVzzjnnXDJK5Zkr55xzzrmkk3KDKxH5XkQ2i8jaOJ2vvYj8KSLrRGStiLwQj/MG564gIqtF5Nc4ne/l4HtcKyI5IlIrBuco8PcnIs/l+Rl/HvE5a4nIPyKyJmh/UnB8gYisD459LyJVIjxn46Ds07rgdn6e514VERWRXct4jv/8LEXki+B8a0RkiYg0Do5XEZF5wfe6TkQmlvKcBf57EJFJIrIpOO8aEbk+z3tOFJGVef62Iv+7ShXx7r+CcyakD0vH/is4T1z7sET0X0H7adeHxbP/SrnBFXA3cEYcz7cOuERVK2H5L44WkaPjdO7ngWXxOJGItAOOAuqramXsb2NEDE71n9+fiPQFDgLqBufuEfE5/wZ2VtUqQG0gW6zW5SNAJaBK8HVshOd8D3g3+LupA7wN9o8b6AhsiuAcBf1beBGoGXyvi4BnguO3ARWCn+/2wMEism8pzlnUv4c3VbVKcBsCICKVgCeBc4JztwRWl+K86SLe/Rckrg9Lx/4L4t+HJaL/gvTsw+LWf6Xc4EpV78V+4PE631eq+lRw/xfgd6B5rM8rItlAZ+yPL14EqB38QVUE5kV9gkJ+f5cDw1V1ZfCauRGfU1U199NzVezvXlV1SPCcAjOARlGcT0QaAo0JOlhVXaWqOcHTLwIXRXGegn6WqjpcVdcFDycB2+Y+BVQKfre1gc3AklKcs6T/Hq4AflHV54L3zFPVDSU9b7qId/8VnDPufVi69l8Q/z4s3v0XpG8fFs/+K+UGV4kUjJLrYSPZWHsZ6IX9AcWcqk4DXgF+BNYAq1V1eDzODdQFjgqmvleISPeoTxBcolgD/AbMUtWH8zxXBTgUGB/R6Tpin5B+CC6LfCsi9URkGLA89x9qHJwNTAjuDwxiWgP8ADyjqvPL0ngB/x6OCKbUvxeRJsGxPYPX/hb8LN4oyzld2cSxD3uZ8tN/QYz7sDj3X1AO+rBY918+uApJRLYF3gJGqOrPMT7XDcAKVR0Xy/PkO2cT4ECgGVANqCwi98fr9NgnkRpAH2CMiEiUJ1DVDcE0cxNgNxE5Ls/TM4DvVPW+iE5XEfsZ3qSqVbHO4A2gN3BMROcokoi8jf3HdklwqHvwuBrQAvg/Edm/DO3n//dwCXZ5ojp2Kejt4KVZQEOss24I7Cci/Ut7Xld68erDymH/BTHuw+Lcf0Ga92Fx6b80otTy8bwB+wJr43i+KtgnhlfidL7JwMbgtgmbDp0f43OOwP6B5j5+EJgTj98fsBzom+fxBmD3GH6v7wGvBfffB34BMiNsvxWwMc/jS4A/sI4h9/eqwddWUf4sg2NjgJXA1nmOzQZG5Xn8PXBnKc9Z5L+HvDEBI4F5eZ57F3g9Vr/bVLjFu/8K8zuL+Fxp3X8V9DuMZx8W6/4raDdt+7B49V8+c1WM4NPHHOAnVT02HudU1Y6qmqWqWUA/YJmq7hTj034NNBaRrYPvuQvwTYzPmett4DgAETkU+xT4XVSNi8jueXac1Aaygeki8mhwv7mqRrE4EwBVnQ2sEpHDg0MnY/9AM/L8XjcF550d1XkBROQa4ExgL1X9Pc9TP2G/U0SkHrae4pNStF/gvwcR2SPPy/oDuWtE7gS2D/6uKmHT7FNLel5XevHuw8ph/wUx7MPi3X9B+vZhce2/YjGyjuUNqzqf+2loI/BIjM93UXCuNXlu18fx++0D/Bqnc03CrmmvBeYDNeLx+8OmeecH510NXB7xOU8M2l0TnOO94LhinzBzf6/vRXjO/wNWBe3+AjTJ9/xGYNcY/CzXB/dzv6evg9dui3VOa4Pfcalmjwr795Dn97cGWArskec99wfPrQU+j8ffcrLe4t1/FfU7i9P3m1b9V2G/w1j2YYnov4L2064Pi2f/5RnanXPOOeci5JcFnXPOOeci5IMr55xzzrkI+eDKOeeccy5CPrhyzjnnnIuQD66cc8455yLkgysXmlgV9BF5HvcXkcERtT1YRH4WkZkiMldETouiXeecA++/XHz54MqVxDrgBBGpG6P271TVNsCxwIMiUiFG53HOlT/ef7m48cGVK4mNwGigb/4nRORRETkpz+N/gq8HiMiHIvKKiMwXkeEi0k1EvhCR2SKyc/62VPUHLGle7aCNASLypYjMCuqWISJNgmKi40TkGxF5XkSqBs8NDz49zhKR22Pxg3DOpRzvv1zc+ODKldR9QDcRqVWC9+wBXIgVVT0Ty+rbHqsf1Sv/i0WkLfCDqi4LSkk0BdoDbYB2IrJf8NLdgPtVtRnwN3CxiGwNHA+0UNXWwNBSfI/OufTk/ZeLCx9cuRJR1b+Bx4HLSvC2L1X1F1VdB/zIlorjs7Eq77n6isjXwOfAsODYocFtBjAd2B3rrMDqQ30a3H8SK7j5F1amYKyInIB9gnTOOe+/XNz44MqVxl3AuVg9rVwbCf6eRCQDqJjnuXV57m/O83gzkJXnuTtVtQVWS2usiFTGCqDerKptgtsuqjo2eH3+2k2qqhuxT4nPA12BiaX7Fp1zaeouvP9yMeaDK1diqvoH8CzWQeVaCLQL7h8DlHoxp6q+ilUe7w68BZwjItUBRGQHEdkmeGkjEekQ3D8d+CR4XS1VfRNbW7EHzjkX8P7LxUNW8S9xrkAjgEvzPH4IeEVEvsI+ba0qY/tDgKewdQ7NgCkiAvAPcAZWSf074BIReRiYCzwA1AriyP3UeHkZ43DOpR/vv1xMiWr+mUnnkp+INAFeV9WWiY7FOedKwvuv9OeXBZ1zzjnnIuQzV84555xzEfKZK+ecc865CPngyjnnnHMuQj64cs4555yLkA+unHPOOeci5IMr55xzzrkI+eDKOeeccy5C/w9+6LIHNN/VfAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for bm in unique_bms:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " unique_labels = tmpdf[\"Label\"].unique()\n", - " num_labels = len(unique_labels)\n", " \n", - " flag = ('find_all' in bm) or ('multi_insert' in bm)\n", - " if (flag):\n", - " plot_insert(bm, tmpdf, \"NumReps\", unique_labels, flag)\n", - " else:\n", - " plot_insert(bm, tmpdf, \"Occupancy\", unique_labels)" + " flag = \"find_all\" in bm\n", + " if flag:\n", + " plot_perf(bm, tmpdf, \"NumReps\", unique_labels, flag)" ] } ], diff --git a/benchmarks/analysis/notebooks/Utils.py b/benchmarks/analysis/notebooks/Utils.py index 619ec052c..8c5173187 100644 --- a/benchmarks/analysis/notebooks/Utils.py +++ b/benchmarks/analysis/notebooks/Utils.py @@ -7,20 +7,25 @@ colors = ['b','r','g','m','y','c'] styles = ['o','s','v','^','D',">"] -def plot_insert(bm, df, xaxis, unique_labels, flag = False): +def plot_perf(bm, df, xaxis, unique_labels, is_multivalue = False, is_singletype = False): fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) fig.suptitle(bm) marker_handles = [] + # Frist sub-figure shows performance (#ops/s) ax1.set_xlabel(xaxis) ax1.set_ylabel('Performance (number of operations per second)') + # Second sub-figure shows bandwidth ax2.set_xlabel(xaxis) ax2.set_ylabel('Bandwidth (GB/s)') + # Custom x-axis for multi-value test cases: + # - power-of-two ticks + # - log-scale lax = [ax1, ax2] - if flag: + if is_multivalue: lnum = list(df[xaxis]) for item in lax: @@ -28,8 +33,12 @@ def plot_insert(bm, df, xaxis, unique_labels, flag = False): item.set_xticks(lnum) item.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter()) - num_dist = len(df["Distribution"].unique()) + if not is_singletype: + num_style = len(df["Distribution"].unique()) + else: + num_style = len(df["CGSize"].unique()) + # Iterate over labels and label indices for lindex, lbl in enumerate(unique_labels): tmpdf = df.loc[df['Label'] == lbl] @@ -37,30 +46,30 @@ def plot_insert(bm, df, xaxis, unique_labels, flag = False): perf = tmpdf["Elem/s (elem/sec)"] bw = tmpdf['Bandwidth (GB/s)'] - # Get distribution & type index - did = lindex % num_dist - tid = int(lindex / num_dist) + # Get style & type index + sid = lindex % num_style + tid = int(lindex / num_style) - if not tid: - ax1.plot(x, perf, color=colors[did]) - ax1.scatter(x, perf, color=colors[did], marker=styles[did]) + if (not tid) or is_singletype: + ax1.plot(x, perf, color=colors[sid]) + ax1.scatter(x, perf, color=colors[sid], marker=styles[sid]) - ax2.plot(x, bw, color=colors[did]) - ax2.scatter(x, bw, color=colors[did], marker=styles[did]) + ax2.plot(x, bw, color=colors[sid]) + ax2.scatter(x, bw, color=colors[sid], marker=styles[sid]) # Add legend - marker_handles.append(ax1.plot([], [], c=colors[did], marker=styles[did], \ + marker_handles.append(ax1.plot([], [], c=colors[sid], marker=styles[sid], \ label=lbl)[0]) else: - ax1.plot(x, perf, color=colors[did], linestyle="--") - ax1.scatter(x, perf, color=colors[did], marker=styles[did], facecolors='none') + ax1.plot(x, perf, color=colors[sid], linestyle="--") + ax1.scatter(x, perf, color=colors[sid], marker=styles[sid], facecolors='none') - ax2.plot(x, bw, color=colors[did], linestyle="--") - ax2.scatter(x, bw, color=colors[did], marker=styles[did], facecolors='none') + ax2.plot(x, bw, color=colors[sid], linestyle="--") + ax2.scatter(x, bw, color=colors[sid], marker=styles[sid], facecolors='none') # Add legend - marker_handles.append(ax1.plot([], [], c=colors[did], marker=styles[did], \ + marker_handles.append(ax1.plot([], [], c=colors[sid], marker=styles[sid], \ mfc='none', linestyle="--", label=lbl)[0]) leg = plt.legend(handles = marker_handles, loc="lower left", ncol=2, frameon=False) - plt.savefig(bm+'.eps') + plt.savefig(bm+'.eps') \ No newline at end of file From 59c234245644b464e3b28860e4d77ba4fc1d54b9 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 29 Mar 2021 09:22:46 -0700 Subject: [PATCH 045/267] Use per block output cache instead of global atomic writing --- .../cuco/detail/static_multimap_kernels.cuh | 165 ++++++++++++++---- 1 file changed, 135 insertions(+), 30 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 7b4ea2bd7..ca8bf59fd 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -20,6 +20,34 @@ namespace cuco { namespace detail { namespace cg = cooperative_groups; +/** + * @brief Flushes shared memory buffer into the output sequence. + * + * @tparam Key key type + * @tparam Value value type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param output_size Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_items Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ +template +__inline__ __device__ void flush_output_buffer(size_t output_size, + cuco::pair_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) +{ + __shared__ size_t offset; + if (threadIdx.x == 0) { offset = (*num_items += output_size); } + __syncthreads(); + + for (auto index = threadIdx.x; index < output_size; index += blockDim.x) { + *(output_begin + offset + index) = output_buffer[index]; + } +} + /** * @brief Initializes each slot in the flat `slots` storage to contain `k` and `v`. * @@ -401,22 +429,57 @@ __global__ void find_all(InputIt first, auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid; - while (first + key_idx < last) { - auto key = *(first + key_idx); - auto found = view.find_all(key, hash, key_equal); - size_t count = 0; - - while (found != view.end()) { - size_t index = (*num_items)++; - *(output_begin + index) = cuco::make_pair(key, (*found).second); - ++found; - ++count; - } - if (count == 0) { - size_t index = (*num_items)++; - *(output_begin + index) = cuco::make_pair(key, view.get_empty_value_sentinel()); - } - key_idx += gridDim.x * blockDim.x; + constexpr uint32_t step = 1; + constexpr uint32_t buffer_size = block_size * 16; + auto const end = view.end(); + + __shared__ cuco::pair_type output_buffer[buffer_size]; + __shared__ uint32_t block_counter; // TODO: do we really need uint32_t? + + if (0 == threadIdx.x) { block_counter = 0; } + + if (first + key_idx < last) { + auto key = *(first + key_idx); + auto found = view.find_all(key, hash, key_equal); + + bool running = true; + bool found_match = false; + + while (__syncthreads_or(running)) { + if (running) { + if (found == end) { + running = false; + } else { + found_match = true; + + auto index = atomicAdd_block(&block_counter, step); + output_buffer[index] = cuco::make_pair(key, (*found).second); + + ++found; + } + + if ((not running) && (not found_match)) { + auto index = atomicAdd_block(&block_counter, step); + output_buffer[index] = cuco::make_pair(key, view.get_empty_value_sentinel()); + } + } // if (running) + + __syncthreads(); + + if ((block_counter + block_size) > buffer_size) { + flush_output_buffer( + block_counter, output_buffer, num_items, output_begin); + __syncthreads(); + if (0 == threadIdx.x) { block_counter = 0; } + __syncthreads(); + } + } // while syncthreads_or + } + + // Final flush of output cache + if (block_counter > 0) { + flush_output_buffer( + block_counter, output_buffer, num_items, output_begin); } } @@ -451,6 +514,7 @@ __global__ void find_all(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ + template output_buffer[buffer_size]; + __shared__ uint32_t block_counter; // TODO: do we really need uint32_t? + + if (0 == threadIdx.x) { block_counter = 0; } + + if (first + key_idx < last) { auto key = *(first + key_idx); auto found = view.find_all(tile, key, hash, key_equal); - if (tile.thread_rank() == 0) { - size_t count = 0; - while (found != view.end()) { - size_t index = (*num_items)++; - *(output_begin + index) = cuco::make_pair(key, (*found).second); - ++found; - ++count; - } - if (count == 0) { - size_t index = (*num_items)++; - *(output_begin + index) = cuco::make_pair(key, view.get_empty_value_sentinel()); + bool running = true; + bool found_match = false; + + // Loop over all matches for each key + while (__syncthreads_or(running)) { + if (running) { + if (found == end) { + running = false; + } else { + found_match = true; + + // First lane of each CG performs scalar retrieval + if (tile.thread_rank() == 0) { + auto index = atomicAdd_block(&block_counter, step); + output_buffer[index] = cuco::make_pair(key, (*found).second); + + ++found; + } + // Stall other lanes + else { + running = false; + } + } + + if ((not running) && (not found_match) && (tile.thread_rank() == 0)) { + auto index = atomicAdd_block(&block_counter, step); + output_buffer[index] = cuco::make_pair(key, view.get_empty_value_sentinel()); + } + } // if (running) + + __syncthreads(); + + if ((block_counter + block_size / tile_size) > buffer_size) { + flush_output_buffer( + block_counter, output_buffer, num_items, output_begin); + __syncthreads(); + if (0 == threadIdx.x) { block_counter = 0; } + __syncthreads(); } - } - key_idx += (gridDim.x * blockDim.x) / tile_size; + } // while sync_or + } + + // Final flush of output cache + if (block_counter > 0) { + flush_output_buffer( + block_counter, output_buffer, num_items, output_begin); } } From 8d8ab41f727892fc73d4e3615168a4892d382efd Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 29 Mar 2021 10:28:36 -0700 Subject: [PATCH 046/267] Pass output buffer size as template parameter --- include/cuco/detail/static_multimap.inl | 15 ++++++++------- include/cuco/detail/static_multimap_kernels.cuh | 14 ++++++++------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index b25621a3a..891a94105 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -109,12 +109,13 @@ template OutputIt static_multimap::find_all( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const tile_size = 4; - auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const buffer_size = block_size * 16; + auto const stride = 1; + auto const tile_size = 4; + auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); atomic_ctr_type* num_items; CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); @@ -123,7 +124,7 @@ OutputIt static_multimap::find_all( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::find_all + detail::find_all <<>>(first, last, output_begin, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); return output_begin + *num_items; diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index ca8bf59fd..7214e35b1 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -391,6 +391,7 @@ __global__ void contains( * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block + * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -410,6 +411,7 @@ __global__ void contains( * @param key_equal The binary function to compare two keys for equality */ template output_buffer[buffer_size]; __shared__ uint32_t block_counter; // TODO: do we really need uint32_t? @@ -496,6 +497,7 @@ __global__ void find_all(InputIt first, * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts + * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -517,6 +519,7 @@ __global__ void find_all(InputIt first, template output_buffer[buffer_size]; __shared__ uint32_t block_counter; // TODO: do we really need uint32_t? From cc1e862e06ac0dab2aa5dea09514945f946ed152 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 29 Mar 2021 12:40:03 -0700 Subject: [PATCH 047/267] Create a folder for static multimap benchmarks + add find_all-specific benchmark --- benchmarks/CMakeLists.txt | 6 +- .../static_multimap/find_all_bench.cu | 145 ++++++++++++++++++ .../static_multimap_bench.cu | 9 +- 3 files changed, 155 insertions(+), 5 deletions(-) create mode 100644 benchmarks/hash_table/static_multimap/find_all_bench.cu rename benchmarks/hash_table/{ => static_multimap}/static_multimap_bench.cu (98%) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 93fd87f38..24e60de9b 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -89,9 +89,13 @@ set(STATIC_MAP_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_map_benc ConfigureBench(STATIC_MAP_BENCH "${STATIC_MAP_BENCH_SRC}") ################################################################################################### -set(STATIC_MULTIMAP_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_multimap_bench.cu") +set(STATIC_MULTIMAP_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_multimap/static_multimap_bench.cu") ConfigureNVBench(STATIC_MULTIMAP_BENCH "${STATIC_MULTIMAP_BENCH_SRC}") +################################################################################################### +set(FIND_ALL_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_multimap/find_all_bench.cu") +ConfigureNVBench(FIND_ALL_BENCH "${FIND_ALL_BENCH_SRC}") + ################################################################################################### set(RBK_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/reduce_by_key/reduce_by_key.cu") ConfigureBench(RBK_BENCH "${RBK_BENCH_SRC}") diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu new file mode 100644 index 000000000..29db8fe98 --- /dev/null +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include +#include + +#include "cuco/static_multimap.cuh" + +/** + * @brief Generates input keys by a given number of repetitions per key. + * + */ +template +static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_t const num_reps) +{ + auto num_keys = std::distance(output_begin, output_end); + + std::random_device rd; + std::mt19937 gen{rd()}; + + std::uniform_int_distribution distribution{1, static_cast(num_keys / num_reps)}; + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = distribution(gen); + } +} + +/** + * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions + * per key: + * - 100'000'000 keys are inserted + * - Map occupancy is fixed at 0.3 + * - CG size is fixed at 4 + * - Number of repetitions per key: 1, ... , 128, 256 + * + */ +template +void nvbench_find_all( + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) +{ + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + std::size_t const num_reps = state.get_int64("NumReps"); + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + + generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = val; + + h_keys[i] = i; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_results(2 * num_keys); + thrust::device_vector> d_pairs(h_pairs); + + state.add_element_count(num_keys, "NumKeys"); + state.add_global_memory_writes(num_keys * 2); + + state.exec( + nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); + + auto view = map.get_device_view(); + + auto const block_size = 128; + auto const buffer_size = block_size * BufferSize; + auto const stride = 1; + auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); + + using Hash = cuco::detail::MurmurHash3_32; + using KeyEqual = thrust::equal_to; + + Hash hash; + KeyEqual key_equal; + + using atomic_ctr_type = typename cuco::static_multimap::atomic_ctr_type; + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + // Use timers to explicitly mark the target region + timer.start(); + cuco::detail::find_all + <<>>( + d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + timer.stop(); + }); +} + +using key_type = nvbench::type_list; +using value_type = nvbench::type_list; +using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; +using buffer_size = nvbench::enum_type_list<1, 2, 4, 8, 16>; + +NVBENCH_BENCH_TYPES(nvbench_find_all, + NVBENCH_TYPE_AXES(key_type, value_type, cg_size, nvbench::enum_type_list<16>)) + .set_type_axes_names({"Key", "Value", "CGSize", "BufferSize"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.4}) + .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + +NVBENCH_BENCH_TYPES( + nvbench_find_all, + NVBENCH_TYPE_AXES(key_type, value_type, nvbench::enum_type_list<8>, buffer_size)) + .set_type_axes_names({"Key", "Value", "CGSize", "BufferSize"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.4}) + .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); diff --git a/benchmarks/hash_table/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu similarity index 98% rename from benchmarks/hash_table/static_multimap_bench.cu rename to benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 15570770d..f813f9615 100644 --- a/benchmarks/hash_table/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -326,9 +326,10 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< auto view = map.get_device_view(); - auto const block_size = 128; - auto const stride = 1; - auto const tile_size = 4; + auto const block_size = 128; + auto const buffer_size = block_size * 16; + auto const stride = 1; + auto const tile_size = 4; auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); @@ -348,7 +349,7 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< // Use timers to explicitly mark the target region timer.start(); - cuco::detail::find_all + cuco::detail::find_all <<>>( d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); From a5a33746fc2c62de594cae5789cde57b6f12659c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 29 Mar 2021 15:36:35 -0700 Subject: [PATCH 048/267] Fix memory leak bugs --- .../hash_table/static_multimap/find_all_bench.cu | 2 ++ .../static_multimap/static_multimap_bench.cu | 2 ++ include/cuco/detail/static_multimap.inl | 12 ++++++++++-- include/cuco/detail/static_multimap_kernels.cuh | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 29db8fe98..7a19f137e 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -117,6 +117,8 @@ void nvbench_find_all( d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); timer.stop(); + + CUCO_CUDA_TRY(cudaFree(num_items)); }); } diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index f813f9615..7f381e2a3 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -354,6 +354,8 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); timer.stop(); + + CUCO_CUDA_TRY(cudaFree(num_items)); }); } diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 891a94105..41baac2ce 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -127,7 +127,11 @@ OutputIt static_multimap::find_all( detail::find_all <<>>(first, last, output_begin, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - return output_begin + *num_items; + + auto output_end = output_begin + *num_items; + CUCO_CUDA_TRY(cudaFree(num_items)); + + return output_end; } template @@ -154,7 +158,11 @@ std::size_t static_multimap::count(InputIt first, detail::count <<>>(first, last, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - return *num_items; + + size_t result = *num_items; + CUCO_CUDA_TRY(cudaFree(num_items)); + + return result; } template diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 7214e35b1..c7147bb4c 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -34,7 +34,7 @@ namespace cg = cooperative_groups; * @param output_begin Beginning of the output sequence of key/value pairs */ template -__inline__ __device__ void flush_output_buffer(size_t output_size, +__inline__ __device__ void flush_output_buffer(uint32_t output_size, cuco::pair_type* output_buffer, atomicT* num_items, OutputIt output_begin) From 07b25ffc983493fee1a1e4b6120ee5cd76475b47 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 30 Mar 2021 16:25:37 -0700 Subject: [PATCH 049/267] Fix the illegal memory access bug related to cache flushing --- include/cuco/detail/static_multimap_kernels.cuh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index c7147bb4c..4c5922569 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -40,7 +40,9 @@ __inline__ __device__ void flush_output_buffer(uint32_t output_size, OutputIt output_begin) { __shared__ size_t offset; - if (threadIdx.x == 0) { offset = (*num_items += output_size); } + if (threadIdx.x == 0) { + offset = num_items->fetch_add(output_size, cuda::std::memory_order_relaxed); + } __syncthreads(); for (auto index = threadIdx.x; index < output_size; index += blockDim.x) { From d8244e92a299006644539d0bc4e7d4dfb24f530a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 6 Apr 2021 10:46:34 -0700 Subject: [PATCH 050/267] Parallel retrieval in find_all --- .../cuco/detail/static_multimap_kernels.cuh | 80 ++++++++----------- include/cuco/static_multimap.cuh | 2 +- 2 files changed, 34 insertions(+), 48 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 4c5922569..04e71bb7a 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -543,63 +543,49 @@ __global__ void find_all(InputIt first, auto key_idx = tid / tile_size; constexpr uint32_t step = 1; - auto const end = view.end(); - __shared__ cuco::pair_type output_buffer[buffer_size]; - __shared__ uint32_t block_counter; // TODO: do we really need uint32_t? - - if (0 == threadIdx.x) { block_counter = 0; } + const int lane_id = tile.thread_rank(); - if (first + key_idx < last) { - auto key = *(first + key_idx); - auto found = view.find_all(tile, key, hash, key_equal); + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key, hash); bool running = true; bool found_match = false; - // Loop over all matches for each key - while (__syncthreads_or(running)) { - if (running) { - if (found == end) { - running = false; - } else { - found_match = true; - - // First lane of each CG performs scalar retrieval - if (tile.thread_rank() == 0) { - auto index = atomicAdd_block(&block_counter, step); - output_buffer[index] = cuco::make_pair(key, (*found).second); - - ++found; - } - // Stall other lanes - else { - running = false; - } + while (tile.any(running)) { + auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + auto existing_value = current_slot->second.load(cuda::std::memory_order_relaxed); + auto const slot_is_empty = (existing_key == view.get_empty_key_sentinel()); + auto const equals = key_equal(existing_key, key); + auto const exists = tile.ballot(not slot_is_empty and equals); + + if (exists) { + found_match = true; + auto num_matches = __popc(exists); + uint32_t output_idx; + if (0 == lane_id) { + output_idx = num_items->fetch_add(num_matches, cuda::std::memory_order_relaxed); } - - if ((not running) && (not found_match) && (tile.thread_rank() == 0)) { - auto index = atomicAdd_block(&block_counter, step); - output_buffer[index] = cuco::make_pair(key, view.get_empty_value_sentinel()); + output_idx = tile.shfl(output_idx, 0); + if (equals) { + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + Key k = key; + *(output_begin + output_idx + lane_offset) = + cuco::make_pair(std::move(k), std::move(existing_value)); + } + } else if (tile.any(slot_is_empty)) { + running = false; + if ((not found_match) && (lane_id == 0)) { + auto output_idx = num_items->fetch_add(step, cuda::std::memory_order_relaxed); + *(output_begin + output_idx) = + cuco::make_pair(key, view.get_empty_key_sentinel()); } - } // if (running) - - __syncthreads(); - - if ((block_counter + block_size / tile_size) > buffer_size) { - flush_output_buffer( - block_counter, output_buffer, num_items, output_begin); - __syncthreads(); - if (0 == threadIdx.x) { block_counter = 0; } - __syncthreads(); } - } // while sync_or - } + current_slot = view.next_slot(tile, current_slot); + } - // Final flush of output cache - if (block_counter > 0) { - flush_output_buffer( - block_counter, output_buffer, num_items, output_begin); + key_idx += (gridDim.x * blockDim.x) / tile_size; } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 85dbed1e8..120557d13 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -306,7 +306,7 @@ class static_multimap { Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial Value of empty slot - protected: + public: __host__ __device__ device_view_base(pair_atomic_type* slots, std::size_t capacity, Key empty_key_sentinel, From 161f77d7fe56cfac9b57b732ad1858cde0b6d5e9 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 7 Apr 2021 08:55:03 -0700 Subject: [PATCH 051/267] Use reinterpret_cast instead of atomic loads (temporary unsafe solution) --- include/cuco/detail/static_multimap_kernels.cuh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 04e71bb7a..146cac23d 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -554,10 +554,14 @@ __global__ void find_all(InputIt first, bool found_match = false; while (tile.any(running)) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - auto existing_value = current_slot->second.load(cuda::std::memory_order_relaxed); - auto const slot_is_empty = (existing_key == view.get_empty_key_sentinel()); - auto const equals = key_equal(existing_key, key); + // TODO: Replace reinterpret_cast with atomic ref when it's available. The current + // implementation is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + pair slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); + auto const equals = key_equal(slot_contents.first, key); auto const exists = tile.ballot(not slot_is_empty and equals); if (exists) { @@ -572,7 +576,7 @@ __global__ void find_all(InputIt first, auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); Key k = key; *(output_begin + output_idx + lane_offset) = - cuco::make_pair(std::move(k), std::move(existing_value)); + cuco::make_pair(std::move(k), std::move(slot_contents.second)); } } else if (tile.any(slot_is_empty)) { running = false; @@ -583,8 +587,7 @@ __global__ void find_all(InputIt first, } } current_slot = view.next_slot(tile, current_slot); - } - + } // while running key_idx += (gridDim.x * blockDim.x) / tile_size; } } From 1f79fbedef79fc57543d44bbe7e3c8b3858c58ea Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 8 Apr 2021 08:35:00 -0700 Subject: [PATCH 052/267] Fix a bug: guard key_equal invocation against the empty key sentinel --- include/cuco/detail/static_multimap_kernels.cuh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 146cac23d..bf6bc6a05 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -561,8 +561,9 @@ __global__ void find_all(InputIt first, pair slot_contents = *reinterpret_cast const*>(current_slot); auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const equals = key_equal(slot_contents.first, key); - auto const exists = tile.ballot(not slot_is_empty and equals); + auto equals = false; + if (not slot_is_empty and key_equal(slot_contents.first, key)) { equals = true; } + auto const exists = tile.ballot(not slot_is_empty and equals); if (exists) { found_match = true; From a3bfca335b3da77878ca438a68b2210a4f1faf44 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 8 Apr 2021 13:52:30 -0700 Subject: [PATCH 053/267] Add compute_prime function for double hashing --- include/cuco/detail/prime.cuh | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 include/cuco/detail/prime.cuh diff --git a/include/cuco/detail/prime.cuh b/include/cuco/detail/prime.cuh new file mode 100644 index 000000000..01cbeba95 --- /dev/null +++ b/include/cuco/detail/prime.cuh @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +namespace cuco { +namespace detail { + +constexpr bool is_prime(std::size_t num) noexcept +{ + bool flag = true; + // 0 and 1 are not prime numbers + if (num == 0 || num == 1) { + flag = false; + } else { + for (auto i = 2; i <= num / 2; ++i) { + if (num % i == 0) { + flag = false; + break; + } + } + } + return flag; +} + +/** + * @brief Computes the smallest prime number greater than or equal to `num`. + * + * @param num + * @return The smallest prime number greater than or equal to `num`. + */ +constexpr std::size_t compute_prime(std::size_t num) noexcept +{ + while (not is_prime(num)) { + num++; + } + return num; +} + +} // namespace detail + +} // namespace cuco From 2db4cb86f402f978cd4a6be94d743afa5611ce24 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 8 Apr 2021 14:06:38 -0700 Subject: [PATCH 054/267] Use double hashing in multimap instead of linear probing --- include/cuco/detail/static_multimap.inl | 281 ++++++++++++------ .../cuco/detail/static_multimap_kernels.cuh | 6 +- include/cuco/static_multimap.cuh | 9 +- 3 files changed, 194 insertions(+), 102 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 41baac2ce..5f773dbb8 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -26,17 +26,22 @@ enum class insert_result { DUPLICATE ///< Insert did not succeed, key is already present }; -template -static_multimap::static_multimap(std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel, - Allocator const& alloc) - : capacity_{capacity}, - empty_key_sentinel_{empty_key_sentinel}, +template +static_multimap::static_multimap(std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel, + Allocator const& alloc) + : empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, slot_allocator_{alloc} { - slots_ = std::allocator_traits::allocate(slot_allocator_, capacity); + auto min_prime = cuco::detail::compute_prime(capacity / CGSize); + this->capacity_ = min_prime * CGSize; + slots_ = std::allocator_traits::allocate(slot_allocator_, capacity); auto constexpr block_size = 256; auto constexpr stride = 4; @@ -45,76 +50,92 @@ static_multimap::static_multimap(std::size_t capac <<>>(slots_, empty_key_sentinel, empty_value_sentinel, capacity); } -template -static_multimap::~static_multimap() +template +static_multimap::~static_multimap() { std::allocator_traits::deallocate(slot_allocator_, slots_, capacity_); } -template +template template -void static_multimap::insert(InputIt first, - InputIt last, - Hash hash, - KeyEqual key_equal) +void static_multimap::insert(InputIt first, + InputIt last, + Hash hash, + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const stride = 1; - auto const tile_size = 4; - auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_mutable_view(); - detail::insert + detail::insert <<>>(first, first + num_keys, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } -template +template template -void static_multimap::find( +void static_multimap::find( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const stride = 1; - auto const tile_size = 4; - auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::find + detail::find <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } -template +template template -void static_multimap::contains( +void static_multimap::contains( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const stride = 1; - auto const tile_size = 4; - auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::contains + detail::contains <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } -template +template template -OutputIt static_multimap::find_all( +OutputIt static_multimap::find_all( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const buffer_size = block_size * 16; auto const stride = 1; - auto const tile_size = 4; - auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); atomic_ctr_type* num_items; @@ -124,7 +145,7 @@ OutputIt static_multimap::find_all( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::find_all + detail::find_all <<>>(first, last, output_begin, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -134,18 +155,21 @@ OutputIt static_multimap::find_all( return output_end; } -template +template template -std::size_t static_multimap::count(InputIt first, - InputIt last, - Hash hash, - KeyEqual key_equal) +std::size_t static_multimap::count(InputIt first, + InputIt last, + Hash hash, + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const stride = 1; - auto const tile_size = 4; - auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); atomic_ctr_type* num_items; @@ -155,7 +179,7 @@ std::size_t static_multimap::count(InputIt first, CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::count + detail::count <<>>(first, last, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -165,9 +189,13 @@ std::size_t static_multimap::count(InputIt first, return result; } -template +template template -__device__ void static_multimap::device_mutable_view::insert( +__device__ void static_multimap::device_mutable_view::insert( value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { auto current_slot{initial_slot(insert_pair.first, hash)}; @@ -202,9 +230,13 @@ __device__ void static_multimap::device_mutable_vi } } -template +template template -__device__ void static_multimap::device_mutable_view::insert( +__device__ void static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, insert_pair.first, hash); @@ -267,12 +299,15 @@ __device__ void static_multimap::device_mutable_vi } } -template +template template -__device__ typename static_multimap::device_view::iterator -static_multimap::device_view::find(Key const& k, - Hash hash, - KeyEqual key_equal) noexcept +__device__ typename static_multimap::device_view::iterator +static_multimap::device_view::find( + Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(k, hash); @@ -288,12 +323,16 @@ static_multimap::device_view::find(Key const& k, } } -template +template template -__device__ typename static_multimap::device_view::const_iterator -static_multimap::device_view::find(Key const& k, - Hash hash, - KeyEqual key_equal) const noexcept +__device__ + typename static_multimap::device_view::const_iterator + static_multimap::device_view::find( + Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(k, hash); @@ -309,13 +348,15 @@ static_multimap::device_view::find(Key const& k, } } -template +template template -__device__ typename static_multimap::device_view::iterator -static_multimap::device_view::find(CG g, - Key const& k, - Hash hash, - KeyEqual key_equal) noexcept +__device__ typename static_multimap::device_view::iterator +static_multimap::device_view::find( + CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k, hash); @@ -346,13 +387,16 @@ static_multimap::device_view::find(CG g, } } -template +template template -__device__ typename static_multimap::device_view::const_iterator -static_multimap::device_view::find(CG g, - Key const& k, - Hash hash, - KeyEqual key_equal) const noexcept +__device__ + typename static_multimap::device_view::const_iterator + static_multimap::device_view::find( + CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(g, k, hash); @@ -385,12 +429,16 @@ static_multimap::device_view::find(CG g, } } -template +template template -__device__ typename static_multimap::device_view::fancy_iterator -static_multimap::device_view::find_all(Key const& k, - Hash hash, - KeyEqual key_equal) noexcept +__device__ + typename static_multimap::device_view::fancy_iterator + static_multimap::device_view::find_all( + Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(k, hash); @@ -408,11 +456,16 @@ static_multimap::device_view::find_all(Key const& } } -template +template template -__device__ typename static_multimap::device_view::const_fancy_iterator -static_multimap::device_view::find_all( - Key const& k, Hash hash, KeyEqual key_equal) const noexcept +__device__ + typename static_multimap::device_view::const_fancy_iterator + static_multimap::device_view::find_all( + Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(k, hash); @@ -430,13 +483,16 @@ static_multimap::device_view::find_all( } } -template +template template -__device__ typename static_multimap::device_view::fancy_iterator -static_multimap::device_view::find_all(CG g, - Key const& k, - Hash hash, - KeyEqual key_equal) noexcept +__device__ + typename static_multimap::device_view::fancy_iterator + static_multimap::device_view::find_all( + CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k, hash); @@ -467,11 +523,16 @@ static_multimap::device_view::find_all(CG g, } } -template +template template -__device__ typename static_multimap::device_view::const_fancy_iterator -static_multimap::device_view::find_all( - CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept +__device__ + typename static_multimap::device_view::const_fancy_iterator + static_multimap::device_view::find_all( + CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(g, k, hash); @@ -504,9 +565,13 @@ static_multimap::device_view::find_all( } } -template +template template -__device__ bool static_multimap::device_view::contains( +__device__ bool static_multimap::device_view::contains( Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(k, hash); @@ -522,9 +587,13 @@ __device__ bool static_multimap::device_view::cont } } -template +template template -__device__ bool static_multimap::device_view::contains( +__device__ bool static_multimap::device_view::contains( CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k, hash); @@ -549,9 +618,13 @@ __device__ bool static_multimap::device_view::cont } } -template +template template -__device__ size_t static_multimap::device_view::count( +__device__ size_t static_multimap::device_view::count( Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto found = this->find_all(k, hash, key_equal); @@ -563,9 +636,13 @@ __device__ size_t static_multimap::device_view::co return count; } -template +template template -__device__ size_t static_multimap::device_view::count( +__device__ size_t static_multimap::device_view::count( Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto found = this->find_all(k, hash, key_equal); @@ -577,9 +654,13 @@ __device__ size_t static_multimap::device_view::co return count; } -template +template template -__device__ size_t static_multimap::device_view::count( +__device__ size_t static_multimap::device_view::count( CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto found = this->find_all(g, k, hash, key_equal); @@ -591,9 +672,13 @@ __device__ size_t static_multimap::device_view::co return count; } -template +template template -__device__ size_t static_multimap::device_view::count( +__device__ size_t static_multimap::device_view::count( CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto found = this->find_all(g, k, hash, key_equal); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index bf6bc6a05..f1b3f1968 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -554,8 +554,8 @@ __global__ void find_all(InputIt first, bool found_match = false; while (tile.any(running)) { - // TODO: Replace reinterpret_cast with atomic ref when it's available. The current - // implementation is unsafe! + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation is + // unsafe! static_assert(sizeof(Key) == sizeof(cuda::atomic)); static_assert(sizeof(Value) == sizeof(cuda::atomic)); pair slot_contents = *reinterpret_cast const*>(current_slot); @@ -569,11 +569,13 @@ __global__ void find_all(InputIt first, found_match = true; auto num_matches = __popc(exists); uint32_t output_idx; + // First lane gets the CG-level offset if (0 == lane_id) { output_idx = num_items->fetch_add(num_matches, cuda::std::memory_order_relaxed); } output_idx = tile.shfl(output_idx, 0); if (equals) { + // Each match computes its lane-level offset auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); Key k = key; *(output_begin + output_idx + lane_offset) = diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 120557d13..68ca6686f 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -34,6 +34,7 @@ #include #include #include +#include #include namespace cuco { @@ -106,6 +107,7 @@ namespace cuco { */ template > class static_multimap { @@ -305,6 +307,7 @@ class static_multimap { std::size_t capacity_{}; ///< Total number of slots Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial Value of empty slot + std::size_t step_size_{}; public: __host__ __device__ device_view_base(pair_atomic_type* slots, @@ -375,6 +378,7 @@ class static_multimap { template __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept { + step_size_ = (hash(k) % (capacity_ / g.size() - 1) + 1) * g.size(); return &slots_[(hash(k) + g.thread_rank()) % capacity_]; } @@ -393,6 +397,7 @@ class static_multimap { template __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept { + step_size_ = (hash(k) % (capacity_ / g.size() - 1) + 1) * g.size(); return &slots_[(hash(k) + g.thread_rank()) % capacity_]; } @@ -434,7 +439,7 @@ class static_multimap { __device__ iterator next_slot(CG g, iterator s) noexcept { uint32_t index = s - slots_; - return &slots_[(index + g.size()) % capacity_]; + return &slots_[(index + step_size_) % capacity_]; } /** @@ -452,7 +457,7 @@ class static_multimap { __device__ const_iterator next_slot(CG g, const_iterator s) const noexcept { uint32_t index = s - slots_; - return &slots_[(index + g.size()) % capacity_]; + return &slots_[(index + step_size_) % capacity_]; } public: From 77b952ce2ddb698887fd918be6047dc50a19e339 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 9 Apr 2021 13:25:22 -0700 Subject: [PATCH 055/267] Add per CG shared memory buffer for find_all --- include/cuco/detail/static_multimap.inl | 2 +- .../cuco/detail/static_multimap_kernels.cuh | 64 +++++++++++++------ 2 files changed, 44 insertions(+), 22 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 5f773dbb8..69cbc0c70 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -133,7 +133,7 @@ OutputIt static_multimap::find_all( { auto num_keys = std::distance(first, last); auto const block_size = 128; - auto const buffer_size = block_size * 16; + auto const buffer_size = CGSize * 2; auto const stride = 1; auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index f1b3f1968..78c20251e 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -33,19 +33,24 @@ namespace cg = cooperative_groups; * @param num_items Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ -template -__inline__ __device__ void flush_output_buffer(uint32_t output_size, +template +__inline__ __device__ void flush_output_buffer(CG const& cg, + uint32_t const output_size, cuco::pair_type* output_buffer, atomicT* num_items, OutputIt output_begin) { - __shared__ size_t offset; - if (threadIdx.x == 0) { - offset = num_items->fetch_add(output_size, cuda::std::memory_order_relaxed); - } - __syncthreads(); + std::size_t offset; + const auto lane_id = cg.thread_rank(); + if (0 == lane_id) { offset = num_items->fetch_add(output_size, cuda::std::memory_order_relaxed); } + cg.shfl(offset, 0); - for (auto index = threadIdx.x; index < output_size; index += blockDim.x) { + for (auto index = lane_id; index < output_size; index += cg_size) { *(output_begin + offset + index) = output_buffer[index]; } } @@ -542,9 +547,14 @@ __global__ void find_all(InputIt first, auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - constexpr uint32_t step = 1; + constexpr uint32_t num_cgs = block_size / tile_size; + const uint32_t cg_id = threadIdx.x / tile_size; + const uint32_t lane_id = tile.thread_rank(); + + __shared__ cuco::pair_type output_buffer[num_cgs][buffer_size]; + __shared__ uint32_t cg_counter[num_cgs]; - const int lane_id = tile.thread_rank(); + if (lane_id == 0) { cg_counter[cg_id] = 0; } while (first + key_idx < last) { auto key = *(first + key_idx); @@ -566,33 +576,45 @@ __global__ void find_all(InputIt first, auto const exists = tile.ballot(not slot_is_empty and equals); if (exists) { - found_match = true; - auto num_matches = __popc(exists); - uint32_t output_idx; - // First lane gets the CG-level offset - if (0 == lane_id) { - output_idx = num_items->fetch_add(num_matches, cuda::std::memory_order_relaxed); - } - output_idx = tile.shfl(output_idx, 0); + found_match = true; + auto num_matches = __popc(exists); + uint32_t output_idx = cg_counter[cg_id]; if (equals) { // Each match computes its lane-level offset auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); Key k = key; - *(output_begin + output_idx + lane_offset) = + output_buffer[cg_id][output_idx + lane_offset] = cuco::make_pair(std::move(k), std::move(slot_contents.second)); } + if (0 == lane_id) { cg_counter[cg_id] += num_matches; } } else if (tile.any(slot_is_empty)) { running = false; if ((not found_match) && (lane_id == 0)) { - auto output_idx = num_items->fetch_add(step, cuda::std::memory_order_relaxed); - *(output_begin + output_idx) = + auto output_idx = cg_counter[cg_id]++; + output_buffer[cg_id][output_idx] = cuco::make_pair(key, view.get_empty_key_sentinel()); } } + + tile.sync(); + + // Flush it the next iteration won't fit into buffer + if ((cg_counter[cg_id] + tile_size) > buffer_size) { + flush_output_buffer( + tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { cg_counter[cg_id] = 0; } + } current_slot = view.next_slot(tile, current_slot); } // while running key_idx += (gridDim.x * blockDim.x) / tile_size; } + + // Final flush of output buffer + if (cg_counter[cg_id] > 0) { + flush_output_buffer( + tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + } } /** From 8386d947ef845f24c53a397f5031548806154098 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 12 Apr 2021 11:19:44 -0700 Subject: [PATCH 056/267] Fix a bug: add an offset to hash2 function --- include/cuco/static_multimap.cuh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 68ca6686f..d20034660 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -379,7 +379,7 @@ class static_multimap { __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept { step_size_ = (hash(k) % (capacity_ / g.size() - 1) + 1) * g.size(); - return &slots_[(hash(k) + g.thread_rank()) % capacity_]; + return &slots_[(hash(k + 1) + g.thread_rank()) % capacity_]; } /** @@ -398,7 +398,7 @@ class static_multimap { __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept { step_size_ = (hash(k) % (capacity_ / g.size() - 1) + 1) * g.size(); - return &slots_[(hash(k) + g.thread_rank()) % capacity_]; + return &slots_[(hash(k + 1) + g.thread_rank()) % capacity_]; } /** From aeeb88bb0ec8db34f52ace98bcf21a4fe29aedf4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 12 Apr 2021 11:38:59 -0700 Subject: [PATCH 057/267] Update multimap count function without using fancy iterator --- .../cuco/detail/static_multimap_kernels.cuh | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 78c20251e..21020c624 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -571,9 +571,8 @@ __global__ void find_all(InputIt first, pair slot_contents = *reinterpret_cast const*>(current_slot); auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto equals = false; - if (not slot_is_empty and key_equal(slot_contents.first, key)) { equals = true; } - auto const exists = tile.ballot(not slot_is_empty and equals); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, key)); + auto const exists = tile.ballot(equals); if (exists) { found_match = true; @@ -693,24 +692,36 @@ template BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; + const int lane_id = tile.thread_rank(); - while (it < last) { - auto temp_num = view.count(tile, *it, hash, key_equal); - if (tile.thread_rank() == 0) { thread_num_items += temp_num; } - it += (gridDim.x * blockDim.x) / tile_size; - } + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key, hash); - // compute number of successfully inserted elements for each block - // and atomically add to the grand total - std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { *num_items += block_num_items; } + bool running = true; + bool found_match = false; + + while (tile.any(running)) { + auto const current_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(current_key, key)); + auto const exists = tile.ballot(equals); + + if (exists) { + found_match = true; + auto num_matches = __popc(exists); + // First lane gets the CG-level offset + if (0 == lane_id) { num_items->fetch_add(num_matches, cuda::std::memory_order_relaxed); } + } + current_slot = view.next_slot(tile, current_slot); + } // while running + key_idx += (gridDim.x * blockDim.x) / tile_size; + } } } // namespace detail From 565d784622dfac0e893899322ff5b7898b96f43d Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 12 Apr 2021 11:43:42 -0700 Subject: [PATCH 058/267] Remove unused variable --- include/cuco/detail/static_multimap_kernels.cuh | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 21020c624..8a9cd14a1 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -703,7 +703,6 @@ __global__ void count( auto current_slot = view.initial_slot(tile, key, hash); bool running = true; - bool found_match = false; while (tile.any(running)) { auto const current_key = current_slot->first.load(cuda::std::memory_order_relaxed); @@ -713,7 +712,6 @@ __global__ void count( auto const exists = tile.ballot(equals); if (exists) { - found_match = true; auto num_matches = __popc(exists); // First lane gets the CG-level offset if (0 == lane_id) { num_items->fetch_add(num_matches, cuda::std::memory_order_relaxed); } From bf33f3802d82400d68fd572e1ba18d2179caf787 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 12 Apr 2021 11:53:16 -0700 Subject: [PATCH 059/267] Remove device count tests in find_all --- tests/static_multimap/static_multimap_test.cu | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index d574c11d9..6ff2dfc59 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -196,27 +196,4 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", REQUIRE(size == num_items); } - - SECTION( - "Counting the number of key/value pairs corresponding to each key should always return two.") - { - // Bulk insert keys - map.insert(d_pairs.begin(), d_pairs.end()); - - SECTION("non-const view") - { - REQUIRE(all_of(d_pairs.begin(), - d_pairs.end(), - [view] __device__(cuco::pair_type const& pair) mutable { - return view.count(pair.first) == 2; - })); - } - SECTION("const view") - { - REQUIRE(all_of( - d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { - return view.count(pair.first) == 2; - })); - } - } } From 2e064100c144114a64ddf91f77f80ed0a81a5ad5 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 12 Apr 2021 12:00:37 -0700 Subject: [PATCH 060/267] Update multimap benchmarks in accordance with double hashing --- .../static_multimap/find_all_bench.cu | 4 ++-- .../static_multimap/static_multimap_bench.cu | 17 ++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 7a19f137e..8222ec7c7 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -86,13 +86,13 @@ void nvbench_find_all( state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap map{size, -1, -1}; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); auto view = map.get_device_view(); auto const block_size = 128; - auto const buffer_size = block_size * BufferSize; + auto const buffer_size = CGSize * BufferSize; auto const stride = 1; auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 7f381e2a3..f32e64ce1 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -94,14 +94,13 @@ void launch_nvbench_insert(nvbench::state& state, state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap map{size, -1, -1}; + cuco::static_multimap map{size, -1, -1}; auto m_view = map.get_device_mutable_view(); auto const block_size = 128; auto const stride = 1; - auto const tile_size = cg_size; auto const grid_size = - (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + (cg_size * num_keys + stride * block_size - 1) / (stride * block_size); using Hash = cuco::detail::MurmurHash3_32; using KeyEqual = thrust::equal_to; @@ -110,7 +109,7 @@ void launch_nvbench_insert(nvbench::state& state, KeyEqual key_equal; timer.start(); - cuco::detail::insert + cuco::detail::insert <<>>( d_pairs.begin(), d_pairs.end(), m_view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -249,14 +248,14 @@ void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list map{size, -1, -1}; + auto const tile_size = 16; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); auto view = map.get_device_view(); auto const block_size = 128; auto const stride = 1; - auto const tile_size = 4; auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); @@ -321,15 +320,15 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap map{size, -1, -1}; + auto const tile_size = 4; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); auto view = map.get_device_view(); auto const block_size = 128; - auto const buffer_size = block_size * 16; + auto const buffer_size = tile_size * 2; auto const stride = 1; - auto const tile_size = 4; auto const grid_size = (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); From 7a6d60fd4f0b9a87f55aabdf08a8398718b7a729 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 12 Apr 2021 12:06:12 -0700 Subject: [PATCH 061/267] Fix a bug in multimap count: add end condition for key iterations --- include/cuco/detail/static_multimap_kernels.cuh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 8a9cd14a1..d332490f1 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -702,7 +702,7 @@ __global__ void count( auto key = *(first + key_idx); auto current_slot = view.initial_slot(tile, key, hash); - bool running = true; + bool running = true; while (tile.any(running)) { auto const current_key = current_slot->first.load(cuda::std::memory_order_relaxed); @@ -715,6 +715,8 @@ __global__ void count( auto num_matches = __popc(exists); // First lane gets the CG-level offset if (0 == lane_id) { num_items->fetch_add(num_matches, cuda::std::memory_order_relaxed); } + } else if (tile.any(slot_is_empty)) { + running = false; } current_slot = view.next_slot(tile, current_slot); } // while running From 0e2f5dea716f31a862c0ec699d539bb93fad5a87 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 13 Apr 2021 12:43:25 -0700 Subject: [PATCH 062/267] Fix a bug: use adjusted capacity for slots allocation --- include/cuco/detail/prime.cuh | 25 ++++++++++++++++++++++++- include/cuco/detail/static_multimap.inl | 7 +++---- include/cuco/static_multimap.cuh | 8 ++++---- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/include/cuco/detail/prime.cuh b/include/cuco/detail/prime.cuh index 01cbeba95..6dd96fa71 100644 --- a/include/cuco/detail/prime.cuh +++ b/include/cuco/detail/prime.cuh @@ -19,6 +19,15 @@ namespace cuco { namespace detail { +// safe division +#define SDIV(x, y) (((x) + (y)-1) / (y)) + +/** + * @brief Indicates whether the input `num` is a prime number. + * + * @param num + * @return A boolean indicating whether the input `num` is a prime number + */ constexpr bool is_prime(std::size_t num) noexcept { bool flag = true; @@ -40,7 +49,7 @@ constexpr bool is_prime(std::size_t num) noexcept * @brief Computes the smallest prime number greater than or equal to `num`. * * @param num - * @return The smallest prime number greater than or equal to `num`. + * @return The smallest prime number greater than or equal to `num` */ constexpr std::size_t compute_prime(std::size_t num) noexcept { @@ -50,6 +59,20 @@ constexpr std::size_t compute_prime(std::size_t num) noexcept return num; } +/** + * @brief Calculates the adjusted/valid capacity based on `CGSize` and the initial `capacity`. + * + * @tparam CGSize Cooperative Group size + * @param capacity The initially requested capacity + * @return An adjusted capacity greater than or equal to `capacity` + */ +template +constexpr std::size_t get_valid_capacity(std::size_t capacity) noexcept +{ + auto const min_prime = compute_prime(SDIV(capacity, CGSize)); + return min_prime * CGSize; +} + } // namespace detail } // namespace cuco diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 69cbc0c70..622dee15b 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -35,13 +35,12 @@ static_multimap::static_multimap(std::size Key empty_key_sentinel, Value empty_value_sentinel, Allocator const& alloc) - : empty_key_sentinel_{empty_key_sentinel}, + : capacity_{cuco::detail::get_valid_capacity(capacity)}, + empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, slot_allocator_{alloc} { - auto min_prime = cuco::detail::compute_prime(capacity / CGSize); - this->capacity_ = min_prime * CGSize; - slots_ = std::allocator_traits::allocate(slot_allocator_, capacity); + slots_ = std::allocator_traits::allocate(slot_allocator_, get_capacity()); auto constexpr block_size = 256; auto constexpr stride = 4; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index d20034660..9898f3c20 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -378,8 +378,8 @@ class static_multimap { template __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept { - step_size_ = (hash(k) % (capacity_ / g.size() - 1) + 1) * g.size(); - return &slots_[(hash(k + 1) + g.thread_rank()) % capacity_]; + step_size_ = (hash(k + 1) % (capacity_ / g.size() - 1) + 1) * g.size(); + return &slots_[(hash(k) + g.thread_rank()) % capacity_]; } /** @@ -397,8 +397,8 @@ class static_multimap { template __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept { - step_size_ = (hash(k) % (capacity_ / g.size() - 1) + 1) * g.size(); - return &slots_[(hash(k + 1) + g.thread_rank()) % capacity_]; + step_size_ = (hash(k + 1) % (capacity_ / g.size() - 1) + 1) * g.size(); + return &slots_[(hash(k) + g.thread_rank()) % capacity_]; } /** From 8659e2a28ed520383dd2ccfb598103c321215fdd Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 13 Apr 2021 14:04:40 -0700 Subject: [PATCH 063/267] Fix a bug in per CG cache writing: shfl offset properly --- include/cuco/detail/static_multimap_kernels.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index d332490f1..a3c9b09c6 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -48,7 +48,7 @@ __inline__ __device__ void flush_output_buffer(CG const& cg, std::size_t offset; const auto lane_id = cg.thread_rank(); if (0 == lane_id) { offset = num_items->fetch_add(output_size, cuda::std::memory_order_relaxed); } - cg.shfl(offset, 0); + offset = cg.shfl(offset, 0); for (auto index = lane_id; index < output_size; index += cg_size) { *(output_begin + offset + index) = output_buffer[index]; From b9e06cf40009191c99558356f942e70a38c29e8d Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 13 Apr 2021 15:34:01 -0700 Subject: [PATCH 064/267] Use CG memcpy_async to write output --- .../static_multimap/find_all_bench.cu | 2 +- .../cuco/detail/static_multimap_kernels.cuh | 58 ++++++++++++++++--- tests/static_multimap/static_multimap_test.cu | 5 +- 3 files changed, 53 insertions(+), 12 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 8222ec7c7..fa87dbce3 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -114,7 +114,7 @@ void nvbench_find_all( timer.start(); cuco::detail::find_all <<>>( - d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); + d_keys.begin(), d_keys.end(), d_results.data().get(), num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); timer.stop(); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index a3c9b09c6..9af21f7d1 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -16,6 +16,8 @@ #include +#include + namespace cuco { namespace detail { namespace cg = cooperative_groups; @@ -39,18 +41,56 @@ template -__inline__ __device__ void flush_output_buffer(CG const& cg, - uint32_t const output_size, - cuco::pair_type* output_buffer, - atomicT* num_items, - OutputIt output_begin) +__inline__ __device__ std::enable_if_t::value, void> flush_output_buffer( + CG const& g, + uint32_t const num_outputs, + cuco::pair_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + offset = g.shfl(offset, 0); + + cg::memcpy_async(g, + output_begin + offset, + output_buffer, + cuda::aligned_size_t<16>(sizeof(cuco::pair_type) * num_outputs)); +} + +/** + * @brief Flushes shared memory buffer into the output sequence. + * + * @tparam Key key type + * @tparam Value value type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param output_size Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_items Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ +template +__inline__ __device__ std::enable_if_t::value, void> +flush_output_buffer(CG const& g, + uint32_t const num_outputs, + cuco::pair_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) { std::size_t offset; - const auto lane_id = cg.thread_rank(); - if (0 == lane_id) { offset = num_items->fetch_add(output_size, cuda::std::memory_order_relaxed); } - offset = cg.shfl(offset, 0); + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + offset = g.shfl(offset, 0); - for (auto index = lane_id; index < output_size; index += cg_size) { + for (auto index = lane_id; index < num_outputs; index += cg_size) { *(output_begin + offset + index) = output_buffer[index]; } } diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 6ff2dfc59..7c1916ab5 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -191,8 +191,9 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", REQUIRE(num == num_items); - auto output_end = map.find_all(d_unique_keys.begin(), d_unique_keys.end(), d_results.begin()); - auto size = thrust::distance(d_results.begin(), output_end); + auto output_begin = d_results.data().get(); + auto output_end = map.find_all(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); REQUIRE(size == num_items); } From 730ad038265fe6a0d794e04ac41f771fb662119f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 14 Apr 2021 14:49:54 -0700 Subject: [PATCH 065/267] Use alignof to get rid of misaligned memory access error --- include/cuco/detail/static_multimap_kernels.cuh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 9af21f7d1..535566fcd 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -56,7 +56,8 @@ __inline__ __device__ std::enable_if_t::value, void> f cg::memcpy_async(g, output_begin + offset, output_buffer, - cuda::aligned_size_t<16>(sizeof(cuco::pair_type) * num_outputs)); + cuda::aligned_size_t)>( + sizeof(cuco::pair_type) * num_outputs)); } /** From 19170bc285c39462c7920f618923869f8ebc072f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 22 Apr 2021 07:31:23 -0700 Subject: [PATCH 066/267] Use reinterpret_case instead of atomic loads in multimap count --- include/cuco/detail/static_multimap.inl | 2 +- include/cuco/detail/static_multimap_kernels.cuh | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 622dee15b..b9a215a09 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -178,7 +178,7 @@ std::size_t static_multimap::count(InputIt CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::count + detail::count <<>>(first, last, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 535566fcd..a39a4b4b8 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -638,7 +638,7 @@ __global__ void find_all(InputIt first, tile.sync(); - // Flush it the next iteration won't fit into buffer + // Flush if the next iteration won't fit into buffer if ((cg_counter[cg_id] + tile_size) > buffer_size) { flush_output_buffer( tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); @@ -724,6 +724,7 @@ __global__ void count( */ template first.load(cuda::std::memory_order_relaxed); + pair slot_contents = *reinterpret_cast const*>(current_slot); + auto const& current_key = slot_contents.first; auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(current_key, key)); - auto const exists = tile.ballot(equals); + auto const exists = tile.ballot(not slot_is_empty and key_equal(current_key, key)); if (exists) { auto num_matches = __popc(exists); From 91b600aeb56756f263eaf49426983b121421d56f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 22 Apr 2021 07:45:48 -0700 Subject: [PATCH 067/267] Add stream arguments to multimap bulk functions --- include/cuco/detail/static_multimap.inl | 47 +++++++++++++++---------- include/cuco/static_multimap.cuh | 26 +++++++++----- 2 files changed, 45 insertions(+), 28 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index b9a215a09..da97e6bd5 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -65,10 +65,8 @@ template template -void static_multimap::insert(InputIt first, - InputIt last, - Hash hash, - KeyEqual key_equal) +void static_multimap::insert( + InputIt first, InputIt last, Hash hash, KeyEqual key_equal, cudaStream_t stream) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -77,7 +75,7 @@ void static_multimap::insert(InputIt first auto view = get_device_mutable_view(); detail::insert - <<>>(first, first + num_keys, view, hash, key_equal); + <<>>(first, first + num_keys, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } @@ -87,8 +85,12 @@ template template -void static_multimap::find( - InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept +void static_multimap::find(InputIt first, + InputIt last, + OutputIt output_begin, + Hash hash, + KeyEqual key_equal, + cudaStream_t stream) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -97,7 +99,7 @@ void static_multimap::find( auto view = get_device_view(); detail::find - <<>>(first, last, output_begin, view, hash, key_equal); + <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } @@ -107,8 +109,12 @@ template template -void static_multimap::contains( - InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept +void static_multimap::contains(InputIt first, + InputIt last, + OutputIt output_begin, + Hash hash, + KeyEqual key_equal, + cudaStream_t stream) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -117,7 +123,7 @@ void static_multimap::contains( auto view = get_device_view(); detail::contains - <<>>(first, last, output_begin, view, hash, key_equal); + <<>>(first, last, output_begin, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } @@ -127,8 +133,12 @@ template template -OutputIt static_multimap::find_all( - InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) noexcept +OutputIt static_multimap::find_all(InputIt first, + InputIt last, + OutputIt output_begin, + Hash hash, + KeyEqual key_equal, + cudaStream_t stream) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -145,7 +155,8 @@ OutputIt static_multimap::find_all( CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); detail::find_all - <<>>(first, last, output_begin, num_items, view, hash, key_equal); + <<>>( + first, last, output_begin, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); auto output_end = output_begin + *num_items; @@ -160,10 +171,8 @@ template template -std::size_t static_multimap::count(InputIt first, - InputIt last, - Hash hash, - KeyEqual key_equal) +std::size_t static_multimap::count( + InputIt first, InputIt last, Hash hash, KeyEqual key_equal, cudaStream_t stream) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -179,7 +188,7 @@ std::size_t static_multimap::count(InputIt CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); detail::count - <<>>(first, last, num_items, view, hash, key_equal); + <<>>(first, last, num_items, view, hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); size_t result = *num_items; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 9898f3c20..09569afdc 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -182,7 +182,11 @@ class static_multimap { template , typename KeyEqual = thrust::equal_to> - void insert(InputIt first, InputIt last, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}); + void insert(InputIt first, + InputIt last, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}, + cudaStream_t stream = 0); /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. @@ -209,8 +213,9 @@ class static_multimap { void find(InputIt first, InputIt last, OutputIt output_begin, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}, + cudaStream_t stream = 0); /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. @@ -236,8 +241,9 @@ class static_multimap { void contains(InputIt first, InputIt last, OutputIt output_begin, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}, + cudaStream_t stream = 0); /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. @@ -269,8 +275,9 @@ class static_multimap { OutputIt find_all(InputIt first, InputIt last, OutputIt output_begin, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}, + cudaStream_t stream = 0); /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. @@ -289,8 +296,9 @@ class static_multimap { typename KeyEqual = thrust::equal_to> std::size_t count(InputIt first, InputIt last, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}); + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}, + cudaStream_t stream = 0); private: class device_view_base { From 6e07991984a21874a044dc1158099dd3713e8067 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 22 Apr 2021 08:37:08 -0700 Subject: [PATCH 068/267] Add multimap count benchmark + update default benchmarking parameters --- .../static_multimap/find_all_bench.cu | 30 ++-- .../static_multimap/static_multimap_bench.cu | 160 +++++++++--------- include/cuco/detail/static_multimap.inl | 16 +- include/cuco/static_multimap.cuh | 20 +-- 4 files changed, 118 insertions(+), 108 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index fa87dbce3..30e4a6168 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -30,12 +30,8 @@ static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_ { auto num_keys = std::distance(output_begin, output_end); - std::random_device rd; - std::mt19937 gen{rd()}; - - std::uniform_int_distribution distribution{1, static_cast(num_keys / num_reps)}; for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = distribution(gen); + output_begin[i] = (i % (num_keys / num_reps)) + 1; } } @@ -43,8 +39,7 @@ static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_ * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions * per key: * - 100'000'000 keys are inserted - * - Map occupancy is fixed at 0.3 - * - CG size is fixed at 4 + * - Map occupancy is fixed at 0.4 * - Number of repetitions per key: 1, ... , 128, 256 * */ @@ -73,11 +68,13 @@ void nvbench_find_all( Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; - - h_keys[i] = i; } - thrust::device_vector d_keys(h_keys); + // Get an array of unique keys + std::set key_set(h_keys.begin(), h_keys.end()); + std::vector h_unique_keys(key_set.begin(), key_set.end()); + thrust::device_vector d_unique_keys(h_unique_keys); + thrust::device_vector> d_results(2 * num_keys); thrust::device_vector> d_pairs(h_pairs); @@ -89,6 +86,7 @@ void nvbench_find_all( cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); + timer.start(); auto view = map.get_device_view(); auto const block_size = 128; @@ -111,10 +109,14 @@ void nvbench_find_all( CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); // Use timers to explicitly mark the target region - timer.start(); cuco::detail::find_all - <<>>( - d_keys.begin(), d_keys.end(), d_results.data().get(), num_items, view, hash, key_equal); + <<>>(d_unique_keys.begin(), + d_unique_keys.end(), + d_results.data().get(), + num_items, + view, + hash, + key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); timer.stop(); @@ -128,7 +130,7 @@ using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; using buffer_size = nvbench::enum_type_list<1, 2, 4, 8, 16>; NVBENCH_BENCH_TYPES(nvbench_find_all, - NVBENCH_TYPE_AXES(key_type, value_type, cg_size, nvbench::enum_type_list<16>)) + NVBENCH_TYPE_AXES(key_type, value_type, cg_size, nvbench::enum_type_list<2>)) .set_type_axes_names({"Key", "Value", "CGSize", "BufferSize"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index f32e64ce1..10ff3efe9 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -59,12 +59,8 @@ static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_ { auto num_keys = std::distance(output_begin, output_end); - std::random_device rd; - std::mt19937 gen{rd()}; - - std::uniform_int_distribution distribution{1, static_cast(num_keys / num_reps)}; for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = distribution(gen); + output_begin[i] = (i % (num_keys / num_reps)) + 1; } } @@ -97,22 +93,8 @@ void launch_nvbench_insert(nvbench::state& state, cuco::static_multimap map{size, -1, -1}; auto m_view = map.get_device_mutable_view(); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = - (cg_size * num_keys + stride * block_size - 1) / (stride * block_size); - - using Hash = cuco::detail::MurmurHash3_32; - using KeyEqual = thrust::equal_to; - - Hash hash; - KeyEqual key_equal; - timer.start(); - cuco::detail::insert - <<>>( - d_pairs.begin(), d_pairs.end(), m_view, hash, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + map.insert(d_pairs.begin(), d_pairs.end(), launch.get_stream()); timer.stop(); }); } @@ -121,7 +103,7 @@ void launch_nvbench_insert(nvbench::state& state, * @brief A benchmark evaluating single-value insertion performance by varying occupancy: * - Total number of insertions is fixed at 100'000'000 * - Map occupancy: 0.1, ... , 0.8, 0.9 - * - CG size is fixed at 4 + * - CG size is fixed at 8 * - Three different key distributions are tested: Unique, Uniform and Gaussian * */ @@ -137,7 +119,7 @@ void nvbench_static_multimap_single_insert(nvbench::state& state, nvbench::type_ auto const occupancy = state.get_float64("Occupancy"); std::size_t const size = num_keys / occupancy; auto const dist = state.get_string("Distribution"); - std::size_t const cg_size = 4; + std::size_t const cg_size = 8; std::vector h_keys(num_keys); @@ -151,7 +133,7 @@ void nvbench_static_multimap_single_insert(nvbench::state& state, nvbench::type_ * per key: * - Total number of insertions is fixed at 100'000'000 * - Map occupancy is fixed at 0.7 - * - CG size is fixed at 4 + * - CG size is fixed at 8 * - Unique key distributions is tested * - Number of repetitions per key: 1, ... , 128, 256 * @@ -168,7 +150,7 @@ void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_l auto const occupancy = state.get_float64("Occupancy"); std::size_t const size = num_keys / occupancy; std::size_t const num_reps = state.get_int64("NumReps"); - std::size_t const cg_size = 4; + std::size_t const cg_size = 8; std::vector h_keys(num_keys); @@ -212,7 +194,7 @@ void nvbench_static_multimap_insert_cgsize( * @brief A benchmark evaluating single-value retrieval performance by varing occupancy: * - 100'000'000 uniformed keys are inserted * - Map occupancy: 0.1, ... , 0.8, 0.9 - * - CG size is fixed at 4 + * - CG size is fixed at 8 * */ template @@ -248,44 +230,28 @@ void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list map{size, -1, -1}; + auto const cg_size = 8; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); - auto view = map.get_device_view(); - - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = - (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); - - using Hash = cuco::detail::MurmurHash3_32; - using KeyEqual = thrust::equal_to; - - Hash hash; - KeyEqual key_equal; - // Use timers to explicitly mark the target region timer.start(); - cuco::detail::find - <<>>( - d_keys.begin(), d_keys.end(), d_results.begin(), view, hash, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + map.find(d_keys.begin(), d_keys.end(), d_results.begin(), launch.get_stream()); timer.stop(); }); } /** - * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions + * @brief A benchmark evaluating multi-value count performance by varing number of repetitions * per key: * - 100'000'000 keys are inserted - * - Map occupancy is fixed at 0.3 - * - CG size is fixed at 4 + * - Map occupancy is fixed at 0.4 + * - CG size is fixed at 8 * - Number of repetitions per key: 1, ... , 128, 256 * */ template -void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list) +void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list) { if (not std::is_same::value) { state.skip("Key should be the same type as Value."); @@ -307,11 +273,13 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; - - h_keys[i] = i; } - thrust::device_vector d_keys(h_keys); + // Get an array of unique keys + std::set key_set(h_keys.begin(), h_keys.end()); + std::vector h_unique_keys(key_set.begin(), key_set.end()); + thrust::device_vector d_unique_keys(h_unique_keys); + thrust::device_vector> d_results(2 * num_keys); thrust::device_vector> d_pairs(h_pairs); @@ -320,41 +288,73 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - auto const tile_size = 4; - cuco::static_multimap map{size, -1, -1}; + auto const cg_size = 8; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); - auto view = map.get_device_view(); + // Use timers to explicitly mark the target region + timer.start(); + auto count = map.count(d_unique_keys.begin(), d_unique_keys.end(), launch.get_stream()); + timer.stop(); + }); +} + +/** + * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions + * per key: + * - 100'000'000 keys are inserted + * - Map occupancy is fixed at 0.4 + * - CG size is fixed at 8 + * - Number of repetitions per key: 1, ... , 128, 256 + * + */ +template +void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list) +{ + if (not std::is_same::value) { + state.skip("Key should be the same type as Value."); + return; + } + + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + std::size_t const num_reps = state.get_int64("NumReps"); + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + + generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = val; + } - auto const block_size = 128; - auto const buffer_size = tile_size * 2; - auto const stride = 1; - auto const grid_size = - (tile_size * num_keys + stride * block_size - 1) / (stride * block_size); + // Get an array of unique keys + std::set key_set(h_keys.begin(), h_keys.end()); + std::vector h_unique_keys(key_set.begin(), key_set.end()); + thrust::device_vector d_unique_keys(h_unique_keys); - using Hash = cuco::detail::MurmurHash3_32; - using KeyEqual = thrust::equal_to; + thrust::device_vector> d_results(2 * num_keys); + thrust::device_vector> d_pairs(h_pairs); - Hash hash; - KeyEqual key_equal; + state.add_element_count(num_keys, "NumKeys"); + state.add_global_memory_writes(num_keys * 2); - using atomic_ctr_type = typename cuco::static_multimap::atomic_ctr_type; - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + state.exec( + nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { + auto const cg_size = 8; + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); // Use timers to explicitly mark the target region timer.start(); - cuco::detail::find_all - <<>>( - d_keys.begin(), d_keys.end(), d_results.begin(), num_items, view, hash, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + map.find_all( + d_unique_keys.begin(), d_unique_keys.end(), d_results.begin(), launch.get_stream()); timer.stop(); - - CUCO_CUDA_TRY(cudaFree(num_items)); }); } @@ -382,6 +382,14 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_find, NVBENCH_TYPE_AXES(key_type, va .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)); +NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.4}) + .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index da97e6bd5..e1988e12a 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -66,7 +66,7 @@ template template void static_multimap::insert( - InputIt first, InputIt last, Hash hash, KeyEqual key_equal, cudaStream_t stream) + InputIt first, InputIt last, cudaStream_t stream, Hash hash, KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -88,9 +88,9 @@ template void static_multimap::find(InputIt first, InputIt last, OutputIt output_begin, + cudaStream_t stream, Hash hash, - KeyEqual key_equal, - cudaStream_t stream) + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -112,9 +112,9 @@ template void static_multimap::contains(InputIt first, InputIt last, OutputIt output_begin, + cudaStream_t stream, Hash hash, - KeyEqual key_equal, - cudaStream_t stream) + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -136,9 +136,9 @@ template OutputIt static_multimap::find_all(InputIt first, InputIt last, OutputIt output_begin, + cudaStream_t stream, Hash hash, - KeyEqual key_equal, - cudaStream_t stream) + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -172,7 +172,7 @@ template template std::size_t static_multimap::count( - InputIt first, InputIt last, Hash hash, KeyEqual key_equal, cudaStream_t stream) + InputIt first, InputIt last, cudaStream_t stream, Hash hash, KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 09569afdc..35c27987e 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -184,9 +184,9 @@ class static_multimap { typename KeyEqual = thrust::equal_to> void insert(InputIt first, InputIt last, + cudaStream_t stream = 0, Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}, - cudaStream_t stream = 0); + KeyEqual key_equal = KeyEqual{}); /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. @@ -213,9 +213,9 @@ class static_multimap { void find(InputIt first, InputIt last, OutputIt output_begin, + cudaStream_t stream = 0, Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}, - cudaStream_t stream = 0); + KeyEqual key_equal = KeyEqual{}); /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. @@ -241,9 +241,9 @@ class static_multimap { void contains(InputIt first, InputIt last, OutputIt output_begin, + cudaStream_t stream = 0, Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}, - cudaStream_t stream = 0); + KeyEqual key_equal = KeyEqual{}); /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. @@ -275,9 +275,9 @@ class static_multimap { OutputIt find_all(InputIt first, InputIt last, OutputIt output_begin, + cudaStream_t stream = 0, Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}, - cudaStream_t stream = 0); + KeyEqual key_equal = KeyEqual{}); /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. @@ -296,9 +296,9 @@ class static_multimap { typename KeyEqual = thrust::equal_to> std::size_t count(InputIt first, InputIt last, + cudaStream_t stream = 0, Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}, - cudaStream_t stream = 0); + KeyEqual key_equal = KeyEqual{}); private: class device_view_base { From 44c0fc1f115806eb95c03edc405e9b8e59e595b9 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 22 Apr 2021 09:16:20 -0700 Subject: [PATCH 069/267] Use is_contiguous_iterator to detect when to use cg::memcpy_async --- .../static_multimap/static_multimap_bench.cu | 2 +- .../cuco/detail/static_multimap_kernels.cuh | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 10ff3efe9..39fb66667 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -353,7 +353,7 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< // Use timers to explicitly mark the target region timer.start(); map.find_all( - d_unique_keys.begin(), d_unique_keys.end(), d_results.begin(), launch.get_stream()); + d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), launch.get_stream()); timer.stop(); }); } diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index a39a4b4b8..91342b2fb 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -14,9 +14,10 @@ * limitations under the License. */ -#include - #include +#include + +#include namespace cuco { namespace detail { @@ -41,12 +42,12 @@ template -__inline__ __device__ std::enable_if_t::value, void> flush_output_buffer( - CG const& g, - uint32_t const num_outputs, - cuco::pair_type* output_buffer, - atomicT* num_items, - OutputIt output_begin) +__inline__ __device__ std::enable_if_t::value, void> +flush_output_buffer(CG const& g, + uint32_t const num_outputs, + cuco::pair_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) { std::size_t offset; const auto lane_id = g.thread_rank(); @@ -79,7 +80,7 @@ template -__inline__ __device__ std::enable_if_t::value, void> +__inline__ __device__ std::enable_if_t::value, void> flush_output_buffer(CG const& g, uint32_t const num_outputs, cuco::pair_type* output_buffer, From e540a3782efcc227f1cdb180f4dc6999e676f9ba Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 23 Apr 2021 12:21:24 -0700 Subject: [PATCH 070/267] Optimize multimap count: getting rid of cg.any, ballot, popc + using cub block reduce --- .../cuco/detail/static_multimap_kernels.cuh | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 91342b2fb..a99388390 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -736,35 +736,35 @@ __global__ void count( InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - const int lane_id = tile.thread_rank(); + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_items = 0; while (first + key_idx < last) { auto key = *(first + key_idx); auto current_slot = view.initial_slot(tile, key, hash); - bool running = true; - - while (tile.any(running)) { - pair slot_contents = *reinterpret_cast const*>(current_slot); - auto const& current_key = slot_contents.first; + while (true) { + pair slot_contents = + *reinterpret_cast const*>(current_slot); + auto const& current_key = slot_contents.first; auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); - auto const exists = tile.ballot(not slot_is_empty and key_equal(current_key, key)); + auto const equals = not slot_is_empty and key_equal(current_key, key); + + if (equals) { thread_num_items++; } + + if (tile.any(slot_is_empty)) { break; } - if (exists) { - auto num_matches = __popc(exists); - // First lane gets the CG-level offset - if (0 == lane_id) { num_items->fetch_add(num_matches, cuda::std::memory_order_relaxed); } - } else if (tile.any(slot_is_empty)) { - running = false; - } current_slot = view.next_slot(tile, current_slot); - } // while running - key_idx += (gridDim.x * blockDim.x) / tile_size; + } // while true + key_idx += (gridDim.x * block_size) / tile_size; } + auto const block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } } } // namespace detail From d8c7ce1aa03de6a7d52372f30d008a2836994a2d Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 23 Apr 2021 13:41:04 -0700 Subject: [PATCH 071/267] Minor improvement: end key iteration whenever an empty slot shows up --- include/cuco/detail/static_multimap_kernels.cuh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index a99388390..3d345f2cd 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -628,7 +628,8 @@ __global__ void find_all(InputIt first, cuco::make_pair(std::move(k), std::move(slot_contents.second)); } if (0 == lane_id) { cg_counter[cg_id] += num_matches; } - } else if (tile.any(slot_is_empty)) { + } + if (tile.any(slot_is_empty)) { running = false; if ((not found_match) && (lane_id == 0)) { auto output_idx = cg_counter[cg_id]++; From 3c1e01d6b4af84229c9adad4a0133dc3f10080be Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 23 Apr 2021 14:44:20 -0700 Subject: [PATCH 072/267] Remove one unnessary cg sync in multimap find_all --- include/cuco/detail/static_multimap_kernels.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 3d345f2cd..d34dd4402 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -605,7 +605,7 @@ __global__ void find_all(InputIt first, bool running = true; bool found_match = false; - while (tile.any(running)) { + while (running) { // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation is // unsafe! static_assert(sizeof(Key) == sizeof(cuda::atomic)); From 36f6cffd60679e2bd0ace7f02c4c149c2acb0bf7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 26 Apr 2021 10:39:46 -0700 Subject: [PATCH 073/267] Use cg::any in multimap insert for simplicity --- include/cuco/detail/static_multimap.inl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index e1988e12a..c5d471a9c 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -290,11 +290,8 @@ __device__ void static_multimap::device_mu // so we need to try the next empty slot in the window } - uint32_t res_status = g.shfl(static_cast(status), src_lane); - status = static_cast(res_status); - // successful insert - if (status == insert_result::SUCCESS) { return; } + if (g.any(status == insert_result::SUCCESS)) { return; } // if we've gotten this far, a different key took our spot // before we could insert. We need to retry the insert on the // same window From 0aac02a94d7d4b16079e14a2d42f9fec8e16b903 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 26 Apr 2021 11:12:35 -0700 Subject: [PATCH 074/267] Fix a bug in multimap constructor: using the adjusted capcacity --- include/cuco/detail/static_multimap.inl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index c5d471a9c..5cf81c167 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -44,9 +44,9 @@ static_multimap::static_multimap(std::size auto constexpr block_size = 256; auto constexpr stride = 4; - auto const grid_size = (capacity + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (get_capacity() + stride * block_size - 1) / (stride * block_size); detail::initialize - <<>>(slots_, empty_key_sentinel, empty_value_sentinel, capacity); + <<>>(slots_, empty_key_sentinel, empty_value_sentinel, get_capacity()); } template Date: Wed, 28 Apr 2021 10:29:44 -0700 Subject: [PATCH 075/267] Use vector load to optimize multimap count and find_all --- include/cuco/detail/prime.cuh | 4 +- include/cuco/detail/static_multimap.inl | 31 +++---- .../cuco/detail/static_multimap_kernels.cuh | 91 +++++++++++-------- include/cuco/static_multimap.cuh | 18 +++- 4 files changed, 84 insertions(+), 60 deletions(-) diff --git a/include/cuco/detail/prime.cuh b/include/cuco/detail/prime.cuh index 6dd96fa71..0c8365edf 100644 --- a/include/cuco/detail/prime.cuh +++ b/include/cuco/detail/prime.cuh @@ -69,8 +69,8 @@ constexpr std::size_t compute_prime(std::size_t num) noexcept template constexpr std::size_t get_valid_capacity(std::size_t capacity) noexcept { - auto const min_prime = compute_prime(SDIV(capacity, CGSize)); - return min_prime * CGSize; + auto const min_prime = compute_prime(SDIV(capacity, CGSize * 2)); + return min_prime * CGSize * 2; } } // namespace detail diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 5cf81c167..6ba9dfbdf 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -248,32 +248,32 @@ __device__ void static_multimap::device_mu CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, insert_pair.first, hash); - while (true) { - key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); - + // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); + auto const tmp = *reinterpret_cast(current_slot); + pair arr[2]; + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); - auto const window_contains_empty = g.ballot(slot_is_empty); - + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + // auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); if (window_contains_empty) { // the first lane in the group with an empty slot will attempt the insert insert_result status{insert_result::CONTINUE}; uint32_t src_lane = __ffs(window_contains_empty) - 1; - if (g.thread_rank() == src_lane) { using cuda::std::memory_order_relaxed; - auto expected_key = this->get_empty_key_sentinel(); - auto expected_value = this->get_empty_value_sentinel(); - auto& slot_key = current_slot->first; - auto& slot_value = current_slot->second; - + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + auto insert_location = current_slot + !(first_slot_is_empty); + auto& slot_key = insert_location->first; + auto& slot_value = insert_location->second; bool key_success = slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); bool value_success = slot_value.compare_exchange_strong( expected_value, insert_pair.second, memory_order_relaxed); - if (key_success) { while (not value_success) { value_success = @@ -285,9 +285,8 @@ __device__ void static_multimap::device_mu } else if (value_success) { slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } - - // another key was inserted in the slot we wanted to try - // so we need to try the next empty slot in the window + // another key was inserted in both slots we wanted to try + // so we need to try the next empty slots in the window } // successful insert diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index d34dd4402..191bebc16 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -200,6 +200,13 @@ __global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEq view.insert(tile, insert_pair, hash, key_equal); it += (gridDim.x * blockDim.x) / tile_size; } + if (threadIdx.x == 0 && blockIdx.x == 0) { + for(auto i = 0; i < view.get_capacity(); i++){ + auto slot = view.get_slots() + i; + //if (slot->first != -1) + //printf("%ld:\t%ld\n", long(slot->first), long(slot->second)); + } + } } /** @@ -606,30 +613,40 @@ __global__ void find_all(InputIt first, bool found_match = false; while (running) { - // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation is - // unsafe! - static_assert(sizeof(Key) == sizeof(cuda::atomic)); - static_assert(sizeof(Value) == sizeof(cuda::atomic)); - pair slot_contents = *reinterpret_cast const*>(current_slot); + auto const tmp = *reinterpret_cast(current_slot); + pair arr[2]; + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + auto const first_exists = tile.ballot(first_equals); + auto const second_exists = tile.ballot(second_equals); + + if (first_exists or second_exists) { + found_match = true; - auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, key)); - auto const exists = tile.ballot(equals); + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); - if (exists) { - found_match = true; - auto num_matches = __popc(exists); uint32_t output_idx = cg_counter[cg_id]; - if (equals) { - // Each match computes its lane-level offset - auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); Key k = key; output_buffer[cg_id][output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(slot_contents.second)); + cuco::make_pair(std::move(k), std::move(arr[0].second)); } - if (0 == lane_id) { cg_counter[cg_id] += num_matches; } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[cg_id][output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[1].second)); + } + if (0 == lane_id) {cg_counter[cg_id] += (num_first_matches + num_second_matches);} } - if (tile.any(slot_is_empty)) { + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; if ((not found_match) && (lane_id == 0)) { auto output_idx = cg_counter[cg_id]++; @@ -640,13 +657,11 @@ __global__ void find_all(InputIt first, tile.sync(); - // Flush if the next iteration won't fit into buffer - if ((cg_counter[cg_id] + tile_size) > buffer_size) { flush_output_buffer( tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); // First lane reset CG-level counter if (lane_id == 0) { cg_counter[cg_id] = 0; } - } + current_slot = view.next_slot(tile, current_slot); } // while running key_idx += (gridDim.x * blockDim.x) / tile_size; @@ -736,36 +751,38 @@ template (cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; - typedef cub::BlockReduce BlockReduce; + using BlockReduce = cub::BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; + + int thread_counter{0}; while (first + key_idx < last) { auto key = *(first + key_idx); auto current_slot = view.initial_slot(tile, key, hash); while (true) { - pair slot_contents = - *reinterpret_cast const*>(current_slot); - auto const& current_key = slot_contents.first; - - auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, key); + auto const tmp = *reinterpret_cast(current_slot); + pair arr[2]; + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - if (equals) { thread_num_items++; } + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + thread_counter += (first_equals + second_equals); - if (tile.any(slot_is_empty)) { break; } + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } current_slot = view.next_slot(tile, current_slot); - } // while true - key_idx += (gridDim.x * block_size) / tile_size; + } + key_idx += (gridDim.x * blockDim.x) / tile_size; } - auto const block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } + auto const block_count = BlockReduce(temp_storage).Sum(thread_counter); + if (threadIdx.x == 0) { num_items->fetch_add(block_count, cuda::std::memory_order_relaxed); } } } // namespace detail diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 35c27987e..36a12fc7a 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -107,7 +107,7 @@ namespace cuco { */ template > class static_multimap { @@ -386,8 +386,12 @@ class static_multimap { template __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept { - step_size_ = (hash(k + 1) % (capacity_ / g.size() - 1) + 1) * g.size(); - return &slots_[(hash(k) + g.thread_rank()) % capacity_]; + auto const cg_size = g.size(); + step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; + auto const h = hash(k); + auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; + auto const p = begin_slot() + slot_index; + return p; } /** @@ -405,8 +409,12 @@ class static_multimap { template __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept { - step_size_ = (hash(k + 1) % (capacity_ / g.size() - 1) + 1) * g.size(); - return &slots_[(hash(k) + g.thread_rank()) % capacity_]; + auto const cg_size = g.size(); + step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; + auto const h = hash(k); + auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; + auto const p = begin_slot() + slot_index; + return p; } /** From bceedcd058bfbf872576d16913b32989b2004a8e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Sun, 2 May 2021 21:23:37 -0400 Subject: [PATCH 076/267] Update multimap benchmarks: remove uninterested benchmarks, evaluate both RANDOM and CYCLE key distributions --- .../static_multimap/static_multimap_bench.cu | 223 ++++++++---------- 1 file changed, 98 insertions(+), 125 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 39fb66667..f0373b9de 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -26,44 +26,27 @@ * */ template -static void generate_keys(OutputIt output_begin, OutputIt output_end, const std::string& dist) +static void generate_keys(OutputIt output_begin, + OutputIt output_end, + size_t const num_reps, + const std::string& dist) { auto num_keys = std::distance(output_begin, output_end); - std::random_device rd; - std::mt19937 gen{rd()}; - - if (dist == "UNIQUE") { - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = i; - } - } else if (dist == "UNIFORM") { - std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; + if (dist == "RANDOM") { + std::random_device rd; + std::mt19937 gen{rd()}; + std::uniform_int_distribution distribution{1, static_cast(num_keys / num_reps)}; for (auto i = 0; i < num_keys; ++i) { output_begin[i] = distribution(gen); } - } else if (dist == "GAUSSIAN") { - std::normal_distribution<> dg{1e9, 1e7}; + } else if (dist == "CYCLE") { for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = std::abs(static_cast(dg(gen))); + output_begin[i] = (i % (num_keys / num_reps)) + 1; } } } -/** - * @brief Generates input keys by a given number of repetitions per key. - * - */ -template -static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_t const num_reps) -{ - auto num_keys = std::distance(output_begin, output_end); - - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = (i % (num_keys / num_reps)) + 1; - } -} - /** * @brief Helper function to launch insertion benchmark. * @@ -78,7 +61,7 @@ void launch_nvbench_insert(nvbench::state& state, for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; - Value val = h_keys[i]; + Value val = i; h_pairs[i].first = key; h_pairs[i].second = val; } @@ -99,47 +82,17 @@ void launch_nvbench_insert(nvbench::state& state, }); } -/** - * @brief A benchmark evaluating single-value insertion performance by varying occupancy: - * - Total number of insertions is fixed at 100'000'000 - * - Map occupancy: 0.1, ... , 0.8, 0.9 - * - CG size is fixed at 8 - * - Three different key distributions are tested: Unique, Uniform and Gaussian - * - */ -template -void nvbench_static_multimap_single_insert(nvbench::state& state, nvbench::type_list) -{ - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } - - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const size = num_keys / occupancy; - auto const dist = state.get_string("Distribution"); - std::size_t const cg_size = 8; - - std::vector h_keys(num_keys); - - generate_keys(h_keys.begin(), h_keys.end(), dist); - - launch_nvbench_insert(state, h_keys, num_keys, size); -} - /** * @brief A benchmark evaluating multi-value insertion performance by varing number of repetitions * per key: - * - Total number of insertions is fixed at 100'000'000 - * - Map occupancy is fixed at 0.7 - * - CG size is fixed at 8 - * - Unique key distributions is tested + * - Total number of insertions: 100'000'000 + * - Map occupancy: 0.8 + * - CG size: 8 * - Number of repetitions per key: 1, ... , 128, 256 * */ template -void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_list) +void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list) { if (not std::is_same::value) { state.skip("Key should be the same type as Value."); @@ -148,13 +101,15 @@ void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_l std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); - std::size_t const size = num_keys / occupancy; std::size_t const num_reps = state.get_int64("NumReps"); - std::size_t const cg_size = 8; + auto const dist = state.get_string("Distribution"); + + std::size_t const size = num_keys / occupancy; + std::size_t const cg_size = 8; std::vector h_keys(num_keys); - generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); launch_nvbench_insert(state, h_keys, num_keys, size); } @@ -162,9 +117,8 @@ void nvbench_static_multimap_multi_insert(nvbench::state& state, nvbench::type_l /** * @brief A benchmark evaluating multi-value insertion performance by varing number of repetitions * per key and CUDA CG size: - * - Total number of insertions is fixed at 100'000'000 - * - Map occupancy is fixed at 0.7 - * - Unique key distributions is tested + * - Total number of insertions: 100'000'000 + * - Map occupancy: 0.8 * - Number of repetitions per key: 1, ... , 128, 256 * - CG size: 1, ... , 16, 32 * @@ -180,25 +134,29 @@ void nvbench_static_multimap_insert_cgsize( std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); - std::size_t const size = num_keys / occupancy; std::size_t const num_reps = state.get_int64("NumReps"); + auto const dist = state.get_string("Distribution"); + + std::size_t const size = num_keys / occupancy; std::vector h_keys(num_keys); - generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); launch_nvbench_insert(state, h_keys, num_keys, size); } /** - * @brief A benchmark evaluating single-value retrieval performance by varing occupancy: - * - 100'000'000 uniformed keys are inserted - * - Map occupancy: 0.1, ... , 0.8, 0.9 - * - CG size is fixed at 8 + * @brief A benchmark evaluating multi-value count performance by varing number of repetitions + * per key: + * - 100'000'000 keys are inserted + * - Map occupancy: 0.8 + * - CG size: 8 + * - Number of repetitions per key: 1, ... , 128, 256 * */ template -void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list) +void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list) { if (not std::is_same::value) { state.skip("Key should be the same type as Value."); @@ -207,51 +165,58 @@ void nvbench_static_multimap_find(nvbench::state& state, nvbench::type_list h_keys(num_keys); - std::vector> h_pairs(num_keys); + std::size_t const size = num_keys / occupancy; - generate_keys(h_keys.begin(), h_keys.end(), "UNIFORM"); + std::vector h_keys(num_keys); + generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); + std::vector> h_pairs(num_keys); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; + + if (dist == "RANDOM") { h_keys[i] = i; } } - thrust::device_vector d_keys(h_keys); - thrust::device_vector d_results(num_keys); + // Get an array of unique keys + std::set key_set(h_keys.begin(), h_keys.end()); + std::vector h_unique_keys(key_set.begin(), key_set.end()); + thrust::device_vector d_unique_keys(h_unique_keys); + thrust::device_vector> d_pairs(h_pairs); state.add_element_count(num_keys, "NumKeys"); state.add_global_memory_writes(num_keys * 2); - state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, - [&](nvbench::launch& launch, auto& timer) { - auto const cg_size = 8; - cuco::static_multimap map{size, -1, -1}; - map.insert(d_pairs.begin(), d_pairs.end()); + state.exec( + nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { + auto const cg_size = 8; + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); - // Use timers to explicitly mark the target region - timer.start(); - map.find(d_keys.begin(), d_keys.end(), d_results.begin(), launch.get_stream()); - timer.stop(); - }); + // Use timers to explicitly mark the target region + timer.start(); + auto count = map.count(d_unique_keys.begin(), d_unique_keys.end(), launch.get_stream()); + timer.stop(); + }); } /** - * @brief A benchmark evaluating multi-value count performance by varing number of repetitions + * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions * per key: * - 100'000'000 keys are inserted - * - Map occupancy is fixed at 0.4 - * - CG size is fixed at 8 + * - Map occupancy: 0.8 + * - CG size: 8 * - Number of repetitions per key: 1, ... , 128, 256 * */ template -void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list) +void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list) { if (not std::is_same::value) { state.skip("Key should be the same type as Value."); @@ -260,19 +225,22 @@ void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list h_keys(num_keys); - std::vector> h_pairs(num_keys); + std::size_t const size = num_keys / occupancy; - generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + std::vector h_keys(num_keys); + generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); + std::vector> h_pairs(num_keys); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; + + if (dist == "RANDOM") { h_keys[i] = i; } } // Get an array of unique keys @@ -294,22 +262,23 @@ void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list -void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list) +void nvbench_static_multimap_retrieve(nvbench::state& state, nvbench::type_list) { if (not std::is_same::value) { state.skip("Key should be the same type as Value."); @@ -318,19 +287,22 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); - std::size_t const size = num_keys / occupancy; std::size_t const num_reps = state.get_int64("NumReps"); + auto const dist = state.get_string("Distribution"); - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); + std::size_t const size = num_keys / occupancy; - generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); + std::vector h_keys(num_keys); + generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); + std::vector> h_pairs(num_keys); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; + + if (dist == "RANDOM") { h_keys[i] = i; } } // Get an array of unique keys @@ -352,6 +324,7 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< // Use timers to explicitly mark the target region timer.start(); + auto count = map.count(d_unique_keys.begin(), d_unique_keys.end(), launch.get_stream()); map.find_all( d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), launch.get_stream()); timer.stop(); @@ -362,40 +335,39 @@ using key_type = nvbench::type_list; using value_type = nvbench::type_list; using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; -NVBENCH_BENCH_TYPES(nvbench_static_multimap_single_insert, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_type_axes_names({"Key", "Value"}) - .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. - .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) - .add_string_axis("Distribution", {"UNIQUE", "UNIFORM", "GAUSSIAN"}); - -NVBENCH_BENCH_TYPES(nvbench_static_multimap_multi_insert, NVBENCH_TYPE_AXES(key_type, value_type)) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", {0.7}) + .add_float64_axis("Occupancy", {0.8}) + .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_find, NVBENCH_TYPE_AXES(key_type, value_type)) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)); + .add_float64_axis("Occupancy", {0.8}) + .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) + .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, NVBENCH_TYPE_AXES(key_type, value_type)) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", {0.4}) + .add_float64_axis("Occupancy", {0.8}) + .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, NVBENCH_TYPE_AXES(key_type, value_type)) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", {0.4}) + .add_float64_axis("Occupancy", {0.8}) + .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert_cgsize, @@ -404,5 +376,6 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert_cgsize, .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", {0.7}) + .add_float64_axis("Occupancy", {0.8}) + .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); From d84d8b307d112fefa9995989d45dfd5b0bcedb8a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 3 May 2021 13:11:49 -0400 Subject: [PATCH 077/267] Use vector load for 64-bit variables --- include/cuco/detail/static_multimap.inl | 75 --------- .../cuco/detail/static_multimap_kernels.cuh | 82 ++++++++-- include/cuco/static_multimap.cuh | 146 +++++++++++++++++- 3 files changed, 205 insertions(+), 98 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 6ba9dfbdf..705e9e092 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -16,16 +16,6 @@ namespace cuco { -/**---------------------------------------------------------------------------* - * @brief Enumeration of the possible results of attempting to insert into - *a hash bucket - *---------------------------------------------------------------------------**/ -enum class insert_result { - CONTINUE, ///< Insert did not succeed, continue trying to insert - SUCCESS, ///< New pair inserted successfully - DUPLICATE ///< Insert did not succeed, key is already present -}; - template ::device_mu } } -template -template -__device__ void static_multimap::device_mutable_view::insert( - CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept -{ - auto current_slot = initial_slot(g, insert_pair.first, hash); - while (true) { - // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); - auto const tmp = *reinterpret_cast(current_slot); - pair arr[2]; - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - // auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); - auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); - if (window_contains_empty) { - // the first lane in the group with an empty slot will attempt the insert - insert_result status{insert_result::CONTINUE}; - uint32_t src_lane = __ffs(window_contains_empty) - 1; - if (g.thread_rank() == src_lane) { - using cuda::std::memory_order_relaxed; - auto expected_key = this->get_empty_key_sentinel(); - auto expected_value = this->get_empty_value_sentinel(); - auto insert_location = current_slot + !(first_slot_is_empty); - auto& slot_key = insert_location->first; - auto& slot_value = insert_location->second; - bool key_success = - slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); - bool value_success = slot_value.compare_exchange_strong( - expected_value, insert_pair.second, memory_order_relaxed); - if (key_success) { - while (not value_success) { - value_success = - slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), - insert_pair.second, - memory_order_relaxed); - } - status = insert_result::SUCCESS; - } else if (value_success) { - slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); - } - // another key was inserted in both slots we wanted to try - // so we need to try the next empty slots in the window - } - - // successful insert - if (g.any(status == insert_result::SUCCESS)) { return; } - // if we've gotten this far, a different key took our spot - // before we could insert. We need to retry the insert on the - // same window - } - // if there are no empty slots in the current window, - // we move onto the next window - else { - current_slot = next_slot(g, current_slot); - } - } -} - template first != -1) - //printf("%ld:\t%ld\n", long(slot->first), long(slot->second)); + // if (slot->first != -1) + // printf("%ld:\t%ld\n", long(slot->first), long(slot->second)); } } } @@ -621,13 +621,13 @@ __global__ void find_all(InputIt first, auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - auto const first_exists = tile.ballot(first_equals); - auto const second_exists = tile.ballot(second_equals); + auto const first_exists = tile.ballot(first_equals); + auto const second_exists = tile.ballot(second_equals); if (first_exists or second_exists) { - found_match = true; + found_match = true; - auto num_first_matches = __popc(first_exists); + auto num_first_matches = __popc(first_exists); auto num_second_matches = __popc(second_exists); uint32_t output_idx = cg_counter[cg_id]; @@ -644,7 +644,7 @@ __global__ void find_all(InputIt first, output_buffer[cg_id][output_idx + num_first_matches + lane_offset] = cuco::make_pair(std::move(k), std::move(arr[1].second)); } - if (0 == lane_id) {cg_counter[cg_id] += (num_first_matches + num_second_matches);} + if (0 == lane_id) { cg_counter[cg_id] += (num_first_matches + num_second_matches); } } if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; @@ -657,10 +657,10 @@ __global__ void find_all(InputIt first, tile.sync(); - flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { cg_counter[cg_id] = 0; } + flush_output_buffer( + tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { cg_counter[cg_id] = 0; } current_slot = view.next_slot(tile, current_slot); } // while running @@ -747,13 +747,14 @@ template + typename KeyEqual, + typename std::enable_if::type* = nullptr> __global__ void count( InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; using BlockReduce = cub::BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; @@ -779,7 +780,54 @@ __global__ void count( current_slot = view.next_slot(tile, current_slot); } - key_idx += (gridDim.x * blockDim.x) / tile_size; + key_idx += (gridDim.x * block_size) / tile_size; + } + auto const block_count = BlockReduce(temp_storage).Sum(thread_counter); + if (threadIdx.x == 0) { num_items->fetch_add(block_count, cuda::std::memory_order_relaxed); } +} + +template ::type* = nullptr> +__global__ void count( + InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; + + using BlockReduce = cub::BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + + int thread_counter{0}; + + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key, hash); + + while (true) { + auto const tmp = *reinterpret_cast(current_slot); + pair arr[2]; + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + thread_counter += (first_equals + second_equals); + + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } + + current_slot = view.next_slot(tile, current_slot); + } + key_idx += (gridDim.x * block_size) / tile_size; } auto const block_count = BlockReduce(temp_storage).Sum(thread_counter); if (threadIdx.x == 0) { num_items->fetch_add(block_count, cuda::std::memory_order_relaxed); } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 36a12fc7a..10160b09f 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -39,6 +39,16 @@ namespace cuco { +/**---------------------------------------------------------------------------* + * @brief Enumeration of the possible results of attempting to insert into + *a hash bucket + *---------------------------------------------------------------------------**/ +enum class insert_result { + CONTINUE, ///< Insert did not succeed, continue trying to insert + SUCCESS, ///< New pair inserted successfully + DUPLICATE ///< Insert did not succeed, key is already present +}; + /** * @brief A GPU-accelerated, unordered, associative container of key-value * pairs with unique keys. @@ -386,10 +396,10 @@ class static_multimap { template __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept { - auto const cg_size = g.size(); + auto const cg_size = g.size(); step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; auto const h = hash(k); - auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; + auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; auto const p = begin_slot() + slot_index; return p; } @@ -409,10 +419,10 @@ class static_multimap { template __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept { - auto const cg_size = g.size(); + auto const cg_size = g.size(); step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; auto const h = hash(k); - auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; + auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; auto const p = begin_slot() + slot_index; return p; } @@ -646,11 +656,135 @@ class static_multimap { */ template , - typename KeyEqual = thrust::equal_to> + typename KeyEqual = thrust::equal_to, + typename U = Key, + typename std::enable_if::type* = nullptr> __device__ void insert(CG g, value_type const& insert_pair, Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + KeyEqual key_equal = KeyEqual{}) + { + auto current_slot = initial_slot(g, insert_pair.first, hash); + while (true) { + // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); + auto const tmp = *reinterpret_cast(current_slot); + pair arr[2]; + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as + // the sentinel is not a valid key value. Therefore, first check for the sentinel + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + // auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); + if (window_contains_empty) { + // the first lane in the group with an empty slot will attempt the insert + insert_result status{insert_result::CONTINUE}; + uint32_t src_lane = __ffs(window_contains_empty) - 1; + if (g.thread_rank() == src_lane) { + using cuda::std::memory_order_relaxed; + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + auto insert_location = current_slot + !(first_slot_is_empty); + auto& slot_key = insert_location->first; + auto& slot_value = insert_location->second; + bool key_success = slot_key.compare_exchange_strong( + expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = slot_value.compare_exchange_strong( + expected_value, insert_pair.second, memory_order_relaxed); + if (key_success) { + while (not value_success) { + value_success = slot_value.compare_exchange_strong( + expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + status = insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); + } + // another key was inserted in both slots we wanted to try + // so we need to try the next empty slots in the window + } + + // successful insert + if (g.any(status == insert_result::SUCCESS)) { return; } + // if we've gotten this far, a different key took our spot + // before we could insert. We need to retry the insert on the + // same window + } + // if there are no empty slots in the current window, + // we move onto the next window + else { + current_slot = next_slot(g, current_slot); + } + } + } + + template , + typename KeyEqual = thrust::equal_to, + typename U = Key, + typename std::enable_if::type* = nullptr> + __device__ void insert(CG g, + value_type const& insert_pair, + Hash hash = Hash{}, + KeyEqual key_equal = KeyEqual{}) + { + auto current_slot = initial_slot(g, insert_pair.first, hash); + while (true) { + // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); + auto const tmp = *reinterpret_cast(current_slot); + pair arr[2]; + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as + // the sentinel is not a valid key value. Therefore, first check for the sentinel + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + // auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); + if (window_contains_empty) { + // the first lane in the group with an empty slot will attempt the insert + insert_result status{insert_result::CONTINUE}; + uint32_t src_lane = __ffs(window_contains_empty) - 1; + if (g.thread_rank() == src_lane) { + using cuda::std::memory_order_relaxed; + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + auto insert_location = current_slot + !(first_slot_is_empty); + auto& slot_key = insert_location->first; + auto& slot_value = insert_location->second; + bool key_success = slot_key.compare_exchange_strong( + expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = slot_value.compare_exchange_strong( + expected_value, insert_pair.second, memory_order_relaxed); + if (key_success) { + while (not value_success) { + value_success = slot_value.compare_exchange_strong( + expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + status = insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); + } + // another key was inserted in both slots we wanted to try + // so we need to try the next empty slots in the window + } + + // successful insert + if (g.any(status == insert_result::SUCCESS)) { return; } + // if we've gotten this far, a different key took our spot + // before we could insert. We need to retry the insert on the + // same window + } + // if there are no empty slots in the current window, + // we move onto the next window + else { + current_slot = next_slot(g, current_slot); + } + } + } }; // class device mutable view From 349126d6fb734634690e7328b1df411366fba9fd Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 3 May 2021 14:00:13 -0400 Subject: [PATCH 078/267] Update benchmark CMake: using c++17 --- benchmarks/CMakeLists.txt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 24e60de9b..604d10ec7 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -21,15 +21,7 @@ CPMAddPackage( GIT_SHALLOW TRUE ) -if (benchmark_ADDED) - # patch google benchmark target - set_target_properties(benchmark PROPERTIES CXX_STANDARD 14) -endif() - -if (nvbench_ADDED) - # nvbench requires c++17 - set_target_properties(nvbench PROPERTIES CXX_STANDARD 17) -endif() +set_target_properties(benchmark PROPERTIES CXX_STANDARD 17) ################################################################################################### # Auto-detect available GPU compute architectures From 789ca200e1559a19564d08ba8609dd2e0c3aa500 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 3 May 2021 16:59:05 -0400 Subject: [PATCH 079/267] Updates: - Compile-time benchmark skip by using SFINAE: shorter compilation time - Use c++17 if constexpr to simplify vector loads in multimap - Resolve conflicts with upstream updates (i.e. bitwise_compare) - Remove fancy iterator - Remove view find_all functions - Update unit test --- .../static_multimap/find_all_bench.cu | 15 +- .../static_multimap/static_multimap_bench.cu | 74 ++-- include/cuco/detail/bitwise_compare.cuh | 3 +- include/cuco/detail/pair.cuh | 6 +- include/cuco/detail/static_map_kernels.cuh | 6 +- include/cuco/detail/static_multimap.inl | 237 +++++-------- .../cuco/detail/static_multimap_kernels.cuh | 73 +--- include/cuco/static_multimap.cuh | 328 ++---------------- tests/static_multimap/static_multimap_test.cu | 61 ---- 9 files changed, 193 insertions(+), 610 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 30e4a6168..21de4a26d 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -44,15 +44,10 @@ static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_ * */ template -void nvbench_find_all( +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } - std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); std::size_t const size = num_keys / occupancy; @@ -124,6 +119,14 @@ void nvbench_find_all( }); } +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_find_all( + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) +{ + state.skip("Key should be the same type as Value."); +} + using key_type = nvbench::type_list; using value_type = nvbench::type_list; using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index f0373b9de..c93fbb3ef 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -92,13 +92,9 @@ void launch_nvbench_insert(nvbench::state& state, * */ template -void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list) +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_insert( + nvbench::state& state, nvbench::type_list) { - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } - std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); std::size_t const num_reps = state.get_int64("NumReps"); @@ -114,6 +110,13 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list(state, h_keys, num_keys, size); } +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_insert( + nvbench::state& state, nvbench::type_list) +{ + state.skip("Key should be the same type as Value."); +} + /** * @brief A benchmark evaluating multi-value insertion performance by varing number of repetitions * per key and CUDA CG size: @@ -124,14 +127,9 @@ void nvbench_static_multimap_insert(nvbench::state& state, nvbench::type_list -void nvbench_static_multimap_insert_cgsize( +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_insert_cgsize( nvbench::state& state, nvbench::type_list>) { - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } - std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); std::size_t const num_reps = state.get_int64("NumReps"); @@ -146,6 +144,13 @@ void nvbench_static_multimap_insert_cgsize( launch_nvbench_insert(state, h_keys, num_keys, size); } +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_insert_cgsize( + nvbench::state& state, nvbench::type_list>) +{ + state.skip("Key should be the same type as Value."); +} + /** * @brief A benchmark evaluating multi-value count performance by varing number of repetitions * per key: @@ -156,13 +161,9 @@ void nvbench_static_multimap_insert_cgsize( * */ template -void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list) +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_count( + nvbench::state& state, nvbench::type_list) { - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } - std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); std::size_t const num_reps = state.get_int64("NumReps"); @@ -206,6 +207,13 @@ void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_count( + nvbench::state& state, nvbench::type_list) +{ + state.skip("Key should be the same type as Value."); +} + /** * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions * per key: @@ -216,13 +224,9 @@ void nvbench_static_multimap_count(nvbench::state& state, nvbench::type_list -void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list) +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_find_all( + nvbench::state& state, nvbench::type_list) { - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } - std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); std::size_t const num_reps = state.get_int64("NumReps"); @@ -268,6 +272,13 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< }); } +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_find_all( + nvbench::state& state, nvbench::type_list) +{ + state.skip("Key should be the same type as Value."); +} + /** * @brief A benchmark evaluating multi-value retrieval performance (`count` + `find_all`) by varing * number of repetitions per key: @@ -278,13 +289,9 @@ void nvbench_static_multimap_find_all(nvbench::state& state, nvbench::type_list< * */ template -void nvbench_static_multimap_retrieve(nvbench::state& state, nvbench::type_list) +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_retrieve( + nvbench::state& state, nvbench::type_list) { - if (not std::is_same::value) { - state.skip("Key should be the same type as Value."); - return; - } - std::size_t const num_keys = state.get_int64("NumInputs"); auto const occupancy = state.get_float64("Occupancy"); std::size_t const num_reps = state.get_int64("NumReps"); @@ -331,6 +338,13 @@ void nvbench_static_multimap_retrieve(nvbench::state& state, nvbench::type_list< }); } +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_retrieve( + nvbench::state& state, nvbench::type_list) +{ + state.skip("Key should be the same type as Value."); +} + using key_type = nvbench::type_list; using value_type = nvbench::type_list; using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; diff --git a/include/cuco/detail/bitwise_compare.cuh b/include/cuco/detail/bitwise_compare.cuh index aac3b8a9e..267f5b6d3 100644 --- a/include/cuco/detail/bitwise_compare.cuh +++ b/include/cuco/detail/bitwise_compare.cuh @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#pragma once #include #include @@ -74,4 +75,4 @@ __host__ __device__ constexpr bool bitwise_compare(T const& lhs, T const& rhs) } } // namespace detail -} // namespace cuco \ No newline at end of file +} // namespace cuco diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index 34bc29fdc..1299ee16c 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -14,8 +14,9 @@ * limitations under the License. */ -#include +#pragma once +#include #include #include #include @@ -117,9 +118,6 @@ struct alignas(detail::pair_alignment()) pair { thrust::get<1>(thrust::raw_reference_cast(t))} { } - __host__ __device__ constexpr pair(First const& f, Second const& s) noexcept : first{f}, second{s} - { - } }; template diff --git a/include/cuco/detail/static_map_kernels.cuh b/include/cuco/detail/static_map_kernels.cuh index f709071a1..c243414e8 100644 --- a/include/cuco/detail/static_map_kernels.cuh +++ b/include/cuco/detail/static_map_kernels.cuh @@ -55,7 +55,7 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * * Each space in `slots` that can hold a key value pair is initialized to a * `pair_atomic_type` containing the key `k` and the value `v`. - * + * * @tparam atomic_key_type Type of the `Key` atomic container * @tparam atomic_mapped_type Type of the `Value` atomic container * @tparam Key key type @@ -418,5 +418,5 @@ __global__ void contains( } } -} // namespace detail -} // namespace cuco +} // namespace detail +} // namespace cuco diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 705e9e092..52664a3e4 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -14,8 +14,20 @@ * limitations under the License. */ +#include + namespace cuco { +/**---------------------------------------------------------------------------* + * @brief Enumeration of the possible results of attempting to insert into + *a hash bucket + *---------------------------------------------------------------------------**/ +enum class insert_result { + CONTINUE, ///< Insert did not succeed, continue trying to insert + SUCCESS, ///< New pair inserted successfully + DUPLICATE ///< Insert did not succeed, key is already present +}; + template ::device_mu } } -template -template -__device__ typename static_multimap::device_view::iterator -static_multimap::device_view::find( - Key const& k, Hash hash, KeyEqual key_equal) noexcept -{ - auto current_slot = initial_slot(k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - // Key doesn't exist, return end() - if (existing_key == this->get_empty_key_sentinel()) { return this->end(); } - - // Key exists, return iterator to location - if (key_equal(existing_key, k)) { return current_slot; } - - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ - typename static_multimap::device_view::const_iterator - static_multimap::device_view::find( - Key const& k, Hash hash, KeyEqual key_equal) const noexcept -{ - auto current_slot = initial_slot(k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - // Key doesn't exist, return end() - if (existing_key == this->get_empty_key_sentinel()) { return this->end(); } - - // Key exists, return iterator to location - if (key_equal(existing_key, k)) { return current_slot; } - - current_slot = next_slot(current_slot); - } -} - template template -__device__ typename static_multimap::device_view::iterator -static_multimap::device_view::find( - CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept +__device__ void static_multimap::device_mutable_view::insert( + CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k, hash); - + auto current_slot = initial_slot(g, insert_pair.first, hash); while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); - - // the key we were searching for was found by one of the threads, - // so we return an iterator to the entry - auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); - if (exists) { - uint32_t src_lane = __ffs(exists) - 1; - // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the - // current_slot and shuffle that instead. - intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return reinterpret_cast(res_slot); + // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); } - // we found an empty slot, meaning that the key we're searching for isn't present - if (g.ballot(slot_is_empty)) { return this->end(); } - - // otherwise, all slots in the current window are full with other keys, so we move onto the - // next window - current_slot = next_slot(g, current_slot); - } -} - -template -template -__device__ - typename static_multimap::device_view::const_iterator - static_multimap::device_view::find( - CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept -{ - auto current_slot = initial_slot(g, k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as + // the sentinel is not a valid key value. Therefore, first check for the sentinel + auto const first_slot_is_empty = + (detail::bitwise_compare(arr[0].first, this->get_empty_value_sentinel())); + auto const second_slot_is_empty = + (detail::bitwise_compare(arr[1].first, this->get_empty_value_sentinel())); + auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); + if (window_contains_empty) { + // the first lane in the group with an empty slot will attempt the insert + insert_result status{insert_result::CONTINUE}; + uint32_t src_lane = __ffs(window_contains_empty) - 1; + if (g.thread_rank() == src_lane) { + using cuda::std::memory_order_relaxed; + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + auto insert_location = current_slot + !(first_slot_is_empty); + auto& slot_key = insert_location->first; + auto& slot_value = insert_location->second; + bool key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = slot_value.compare_exchange_strong( + expected_value, insert_pair.second, memory_order_relaxed); + if (key_success) { + while (not value_success) { + value_success = + slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + status = insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); + } + // another key was inserted in both slots we wanted to try + // so we need to try the next empty slots in the window + } - // the key we were searching for was found by one of the threads, so we return an iterator to - // the entry - auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); - if (exists) { - uint32_t src_lane = __ffs(exists) - 1; - // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the - // current_slot and shuffle that instead. - intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return reinterpret_cast(res_slot); + // successful insert + if (g.any(status == insert_result::SUCCESS)) { return; } + // if we've gotten this far, a different key took our spot + // before we could insert. We need to retry the insert on the + // same window + } + // if there are no empty slots in the current window, + // we move onto the next window + else { + current_slot = next_slot(g, current_slot); } - - // we found an empty slot, meaning that the key we're searching - // for isn't in this submap, so we should move onto the next one - if (g.ballot(slot_is_empty)) { return this->end(); } - - // otherwise, all slots in the current window are full with other keys, - // so we move onto the next window in the current submap - - current_slot = next_slot(g, current_slot); } } @@ -364,22 +318,21 @@ template template -__device__ - typename static_multimap::device_view::fancy_iterator - static_multimap::device_view::find_all( - Key const& k, Hash hash, KeyEqual key_equal) noexcept +__device__ typename static_multimap::device_view::iterator +static_multimap::device_view::find( + Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(k, hash); while (true) { auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); // Key doesn't exist, return end() - if (existing_key == this->get_empty_key_sentinel()) { - return fancy_iterator{this->end(), k, *this}; + if (detail::bitwise_compare(existing_key, this->get_empty_key_sentinel())) { + return this->end(); } // Key exists, return iterator to location - if (key_equal(existing_key, k)) { return fancy_iterator{current_slot, k, *this}; } + if (key_equal(existing_key, k)) { return current_slot; } current_slot = next_slot(current_slot); } @@ -392,8 +345,8 @@ template template __device__ - typename static_multimap::device_view::const_fancy_iterator - static_multimap::device_view::find_all( + typename static_multimap::device_view::const_iterator + static_multimap::device_view::find( Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(k, hash); @@ -401,12 +354,12 @@ __device__ while (true) { auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); // Key doesn't exist, return end() - if (existing_key == this->get_empty_key_sentinel()) { - return const_fancy_iterator{this->end(), k, *this}; + if (detail::bitwise_compare(existing_key, this->get_empty_key_sentinel())) { + return this->end(); } // Key exists, return iterator to location - if (key_equal(existing_key, k)) { return const_fancy_iterator{current_slot, k, *this}; } + if (key_equal(existing_key, k)) { return current_slot; } current_slot = next_slot(current_slot); } @@ -418,10 +371,9 @@ template template -__device__ - typename static_multimap::device_view::fancy_iterator - static_multimap::device_view::find_all( - CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept +__device__ typename static_multimap::device_view::iterator +static_multimap::device_view::find( + CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k, hash); @@ -430,7 +382,8 @@ __device__ // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); // the key we were searching for was found by one of the threads, // so we return an iterator to the entry @@ -440,11 +393,11 @@ __device__ // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the // current_slot and shuffle that instead. intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return fancy_iterator{reinterpret_cast(res_slot), k, *this}; + return reinterpret_cast(res_slot); } // we found an empty slot, meaning that the key we're searching for isn't present - if (g.ballot(slot_is_empty)) { return fancy_iterator{this->end(), k, *this}; } + if (g.ballot(slot_is_empty)) { return this->end(); } // otherwise, all slots in the current window are full with other keys, so we move onto the // next window @@ -459,8 +412,8 @@ template template __device__ - typename static_multimap::device_view::const_fancy_iterator - static_multimap::device_view::find_all( + typename static_multimap::device_view::const_iterator + static_multimap::device_view::find( CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept { auto current_slot = initial_slot(g, k, hash); @@ -470,7 +423,8 @@ __device__ // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); // the key we were searching for was found by one of the threads, so we return an iterator to // the entry @@ -480,12 +434,12 @@ __device__ // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the // current_slot and shuffle that instead. intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return const_fancy_iterator{reinterpret_cast(res_slot), k, *this}; + return reinterpret_cast(res_slot); } // we found an empty slot, meaning that the key we're searching // for isn't in this submap, so we should move onto the next one - if (g.ballot(slot_is_empty)) { return const_fancy_iterator{this->end(), k, *this}; } + if (g.ballot(slot_is_empty)) { return this->end(); } // otherwise, all slots in the current window are full with other keys, // so we move onto the next window in the current submap @@ -508,7 +462,7 @@ __device__ bool static_multimap::device_vi while (true) { auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - if (existing_key == empty_key_sentinel_) { return false; } + if (detail::bitwise_compare(existing_key, empty_key_sentinel_)) { return false; } if (key_equal(existing_key, k)) { return true; } @@ -532,7 +486,8 @@ __device__ bool static_multimap::device_vi // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); // the key we were searching for was found by one of the threads, so we return an iterator to // the entry diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index dc0889bf5..18c44c25f 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -16,6 +16,7 @@ #include #include +#include #include @@ -191,7 +192,7 @@ template (cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto it = first + tid / tile_size; while (it < last) { @@ -203,8 +204,6 @@ __global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEq if (threadIdx.x == 0 && blockIdx.x == 0) { for (auto i = 0; i < view.get_capacity(); i++) { auto slot = view.get_slots() + i; - // if (slot->first != -1) - // printf("%ld:\t%ld\n", long(slot->first), long(slot->second)); } } } @@ -613,9 +612,14 @@ __global__ void find_all(InputIt first, bool found_match = false; while (running) { - auto const tmp = *reinterpret_cast(current_slot); pair arr[2]; - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); @@ -747,55 +751,7 @@ template ::type* = nullptr> -__global__ void count( - InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; - - using BlockReduce = cub::BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - - int thread_counter{0}; - - while (first + key_idx < last) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key, hash); - - while (true) { - auto const tmp = *reinterpret_cast(current_slot); - pair arr[2]; - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - thread_counter += (first_equals + second_equals); - - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } - - current_slot = view.next_slot(tile, current_slot); - } - key_idx += (gridDim.x * block_size) / tile_size; - } - auto const block_count = BlockReduce(temp_storage).Sum(thread_counter); - if (threadIdx.x == 0) { num_items->fetch_add(block_count, cuda::std::memory_order_relaxed); } -} - -template ::type* = nullptr> + typename KeyEqual> __global__ void count( InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) { @@ -813,9 +769,14 @@ __global__ void count( auto current_slot = view.initial_slot(tile, key, hash); while (true) { - auto const tmp = *reinterpret_cast(current_slot); pair arr[2]; - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 10160b09f..73fef6bac 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -24,10 +24,13 @@ #include #include -#include -#ifndef CUDART_VERSION -#error CUDART_VERSION Undefined! -#elif (CUDART_VERSION >= 11000) // including with CUDA 10.2 leads to compilation errors + +#if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ + (__CUDA_ARCH__ >= 700) +#define CUCO_HAS_CUDA_BARRIER +#endif + +#if defined(CUCO_HAS_CUDA_BARRIER) #include #endif @@ -39,16 +42,6 @@ namespace cuco { -/**---------------------------------------------------------------------------* - * @brief Enumeration of the possible results of attempting to insert into - *a hash bucket - *---------------------------------------------------------------------------**/ -enum class insert_result { - CONTINUE, ///< Insert did not succeed, continue trying to insert - SUCCESS, ///< New pair inserted successfully - DUPLICATE ///< Insert did not succeed, key is already present -}; - /** * @brief A GPU-accelerated, unordered, associative container of key-value * pairs with unique keys. @@ -57,7 +50,9 @@ enum class insert_result { * concurrent insert and find) from threads in device code. * * Current limitations: - * - Requires keys that are Arithmetic + * - Requires keys and values that are trivially copyable and have unique object representations + * - Comparisons against the "sentinel" values will always be done with bitwise comparisons + * Therefore, the objects must have unique, bitwise object representations (e.g., no padding bits). * - Does not support erasing keys * - Capacity is fixed and will not grow automatically * - Requires the user to specify sentinel values for both key and mapped value @@ -121,7 +116,14 @@ template > class static_multimap { - static_assert(std::is_arithmetic::value, "Unsupported, non-arithmetic key type."); + template + static constexpr bool is_CAS_safe = + std::is_trivially_copyable_vand std::has_unique_object_representations_v; + + static_assert(is_CAS_safe, + "Key type must be trivially copyable and have unique object representation."); + static_assert(is_CAS_safe, + "Value type must be trivially copyable and have unique object representation."); public: using value_type = cuco::pair_type; @@ -656,135 +658,11 @@ class static_multimap { */ template , - typename KeyEqual = thrust::equal_to, - typename U = Key, - typename std::enable_if::type* = nullptr> - __device__ void insert(CG g, - value_type const& insert_pair, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) - { - auto current_slot = initial_slot(g, insert_pair.first, hash); - while (true) { - // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); - auto const tmp = *reinterpret_cast(current_slot); - pair arr[2]; - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as - // the sentinel is not a valid key value. Therefore, first check for the sentinel - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - // auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); - auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); - if (window_contains_empty) { - // the first lane in the group with an empty slot will attempt the insert - insert_result status{insert_result::CONTINUE}; - uint32_t src_lane = __ffs(window_contains_empty) - 1; - if (g.thread_rank() == src_lane) { - using cuda::std::memory_order_relaxed; - auto expected_key = this->get_empty_key_sentinel(); - auto expected_value = this->get_empty_value_sentinel(); - auto insert_location = current_slot + !(first_slot_is_empty); - auto& slot_key = insert_location->first; - auto& slot_value = insert_location->second; - bool key_success = slot_key.compare_exchange_strong( - expected_key, insert_pair.first, memory_order_relaxed); - bool value_success = slot_value.compare_exchange_strong( - expected_value, insert_pair.second, memory_order_relaxed); - if (key_success) { - while (not value_success) { - value_success = slot_value.compare_exchange_strong( - expected_value = this->get_empty_value_sentinel(), - insert_pair.second, - memory_order_relaxed); - } - status = insert_result::SUCCESS; - } else if (value_success) { - slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); - } - // another key was inserted in both slots we wanted to try - // so we need to try the next empty slots in the window - } - - // successful insert - if (g.any(status == insert_result::SUCCESS)) { return; } - // if we've gotten this far, a different key took our spot - // before we could insert. We need to retry the insert on the - // same window - } - // if there are no empty slots in the current window, - // we move onto the next window - else { - current_slot = next_slot(g, current_slot); - } - } - } - - template , - typename KeyEqual = thrust::equal_to, - typename U = Key, - typename std::enable_if::type* = nullptr> + typename KeyEqual = thrust::equal_to> __device__ void insert(CG g, value_type const& insert_pair, Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) - { - auto current_slot = initial_slot(g, insert_pair.first, hash); - while (true) { - // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); - auto const tmp = *reinterpret_cast(current_slot); - pair arr[2]; - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as - // the sentinel is not a valid key value. Therefore, first check for the sentinel - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - // auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); - auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); - if (window_contains_empty) { - // the first lane in the group with an empty slot will attempt the insert - insert_result status{insert_result::CONTINUE}; - uint32_t src_lane = __ffs(window_contains_empty) - 1; - if (g.thread_rank() == src_lane) { - using cuda::std::memory_order_relaxed; - auto expected_key = this->get_empty_key_sentinel(); - auto expected_value = this->get_empty_value_sentinel(); - auto insert_location = current_slot + !(first_slot_is_empty); - auto& slot_key = insert_location->first; - auto& slot_value = insert_location->second; - bool key_success = slot_key.compare_exchange_strong( - expected_key, insert_pair.first, memory_order_relaxed); - bool value_success = slot_value.compare_exchange_strong( - expected_value, insert_pair.second, memory_order_relaxed); - if (key_success) { - while (not value_success) { - value_success = slot_value.compare_exchange_strong( - expected_value = this->get_empty_value_sentinel(), - insert_pair.second, - memory_order_relaxed); - } - status = insert_result::SUCCESS; - } else if (value_success) { - slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); - } - // another key was inserted in both slots we wanted to try - // so we need to try the next empty slots in the window - } - - // successful insert - if (g.any(status == insert_result::SUCCESS)) { return; } - // if we've gotten this far, a different key took our spot - // before we could insert. We need to retry the insert on the - // same window - } - // if there are no empty slots in the current window, - // we move onto the next window - else { - current_slot = next_slot(g, current_slot); - } - } - } + KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device mutable view @@ -804,76 +682,6 @@ class static_multimap { using iterator = typename device_view_base::iterator; using const_iterator = typename device_view_base::const_iterator; - template - struct FancyIterator { - public: - using data_type = DataType; - using pointer_type = DataType*; - using data_reference = DataType&; - - public: - __host__ __device__ FancyIterator(pointer_type current, Key key, device_view& view) noexcept - : current_{current}, - key_{key}, - begin_{view.begin_slot()}, - end_{view.end_slot()}, - empty_key_sentinel_{view.get_empty_key_sentinel()} - { - } - - __host__ __device__ FancyIterator(pointer_type current, - Key key, - const device_view& view) noexcept - : current_{current}, - key_{key}, - begin_{view.begin_slot()}, - end_{view.end_slot()}, - empty_key_sentinel_{view.get_empty_key_sentinel()} - { - } - - __host__ __device__ ~FancyIterator() {} - - __device__ FancyIterator& operator++() - { - current_ = next_slot(current_); - while (current_->first != key_) { - if (current_->first == this->empty_key_sentinel_) { - current_ = this->end_; - return *this; - } - current_ = next_slot(current_); - } - return *this; - } - - __device__ pointer_type next_slot(pointer_type it) noexcept - { - return (++it < end_) ? it : begin_; - } - __device__ pointer_type next_slot(pointer_type it) const noexcept - { - return (++it < end_) ? it : begin_; - } - - __device__ bool operator==(const pointer_type& it) const { return (this->current_ == it); } - __device__ bool operator!=(const pointer_type& it) const { return this->current_ != it; } - - __device__ data_reference operator*() { return *current_; } - __device__ data_reference operator*() const { return *current_; } - __device__ pointer_type operator->() { return current_; } - __device__ pointer_type operator->() const { return current_; } - - private: - pointer_type current_; - Key key_; - pointer_type begin_; - pointer_type end_; - Key empty_key_sentinel_; - }; - using fancy_iterator = FancyIterator; - using const_fancy_iterator = FancyIterator; - /** * @brief Construct a view of the first `capacity` slots of the * slots array pointed to by `slots`. @@ -1059,102 +867,6 @@ class static_multimap { __device__ const_iterator find(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; - /** - * @brief Finds all values corresponding to the key `k`. - * - * Returns a fancy iterator to the first pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. - * - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return A fancy iterator to the position at which the first key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ fancy_iterator find_all(Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Finds all values corresponding to the key `k`. - * - * Returns a const fancy iterator to the first pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. - * - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return A const fancy iterator to the position at which the first key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ const_fancy_iterator find_all(Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) const noexcept; - - /** - * @brief Finds all values corresponding to the key `k`. - * - * Returns a fancy iterator to the first pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single find. This provides a - * significant boost in throughput compared to the non Cooperative Group - * `find_all` at moderate to high load factors. - * - * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the find - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return A fancy iterator to the position at which the first key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ fancy_iterator - find_all(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Finds all values corresponding to the key `k`. - * - * Returns a const_iterator to the first pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single find. This provides a - * significant boost in throughput compared to the non Cooperative Group - * `find_all` at moderate to high load factors. - * - * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the find - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return A const fancy iterator to the position at which the first key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ const_fancy_iterator find_all(CG g, - Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) const noexcept; - /** * @brief Indicates whether the key `k` was inserted into the map. * diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 7c1916ab5..bdf75b88d 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -87,67 +87,6 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } } -TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", - "", - ((typename T, dist_type Dist), T, Dist), - (int32_t, dist_type::UNIQUE), - (int64_t, dist_type::UNIQUE), - (int32_t, dist_type::UNIFORM), - (int64_t, dist_type::UNIFORM), - (int32_t, dist_type::GAUSSIAN), - (int64_t, dist_type::GAUSSIAN)) -{ - using Key = T; - using Value = T; - - constexpr std::size_t num_keys{50'000'000}; - cuco::static_multimap map{100'000'000, -1, -1}; - - auto m_view = map.get_device_mutable_view(); - auto view = map.get_device_view(); - - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); - - generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; - h_pairs[i].second = val; - } - - thrust::device_vector> d_pairs(h_pairs); - - SECTION("All keys should be found.") - { - // Bulk insert keys - thrust::for_each(thrust::device, - d_pairs.begin(), - d_pairs.end(), - [m_view] __device__(cuco::pair_type const& pair) mutable { - m_view.insert(pair); - }); - - SECTION("non-const view") - { - REQUIRE(all_of(d_pairs.begin(), - d_pairs.end(), - [view] __device__(cuco::pair_type const& pair) mutable { - return view.find_all(pair.first) != view.end(); - })); - } - SECTION("const view") - { - REQUIRE(all_of( - d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { - return view.find_all(pair.first) != view.end(); - })); - } - } -} - TEMPLATE_TEST_CASE_SIG("Each key appears twice", "", ((typename T, dist_type Dist), T, Dist), From 9afd723f3ba8b12eef1fcda0785d7cf0b94f6ca6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 3 May 2021 20:57:51 -0400 Subject: [PATCH 080/267] Update performance analysis jupyter notebook --- .../analysis/notebooks/StaticMultimap.ipynb | 206 ++++++++++++++---- 1 file changed, 158 insertions(+), 48 deletions(-) diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index ff6a5ec89..b5f5526c1 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -71,9 +71,8 @@ "perfdf['CGSize'] = perfdf['CGSize'].astype('Int64')\n", "\n", "# Add labels\n", - "perfdf.loc[perfdf['NumReps'].isnull() & perfdf['CGSize'].isnull(), 'Label'] = perfdf[\"Key\"] + \" \" + perfdf[\"Distribution\"]\n", - "perfdf.loc[perfdf['Distribution'].isnull() & perfdf['CGSize'].isnull(), 'Label'] = perfdf[\"Key\"]\n", - "perfdf.loc[perfdf['CGSize'].notnull(), 'Label'] = perfdf[\"Key\"] + \" \" + perfdf['CGSize'].astype(str)\n", + "perfdf['Label'] = perfdf[\"Key\"] + \"_\" + perfdf[\"Distribution\"]\n", + "perfdf.loc[perfdf['CGSize'].notnull(), 'Label'] += \"_\" + perfdf['CGSize'].astype(str)\n", "\n", "perfdf[\"Bandwidth (GB/s)\"] = perfdf[\"GlobalMem BW (bytes/sec)\"] / (1000 * 1000 * 1000)\n", "\n", @@ -107,10 +106,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "nvbench_static_multimap_single_insert\n", - "nvbench_static_multimap_multi_insert\n", - "nvbench_static_multimap_find\n", + "nvbench_static_multimap_insert\n", + "nvbench_static_multimap_count\n", "nvbench_static_multimap_find_all\n", + "nvbench_static_multimap_retrieve\n", "nvbench_static_multimap_insert_cgsize\n" ] } @@ -124,21 +123,33 @@ }, { "cell_type": "markdown", - "id": "blocked-confidence", + "id": "spatial-patent", "metadata": {}, "source": [ - "### Single-Value Insertion" + "### insert " ] }, { "cell_type": "code", "execution_count": 5, - "id": "periodic-champion", + "id": "homeless-grave", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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oErwXABV1R2K37xzLlUNGACNGlnF6XLltm7ftMmq7edczNuZyy7Le1wKwOef2+8v2po1NrD40Udz/0z79jalPhYVo5ZAWL9+PZs3W0WiqlWrcvDBB295T8eOHbfpwchP8+bNqVq1Kn/++Sf16tXjn3/+YerUqXzwwQcce+yxDBs2bMt769aty7777sv48eM577zz8tyniDBgwABefvll3nzzTVq3bs20adN49tlnt7zn+uuvp1mzZvz444+UK1eOqlWrsscee5CdnU1mZibPPvssp5xyypYkM54OOmj7baecAhdeaJe/atSAqB+bGjVg8GC71LViBfTsue1nC1OP6ttvv2Xjxo0cfvjhwLY9ZJs2bWLw4ME8/fTTvPzyyzHvs6x8hyJw8cVW/7BXLzjsMLj6aivOmoiJR3nmcapaTlV3CG41VLV81GNPwJxzBerZ03ppAF5/Hc46C+rVg9q1oUMHWyTXFU7OBKyg7UWxZMkS2rZtS6NGjbjyyivZZZddtnl91apVvPbaaxx66KEx7W/69Ok0b958S2/MpEmT6NatGy1atGCnnXZi2rRtlyO+8sorufPOO9kUQxdqx44d+f777/n2229p37495aIy/nLlytG+fXvmRBWx69WrF8888wxLliyhXLly2/1syTB3LtSsue22mjXjV/R43rx51KpVixNPPJEOHTowePDgLb/L+++/nx49etCgQYNC7bOsfYft2kF2ttVDvOUWOPBAW+823kMBClw70jnnimvTJujb16Z4P/YY9OkDb75p96+9BnvtFXaEJUdBPVYZGbkvl5KeXvzq3RGNGjXim2++4ZdffuH444+nZ8+e1K9fH4CNGzdy2mmncckll7DbbvkvnnL33XczduxY5s2bx2uvvbZl+8SJE7n00ksB+w914sSJdOrUacvru+22G126dOHpp58uMFYt5DTcbt26cd1111G/fn1OPfXUQn22MPL7LvbYw3rBgo5FAD74wHpgwC6LFee73LhxIx9//DEzZsygcePGnHrqqYwbN46jjjqK559/nimF2HlZ/g6rVbPj1eGH28lk69a2nmTkKmtkKABAVlbR2ojDFc28iUg3EZkrIvNFZLtRnCIyUES+FZFvROQ9EUlPZDzOuXD89ZfV1GnVymYZPfEEHHMMXHcd3H132NGVLsOHb38pt2pV2x5vu+yyC3vuuScf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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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H5UqFe/8d91llbpLLoGWLaFFi+jEncAOU9XFIrIH8ImI/KSqX2Q/IKic9QSol2yJjJwLQfny8NZb1mrfuzds2ADXXlv487Rta2PNtm2DtEianeIskgW864jIWyKyLNjeFJE6kZxcVT9Q1caqureqDg723ZJbBUxV23krmHPxUaoU1KwJu+xig+p/+cVmFN18c/HPXbq0DardbTdL5LpyZfHPmchUdXHwdRnwFjYzPOcxPqTCuUIqW9auJWedBdddB7ffXrQW+zZt4IAD7PHjj9v1LlFEUi98DutGrB1s7wb7nHNJSBVGjbK8Ol98YRe6UqXgjjvgpZeiU0bNmpYodsECOO+8xOwGiAYRqRjkOkREKmKpfHwhJ+eipEwZuy517w633AIDBhR96MRff1m+xHbtYrOcW1FEUgmroarPqeqWYBsB+K2cc0lswwZLjlinjl3Q+veHRYtsdmO0HHIIPPigje24++7onTfB1AS+EpEfgG+B91X1o5Bjci6llCoFzz5ra9XedRf07Vu0ilj16paPbPNmq4jNnh31UAstkkrYChE5R0RKBds52EB951wSErEBr089Zc+XLNk+NiwzygkWrrjCcofddJMNkE01QTLqlsHWLGvYhXMuutLSYOhQGx/20EPQq1fRWtibN7dM+6pWEZs5M9qRFk4klbALgTOAJcCfQBegSIP1nXOJ4b77rJXqvPPg7bet8rVtG0yYEN1ZjSIwfLhlwu7aFRYujN65nXMliwg8/DBcfz08+aQt3p2ebhW0jAwYOTKy8zRtaksllSkDU6bEMuKC5VkJE5F7godtVbWjqtZQ1T1UtZOq+qXUuSTWuDFMnw6tWsH331tOnjlz4LDDrGL2wAPRK6tiRZt1uXmzZcIugYlcnXNRImJdkp0725jWhQutVWvBAuuujLQi1qSJ5U087zx7viGkhRPzawk7QUQEuCFewTjn4mf33S2p6rBhtv5jRgZ89JElSGzePLplNW68PR9Z9eqFv3N1zrksIrm3YK1bZwP3I5WVjuezz6BhQ7shjbf8KmEfAf8ALUTkXxFZnf1rnOJzzsVR2bLw3HPwf/9nz99+G9asic65162z9BVr1hTtztU557LkNbShKEMe0tPt2tS+vd0oxlOelTBVvVZVq2KzfXZV1crZv8YvROdcGBYssHUg27WzwfvFNWAAbNmy477C3rk65xxAXjmPK1UqfNdi/fo2Rmy33eCYYyyZdbzkOzBfREoBXuFyrgRKT7eM1bNn2/IfP/1UvPNF887VOVeyDR4MFSrsuK90aVi92hKzzihktr70dKuI1agBxx0Xvzxi+VbCVHUrsE1EqsQnHOdcIjnxRLswrVtneb++/LLo58rrztVX8XHOFVa3bjaeNT3dxoilp9u40w8+sEW7DzjA1rAtTD6xunXtetenjy3jFg+RpKhYA0wXkWdE5NGsLdaBOecSQ2YmTJxod4jFmc6d251rhQq23znnCqtbN5g/39LrzJ9vz48/Hn780dJX9OoFp5ximfIjtddetjxSWpoNySjOjWckIqmEjQZuBr4ApmTbnHMlRIMGNnOoTx97njUtvDByu3MdNsz2O+dctNSsCe+/D488YsuztWgB//tf4c9z5ZU2SWncuOjHmKXASpiqPg+8BkxS1eezttiF5JxLRBUrWuVp3jxLYXHVVbB1a+HOkdudq3PORZuIZdf/9luoWtVWBLn2Wti0KfJzPP20pa446SQYOzY2cRZYCRORk4FpWMoKRKSViLwTm3Ccc4kuIwMuvhgefdRmT0ZzvUnnnIumli1h8mS49FK4/36bZDRnTmTv3WMPGD/eErt27AjvvQdvvAH9+tmKI8uXFz++SLojbwXaAisBVHUa0KD4RTvnklFammXUf+QRGDPGsu0XZsyFc87FU4UKtszRW29ZC/z++9uC4JEMqahe3Spi++4LZ59tla8aNWz2ZbNmxU9nEUklbLOqrsqxrwjLZjrnUknv3nZXOG2a3WE651wi69TJBu0feCBcdBGceSb880/B79t9dzjhBLvh/PpruO46q8QNGWIJpws7Pja7SCphM0XkbKCUiDQSkceACUUv0jmXKjp3tjvB226z54UdI+acc/G0117wySdw993WMtayZWQzIMeOhb59be3bHj0sbc9pp8GKFfDbb0WPJ5JK2JVAM2Aj8DKwCriq6EU651JJy5a23NHy5dCmjS115JxziapUKbj+epgwAcqVs1VBbr4ZNm/O+z1lylgm/k2bbM3dChXspnPTJnutqPKshIlIeRG5CrgXWAgcrKoHqOpNqhrSeuPOuUSlapWxzp3hiSfCjsY55/J3wAEwdSp07w533AFHHGGzv3PTtSvcdZdV2po1s31PPmmD9uvWLXoM+bWEPQ9kAtOB4wEf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\n", "text/plain": [ "
" ] @@ -151,30 +162,49 @@ ], "source": [ "for bm in unique_bms:\n", - " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm] \n", - " unique_labels = tmpdf[\"Label\"].unique()\n", + " flag = \"nvbench_static_multimap_insert\" == bm\n", " \n", - " if \"single_insert\" in bm:\n", - " plot_perf(bm, tmpdf, \"Occupancy\", unique_labels)" + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", + " unique_labels = randomdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", + " \n", + " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", + " unique_labels = cycledf[\"Label\"].unique()\n", + " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" ] }, { "cell_type": "markdown", - "id": "spatial-patent", + "id": "excessive-occupation", "metadata": {}, "source": [ - "### Multi-Value Insertion " + "### count" ] }, { "cell_type": "code", "execution_count": 6, - "id": "homeless-grave", + "id": "descending-enterprise", "metadata": {}, "outputs": [ { "data": { - "image/png": "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e+9t+XweecRy+RSWKnz+uZ3vjTes8mzVysaRxfbIVaxo+YUyU2PkxGdHOucy65WLLrKer5wMHWpDJP77D/75x1JhRKmgsyOfAdKxBlgn4N4QYnPOJVHNmtsaWWecYYvrtmplPWBdutgtyenTbfHdwhCxMR2vvGJLId10E8yateMtUV+v0jkXr8x65aOPcj+uYkW74Pz8c6vzDjvMEsd++23h67ZEy60R1kJVz1LVx7GFao9IUkzOuRClpdltwquusm7+Rx6xMVyzZlnS19atLVni8cfbrKUvvyxcxVWvnuX9yekcixYV/NwucSoHWXgXLlxImzZtaN26NS1btmTEiBEArF+/ns6dO7PnnnvSsmVLBg0aFGW4CVU5JgPxokWL6NChA3vttRctWrRgwYIF2x3br1+/7Y53ydegAeyyS/avidjg/Vq1rJd///1hxQq7TXnQQVC7Nvzyix1bFBpkuTXC/n+yZ1G4DemcS5x+/Wxc2Pr1lnj199/ta//+No7s9NOtB+v6620ppcxRC2+/De++a+u/5VejRtnvz20dS5e9MMfW7brrrkyaNIlp06bxzTffMGzYMJYuXQrAwIED+fHHH5k6dSpfffUV7733XuIKjtPYsXb7vFQp+zp2bGLPf84553D11VczZ84cvv32W2rXrv3/r2VkZLCmIL/8LuHuvXfHpdcqVrQJQRMn2i3JJk1g9mxrdKnaBeEuu9gySStWWH237762pNKECTv21CeFqma7AVuAv4JtHbA55vFfOb0v7G3//fdX51zhbNmiesstqjvvrNqokWqNGqq33666dev2x/3+u+rEidueH3CAKqiKqO6zj+rFF6u+9VZ8ZT7/vGrFivb+zK1iRdufFyBDI6pzEr0Vtg4rzPcxN5UqVdph3++//64NGjTQ3377bYfX+vXrpyNHjixcofn0wguqTZqoTpig+t9/9rVJE9tfGJmfffbs2XrYYYdle8zmzZu1Xbt2unTp0my/Vy75nn/e6i8R+5rd38B//6lOmqR6552qHTuqVq687e9ml11U69ZVLVXKnleqpNqnT87lzZ2r2ru36p57qh5zjOqbb8YXZ271V1zLFhUlPqjVucTZsAGWLYO6dS07dV7Wr7dxFRMn2m3Kr7+2nrKXX7bX+/WDFi2gbVv7mhbT175pk6XCePddG6hfpozdNrjrrrzLLUkD8/v3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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFhCAYAAAA4HX3WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABzc0lEQVR4nO3deZzN9ffA8deZsW8pIbJThKyDSiXatNgiS4oWaV8UbYpU+rUq1bdFCypJ2vc9lTbZIrRbQ4siRQrn98f5DNOY5Q733s9dzvPxuI+593OXz7l35n7m/Xm/z/u8RVVxzjnnnHPxlRF2AM4555xz6cgbYc4555xzIfBGmHPOOedcCLwR5pxzzjkXAm+EOeecc86FwBthzjnnnHMh8EaYc4UQkToioiJSLM77VRFpEM99FkZE/hSRemHHASAi00RkUAH33y8i18QzJuecKwpvhDmXJoraqMurkaOq5VT1h+hHt2tE5FQRmZ5zm6qerarXhxVTIsjrcyngsRNE5J+gof2biLwlIo3yeNw0EfldRErm8XwVkbY5tjUQEc313L9FZL2I/CEis0Tkijxeq7GIvCgi64LHviciB+W4P/vEaE6u5+0ZvIclkbxn58LmjTDnnHPZblHVcsDewI/AwznvFJE6wCGAAl3zeP5vwA2F7ON8VS0PVAMuBfoCr4qIBPuoD3wEzAfqAtWB54A3ReTAXK9VRkSa5rh9ErC4kP07lzC8EebSiogsEZGhIjIvOMueIiKlRGSRiByf43HFROQXEWmV4+mni8hKEVklIkNzPDYjOJv/XkTWiMhTIrJHcF/2GftAEVkmIr+KyPAcz80UkauC564PegZq5tjnESLyrYisFZH/Zf+jKuD9NRCR94P39quITAm2fxA85Iugp6OPiOwuIi8H7/P34HqN4PGjsX+29wSPvyfYvq03TURKi8jtIrI02N90ESldQGzZn8VpIrI82OfZItIm+H2szd5P8PhrReTxPJ5fLNfr7gfcDxwYxLo22D5BRG4Irh8mIitE5DIR+Tn4HXYXkWNF5Buxnp+rcrxmWxH5JIhplYjcIyIlctyvInKhiPwQfM63ikihx1MROTP4W1svIguz/75EZD+xXqK1IrJARLrmeM5/eiQlV+9WEMvZuf9O8vtcIqGqG4GngBa57hoAfApMAAbm8dSJQDMR6RDBPv5S1WlYY+5A4LjgrmuBT1R1uKr+pqrrVfUu4DHg5lwv81iuOAYAjxa2b+cShTfCXDrqDXTGzrKbAacCk4F+OR5zNPCrqs7Osa0jsA9wFHC5iBwRbL8A6A50wM7afwf+l2ufBwMNgcOBEcE/SIBLgv0eC1QATgc25Hje8UCbIM7eQVwFuR54E9gdqAHcDaCqhwb3Nw+GFKdg3//xQG2gFrARuCd4/HDgQ6zXopyqnp/Hvm4DWgMHAXsAlwFbC4kPoB32OfYB7gSGA0cATYDekfwDz0lVFwFnY/+4y6lqxXweuhdQCuvlGQE8CJwcvIdDgGtEpG7w2C3AEGBPrIFwOHBurtfrAWQBrYBu2O8uXyJyItbAGID9rrsCa0SkOPAS9nurgv09TRKRhoW/+212+DspwueSV6xlsb/L73LdNQCYFFyOFpGque7fANwIjI50X6q6DJiJ/Q4AjgSm5vHQp4D2uRr6jwN9g5OZxkA54LNI9+1c2LwR5tLRXaq6UlV/w/75tQCeALqKSJngMSdhDbOcRgVn7/Oxxkt2o+1sYLiqrlDVTdg/2l65emxGqepGVf0C+AJoHmwfBFytql+r+UJV1+R43k2qujb4R/UeO/ZM5PYv1qiqrqp/q2q++UCqukZVn1HVDaq6HvvHGVEDKOj1OR24SFV/VNUtqvpx8P4Lc30Q25vAX8BkVf1ZVX/EGn4tI4lhJ/wLjFbVf4EnsQbW2KCnZQGwkOD3oqqzVPVTVd2sqkuAB9jxs7k56KlZhjUm+1GwQdhw3+fB7/o7VV0KHIA1Hm5S1X9U9V3g5QheL6ei/p3kZ2jQY7YeO3E4JfsOETkY+9t6SlVnAd9j35PcHgBqicgxRdjvSqwhD/Z7WZXHY1Zh/7P2yLFtBfA11ogfgPWMOZc0vBHm0tHqHNc3AOVU9TtgEdAlaIh1xRpmOS3PcX0p1usF9o/puWAoaG3wOluAnL0EO+wzuF4T+2cWcawFPBasN0qAGcGwVr69MyJSRkQeCIYT/wA+ACqKSGYh+wD7R1mqkNjz81OO6xvzuF3Ye9xZa1R1S4795BVLOQAR2TcYnl0dfDY3Yu85p/z+HvKT3++6OrBcVXP2Ii7FeuwiVdS/k/zcFvSY1cE+j5y9cQOBN1X11+D2E+QxJBk0xK8PLpHaG8snA/gVyxfLrRrW0/p7ru2PYr3Z/fBGmEsy3ghzbrvsIcluwMKgYZZTzlytWtjZO9g/42NUtWKOS6mgZ6cwy4H6uxp4NlVdrapnqmp14CzgXsl/RuSl2D/ZdqpaAcgesszOO9M8n2V+Bf4mirHn4S+gTI7bexXw2IJi3Rn3AV8B+wSfzVVs/1yy5ff3kJ/8ftcrgZq5cspqYYnxULTPIbed+lyCHrWLgLFB7l9pbJizQ9AwXY0N1zYXkeZ5vMR4oCJwQmH7EsuBbI31ggK8DZyYx0N7Y0OrG3JtfwbLJ/shiNu5pOGNMOe2exLL9zqHHXvBwHKGyohIE+A0YEqw/X5gtIjUBhCRyiLSLcJ9PgRcLyL7BMnUzUSk0s6+ARE5UYLkeqzHQNmep/UTkLPGV3mst2Ot2ESCkbleLvfjtwl6bR4BxohI9SAn50DJVWpgF80FDhWRWiKyG3BlAY/9CaiRM3l+F5UH/gD+FCvTcE4ejxkmNrmhJtZgmZLHY3J6CBvuax38rhsEfzOfYb1Xl4lIcRE5DOiC/T2CfQ4nBH97DYAzivA+dvpzUdW3sAbiYCzncQvQGBvqbAHshzWcBuTx3M3Y39Pl+b1+8H46AC8AM4BXg7tGAQeJyGgR2UNEyovIBcF+dng9Vf0L6IQN9zqXVLwR5lxAVVcBn2CJ5nn9Q30fS1R+Bxu2eTPYPhZ4EZtCvx6bPdYuwt2OwRKO38T+6T8M5DvDMAJtgM9E5M8gpoty1PW6FpgYDJv2xvKYSmO9Wp8Cr+d6rbFYbtvvInJXHvsaipUR+BwbSrqZKB5TgkbAFGAeMAvLk8rPu8ACYLWI/FrA4yI1FMt3Wo8l8Of19/BCENdc4BVylXPITVWnYnl3TwSv+zywh6r+gzW6jsF+F/cCA1T1q+CpdwD/YA2qiVhSfKR29XO5FRviHgyMV9VlQW/ralVdjU3k6C95FzKeTN65XfcE35OfsL/BZ4DO2cOxqvotlo/WHFgSvEZPbLLBR3kFqaozVXVnhsadC5WoRrsX3znnUptYAdJ98hiyds65iHlPmHPOOedcCLwR5lySEVsT8c88LvcnQGz984ltQdixxUMi/24AghmzecXXP+zYnEtHPhzpnHPOORcC7wlzzjnnnAuBN8Kcc84550LgjTDnnHPOuRB4I8w555xzLgTeCHPOOeecC4E3wpxzzjnnQuCNMOecc865EHgjzDnnnHMuBN4Ic84555wLgTfCnHPOOedC4I0w55xzzrkQJGUjTEQeEZGfReTLCB5bW0TeEZF5IjJNRGrEI0bnnHPOuYIkZSMMmAB0jvCxtwGPqmoz4Drg/2IVlHPOOedcpJKyEaaqHwC/5dwmIvVF5HURmSUiH4pIo+CuxsC7wfX3gG5xDNU555xzLk9J2QjLxzjgAlVtDQwF7g22fwGcEFzvAZQXkUohxOecc845t02xsAOIBhEpBxwETBWR7M0lg59DgXtE5FTgA+BHYEu8Y3TOOeecyyklGmFYj95aVW2R+w5VXUnQExY01nqq6tq4Ruecc845l0tKDEeq6h/AYhE5EUBM8+D6niKS/T6vBB4JKUznnHPOuW2SshEmIpOBT4CGIrJCRM4A+gNniMgXwAK2J+AfBnwtIt8AVYHRIYTsnEtiIlJKRGaIyBciskBERgXb64rIZyLynYhMEZESYcfqnEseoqphx+CccwlNLNm0rKr+KSLFgenARcAlwLOq+qSI3A98oar3hRmrcy55JGVPmHPOxZOaP4ObxYOLAp2Ap4PtE4Hu8Y/OOZesvBHmnHMREJFMEZkL/Ay8BXyPTQjaHDxkBbB3SOE555JQ0s2O3HPPPbVOnTphh+Gci6NZs2b9qqqVw4xBVbcALUSkIvAc0KjgZ2wnIoOBwQBly5Zt3ahRxE91ziW5go5fSdcIq1OnDjNnzgw7DOdcHInI0rBjyKaqa0XkPeBAoKKIFAt6w2pgdQjzes44rKA0WVlZ6scw59JHQccvH450zrlCiEjloAcMESkNHAkswpZC6xU8bCDwQigBOueSUtL1hDnnXAiqARNFJBM7eX1KVV8WkYXAkyJyAzAHeDjMIJ1zycUbYc45VwhVnQe0zGP7D0Db+EfknEsFPhzpnHPOORcCb4Q555xzzoXAG2HOOeeccyHwRphzziWgn3+G5cvBV5ZzLnWlbCNs0iSoUwcyMuznpElhR+Scc4VbuhSOPBIaNoSsLGjVCj79NOyonHOxkJKNsEmTYPBgO5ip2s/Bg70h5pxLbFu2QOfO0KkTrF4Nq1bBlVdC16522zmXWlKyETZ8OGzY8N9tGzbYduecS1RvvQUVKljDq2RJ2LQJeveG7t1h4sSwo3PORVtKNsKWLSvaduecSwTLl0OTJnb9u+9sSPLpp23bihXhxuaci76UbITVqlW07c45lwjatbPesL//hqpV7ZjVty889BC09ZKwzqWclGyEjR4NZcrsuP2ss+Ifi3PORapZMzjkEDjuOPj8c7j+eqhUCb78ErZuDTs651y0pWQjrH9/GDcOatcGEaheHXbfHW69FWbMCDs655zL38SJ0KULXHEFXHQRDBgABx0Ep58Ob7wRdnTOuWhK2bUj+/e3S7bFi+GII+Dww+Hll6FDh/Bic865/BQvDhdfbJdsf/0Fo0bBwQeHFZVzLhYK7QkTkSoi0kNEzhOR00WkrYgkXQ9a3brw4YeWY9G5M7z2WtgROedcZMqWhVtusZ/r18NLL4UdkXMuGvJtTIlIRxF5A3gFOAaoBjQGrgbmi8goEakQnzCjo3p1eP99aNwYunWzWUfOOZdMbrjBjl+PPBJ2JM65XVXQcOSxwJmqukNhBxEpBhwPHAk8E6PYYmLPPeHddy3xtU8fO5ANHBh2VM45F5lrr4UvvoAzzrDirmeeGXZEzrmdlW8jTFWHFXDfZuD5WAQUD7vtZgmu3bvDqafCn3/CeeeFHZVzzhWudGl4/nno2dNWAtmyBc4+O+yonHM7I99GmIhcUtATVXVM9MOJn7JlLa+ib184/3zLs7jiirCjcs65wpUqBc8+aw2x0aNtElL58mFH5ZwrqoKGI7O/0g2BNsCLwe0uQEoUeihVCqZOtd6wK6+EP/6wA5pI2JE551zBSpaEZ56xNSW9AeZccipoOHIUgIh8ALRS1fXB7WuxZP2UULw4PPoolCsH//d/NjR5552QkXTzP51z6aZkSauHqGo1xerV+29pC+dcYoukTlhV4J8ct/8JtqWMzEy4/347m7z9dhuafOgh2+6cc4luyxZYuRLuvtsq619SYDKJcy5RRNIIexSYISLPBbe7AxNjFlFIRKyifvnyNvvor7/g8cehRImwI3POuYIVKwaTJ1tu2KWXWqNsWL5Tq5xziaLQRpiqjhaR14HsWs2nqeqc2IYVDhEYOdIaYpdeag2xp5+22UjOOZfIiheHJ56wVIrLLrNt3hBzLrFFumzRXGBV9uNFpFZe9cNSxSWXWEPsrLPg2GPhxRc98dU5l/iKFbMe/FKloGHDsKNxzhWm0EaYiFwAjAR+ArYAAijQLLahhevMMy1Z/5RTbM3J116DPfYIOyrnnCtYsWIwYcL2219+CU2bhhaOc64AkcwBvAhoqKpNVLWZqu6vqindAMvWr5/V4pk7Fzp2hJ9+Cjsi55yL3CefQPPmlueqGnY0zrncImmELQfWxTqQRNW1K7zyCnz3HRx6KCxfHnZEzjkXmbZtbVm2UaNgxAhviDmXaCLJCfsBmCYirwCbsjcme8X8ojjiCHjrLcsPO+QQePttaNAg7Kicc65gmZnby+3ccIPNmvSC1M4ljkh6wpYBbwElsCr62Ze0ctBBtvD3X39ZQ+zLL8OOyDnnCpeRAQ88YBON/u//4M03w47IOZctkhIV2ZXzywW3/4x1UImqVSt4/3048kjo0MEWAc/KCjsq55wrWEYG3HsvHHMMHHVU2NE457IV2hMmIk1FZA6wAFggIrNEpEnsQ0tMjRvDhx9ChQrQqZNdd865RJeRAd262VDkl19aTUTPEXMuXJEMR44DLlHV2qpaG7gUeDC2YSW2evVg+nTYe284+mjrEXPOuWTx1FNw3XUwZIg3xJwLUySNsLKq+l72DVWdBpSNWURJYu+9bWiyYUPo0sVKWTjnXDIYNcoaYGPHwoUXekPMubBENDtSRK4BHgtun4zNmEx7VarAe+/ZrMneva3A62uvwbJlUKuWzULq3z/sKJ1z7r9E4PbbbdbkbbfB5s2WK/byy1CyJJx0Ehx8cOGv45zbNZE0wk4HRgHPYpXyPwy2OaBiRZttdMABcP/927cvXQqDB9t1b4g55xKNCNxyi+WKPfoofPyxHbP++suOWYMHw/DhYUfpXGqLZHbk78CFcYglaZUrB+vX77h9wwY7iHkjzDmXiERsgtFLL8Fnn1mPWJkyVuB1v/1s2bZatcKO0rnUFcnsyLdEpGKO27uLiKei55JfJf1lKbvMuXMuFbz+OgwYYNcPPxzOP99SLY47zopUO+diJ5LhyD1VdW32DVX9XUSqxC6k5FSrlg1B5rXdOecSVbly8NtvUKoUHHaYDVE2bAhr1th9zrnYiWR25FYR2daUEJHaWG6Yy2H0aOvGz+3ii+MeinPORax/f5gwAb76yirq9+gBl1wCH30Exx8fdnTOpbZIGmHDgeki8piIPA58AFwZ27CST//+MG4c1K5teRbVqlmjbNw4+P33sKNzzrm8NWoEt94KBx5oja6ff7Zk/c2bYcmSsKNzLrUV2ghT1deBVsAU4EmgtaoWmhMmIjVF5D0RWSgiC0Tkojwec5iIrBORucFlxM68iUTRv78dtLZuhZUr4dVX4fvvoXt32LSpsGc751w4Bg6ExYth0CC48kpYtAjatbNyFc652Ck0J0xEBOgM1FPV60Skloi0VdUZhTx1M3Cpqs4WkfLALBF5S1UX5nrch6qakp3eHTpYN/9JJ8Gpp8KkSXaG6ZxziaZiRTjhhO23333Xfqpar1jx4qGE5VxKi6RJcC9wINAvuL0e+F9hT1LVVao6O7i+HlgE7L2TcSatfv3gppvgySfhqqvCjsY55yKnar1kgwZ5VX3nYiGSRlg7VT0P+Bu21Q0rUZSdiEgdoCXwWR53HygiX4jIa6m6MPhll8HZZ8PNN8N994UdjXPORUYE6te3Yq633BJ2NM6lnkhKVPwrIpkEMyJFpDKwNdIdiEg54BngYlX9I9fds4HaqvqniBwLPA/sk8drDAYGA9RKwpoPInD33bBihdXgqVnTZx0555LDiBE2c/LKK610RffuYUfkXOqIpCfsLuA5oIqIjAamAzdG8uIiUhxrgE1S1R2WuFbVP1T1z+D6q0BxEdkzj8eNU9UsVc2qXLlyJLtOOMWK2ZBky5bQpw98/nnYETnnXOFE4JFHoE0bm3w0Z07YETmXOiKZHTkJuAz4P2AV0F1Vpxb2vCCh/2FgkaqOyecxewWPQ0TaBvGsiTz85FK2rC2QW6WK9YQtXhx2RM45V7jSpeH5521ocu3asKNxLnVEMjuyPrBYVf8nIocBR4rIqpxV9PPRHjgFmC8ic4NtVwG1AFT1fqAXcI6IbAY2An1VUzv9c6+94LXX4KCD4JhjbNHcPfYIOyrnnCtYtWowd+72Gd6q1kvmnNt5keSEPQNkiUgD4AHgReAJ4NiCnqSq04ECv6Kqeg9wT2Shpo5GjeCFF+CII6BbN1ufrVSpsKNyzrmCZTfAbrvNhiUff9wbYs7tioiWLVLVzcAJwD2qOgyoFtuwUt8hh9iMo+nTbQr41oinOjjnXLg2b4YnnoDrrw87EueSW6SzI/sBA4AuwTYv2xcFffrA8uUwbJgtd+RTwJ1zyeDyy62q/siR1rPfu3fYETmXnCJphJ0GnA2MVtXFIlIXeCy2YaWPSy+1pY5uvdUaYuedF3ZEzjlXMBFbF/eHH6wnv25dmz3pnCuaSGZHLlTVC1V1cnB7sareHPvQ0oMIjB0LXbvChRdarphzLrHktxauiFwrIj/mWP+2wFzZVFKyJDz7LNSoAfPmhR2Nc8kpkp4wF2OZmTB5MnTsaMscTZsGbduGHZVzLoc818IN7rtDVW8LMbbQVK4M8+f7xCLndpYvJ50gypSBl16yEhbHHw/ffx92RM65bL4Wbv6yG2CvvuqTjJwrqgIbYSKSKSJpeYYXhipVrIbYli1WQ+zXX8OOyDmXWx5r4Z4vIvNE5BER2T28yML17bc243v48LAjcS55FNgIU9UtwMFxisVha7O9+CIsW2Y1xDZuDDsi51y2PNbCvQ+oD7TAVhS5PZ/nDRaRmSIy85dffolXuHF14YVw1llw003WGHPOFS6S4cg5IvKiiJwiIidkX2IeWRpr396KIH7yCQwY4N37ziWCvNbCVdWfVHWLqm4FHgTyzOZMhfVvCyMCd98NnTrBmWdaDUTnXMEiaYSVwtZz7ITVCesCHB/LoBz06mVVqZ9+2uqIOefCk99auCKSs3B1D+DLeMeWSIoXh6lTrdzO88+HHY1zia/Q2ZGqelo8AnE7GjIEli6FMWPsoHbhhWFH5Fzaym8t3H4i0gJQYAlwVhjBJZI99rBefF8T17nCRbKA975Y3kNVVW0qIs2Arqp6Q8yjS3Mi1gBbtgwuvhhq1oQePcKOyrn0U8BauK/GO5ZkUKmS/fzqK7jrLhumzMwMNybnElEkw5EPAlcC/wKo6jygbyyDcttlZsKkSdCuHZx0Enz6adgROedcZD78EO67D4YODTsS5xJTJI2wMqo6I9e2zbEIxuWtTBmbMbn33tClC3z3XdgROedc4c48Ey64AO6805Y5cs79VySNsF9FpD6W84CI9MKmYrs4qlzZaoipWg2xFJ3l7pxLMWPGwNFH27q4770XdjTOJZZIGmHnAQ8AjUTkR+BibEFvF2f77GNV9VessLUmvYaYcy7RFSsGU6bY8WvMmMIf71w6iWR25A/AESJSFsgIluxwITnwQMsR69UL+ve36eCe8OqcS2S77QZvvbU9Yd85ZwrtCRORSiJyF/AhME1ExoqIf5VCdMIJcMcd8NxzsPvukJEBdepY48w55xLR3nvbOpO//25LG/37b9gRORe+SIYjnwR+AXoCvYLrU2IZlCvcnntaN//69ZYntnQpDB7sDTHnXGJ76y248Ua46CJYtw6mTYOFC8OOyrlwRNIIq6aq16vq4uByA1A11oG5gg0fDptzzVHdsMEXz3XOJbbeveGyy6x0RbVqdszq3BkOOQRWrgw7OufiK5JG2Jsi0ldEMoJLb+CNWAfmCrZsWdG2O+dcojjsMCu9s2kTXHMNLF4MHTtanqtz6SSSRtiZwBPApuDyJHCWiKwXkT9iGZzLX61aeW/fe+/4xuGcc0X1yCNwyy2w//7b18YdMQK+/trrILr0UmgjTFXLq2qGqhYPLhnBtvKqWiEeQbodjR5tZ5K5ZZ9dOudcolqzZnvJnTfftBnexYrBXnvZfc6li0h6wlwC6t/fKlDXrm1rTNaubZWpv/kGzjrLkvWdcy4Rdexok4hq1rS8sM2b7cRy2TJo1izs6JyLn0LrhLnE1b//jjkUlSrBtddCkybbu/mdcy6RnH8+tG9vx68+fazczoQJVn6ndOmwo3MufrwnLMWMGGGzjy6/3Lr6nXMu0ey+O3z8seWE3XcfbNkChx8Ozz9vJSycSxeRFGutLyIlg+uHiciFIlIx5pG5nSIC48dD69Zw0kkwf37YETnn3I4qVoQrrrA1cR99FF54ARo3hn79rO6hc+kgkp6wZ4AtItIAGAfUxGZLugRVpoydUZYvb2tM+mLfzrlEV7YsPPusVdI/+WTPa3XpIZJG2FZV3Qz0AO5W1WFAtdiG5XbV3nvbmeXq1ZZn4TMmnXOJbp994KmnYOxY69V3LtVF0gj7V0T6AQOBl4NtxWMXkouWNm0s2XX6dDjnHD+zdM4lvqOPhlat7Pr334cbi3OxFkkj7DTgQGC0qi4WkbrAY7ENy0VLnz6WrD9+PIwZE3Y0zjkXmQcesByxGTPCjsS52ImkWOtCVb1QVScHtxer6s2xD81Fy8iR0KuXlax45ZWwo3HOucL16gXVq9tPz2t1qSqS2ZHtReQtEflGRH4QkcUi8kM8gnPRkZEBEydCy5Y28+jLL8OOyDnnClapEjzzjDXA+va1gq7OpZpIhiMfBsYABwNtgKzgp0siZcpYon65ctCli59ZOucSX6tWVkfs3Xdh+PCwo3Eu+iKpmL9OVV+LeSQu5mrUsNIVHTpAz57w9ttQokTYUTnnXP5OPdV671u0CDsS56Ivkp6w90TkVhE5UERaZV9iHpmLibZt4ZFH4MMPfcakc4lq0iSoU8dSCerUsdvp7LbbLJUCfFjSpZZIesLaBT+zcmxToFP0w3Hx0K8fLFwIN9xga0xecknYETnnsk2aBIMHw4YNdnvpUrsNO64Vm24ef9waZB9+aMWonUt2kcyO7JjHxRtgSW7UKBuSHDYMXn017Gicc9mGD9/eAMu2YYPnRIGlVHz5JZx2mvfiu9QQyezI3URkjIjMDC63i8hu8QjOxU72jMnmzW3m0YIFYUfknANYtqxo29PJYYfBzTfbrMlbbw07Gud2XSQ5YY8A64HeweUPYHwsg3LxUbaszZgsU8ZmTP76a9gROedq1cp7e/Xq8Y0jUV1yCfTuDVdeCe+8E3Y0zu2aSBph9VV1pKr+EFxGAfViHZiLj5o1rSG2cqUNT/7zT9gROZfeRo+2E6Pc1q2DN9+MfzyJRgQefhj22w8+/zzsaJzbNZE0wjaKyMHZN0SkPbAxdiG5eGvXzmZMfvABnHee51q41CQipUSkl4iMFZGpIvKoiFwmIk3Cji2n/v1h3DioXdsaHLVrWzJ6nTrQubM10rZuDTvKcJUrZw2wK64IOxLndk0ksyPPASYGeWAC/AacGsugXPyddJLlhd14o82YvPjisCNyLnpEZBRwPDAN+Az4GSgF7AvcJCKlgEtVdV5oQebQv/+OMyHPPttmSV59ta2nOHEiVKwYSngJoXRp+zl9uk0uuvHGcONxbmcU2ghT1blAcxGpENz+I9ZBuXBcfz0sWgSXXgoNG8Ixx4QdkXNRM0NVR+Zz3xgRqQLkk42VGMqWtRINBxxgeVFt2sCzz8L++4cdWbhefx3+7/+gfn0444ywo3GuaPIdjhSRk4Ofl4jIJcAgYFCO2y7FZGTAo4/aQb1vX2uQOZcKVHWHpetFJCPHyeXPqjoz/pEVjQhccAG89x78+ac1yJ54IuyowjVqFBx5pKVSzEz436Bz/1VQTljZ4Gf5PC7lYhyXC0m5cvDii9bV36ULrFkTdkTORY+IPCEiFUSkLPAlsFBEhoUdV1EdfDDMng2tW9uw5YUXpu+kmsxMa4hWrWqTi3yWt0sm+TbCVPWB4Orbqjoq5wXwicEprFYteO45WL4cevVK34O7S0mNg5SK7sBrQF3glFAj2knVqlmJhiFD4O67oVMnm+Wcjvbc04Zmf/oJ/ve/sKNxLnKRzI68O8JtLoUceKBNA582zYY/fMakSxHFRaQ41gh7UVX/xZZhS0rFi8OYMTB5MsyZYz1jH34YdlThaN0aPvkErrkm7Eici1xBOWEHisilQOXsPLDgci2QGbcIXWhOPtmmgI8bZ2fazqWAB4AlWLrFByJSGytAndT69rUZk+XLQ8eOcOed6Xni1LKl5bYuW+aFXF1yKKgnrASW+1WM/+aD/QH0KuyFRaSmiLwnIgtFZIGIXJTHY0RE7hKR70Rknoi02rm34WJl9Gjo1s2GPN54I+xonNs5wUmlqOpdqrq3qh6rqgosAzqGHV80NGlitbO6dLHva79+lryfjs45B3r0gK+/DjsS5womWsjpkojUVtWlRX5hkWpANVWdLSLlgVlAd1VdmOMxxwIXAMcC7YCxqtquoNfNysrSmT4FJq7+/BPat4elS+HTT6FRo7AjculGRGapatYuPP8+7BjzDfA68Lqqro5WfEUR62PY1q1wyy224Pd++1mu1L77xmx3CWn5cmjVCqpUsWNW+fJhR+TSWUHHr0hywjaIyK0i8qqIvJt9KexJqrpKVWcH19cDi4C9cz2sG/Comk+BikHjzSWQ7BmTJUvaAro1a1qXf506MGlS2NE5VzhVPUdVWwHXArsDE0TkExG5UUQOFZGUSbHIyLA0gjfesET1rCx4/vmwo4qvmjVhyhT46is4/fT0HJp1ySGSRtgk4CtsFtEoLJ+iSCt2iUgdoCVWqTqnvYHlOW6vYMeGmksAtWtbxe6ffoIVK+ygtnSpVfD2hphLFqr6lareoaqdgU7AdOBEdjw2Jb0jjoBZs6znukcPW/B6y5awo4qfTp2siOvTT8ODD4YdjXN5i6QRVklVHwb+VdX3VfV07OAVEREpBzwDXLyz1fZFZLCIzBSRmb/88svOvISLgokTd9y2YYMNeziXTESkDNAE+FxVL9iVoc5EVquWrQk7eDDcdJOtPZlOh9Bhw2z2aL9+YUfiXN4iaYT9G/xcJSLHiUhLYI9IXjyYCv4MMElVn83jIT8CNXPcrhFs+w9VHaeqWaqaVbly5Uh27WJg2bKibXcuUYhIVxFZIiKzg1zUBcA9wHwRGRhyeDFVqhQ88ICVnPnwQyvlMGNG2FHFh4hNUihf3k4Yf/op7Iic+69IGmE3BIt3XwoMBR4ChhT2JBER4GFgkaqOyedhLwIDglmSBwDrVHVVZKG7eKuVz8p6+W13LoFcDxwFnAU8BRyuqgcAzbDjWso7/XT46CPLGTvkECs9ky65UqrWC9ilC4wfD5ddZg3T9evDjsyluwIbYUGy6j6quk5Vv1TVjqraWlVfjOC122OVqDuJyNzgcqyInC0iZwePeRX4AfgOeBA4dxfei4ux0aOhTJkdtw9Ni39hLsltVdVvVPVzYLGq/gC2ZiSwOdzQ4qd1a8sT69gRzjoLBg2CjRvDjir2RODUU62Ex4gRsMce8OabVtbj22/Djs6lswIbYaq6Bdip0XRVna6qoqrNVLVFcHlVVe9X1fuDx6iqnqeq9VV1/2RYQDed9e9vZ8+1a9tBrVo1mzE5aRJs2hR2dM4VKENEdheRSsDW4PoeIrIHkY0IpIxKleCVV6yy/COP2DqUS5aEHVXsff65NUJXrIC99oJnnoGLLoKLLw47MpfOIjn4fCQi94jIISLSKvsS88hcQurf3w7YW7faOnWTJlkdnvPOS5+hDZeUdsNqFc4EKgCzg9uzsCLUaSUzE667zkrPfP+9NU4uv9zKzqRq+Znnn7eFvjt1spnes2fDuedaZf2//w47OpeuikXwmBbBz+tybFOKMEPSpa6ePeGqq+DGG+1Afs45YUfk3I5UtU7YMSSiLl1g5kxrmNxyy/bt2eVnwE68UkHx4nby+OSTlh9XoQL88481OjPSqi/UJZJCG2GqmhJLerjYue46mDsXLrwQ9t/fhjecSyRBfmtpVf0zuH0AtjQbwJygoHRaatAg7+3Z5WdSpRHWpw/ccAM8+ii89JL13F95JRx/PJQoUfjznYuFQtv/IlJVRB4WkdeC241F5IzYh+aSRWamDV3UrQu9elnOhXMJ5mb+O/FnMjAMuAa4OpSIEkh+39lUKj8zcqS9z2bN4IILoF07uO8+aN487MhcOoukE3YC8AZQPbj9DXBxjOJxSapiRcu5+OsvG6L0HAuXYA4HcpbKWauqXbCyFe3DCSlx5FdmpkaN+MYRS+XKwXvvwT33WO/fiBFw6KEwapQl7TsXhkgaYXuq6lPAVgBV3Qyk0eIXLlKNG1tX/4wZlvDqifougWQEx65sl4PN0AbKhRNS4siv/ExmZmpV2Bex9W8vusiGISdOhOrV4cQT4fffw47OpaNIGmF/BdO6FbblUqyLaVQuafXoYVPfx4+He+8NOxrntikhIttmQarqmwBBIepShT1ZRGqKyHsislBEFojIRcH2PUTkLRH5Nvi5e8zeQQzlLj9Tu7Yt+bN6tfUW/bjDOiapYY89bKHvlSutjpifOLp4i6QRdglW2b6+iHwEPApcENOoXFK79lo7y7z4Ylu3zrkE8CAwRUS2DbyJSG0sN+yhCJ6/GbhUVRsDBwDniUhj4ArgHVXdB3gnuJ2UcpafWbLEZku+8YY1wA4+2EpZpKJ27ey9fvQRLF4cdjQu3RTaCFPV2UAH4CBsyY8mqjov1oG55JWRAY8/DvXqWaL+8uVhR+TSXbB02ovAdBFZIyJrgA+Al1T1tgievyo4FhLMpFwE7A10A7KXtp8IdI9B+KE59FB4911b3ueQQ2DBgrAjio2LLoKFC+2Y5Vw8RTI7shRwIbb22ijsDLDQ7nuX3nbbzRL1//4bTjghPZZGcYktWK2jFlAHqKOqtVX1vqK+jojUAVoCnwFVc6x3uxqoGqVwE0ZWFrz/vl0/9NDUTGIXgSpVrBfwzjthzZqwI3LpIpLhyEeBJsDdwD3B9cdiGZRLDfvtB489ZsUgzznH8y1ceETkZBHJAOvJyl0XTETqi0ihFe5EpBzwDHCxqv6R874gyT/Pv3IRGSwiM0Vk5i9JmOnepAlMn24nV4cfvr1Rlmq++cZWDhgwwBpkzsVaJI2wpqp6hqq+F1zOxBpizhWqWzerzzNxok0Ndy4klYA5IvKIiJwnIr1FZICIXCci7wO3AD8V9AIiUhxrgE1S1WeDzT+JSLXg/mrAz3k9V1XHqWqWqmZVrlw5am8qnurVgw8/tLIVnTvDq6+GHVH0NWoEd9xh7y3nCgLOxUokjbDZwYxIAESkHbb+mnMRGTECunaFIUNg2rSwo3HpSFXHAq2wRPzKWN2wVsCPwCmq2lNVv83v+SIiwMPAoiC/LNuLwMDg+kDghRiEnzD23tsm2zRpYidYTz0VdkTRd845Vl3/6qt9YpGLPdFCxohEZBHQEMiunVwL+BqbLaSq2iymEeaSlZWlM2cW3gbctAm++gr23NMOHC5cf/xhs5B+/RVmzcq/OKRzeRGRWaqaFeL+DwY+BOYT1EwErsLywp7CjotLgd6q+ltBrxXpMSyRrVtnM6A//thKW5yRYmuo/PGH5cJt2gTffuvLGrldU9DxK5IFvDtHOZ6YGz8errjCGmCrV9v06vHjrSaMC0eFCpao37at1RKbPh1Klw47Kucio6rTAcnn7sPjGUsi2G03K1/RsycMGmSNliFDwo4qeipUgKeftlmh3gBzsRRJiYqlQEWgS3CpqKpLsy8xjq/Ipk2zHKR33rHp1CtWWK/LgAFhR+YaNrTSFbNnw+DBnqjvXDIrUwZeeMHK0FxyidUHTKXvdLNm0D5Y0CpVa6S58EVSouIiYBJQJbg8LiIJW6z1vvtg+HBo2tRmt6xeDbfdZkvpLE24JmP66dLF1mp7/HEYOzbsaJxzu6JECZg8GU47zb7Xl1ySWg0xsLy3hg1t3Unnoi2S4cgzgHaq+heAiNwMfIKVrEg4q1fDPvvY9UcegfPOs+U3qleHn36y5ThcuK6+GubMgaFDoXlz6Ngx7IhcuhCRkkBPrFbYtuOfql4XVkzJrlgxeOghG8K7804bwnvgAVt3MhUce6z9T+nXD+bOhb32Cjsil0oimR0p/HfB7i3knxsRuvbt4Zln7Prxx9ssl9GjYf5861JOtbO0ZJSRYQt977sv9O7tPZQurl7AqtxvBv7KcXG7ICPDSjuMGAEPPwwnnQT//BN2VNFRrhxMnWp5byedBFu2FP4c5yIVSU/YeOAzEXkuuN0dm6qdkC66yGbhZWbaP/gjj4S337aKyCedZHVufGHp8JUvv2OifpkyYUfl0kANVU26yUbJQMSGJCtUsF7u9estuT0VvtdNm1qqy6mn2nu8zvtNXZREkpg/BjgN+C24nKaqd8Y4rp1WtSp8+imUKmUHgqlTrat86VLLQerRwx63YQP85ee/odp3X5g0ybr4zzzTeyldXHwsIvuHHUQqu/RSK1vx+utwzDHWg5QKBg60GmI1aoQdiUslhdYJSzTRqrFz1VWWHH7nndYwk4QdYE19o0dbntjtt1tir3O57WqdMBGZjy0pVAzYB/gB2ISlVsS13mEq1AmLxJNPwimnQIsW8NprVjIolaj6/w0XmYKOX5HkhKWkY4+F3Xe3OjedO9uaYS4cV11li3wPG2alRZyLgeOxEjvHAA2Ao4Lb2dtdlPXtaykH8+dDhw6wcmXYEUXPU0/BccfB5s1hR+KSXb6NsGAWUco6+GCr3H7XXTZ82bSpFXR18ScCEybYum19+sDixWFH5FJNjrqGN+Ssc5i9Lez4UtVxx1kv2LJlcMghqfPd3rzZ3tfVV4cdiUt2BfWEfQIgIo/FKZa4K1YMLrjAesH694c2bWz7xo2enxRv5ctb4cctW2x4eMOGsCNyKapJzhsikgm0DimWtNCxo/Vw//67nfwuXBh2RLvupJPgrLPg5pvhlVfCjsYls4IaYSVE5CTgIBE5IfclXgHGQ9Wq1gvWtKndPv10OOooW3vSxU+DBlb4cd48W4vOG8IuWkTkShFZDzQTkT+Cy3rgZ1J80e1E0LatLYa9dSsceqiNQiS7O++0fLcBA6ynz7mdUVAj7GzgEP67ZFH25fiYRxYSVTtb+/xzW7bi8svhzz/Djip9dO5sifpPPmmJ+s5Fg6r+n6qWB25V1QrBpbyqVlLVK8OOLx00bWolgsqVg06d7HoyK1XKZt//+y88+2zY0bhkVejsSBE5Q1UTpi5YvGYW/fyzNcAmTIC997Z6NwccEPPdOqwh3Lu3Hdhef91qvbn0FoXZka0Kul9VZ+/saxdVusyOzM+KFXDEEdZ7dP75luS+bJmt8Tt6tKWGJJMff7T/Ec7lp6DjVySNsBJYr9ihwab3gftV9d+oRhmheB/APv7Y1qKcMgWqVLGcpVRZjiOR/fknHHigHeBmzoR69cKOyIUpCo2w7JX/SgFZwBdYeYpmwExVPXDXo4xMujfCwE5y27bdcbWMMmWsxliyNcQAZs+299XZSwG7XHa1RMW9WOLqvcGlFXBf9MJLbAcdZAu3Vqli+QydOvkQZTyUK2fT2wEOO8zOkjMyoE4dK/DqXFGoakdV7QisAlqpapaqtgZaAj+GG136yT6e5rZhg530JhtVW62lb1/44Yewo3HJJJJGWBtVHaiq7waX04A2sQ4sEf39tyWP33KLlVOYMsWTx2Opfn2rpL98uV1U7cx58GBviLmd1lBV52ffUNUvgf1CjCdtrViR9/ZkTHIXsfVwwVIpNm0KNx6XPCJphG0RkfrZN0SkHv9d0DttlClji9N+/LGdyfXta7kNq1bZFOyOHaFSJcsd80TN6JgyZcdtyXq27BLCPBF5SEQOCy4PAvPCDiod1apVtO2Jrm5dyyGeNcuWzHMuEpE0woYB74nINBF5H3gXuDS2YSW2Aw+02ZP/+5+tizZnjuUwnH22lbW45hpbP+3xx8OONPnld1acjGfLLiGcBiwALgouC4NtLs5Gj857ce8jjoh/LNHSvTsMGQL33ANvvRV2NC4ZFCvsAar6jojsAzQMNn2tqmnf2ZqZCeeeawu6HnYY3Hor3H23DZn16QOPPQannWaNM19fbOfVqrVj8i5AzZrxj8UlP1X9G7gjuLgQZSffDx9uJ1U1a0LFijba0LatpR0ko5tuslSKjh3DjsQlg4jWjlTVTao6L7ikfQMsJxH44gurgbNxI/TrB716wX77WR7Txo1hR5jc8jtbrl4d/vkn/vG45CQiTwU/54vIvNyXsONLV/37w5IllqS/dCl89pmt63vWWfDAA2FHt3NKlIDzzrMVWX75xXKJnctPoT1hrnANGtjU5BkzYMwYO7Nr0sRm+JUuHXZ0yS332XKtWjYc/OST0LUrPPMMlC0bbowuKVwU/EzZQtOpoFQpy6ft2dPSO7ZutdGGZPTHH9Cypa2f2bevNTKzsravzOIcFNITJsYHfgoxbJgNTc6cadcfewzWroXddgs7stSQ82x5yRJb2uihhyzn4ogj4Lffwo7QJTpVXRVcPQIokcci3i5BlCxpJ1dduthx9X//CzuinVOhguWIjRsHAwfa5K2jj7bRkn9DqbLpElGBjTC1Sq6vximWpNWnjyXj9+tnvTJDhsC119qyHCLWJb1kSdhRppYzzrAlQ2bPhg4dYOXKsCNySaIW8ICI/CAiU0XkAhFpEXZQ7r9KlrRVSrp1s6r6d98ddkQ7Z+lSy3X77Tfrzf/hB1izBsaODTsylygiyQmbLSJpWResKE49Fb7/Hlavtvo3V1xheUsAF14IzZvbEJqLnhNOgNdeswZu+/bw3XdhR+QSnaqOVNVOQBPgQ2z2dwosJ516SpSwJY26d7dj6J13hh1R0axdC++/D+++a2kpJ55o9cNGjPCZ8267SBph7YBPROT7IIl1viey5k0Eype3yu453Xij5Yj162czJr3afvR06mQHufXrrSE2d27YEblEJiJXi8hrwJtAA2AoUCPcqFx+shtiJ5xgIwx3JNGc1n/+seT8unXhiSegRg27XaGC1Tp0DiJrhB0N1Ac6AV2wxNYusQwq1dStCx98YEOWjz4KrVrBokVhR5U62rSB6dPtgN2hgw0DO5ePE4BKwNvAs8ALOfLFXAIqXtxGEXr1gksugdtvDzuiyFSpYqUqnnoKjjwSXn3VZnrfdZfddg4iaIQFSas1gU7B9Q2RPM/9V7FicN11tg7lHntA5cphR5RaGjWCjz6CatXgqKPg5ZfDjsglIlVthSXnzwCOBOaLyPRwo3KFKV7cepN697Zq9LfeGnZEkfnf/2xNybPPhvvug+OPt/cxY4bNnnSu0MaUiIwELgeuDDYVB3xEeycdeih88gnsuSds3myzKVevDjuq1FCrlvWCNW1qeSSPPRZ2RC7RiEhToD8wEOiDLd79bqhBuYgUL25rxvbtC5ddBjffHHZEhWvb1upI1qplP7t1s2K0c+faTElviLlI6oT1AFoCswFUdaWIlI9pVCkuu4L+nDl2pjRxoq05duyxoYaVEipXthyx7t1hwACblXTRRYU+zaWPm7CE/LuAz1XViwUkkWLF7ORKxCY/bd0KV15Z+PPCVK0aXHXVf7eVKmW9ekcfDW+8YXliLj1FMqz4T1CqQgFExEtjRkmbNlZbrFo1K+h38cVeXTkaypeHV16BHj3sMx0xwpaTck5Vj1fVm1X1Y2+AJadixSy3tn9/a9yMHh12REXXo4flis2cCYMGhR2NC1MkPWFPicgDQEURORM4HXgwtmGlj8aNbamOyy+32jE//mj1r9yuKVXKDnJnnw3XXw+//mq1hjIzw47MhUFE5hOcSOZFVZvFMRy3i4oVsxGEjAy4+mrrEbvmmrCjKpoePeC552yJO5e+IlnA+zYRORL4A9gXGKGqvj58FJUqZQ2wo46yXjGwisrFivni37uiWDF48EGoVAluucWGJh991GZRurSTvVzRecHP7IzB/iHE4qIgMxPGj7dj5IgR1hAbOTLsqIrm+OCvcutWq4M2aJAPTaabSNeOnA+Uxs4k58cunPR23HHbr194oVXaf/BB2H338GJKdiKWwFupkvU2rl3r602mo+yliUTkSFVtmeOuK0RkNnBFOJG5XZGZCY88Yj1i115rjZlrr02+k9cvvrDj09NPw+uve0MsnUQyO3IQNp37BKAX8KmInB7rwNKZKtSrBy+8YJX2ve7VrrvsMl9v0gG2JG77HDcOwkvuJLXMTJtxePrpVgYoGXNAW7aEKVPg88+hc2efNZlOIjn4DANaquqpqjoQaI2VrHAxImKlKz75xNZQO+ww62bfvDnsyJLbGWfYmaavN5nWzgDuFZElIrIUuBfLc3VJLCPDRg0GDYIbbrA8sWRriJ1wgjfE0lEkjbA1wPoct9cH2wokIo+IyM8i8mU+9x8mIutEZG5wGRFZyOkjK8saDKecAmPG2JqUbtf06OHrTaYzVZ2lqs2B5kAzVW2hqrPDjsvtuowMeOABGDzYloq76qrkbYjNm+dLsKWLfHPCROSS4Op3wGci8gKWE9YNiGTtyAnAPcCjBTzmQ1U9voD701758lZDbNQoqF3bDirTp8Mhh9j9GzfC779D1ao+8y9SnTrZygXHHGMNsTfegBYtwo7KxYOIlAR6AnWAYhIkD6nqdSGG5aIkI8Mq02dkwE03WY7YTTclV47YCSdYUe8997TbW7fuuB6xSx0F/WrLB5fvgefZPr37BWBxYS+sqh8AnnkTJbVr289nn7Uv6GmnWRHS6tUtn6BuXZuy7SKTlWW5diVL+nqTaeYF7ERyM/BXjotLERkZcO+9cO65Niv6ssuSr0csuwE2aZKlo/jQZOrKtydMVUfFYf8HisgXwEpgqKouiMM+k1rXrjB8uBUoLFPGGmVHH21F/3r1slmAx3vfYkQaNbJexaOOssvUqf7ZpYEaqto57CBcbInAPfdYg+y226w36bbbkqtHDKx80SefWK/9a6/5rMlUFMnsyCwReU5EZovIvOxLFPY9G6gd5GfcjfW25RfDYBGZKSIzf/nllyjsOnkVL265DmXLwm67QZculgeRlWWL2t5xR9gRJhdfbzLtfCwi+4cdhIs9EbjrLiv3M2YMXHJJ8vWI9ewJTz5pC34fc4z3iKWiSEaaJwHjsTyKLjkuu0RV/1DVP4PrrwLFRWTPfB47TlWzVDWrcuXKu7rrpLdmjZ0RzZ9vPTc1a9r2Zs1g6dJwY0tG2etNduhg602OHRt2RC6GDgZmicjXwQnl/CidVLoEJGJFUC+6yH5efHFyN8Q6d4ZNm8KOyEVTJMVaf1HVF6O9YxHZC/hJVVVE2mINwkJnXbrtVfVXrLDhyGwjR0L9+uHElOyy15s86SQ7UE+bZjNTly+33rLRo22tOpf0jgk7ABdfIjZCkJFhPxctgq+/Tq7vdnZD7MsvfcWPVBNJI2ykiDwEvANsa4Or6rP5PwVEZDJwGLCniKwARgLFg+fejxV+PUdENgMbgb7BQuGuEMWK2WzJE06A22+H/fe3NcimTrXhygkT4NRTw44y+WSvN3nEEfD889u3L11q094h8Q/WrmA5KudXAUqFHI6LExE7Vn79Nbz66vbtyfTd7tnTLgALF9oISPny4cbkdp0U1u4RkceBRsACYGuwWVU1lAKHWVlZOnPmzDB2nXCee8662JcuhbZtbbHq0aNtaG3QIFuwupT/mymy2rVh2bK8ty9ZEvdwHCAis1Q1Kwqv0xW4HagO/AzUBhapapNdfe1I+TEsPKnw3f7rL2jQwFZVef11b4glg4KOX5H0hLVR1YZRjslFQY8edsmpQwdbtuPGG209so8/tp4zF7nly/PentfB2yWd64EDgLdVtaWIdARODjkmFyep8N0uW9Zmfvbtazli3hBLbpEk5n8sIo1jHomLisxM6w178UWrtO8NsKKrVSvv7bvtZlPdXVL7V1XXABkikqGq7wG73MPmkkN+3+3syU3JIney/vr1hT/HJaZIGmEHAHN9NlFy6dIFLrjArr/6qtUW27Il3JiSRXYNtpwyM2HtWpsm/vPPoYTlomOtiJQDPgAmichYvFhr2sjruw3Qpk38Y9lVORtio0eHHY3bWZE0wjoD+wBHYaUpjicKJSpc/Lz7rg1PHnWUNyAi0b8/jBtneSIi9nPCBLj/fnj/fVviaNq0kIN0O6sbsAEYAryOrQjix7M0kfu7XauWLQH3zDNWXT/Z9OwJb78N114bdiRuZ0XSCNN8Li5J3HYbPPKI5Ye1bGk/XcH697dE3a1b7efJJ8NZZ9lZZ4UKcPjhNkPVexeTi6r+papbVXUz8ApwdzA86dJEzu/20qW2jmzfvnD55TbRKdl06GATsH7/Hc45x4cmk00kjbBXgJeDn+8APwCvxTIoF32nnWbLX5QqZV/aeT6gvFOaNbMlok4+2c4+jzgCVq4MOypXGBE5QESmicizItJSRL4EvgR+EhFfxiiNZWbCo49ayZ8hQ2wB8GQ0YwY8+KDliH31lfXsXXklvPNO8hWoTSeFNsJUdX9VbRb83AdoC3wS+9BctLVoAbNmWc/Y/sHCLf7lLLpy5Wyx9AkT7MDXogW88UbYUblC3APcCEwG3gUGqepewKHA/4UZmAtf8eIwebLl0p57ro0cJJujj4YpU+DTT+34/vXXULq0LdvUp4/32ieqSHrC/kNVZwPtYhCLi4OKFW0JDxH7krZrBwt82fSdMnCg9YpVrWpnn1deCf/+G3ZULh/FVPVNVZ0KrFbVTwFU9atIniwij4jIz0EPWva2a0XkRxGZG1yOjVHsLg5KlLCC10cfbXUWH3887IiK7rjj7CRR1XrDhgyxlT+WLbMGmks8kSzgfUmOy1AReQLwAZgUsGbN9kKvkyeHHU1y2m8/6w0bPBhuugkOOyy5ag6lkZzFRTbmui+S/uAJ2CSl3O5Q1RbB5dU87ndJpGRJK4J92GF2kjV1atgRFc3HH0Pjxtbg+uUXm9FdsqT17uVcBcQljkh6wsrnuJTEcsO6xTIoFx8HHQRz5liy/kknWUmLf/4JO6rkU7o0PPCANWTnz7fhyRejvtqq20XNReQPEVkPNAuuZ9/ev7Anq+oHwG8xj9KFrnRpeOklOz6edBK88ELYEUWuWDE7hvfsaetM1qxpvfM//OA1IxNVJDlho3JcRqvqJFX9Ox7BudirXt1mB11yiVVhHjMm7IiSV9++1vVfty5062ZDAd6oTQyqmqmqFVS1vKoWC65n3y6+Cy99flA/8RER2T1qAbtQlS0Lr7wCrVvDiSf+d73JRHbQQdYD9uqr2xf6HjECrrsOKlcONzaXt0iGI/cVkXEi8qaIvJt9iUdwLj6KF7fFbV97DS6+2LZtzD1g4yLSoIENCVxwgU13b9/ezkJdSroPqA+0AFZha1LmSUQGi8hMEZn5yy+/xCk8tysqVLAlgfbf32ZOvv122BEVrlgx65E/9VQ7ETz7bJtksPfecNddlqTveauJJZLhyKnAHOBqYFiOi0sxnTtbCYt162xI7brrfJmenVGypB3wnn0WvvvOhnuTLbfEFU5Vf1LVLaq6FXgQmzme32PHqWqWqmZV9i6JpFGxIrz5JjRsCF27WrHmRNe+PXz/vfXgNW5sIx2LF1vP/N13w5FHetHuRBJJI2yzqt6nqjNUdVb2JeaRudAUK2bJ+iNHwvHHWwK/K7oePSznbr/9oHdvS4792wfyU4aIVMtxswdWd8ylmEqV4K23LM3guOOSo9h1+fJWy/DCC60hVqyYpZo89pjliq1aFXaELlskjbCXRORcEakmIntkX2IemQtN2bJWvPC++6zQX+vWVorBFV2dOvDhhzBsmH2e7dpZaRCXXERkMlYfsaGIrBCRM4Bbcqyl2xFbCsmloCpVbDiyenVbP/bzz8OOaOecfLL1ijVvbrdnzAg3HhdZI2wgNvz4MTAruPi/5BQnYvkE06dbzZnLL7dif/ffb71k++4L550HP/4YdqSJr3hxq179yiv2ebVubWekLnmoaj9VraaqxVW1hqo+rKqn5Chm3VVVvX8hhVWrZuvwVqpk6/DOnRt2RDunfHn7+eKLdlI4ZAhs3hxuTOksktmRdfO41ItHcC58bdrYjL/HH4ehQ+Ghh2y2zbPPWo9Z+/bw669hR5kcjj3WDtytWsGAAbaU1F9/hR2Vcy5SNWpYQ6xCBVuy7MskHoA+5hgr3H3nndao9Pki4ci3ESYiBxf0RBGpICJNox+SSzSVKllv2IQJsPvuVhm+RAnr3enYEcaNCzvC5JF9EL/6alv6qE2b5D6QO5du6tSxNI2SJeHww60yfTIqXtwaYI8+anluWVl2wu3iq6CesJ4i8rGIjBCR40SkrYgcKiKni8hj2KLepeMUpwvZ3LnWdT10qC1YnZVlBQ2POy558yPCUqwYXH+9zbr67TdriD30kPU21qkDGRn2c9KksCN1zuWlQQNriIlYQ+y778KOaOedcsr2tBMvpxN/+dbQVdUhQQJ+T+BEoBq23Mci4AFVnR6fEF0iqFULFi60Lvg5c2zmX9eutrxHs2ZhR5ecjjjCGrcnnwxnngmZmdsX2V261JZCAujfP7QQnXP5aNTIkvUPOww6dYIPPrCTp2SUlWU9emXK2O2PP7bcX6+yH3sF5oSp6m+q+qCqnqqqR6tqd1W90htg6adpU0vGv+giq53z4Yc2FPnBB9CvX9jRJa+99oI33rDPNLsBlm3DBhg+PJSwnHMRaNrUGmLr11tDbMWKsCPaedkNsMWLrWHZubPn+8ZDJLMjnQPgqafsS1mjBtSuDatXW3XmAw6w2TVLloQdYXLKzLQCuXnxxcCdS2wtWlhqwZo11hBL9hpcdetanu/06ZYqkayzQJOFN8JcxPbYA558EpYvhy++gAULrAgpwLXX2sHolVfCjDB51aqV9/bSpZM738S5dNCmjS37tnKl5Ygle0X6U0+10Y5//7X1KCdPDjui1OWNMFdku+1mRQtFtm8bNMjOoLp0gdGjLcnTRW706O3DAdmKFbMhyv32g3POSf4zbOdS2UEH2UnokiWW75nsK420aQOzZlldw2SdAZoMIlnAu4yIXCMiDwa39xGR42MfmksmderARx9ZftjVV9u6ZX/+GXZUyaN/fxsCqF3bGre1a1tJkCVL4KyzbPZk/fpw1VWwdm3IwTrn8tShgxVB/eYbq72V7N/VqlVtFujIkXZ79uzkb1wmmkh6wsYDm4ADg9s/AjfELCKXtMqUsTILt99uyebffx92RMmlf39rdG3daj/797fE/XvusTPRHj3g//4P6tWDW2+FjRvDjtg5l9sRR1gx6/nzLbn9jz/CjmjXlChhZXP++Qe6d7cesi++CDuq1BFJI6y+qt4C/AugqhsAKfgpLl2JwCWX/Hd9skWLwo0pFdSvb3XD5syxiRCXXQb77GM9ZL7kiHOJ5dhjYepUG85r08ZyPpO9/l+JEvaeNm2yodcpU8KOKDVE0gj7R0RKAwogIvWxnjHn8rXnnvbzmWegSRO46SbPE4uGFi3g1Vdh2jSoWdPqizVtap+zf77OJY5u3SyX85tvbDKT6vb6f8naEGvXzhqWLVtC3752Mpi7tI4rmkgaYSOB14GaIjIJeAe4LKZRuZTRubPNoLzySujTx/PEoqVDByuo+PzzVuKiVy87QL7zTtiROeeyvfjijtuSvf7fXnvZ0mtnnw3ffrt9gtZPP8GDD8IDD9gsUReZSBbwfgs4ATgVmAxkqeq02IblUkXZsja9+ZZbrLfmoIN8aYxoEbGz7XnzYPx4q9t2xBGWEDxrVtjROefyq/OX7PX/SpSA++6z2pEZGTB2rKVHvPeeTdBq2tTXFI5UJLMjewCbVfUVVX0Z2Cwi3WMemUsZIjBsmNXR+fFHbyBEW2am1fX55hsYM8ZmMGVlWc/jN9+EHZ1z6Su/+n977BHfOGKleHHr9Ro61HJTe/SwBcFnzrTePp+cVbiIhiNVdVs9b1Vdiw1ROlckRx1lhUdPPNFuz5vneUzRVKoUDBliPY0jRljNosaNbdjAhweci7+86v9lZFiZhzPPTI0Zzs89ByecYHlivXvDxRdbTnDfvpbI7woWSSMsr8f4sp5up+y+u/386iubNXTSSfDXX+HGlGoqVIBRo+ws9Nxz4ZFHoEEDuOIK+P33sKNzLn3kVf9v/Hir9/fQQ5aekewrYvz7r619+957cN5524cm162z+1zBImmEzRSRMSJSP7iMAXxAye2Shg3huutsmnP79lbSwkVX1apw113W4O3Z0/Ly6tWDm2+25GDnXOzlrv83YID1kL3yiuWGtW5tdcWSVdeulu/7669W0/Dzz+Hgg+Gtt6yumJ/4FSySRtgFwD/AlOCyCTgvlkG51CcCl19u5RaWLrUcJp/ZFxv16sFjj9lCvO3bW4/YPvvAGWfYmXmy1y9yLhkde6zlbzZqZCdJQ4ZYQdRkU6+eHVNatbJj+rPPwmefWSmOBg2srE7Pnj4hKz+RzI78S1WvUNWs4HKlqvoAkouKzp3tzKlaNevOdrHTrBm8/DJ88IHNWn3kETsTT4X6Rc4lo9q1baHsCy6AO++Eww6zmmLJZuhQ6/kqVcpO6l580VIiRCz37fXXbQ3cK6+E9evDjjaxiBaSGS0i+wJDgTrkyAVT1U4xjSwfWVlZOnPmzDB27WLor7/sC5yZCQsW2GLguRNaXfTUrp33NPkqVWDFCpv1lEhEZJaqZoUdRzT4Mczl5amnrHe6ZElb/q1z57Ajip4ff7Q8uEcftTSJTz+13vd0UdDxK5LhyKnAHOBqYFiOi3NRU7asNcA2bIAjj7Rhs6VLw44qdeV3tv3zz1aMcdAgePNNT6x1Ll5697byPdWr21DliBGpU41+771h4kQbpjzxRDsJBFi1Kty4EkEkjbDNqnqfqs5Q1VnZl5hH5tJSmTJWdXnxYssTe/ttmDABjjvODky+VmJ05Fe/qHJlOOYYmzBx9NHWIDvzTG+QORcP++5rvUSnngrXX2/fwZ9+Cjuq6GnbFu6+24YpV62yCVq9e9uEhXQVSSPsJRE5V0Sqicge2ZeYR+bS1nHHwYwZ1iA46ijLLRg40LrqH3vMipB6fbFdk1f9ojJl4I47bCjkl19sSaTOneHJJ71B5ly8lClj+ZoPP2zV51u2tLyxVLPbbnDppZan2qgRXH11ei5rF0kjbCA2/PgxVppiFuAJDS6m9t3XpjuXLm1LYPTqZTNs3noLFi2C998PO8Lkllf9onHjbDtYfl63bpao//PPVpAxZ4OsWjVvkDkXS6efbr1i5cpBx45WYmbr1rCjip4yZWDkSPj6azu2jx5tjbF16wp/biopNDE/0XhSa/q4+WZbDzG71+arr6xB8MYbljh+7bVhR5h+Nm60z3/qVJsB9eefUKmSLVdy4on2zyIWSf2emO/S1R9/2CjA009Dly6WW5Vd9DqVfPKJLQyevbj54sU2QSsV7GpiPiLSVER6i8iA7Et0Q3RuR5Ur2wy+7GGzG26ADh1sQfCSJcONLV2VLm0FGHP2kB199I49ZG+95bl7zkVDhQo2c3LsWCv10KqVrc2Yag48cHsD7IsvrMZYv37Jv9h5YSJZwHskcHdw6QjcAnSNcVzO0asXTJ9u/+hVbbisd287Q7rpJvjf/1Jn9lAyyqtBdtRR1iA76qjtOWQ5G2STJtnUdC8Q61zkRODCCy03bMsWmz1+772pmxvboIE1yJ5/3oYoR45M3eXtIqkTNh9oDsxR1eYiUhV4XFWPjEeAuXlXfnr57DM4+WQrX5GRAX//bbOGJkywmZNjxlilaZc4Nm60M/apU+Gll7YPWTZrBh9/DJs2bX9smTL/zUXLjw9HOmfWrIFTToHXXrNFsseNg/Llw44qNpYutSr8U6bYKh8LFiReDcNIFHT8iqQRNkNV24rILKwnbD2wSFUbRT/UwvkBLP1s3WpL7qjaEhiZmXb92WctWbxsWZg3z2rRVKoUdrQup5wNsiefzPvMvXbtwqeoeyPMue22brXRgGuuscbJ00/bBKZU9dFHlhN8xhl2DFm40Bqe115rjdHy5W0G/bBhUKJE2NHuaFdzwmaKSEXgQWxm5Gzgk+iF51zBMjIsD6J1a2uAgXXP9+xpDbCtW+2MsGFDm9adSjOIkl3p0pa0/8QT+Q+dpHrOh3PRlpFhFejffhvWrrX6W48+GnZUsdO+vTXAwBY+b9oUGje2maOffGJ5wtOnw2mnhRvnzohk7chzVXWtqt4PHAkMVNUkfKsuVWVkWHf1fvtZpfeDD7aeM5dYsqtk55Zf4VjnXME6doQ5c6wRNnCg5WBu3Bh2VLHVoQN06mTv8+GHrfHZqJHlpL7zjpW8SCaRzo5sJiJdgVZAAxE5IbZhOVc0++9vC1NPnAjffWe9Zh99FHZULqf8CsSOHh1OPM6lgmrVrEfsyittRZGDDoLbb0/dCTDly9vSTjffbIW9R46EQw6x2oYHH2wzK5NJscIeICKPAM2ABUD2QI8Cz0bwvOOBn1V1h9FqERFgLHAssAE4VVVnFyl653IQgQEDrJbOAw/AAQfY9u+/h3r17H4Xnuzk++HDbQiyVi1rgBWWlO+cK1ixYnDjjTZs16cPDB26/b6lS2HwYLueKt+1evXsGPLUU1bQ9tdfLQ1l1iy7fPSRTejKykr8434kifkLVbVxkV9Y5FDgT+DRfBphxwIXYI2wdsBYVW1X2Ot6UqsrijVrLHG1eXMradG4yH/JLhF4Yr5zkalRA378ccftkUyASRYrVlie8G23wUknWZX9q6+2XrDq1W1W9j//2LG/f39LU9l77/Di3dXE/E9EpMj/ulT1A+C3Ah7SDWugqap+ClQUkWpF3Y9zBdl9d5tF9MUX1hC77LL0XJ/MOZceVq7Me/vSpfGNI5Zq1IBXX7Xh1woVrIG5caNte/ppW/T8oYfscaNGwfLl9rwff7R1cRNJJI2wR7GG2NciMk9E5ovIvCjse29geY7bK4JtzkVNRoZ1xX/zjSWu3nqrJfCvWRN2ZM45F335TXQpXTp1esLAhho/+MAKRa9ZY7UjK1a0+ypWtNmU775rw5btgjG2G26wHLpjj7UZ24lQADaSRtjDwClAZ6ALlufVJZZB5SYig0VkpojM/CXRmrEuKey5p50ZffyxNcay64mtXRtqWM45F1V5TYApXtxypho3hv/7PxuqSxXlyhW8jF2NGtvzwi64wGqJLVhgw5RVq9pKBGGKpBH2i6q+qKqLVXVp9iUK+/4RqJnjdo1g2w5UdZyqZqlqVuXKlaOwa5euDjzQzoYAFi2CmjWt4GGqT+t2zqWH/v2tin7t2tb4qF0bxo+Hb7+14tZXXWVFr6dNCzvS+MtuhC5eDO+/b59VdoNV1WZazpgR3+WgImmEzRGRJ0Skn4ickH2Jwr5fBAaIOQBYp6qrovC6zkVk992hWzdrlDVpAi+/vP2+P/+0mjPx/kI659yu6t/fhh63brWf/fvbCeezz9pxbuNGqzE2YIAN56WbjAw49FCbRX/TTbbtu++s7EW7drDvvlaN/9tv//u8v/6y55x6qs3y/uGHKMQSwWNKA5uAo7BhyOwhyQKJyGSssn5DEVkhImeIyNkicnbwkFeBH4DvsGr85+5E/M7ttL32gscft7yBUqWstEWvXpZbULu2fQkHDrQG2qJFYUfrnHO77rjjbDhu+HBbSqxhQ7j/flsYPJ3tsw+sXm0FYGvWhOuus8bY22/b/b//biMpL79sdcn++ccabNn376wCS1SISCZws6oOzfdBcebTu10s/PMPjB1rNcVeeMF6wfbd15ZJevhhO0P66qvtyya5+PISFc5F31dfwbnnwnvvWdX9++6z0g/OymA89ZR9PqVKWc/ht99az1n37paL9sYblmf21VfWu5afnS5RoapbgPa78kacSwYlSmxf/PW882DVKluf7KWXbJZN+fLw4YdhR+mcc9HTqJGdcD7+uA1btmljierr1oUdWfhq1IBLLrEGGNhw5ebNcMopcMwxtu2oo+Dvv+3kfWcVWjEfmCsiLwJTgW0TOlW1wIr5ziWj33+3pNVixSyfols3qy+WmWlVmZ1zLpWIWM7YccfZEOU991itrTFjrPp+olecj5e6de1EvWLF7bNL//3X8sTKlt35140kJ6wUsAboRBFywpxLRocfbuusHXKI5U1MnGhJ+rNnw113hR2dc87FRsWKtqrIZ59Z1fl+/ayn55tvwo4sMQwYYOU/mje3/xOqNjTZqpV9Xjur0J4wVT1t51/eueTSrx888ogV8zvtNFi/3hJWTzoJjg9OPf791xJa+/Sx4UvnnEsVbdpYQ+y++6xnbP/94YorbIHw7KG5dHT66TBnjq1b2bHj9hzhnLPqd0ahPWEiUkNEnhORn4PLMyJSY9d261xiKlkS3nzTEi8nT7bFYR96yHrH+vWzx7z0kp0VNWhgZ45//x1qyM45F1WZmXD++fD11zZj/LrrLEf2jTfCjiw8GRl2vJ8xA3r2hHvvtUZZjV1sDUUyHDkeq+lVPbi8FGxzLiWVKgVnnw3PPw+PPWZdzzn16AGvvWbTmM8/33IFxoyxHjLnnEsVe+1lJ6Bvv20Ns86doXfvvBcITxf16kHfvpayEo18uUgaYZVVdbyqbg4uEwAvW+/SlogdjKZPt6ndjRtb7lh2+Yp0r7fjnEsthx8O8+bB9dfbSECjRnDnnTZb0O2aSBpha0TkZBHJDC4nY4n6zqU1ETjsMJvi/cEH1l29dq0NU44cCb/9FnaEzjkXHSVLwtVX24SlQw6BIUNsEe1PPgk7suQWSSPsdKA3sBpYBfQCPFnfuRx2281+rl8PLVtaDkXt2nD55em5LIhzLjXVqwevvGJlLH79FQ46CAYPtuV86tSxk9E6dWwY0xUu30aYiNwcXG2rql1VtbKqVlHV7qq6LE7xOZdUstdnmz/flkG67TY7IKVzDkUqEJFHgolJX+bYtoeIvCUi3wY/dw8zRufiRcSS0xctsoKmDz9sebRLl1rphqVLrWHmDbHCFdQTdqyICHBlvIJxLlU0bQpPPGEHqeuvh733tu2PPWaVqV3SmQB0zrXtCuAdVd0HeCe47VzaKF8ebr8dqlbd8b4NG6zEhStYQY2w14HfgWYi8oeIrM/5M07xOZfU9t0XLr3Urq9bB+ecYwvFnnaarUOW0y+/WHmMBQviH6crmKp+AOTO8usGTAyuTwS6xzMm5xLF6tV5b1+61FYhcfnLtxGmqsNUtSLwiqpWUNXyOX/GL0TnUsNuu1mBv/POs2KvjRpZEdglS+yMcd994ZZbbOZlp06+TFISqKqqq4Lrq4E8+gOcS321auV/X40adsz7+uv4xZNMCkzMF5FMwBtczkVJjRo2tXvJEhg6FF5/HZ57zhJd58+3ejyLF9v6lWeeGXKwLmKqqoDmd7+IDBaRmSIy85dffoljZM7F3ujRUKbMf7eVKWPb+/SxgteNGtmqI2+/bXljzhTYCFPVLcBWEdktTvE4lxaqVoWbb4aVK+GFF2w25aBBdpB6/XUYMQKmTbMhSpewfhKRagDBz3znwarqOFXNUtWsypW9zKJLLf37w7hxNiNcxH6OGwdXXWXLwC1bBtdeC59/DkceCc2aWTK/rzYSWYmKP4H5IvKwiNyVfYl1YM6lg1KlLGdir73g0ENtzbYuXaB+favA/+GHYUfoCvAiMDC4PhB4IcRYnAtV//7Ww791q/3s33/7fVWrWu3EpUutUZaRYSedtWrZCWd+OWXpIJJG2LPANcAHwKwcF+dcFBxxhE3lvuoqK2Xx8svQurXNLvrhB3vMn39aA8278cMhIpOBT4CGIrJCRM4AbgKOFJFvgSOC2865fJQqZZOS5s61ItcHHAA33GA9Z6eeatvTTbHCHqCqE0WkNFBLVT21zrkoGzYM2re32ZNdu1ry/hdfwJQplqQPljc2YMD2dcv69bMyGC4+VLVfPncdns9251w+RGzyUadONkt87FgYP96WfzvsMLj4YkvNyF4KLpUV2hMmIl2AuVjJCkSkhYi8GOO4nEsbe+0FM2bY7MiJE2HFCnjrLTjxRKvDA9Y4Gz/elkS66SbYf3+7rF0baujOObdL9tkH7rnHjnu33ALffw/du0PDhnD33bYKSSoTLWR8Q0RmAZ2AaaraMtj2paqGch6elZWlM2fODGPXziWEn3+GqVMtyXXCBNt2/fXWYOvTB6pVCzW8mBCRWaqaFXYc0eDHMOfyt3mzrTpyxx3w6adW2mfQIDj/fFt9JBkVdPyKJCfsX1Vdl2vb1l0Pyzm3M6pUsbo72Q0wVes5GzLEKvN36gQPPugLiDvnkk+xYtC7ty0M/sknlpJx5502WenEE+Hjj1MrNzaSRtgCETkJyBSRfUTkbuDjGMflnIuQCHzwgS2RdM011q0/eDD83//Z/Vu2WGJ/XpYssSr9y3w1WOdcgjngACtsvXix1VV8+23Ln23XDiZPtvSNZF80PJJG2AVAE2AT8ASwDrg4hjE553ZCo0YwapRVpp41y3rLAN5913rP+vSB55+HTZvs0r8/tGljeRitWtmspX/+CfUtOOfcDmrWtLqKy5fD//5nubAnnWTHrGRfNDzfRpiIlBKRi4FbgGXAgaraRlWvVlUvseZcghKxRlV2/kSNGjb9+913oUcPq9nTpo3VJ1u2zM4uly6Fn36yCtfOOZeIypWDc8+1GeSVK+84LLlhA1xySXIVgS2oJ2wikAXMB44BbotLRM65qNpvP7j3XqvO//rrNvNowQK46y4oXdqSYF95xQ5eDz4YdrTOOVewjIz819b9+WfYfXfLJbvjDjvWJXIOWUGNsMaqerKqPgD0Ag6NU0zOuRgoXhyOPtoqVoP1kKnClVfaUOWRR8KqVdZIy36MS0yTJkU/F6ZcuXIALF26lFatWtGiRQuaNGnC/fffD8CGDRs47rjjaNSoEU2aNOGKK64o8PWuvfZa9t57b1q0aEHjxo2ZPHnyf+5//vnnERG++uqrbduWLFmCiHD33Xdv23b++eczIZiFcuqpp1K3bl2aN2/Ovvvuy4ABA1ixYsW2x65bt44BAwbQoEED6tevz4ABA1i3bt1/Xvvqq6/e9vhff/2V4sWLc/755+/EJ7ZrJk+2Wn+ZmfYz18ezU7J/hwDLli3jqKOOYr/99qNx48YsWbLkP4+98MIL//P4vCTy73D7ouG/AsUB+x1WqWLDkkuW2Ill06Y2nHn66VZ7cc2aQj/GuCqoEfZv9hVV3RyHWJxzcZCRYTMoJ02yocv5863cxYkn2uzKhQvho4/ssapwyCE2Rfyhh+yxW7aEG3+6mzTJ/snEKhemWrVqfPLJJ8ydO5fPPvuMm266iZUrVwIwdOhQvvrqK+bMmcNHH33Ea6+9VuBrDRkyhLlz5/LCCy9w1lln8e+/2/6tMHnyZA4++OAd/rFXqVKFsWPH8k8+CYq33norX3zxBV9//TUtW7akU6dO2x57xhlnUK9ePb777ju+//576taty6BBg7Y9t27durzyyivbbk+dOpUmTZoU7QOKgsmTYfhwq4P199/2c/jw6DTEsg0YMIBhw4axaNEiZsyYQZUqVbbdN3PmTH7//feIXidRf4fbFw2fiqWt2+0xY6z461dfWUPswQfhwAOt4HXfvjaM2bYtXH21LQuX4+2EoqCK+c1F5I/gugClg9sCqKpWiHl0zrmYuPlm667/9ls46CCbXfn++1bqolmz7Q2tP/6wPIxnn7UFd8Fu33YbnHWWJfL/9psVnI3Uli02McAOoC63iy8uePmWTz+1zy+nDRvgjDPyH05u0cKm+UeiRIkS265v2rSJrVutIlGZMmXo2LHjtse0atXqPz0YBdlnn30oU6YMv//+O1WqVOHPP/9k+vTpvPfee3Tp0oVRo0Zte2zlypVp3749EydO5Mwzz8z3NUWEIUOG8Nxzz/Haa6/RpEkTZs2axZQpU7Y9ZsSIETRo0IDvv/+ezMxMypQpw3777cfMmTPJyspiypQp9O7de1sjM5oOO2zHbb17W05Tdl2/HG+b8uVt9Yx+/WyorVev/z532rTI971w4UI2b97MkUceCfy3h2zLli0MGzaMJ554gueeey7i10y032HDhjMZNy6LM86YwqZNvSlffiX33fffNStr17YTyEGD7Ljz+ec2G/yNN6zo9ejR9rl36mSjBEcdZaUw4infnjBVzVTVCsGlvKoWy3HdG2DOJbFWrWwtys2bYdw4GxKZMcMaYLB9uZDddoPXXrMu/K+/hkcfteWT9t3X7p8504rD1q5t/2DGjLFetLwSY//919bHrFIF9tgDWra0g6ErmtwNsMK274zly5fTrFkzatasyeWXX0716tX/c//atWt56aWXOPzwyFZtmj17Nvvss8+23pgXXniBzp07s++++1KpUiVmzfrvcsSXX345t912G1si6HZt1aoVX331FQsXLqRFixZk5ljrJjMzkxYtWrBgwYJt2/r27cuTTz7J8uXLyczM3OG9xcPXX9t3K6fddrO8zWj45ptvqFixIieccAItW7Zk2LBh2z7Le+65h65du1KtiFWdE/F3eOihy2nfPpPx46szYMB/G2C5ZWZayYsRI+wY9euv8MwzNsvyiy+scdyggV3OPRdeeMFOQnOLdipAoWtHOudSU9261qMVCRFreO27L5xyyvbttWrB7bdbg+7TT62SP1g3/8EH28Htiy/s4Dd2rC1JMmuWPe+116xB99JLNjzgTGE9VnXq2BBkbrVrF623pCA1a9Zk3rx5rFy5ku7du9OrVy+qVq0KwObNm+nXrx8XXngh9erVK/B17rjjDsaPH88333zDSy+9tG375MmTueiiiwD7hzp58mRat2697f569erRrl07nnjiiUJjLWzVl9w6d+7MNddcQ9WqVenTp0+RnlsUBf0u9tvPesGCjkUA3nsPLrjAru+55679Ljdv3syHH37InDlzqFWrFn369GHChAkcc8wxTJ06lWlFePFU/R1WrAgnnGAXVfjuOzspfPNNO9m87z4rHHvggdZD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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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uOCCC2jUqBHdunUjMzMTgGeeeYZzzz2XGjVq5Ps6JeGzSFdh6oSllSlTbKZiv35w7rmwcKFdsbRpY8tzjBtn66yVKWONq5YtrXr0GWf47CHnXPSaNoWXXoKMYC765s22uoaq5YxVrmwFp7OrU6dgvSx5qVWrFlOnTuWvv/6idevWXHTRRVSvXh2AjIwMLr/8cjp37sx+++344ikdO3Zkw4YNHHTQQYWK9fPPP2ePPfYo1GvkJa+f6SGH2MV60EEYxGNFcME6AQrzmWRkZPDVV18xefJkateuzaWXXsrAgQM588wzGTp0KF8k6ANPl8+iOCp2i+U8+aStBdm6tV2l9Oljsxrffdd6xObO3XqVct99NvR46aXeAHPOFQ051TnMzISKFW2tyOefT90SQzVr1uSwww7jq6+++ndbhw4dqFevHjfffHOezz300EOZOHFiro+XKlWKUnHrteW3f1HUvbvVcfv8c9iyxb5ee61tT4R99tmHhg0bst9++1GmTBlat27NpEmTmDx5MrNmzeKAAw6gbt26rF+/ngPymDpbEj6LdFXsGmGzZlnhVLC6YP362fpqtWtbUdWpU31RWudc0ZVbncO1a63gdJs2dl6rU8fSJurUsfuJqna/YMECNmzYAMDKlSsZP378vz0kd999N6tXr+aJEAlmd955J926dWPx4sUAbN68mZdffjnX/Tt16sSgQYP4/vvv/902bNgwlixZUoh3k1yXX751+ady5exrr162PRGaNm3KqlWrWLZsGQBjx46lfv36nHXWWSxevJg5c+YwZ84cKlSowKxZs3J9nZLwWaSrYjccefjhlhPWooUlyS9fDuvWQb16luzqnHNFWZg6h8lcYujnn3/mlltuQURQVW699VYOP/xwFixYQK9evTj44INpHJTr79SpE9ddd12Or9OqVSuWLFnCqaeeiqoiIrRr1y7X41avXp0hQ4Zw6623snTpUkqVKkXz5s1p2bIlAAMHDuS99977d//vvvsOsDyk0sHsqwYNGvDqq68m4scQ2uWXJ67RlV3p0qXp06cPp5xySmxm7b8J9QVRUj6LdCQ2ezJ9NGnSRCdMmJDr47NmWaL9PffYMOPs2dC1qyXcP/poCgN1ziWMiExU1SZRx5EI+Z3Dsq99CzbcmMjeLudc6uR1/ip2w5EHHACffWa9YQcfDNdcY42xRx6JOjLn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\n", "text/plain": [ "
" ] @@ -187,12 +217,18 @@ ], "source": [ "for bm in unique_bms:\n", - " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", - " unique_labels = tmpdf[\"Label\"].unique()\n", + " flag = \"count\" in bm\n", " \n", - " flag = \"multi_insert\" in bm\n", " if flag:\n", - " plot_perf(bm, tmpdf, \"NumReps\", unique_labels, flag)" + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", + " unique_labels = randomdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", + " \n", + " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", + " unique_labels = cycledf[\"Label\"].unique()\n", + " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" ] }, { @@ -200,18 +236,18 @@ "id": "apparent-skiing", "metadata": {}, "source": [ - "### Multi-Value Insertion by Varying CG Sizes" + "### insert by varying CG sizes" ] }, { "cell_type": "code", "execution_count": 7, - "id": "aquatic-accreditation", + "id": "varying-stranger", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -223,7 +259,31 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFhCAYAAAA4HX3WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAADYAklEQVR4nOydd3SUVROHn9n0kNBCCy2h9w4iqKB+ihUr2LChiIode0EUBHsBxQIW7Ah2wYIFRaVI7x0SWuglIaTvfH/cTUjPJtnNptznnPdk33bv7G7yy9z7zp0RVcVisVgsFovFUrY4fG2AxWKxWCwWS1XEOmEWi8VisVgsPsA6YRaLxWKxWCw+wDphFovFYrFYLD7AOmEWi8VisVgsPsA6YRaLxWKxWCw+wDphlnKLiESLiIqIfxn3qyLSsiz7LAoROSYizX1tB4CI/Ckiwwo5/7aIjCpLmwpDRIaIyGxf21GWVMX3bLFURKwTZrF4meI6dfk5OaoapqpbPW9d6RCRG0Xkn+zHVPU2VR3rK5tyo6qfquqAsu5XRKaKyDNl3S949z3n/s5FJEZE9olItWzHhrl+j5u6BhCZm4pIYrb901zXdxeRua5je0Xknnz67e+6363PVERai8gMETkgIkdFZKWIjBSRDq791rmu/11EnnO9PklEfhSRIyJySET+E5GhrnOni8jOAvqcKiKpud7zCnfstVRNrBNmsVgsHkZE/HxtQxnjB+RxnFR1u2sAEaaqYa7DXbId+1tE6gA/A+8AEUBLIMcsnogEABOAhe4YIyItXNfuADqpag1gMNAT2AW8BLwnIuK6/magEfCUiPQB/gD+ctkSAdwOnOfmZ/FC9vesql3cvM9SBbFOmKVMcI2WH3CNRo+KyBciEiwi60TkwmzX+YvIfhHpnu32m0Rkt4jEicgD2a51iMgjIrJFRA6KyHQRqe06l/ko8wYR2e4aDT+e7V4/EXnMdW+CiCwRkSbZ+jxLRDa5RsKTMsW6kPfXUkT+cr23AyLyhev4XNclK1yj4itFpJaIzHS9z8Ou141d148DTgPecF3/hut41myaiISIyMsiEuvq7x8RCSnEtszPYqiI7HD1eZuI9HJ9H0cy+3Fd/5SIfJLP/f652m0HvA30cdl6xHU8awYoc9ZARB4SM1sSJyKXiMj5IrLRNcvwWLY2TxKR+S6b4kTkDREJzHZeReRuEdnq+pxfFJFCdUzyztyo6/3n+X4L+h5d59qKyK8umzeIyBXZzk0VkbfEzJ4kAjcDQ4CHXJ/ND0XY2EREvnb9ThzM9r37ub7rAyKyTUTuzP5duN7bVtfv8DYRGZL7Pbs+++wzM2kiMtV1roaIvOf6rHeJyDNSMgfyReABEalZgntHAr+4Zu9SVDVBVdfluuZ+jGO23s02nwbmqepIVY0DUNUNqnqNqh4BngPCgREiUh94HrhJVZNd7+VDVX1eVQ+oYYmqXlFAXxZLyVFVu9nN6xsQA/wHNARqA+uA24AngU+zXXcBsM71OhpQ4HOgGtAJ2A+c5Tp/D7AAaAwEYUbSn+e6dwoQAnQBUoB2rvMPAquANoC4zke4zikwE6gJNHX1eW4R7+9z4HHMwCYYODXbOQVaZtuPAC4HQjH/CGYA32Y7/ycwLFf7WW0Ak1zXNMLMQPQFggqxLfOzeNtl2wAgGfgWqOdqZx/Q33X9U8An+dzvn9s+4Ebgn1z9TQWecb0+HUh3fc8BwC2uz/Mz13vvACQBzVzX9wBOBvxd/a4D7s31OczB/A41BTbm/qzyef85bCzs+y3oe8T8/u0Ahrps6wYcANpne89HgVOy3Zv1ORRhnx+wAnjV1U/2fm8D1mJ+x2sBv2V+F65r44E2rmsjgQ4FfS+u402A3cB5rv1vMH831Vy/C/8Btxbz84wBzgK+zva9DwP+zOfeHH8LrmN/YGa55mF+D38AmmY7H+X6nsOK8ZnuAYYWcU034BDwK/Ca61gokAGcUch9pwM7Czjnln12s1vmZmfCLGXJRFXdraqHMELbFfPP+CIRCXVdcw3mH2F2nlbVRFVdBXwAXO06fhvwuKruVNUUjPMwKNeMzdOqmqSqKzD/6DIfDQwDnlAzOlZVXaGqB7Pd95yqHlHV7Zh/+l2LeG9pmH8WDVU1WVX/KehCVT2oql+p6nFVTQDGAf2LaB8ws3/ATcA9qrpLVTNUdZ7r/RfFWJdts4FEjMO6T1V3AX9j/il5gzRgnKqmAdOAOsAENTMeazBORhcANTMOC1Q1XVVjMA5C7s/meVU95PpuXuPE70NxKOj7Leh7vBCIUdUPXLYtA77CPOLK5DtV/VdVnWpmVNzlJMzg5EHX73n2fq/AfFY7VfUwZgYnO06go4iEqGqc6/PMF9ds6beu9n5yzQCdj3FyE1V1H8YRvKoYtmfnSeAuEalbzPsaAzdgBlVNgW3k1ICJwChVPVaMNiOAuMIucH2H7wHtgMzZ2FoYJ7rQe4vgAdcMa+b2YSnaslRyrBNmKUv2ZHt9HAhT1c2Y2Y6BLkfsIoxjlp0d2V7HYv5hgfln+U2m2LnayQDqF9an63UTYEtxbC3kWoCHMDNq/4nIGhG5qaALRSRURN5xPU6MB+YCNd18DFQHM1NSmO0FsTfb66R89ot6jyXloKpmZOsnP1vCICuYeqaI7HF9NuMx7zk7Bf0+FIeCvt+CvscooHf2f66Yx40NCrCrODQBYlU1PZ9zDXO1m/VaVROBKzGDkTgRmSUibQvp5z1gg6o+79qPwsxOxmV7T+9gZsSKjaquxswwPlLMW5OAb1R1kct5fRro63pUOhAIV9UvCm8iDwcxM4NFsQbjXB937R/GOLbu3FsQL6lqzWzbDaVoy1LJsU6YpTzwOWY242Jgrcsxy072WK2mmMcpYP4hnZdL8IJdMztFsQNoUVrDM1HVPap6i6o2BG4F3pSCV0Tej3kM2ltVqwP9XMcz4860kK4OYB4lesz2fEjEPJbJpEFBF1K4rSXhLUzcTyvXZ/MYJz6XTAr6fSg1hXyPO4C/cv2uhanq7dlvz92cm93uAJrmjrlzEYeZKcok+3tHVX9R1bMxTsN6zOP3PIjII0BrTKxa9n5TgDrZ3lN1Ve3gpt35MRrzyLlRMe5ZSc7PKvvr/wE9XU75HozTea+IfFdEm79hHvkXC5czNr8k91osJcE6YZbywDRMnNLt5J0FAxjlmj3qgInJyRwVvw2ME5EoABGpKyIXu9nnu8BYEWklhs4iElHSNyAig8UVXI8ZTStmRA1m1id7jq9wzOj/iJiFBKNzNZf7+ixU1Qm8D7wiIg1dgdt9RCSopLbnw3Kgn5j0AjWARwu5di/QWLIFz5eScEyc0zHXrM7t+VzzoJjFDU0wj7CKO0tSIIV8jzOB1iJynYgEuLZeYhYnFESB32Mu/sM4W8+JSDUxC1ZOcZ2bDtwjIo1cQe8PZ7O1vohcLCY1RApwjBO/c9nf03nA3cClqpo5E4magPXZwMsiUl3MQpcWIuLWo/H8cA2gvnD15y4fAJeKSFcxqyBHYWLOjrpet8Y8Lu4KfI9xNIcW0eZozGzaiyLSALIWXXzixuKBh4AbReTBTE0QkS4iMi37Ra7vKftW6OIdiyU/rBNm8TmufwbzMQHm+f1D/QvYDPyOmerPXL4+ASPKs0UkAROk39vNbl/B/IObjfmn/x4mgL+k9AIWisgxl0336Im8Xk8BH7oe+VyBiWMKwcxqLcAsz8/OBExs22ERmZhPXw9gFhUswgQWP48H/5ZV9VfM97ASWIJxQAriD8wjnT0icsAD3T+AiQtMwPyzze/34TuXXcuBWZjvzlPk+z26YvcGYOKldmMeZz6PWRBSEO8B7V3f+7cFXeR6VDsQkw5hO7ATM+MD5jOYjfkulgE/YhY6ZGC+85Euew5hYufyc1qvBOoC6+TECsm3XeeuBwIxcXmHgS8p3aM4gDGYQH+3UNU/MDOeszCB+S0xvwO44gb3ZG6YwUuiK660sDa3AH0wizvWiMhRTAzfYszvVmH3zgPOdG1bReQQMBnz2WfSyGVL9i1zdjr3alRP/F1YKimi6umnCRaLxeIdREQxjypzP7KuErhmtd5W1Shf22KxWEqPnQmzWCyWcoqYnHDni8mf1wjzmO0bX9tlsVg8g3XCLBY3EVMT8Vg+29tF3+1124YUYFuBKQsqE+X5uwGQvOV7sm9NC7sVs1rwMOZx5DpMKghv21uuP08AEfmpABsfK/pui6V8YB9HWiwWi8VisfgAOxNmsVgsFovF4gOsE2axWCwWi8XiA6wTZrFYLBaLxeIDrBNmsVgsFovF4gOsE2axWCwWi8XiA6wTZrFYLBaLxeIDrBNmsVgsFovF4gOsE2axWCwWi8XiA6wTZrFYLBaLxeIDrBNmsVgsFovF4gOsE2axWCwWi8XiAyqkEyYi74vIPhFZ7ca1USLyu4isFJE/RaRxWdhosVgsFovFUhgV0gkDpgLnunntS8BHqtoZGAM86y2jLBaLxWKxWNylQjphqjoXOJT9mIi0EJGfRWSJiPwtIm1dp9oDf7hezwEuLkNTLRaLxWKxWPKlQjphBTAZuEtVewAPAG+6jq8ALnO9vhQIF5EIH9hnsVgsFovFkoW/rw3wBCISBvQFZohI5uEg188HgDdE5EZgLrALyChrGy0Wi8VisViyUymcMMyM3hFV7Zr7hKruxjUT5nLWLlfVI2VqncVisVgsFksuKsXjSFWNB7aJyGAAMXRxva4jIpnv81HgfR+ZabFYLBaLxZJFhXTCRORzYD7QRkR2isjNwBDgZhFZAazhRAD+6cAGEdkI1AfG+cBki8VisVgslhyIqvraBovFYrFYLJYqR4WcCbNYLBaLxWKp6FgnzGKxWCwWi8UHVLjVkXXq1NHo6Ghfm2GxWMqQJUuWHFDVur62wxNYDbNYqhaF6VeFc8Kio6NZvHixr82wWCxliIjE+toGT2E1zGKpWhSmX/ZxpMVisVgsFosPsE6YxWKxWCwWiw+wTpjFYrFYLBaLD7BOmMVisVgsFosPsE6YxWKxWCwWiw+wTpjFYrFYLBaLD7BOmMVisVgsFosPqHB5wtyh8SuN2ZWwK8/xRuGN2Dlypw8sslgsFvew+mWxVB0q5UzYRW0uItAvMMexQL9ALm5zsY8sslgsFvew+mWxVB285oSJyPsisk9EVhdyzekislxE1ojIX57qe1S/UTgk51tz4GBU/1Ge6sJisVi8gtUvi6Xq4M3HkVOBN4CP8jspIjWBN4FzVXW7iNTzVMeR4ZFc0/Ea3l/+ftaxNGcaAz4eQNs6bWlbpy3t6rSjbZ22tI5oTbXAap7q2mKxWEpFZHgkQ7sO5e3Fb6MoAMkZyZz87slZ+pV9q1+tPiLiY6stFktJ8JoTpqpzRSS6kEuuAb5W1e2u6/d5sv9nznyGT1d9SkpGCgGOAG7udjM74newNG4pX637Cqc6s65tWqOpEbSInOLWIKyBFTeLxVLmjOo3iveXvU9KRgqBjkDuOfkediXsYv2B9fy99G+Opx3PurZGUI18nbMWtVoQ4Bfgw3dhsViKwpeB+a2BABH5EwgHJqhqvrNmJSEyPJKbut3EO0ve4ZbutzDpgklZ55LTk9l8aDPrD6zP2jYc3MD7y9/nWOqxrOuqB1U/IWrZHLQWtVvkidmwwbQWi8VTZNevYd2H8cLZL2Sdc6qTXfG7cujX+oPr+XXrr3y44sOs6/wd/rSo1SJfB61mcM0c/Vn9slh8gy+dMH+gB/A/IASYLyILVHVj7gtFZDgwHKBp06ZudzCq3yh+2fJLnliKYP9gOtbrSMd6HXMcV1V2J+zOI25/bPuDj1ac8A/9xI8WtVvkcM5OanQSMzfOJM2ZlnWdDaa1WCwlpSD9coiDJjWa0KRGE85ucXaOc/Ep8Ww4sCGHfq0/sJ4fN/2YQ5vqV6ufwynr2qAr+xL3Wf2yWMoYUVXvNW4eR85U1Y75nHsECFHV0a7994CfVXVGYW327NlTFy9e7A1zCyUhJYGNBzfmEbeNBzeSmpGa7z3BfsFsu3cbDcIalLG1FkvlQkSWqGpPX9vhCXyhYenOdLYd3pZngLlu/zoOJx/O954gvyBi7o2x+mWxlJLC9KvImTBXwPwpQEMgCVgNLFbNFlRVMr4D3hARfyAQ6A28Wso2vUZ4UDg9GvagR8MeOY5nODOIORLD+gPrGff3OBbuWpgVb5bqTGXI10MY2HogF7a+kJa1W/rCdIvFUkpEpAlmkVF9QIHJqjpBRJ4CbgH2uy59TFV/9I2VBePv8KdVRCtaRbRiYJuBWcdVlQPHD7D+wHpGzRnF39v/ztKvlIwU+k/tz8DWAxnYeiCnND0Ff0elTC1psfiMAmfCROQM4BGgNrAM2AcEY2K5WgBfAi+ranwB938OnA7UAfYCo4EAAFV923XNg8BQwAm8q6qvFWWwr2bC3CEuIY7mE5uTnJ5MoF8gw3sMZ862OazZvwaAtnXaZglanyZ9rKBZLG7i65kwEYkEIlV1qYiEA0uAS4ArgGOq+pK7bZVXDcuuX0F+QYzuP5q/Yv9iTswcUjNSqRlck/NansfA1gM5t+W51Aqp5WuTLZYKQWH6VZgT9iLweubqxVzn/IELAT9V/cqTxhZFeRWwTEbMGsE7S97hth63ZS0G2Hp4KzM3zuSHjT/wV8xfpDnTqB1Sm/Nbnc/A1gM5p8U51Aiu4WPLLZbyi6+dsNyIyHeYFDynUEmcMMhfvxJSEvh166/8sPEHZm2cxf7j+/ETP06LOi1rUNkqopWPLbdYyi8lcsLKK+VZwMCMJk/94FT+venffGMp4lPi+WXzL/yw8Qd+3PQjB5MO4u/wp3+Ua9q/zUCa12ruA8stlvJLeXLCXLGuc4GOwEjgRiAeWAzcr6r5B1m5KM8aVpR+ZTgz+G/Xf/yw8Qd+2PgDq/eZXNxtItpk6VffJn3tLL/Fko2SzoSNLKxRVX3FA7YVm/IsYMUlw5nB/J3z+WGDEbR1B9YB0L5u+6wR5smNT8bP4edjSy0W31JenDARCQP+Asap6tciUh84gIkTG4t5ZHlTPvdlX+HdIzY2tgyt9h4xR2KyZvnnbJuTNcuf/bGlneW3VHVK6oSNdr1sA/QCvnftDwT+U9VrPW2oO1QmJyw3Ww5tOfHYMvYv0p3p1Amtk/XYckCLAVQPqu5rMy2WMqc8OGEiEgDMBH7JbxBa2Grw7FRWDUtISWD2ltnmseWmWRw4fgB/hz/9ovplDSpb1G7hazMtljKnVI8jRWQucIGqJrj2w4FZqtrP45a6QWUVsNwcTT7KL1tOPLY8lHSIAEcAp0efzsDWAxn39zj2Ju7Nc59NrmipjPjaCRNTOuND4JCq3pvteKSqxrle3wf0VtWrCmurKmhYhjODhbsWZs3yZy5OalenXdZjyytnXMnuY7vz3Gs1zFLZKK0TtgHorKoprv0gYKWqtvG4pW5QFQQsN+nOdObvmJ8Vh7H+wHoABMmqLQcmueKwbsNyVAewWCoD5cAJOxX4G1iFWc0N8BhwNdAV8zgyBrg10ykriKqoYfktTgryCyLNmZajhJzVMEtlpLRO2OOYZdjfuA5dAkxX1fGeNNJdqqKA5Wbzoc18uvJTxswdk0PAbHJYS2XF106YJ6nqGpa5OGn6mul8ue7LHOdC/EPYes9Wq2GWSkVh+uUo6mZVHQfcBBx2bUN95YBZDC1rt2T06aO5tcetBDhOFOitFliNI8lHfGeYxWKxFEH1oOoM7jCYGVfM4NYet+ZYSXly45OpX62+D62zWMqWIp0wF8uBGZjZsIMi4n4BR4vXGNVvVNbKyUBHIIrSY3IPpi6fSkVLPWKxWKoeo/uPznLCHOJgTswcrv3mWhJSEnxsmcVSNhTphInIXZiM979iVgbNcv20+JjI8EiGdh2KQxwM6z6MVbevonej3gz9bijXfXOdFTKLxVKuya5hw7sPZ+wZY5m2ehrdJ3dnye4lvjbPYvE67syE3QO0UdUOqtpZVTupamdvG2Zxj1H9RhFdM5pR/UfRMLwhv173K2PPGMvnqz+3QmaxWMo9mRo2+vTRPNHvCf668S+S05Pp814fXlvwmp3Vt1Rq3HHCdgBHvW2IpWREhkey5e4tWYGsfg4/nuj3BH/e8KcVMovFUu7JrWGnNj2VFbet4PxW53PfL/dx0bSLOHD8gI+ttFi8gztO2FbgTxF5VERGZm7eNswTpMSlsKDFAlL2pPjalDLntKjTrJBZLBWYqqxftUNq882V3/D6ea8ze8tsurzdhb9i/vK1WRaLx3HHCduOiQcLBMKzbeWezfdvJnlbMrFjK0eJkOKSKWQTz51ohcxiqWBseXhLldYvEeHOk+5k4bCFhAWGceZHZ/LUn0+R4czwtWkWi8dwu4C3q2YaqnrMqxYVgbs5dpJikljYbKHZEag1oBbh3cIJbRdqtrah+IdXnSKzy+KWcdVXV7H50GZG9RuVY2WlxVLeqWp5wlLiUpjfeH5WWtjqfasT1iUsS7+qtatGYMNATCL/ys+x1GPc+eOdfLjiQ/pF9ePTyz6lcfXGvjbLYnGLwvSrSC9ERDoCHwO1XfsHgOtVdY1HrfQwseNjwQ9wDZoS/kvgyB9H0LRsGeYbBVKtXbUTjplL3ALqBVQ6cesW2Y0lw5dwx4938PRfTzMnZo4VMoulnBIzNsY8p3ACDkjakkTimkQyjp6YBfIL9yO0bU7tCm0XSnDzYBz+7mYfqhiEBYYx9ZKp/K/Z/7h91u10ebsLUy+eysA2A31tmsVSKtzJmD8PeFxV57j2TwfGq2pfr1uXD+6OIhc2X4gz+UQ2eUeIg14beqHHlcR1iRxfd/zEtv44GcdOiJt/Lf8cM2ZZ4hYdjDgKd85S4lJYduoyuv3bjaAGQaV7s17ioxUfMWLWCIL9g5l6yVQubH2hr02yWAqlKs2EFaRfJ205CRHJoV2ZWpa6OzXrWgkUQlqF5Bxgtg0ltE0ofqGFz35XBP3aeHAjV355Jcv3LOfe3vfy3FnPEeRfPm21WKD0ZYtWqGqXoo6VFe44YRsCH2JP2lkogVnHhFQiA36ldeqLea5XVVJ2puRwyjLFLW1fWtZ1jmAHIW1C8syehbYKxRFkRp4bRmwg7p04Gt7WkNaTWnvoXXseK2SWikRVcsKKq18A6UfTc+jW8fVGy5K2JJ2odCkQHBWcZ+Y/tF0oAbVN5Y2Kol8p6Sk89OtDTPxvIt0juzPt8mm0imjla7MslnwprRP2DbAU80gS4Fqgh6pe6lEr3cQdJ2yezCCVujhIxklw1vFA9tNXBxerv7RDaTlGnJlbcmwyWbWzHRDSPITgZsEc/uMwZJiRa++tvcvtaBKskFkqDlXJCcupX0GAmX0viX45U5wc33Q8z+xZ0oakHDNtAfUCCG4eTMKiBMgACRZO3nZyudYvgO83fM/Q74aSmpHK2xe8zZDOQ3xtksWSh9I6YbWAp4FTMW7H38DTqnrY04a6g1uB+YXFc8XHQ3jpF3dmHM/g+IYTI87j645z+PfDpB9Od9kANU6rQacfOuFfvXwvAPhu/XcM/W4oac40K2SWcklVcsIK1a/t26Fx48KvcQPNUJJjk3PM/B+cdZC0PSdm/qt1qUb7ae2p1rZaqfryNjuO7uCar6/hn+3/cGPXG3n9vNcJCwzztVkWSxalcsLKG6V2wkSgTRvo2RN69DA/u3aFsNL90eYXxwFmRqzeVfWIvCWS6idXL7cB/7mF7I3z3qBaYPkWX0vVwTph2ahb1+hWdg1r2LBUjllB+gVQ49QaRA6PpO6guviFlM8V1enOdMb+NZaxc8fSOqI1Xwz6gi4NfBIxY7HkobQzYb8Cg1X1iGu/FjBNVc/xtKHuUGon7OmnYckSWLwYdu8+cX27dnkds9BQt+3aMGIDe97bg6Zm+zz9IbRVKMnbk3EmOqnWsRqRt0RS/9r6WTEY5Yl0Zzpj/hrDM3OfsUJmKVdYJ8zFG2+c0K81a8Dpcprq18+pXz16GMfMTfLVrwAI7xlO+v50kjYn4V/Tn/rX1ifylkjCOpfPmaY52+Yw5OshHEo6xMsDXmZErxHlduBrqTqU1glbpqrdijpWVpTaCcv+fuPijKBlitrixbBnjznncED79jlFrUuXAh2zeY3nkborNc/xwEaBnLTuJPZN20fclDgSFiUgQULdQXVpeEtDavSrUe5EIruQvXLOK9ze8/ZyZ6OlamGdMBfZ9ev4cVixwuhWpoatW3fCMYuMzOuYNWiQb7OF6VefHX048tcR4ibHsf+r/WiqEt47nIa3NKTulXXxDytf4Rb7E/dzw7c38NPmn7i07aW8e9G71A6p7WuzLFWY0jphS4BLVXW7az8K+EZVu3vcUjdwywmrXh0SEvIeDw83MWGFsXv3CYcsU9j27TPn/PygQ4e8jllwsNt9JixPIG5KHHs/2UtGfAYhbUKIHBZJgxsaEFg3MO/9PiK3kL130XvUCqnla7MsVZQq5YSVRr8SE2H58pz6tX79CeetUaMT+pWpYfXqud1n2sE09ny8h7gpcRxfexy/MD/qXVOPhsMbEt6j/BRScaqT1xa8xiO/PUJkeCSfXfYZpzQ9xddmWaoopXXCzgUmA39hlumcBgxX1V+KuO994EJgn6p2LOS6XsB84CpV/bJQY3A/Y77HUIVdu3KK2uLFcMBVh9Hf3zhmK1YU3kYuMo5nsH/GfnZP3k38vHgkQKhzSR0ih0dS68xaReYjKwuskFnKC1XKCfM0CQl5HbONG0/oUpMmsGNHwffno1+qSvz8eHZP3s3+6ftxJjkJ6xZmwi2uqY9/jfIxO7Zo1yKu+uoqYo/EMuaMMTx8ysO2UoilzCl1YL6I1AFOdu0uUNUiK0GLSD/gGPBRQU6YiPhh6lImA++XSycsP1SNaGUXtdmzC7++EBLXJBL3bhx7PtpD+qF0gpsFm9mxoQ0IivT9EvFMIdt6eGu+5xuFN2LnyJ1lbJWlKmGdMA8THw/Llp3QsM8/L/jaIvQr7Uga+z4z4RbHlh/DEeqg3hX1iBxePhYjxafEc+vMW5m2ehpBfkGkZOQtiG41zOJNSjsTJsAQoLmqjhGRpkADVf3PjY6jgZmFOGH3AmlAL9d1FcMJy4/ChCYjw8SYFUFGcgYHvjlA3JQ4jsw5An4QcWEEDYc3pPY5tRE/34nZ0eSj9Jzck82HN+c4HugXyLBuw5h0wSQfWWapClgnzMsUpl+HDkGtokMRVJWEJQnETY5j3+f7yDiWQWiHUBre0pD61/l2MZKq8v6y97lt1m2kO9NznLMaZvE2hemXOwXG3gT6AFe79hOAUv+2ikgj4FLgLTeuHS4ii0Vk8f79+0vbddnTtSvMmHEiYLYA/IL9qH91fbr+0ZWTNp5Ek/ubED8/nlUXrGJBswVse2obyduTy8bmXNQIrsFfN/6FvyPnYwY/8WNU/1E+sclisZQB0dEwapRxxgpBRKjeszptJrehT1wfWk9pjV81Pzbfu5l5Deexdshajvx1BF+kRRIRbu5+M79d9xtCTofTapjFl7jjhPVW1TswjwxxJWn1RAT5a8DDqlq4Z2L6nKyqPVW1Z926dT3QdRmTmgpXXAGdOsG0aWZmrAhCW4XS4vkW9NnRhw5fdiC0fSixY2JZEL2AlResZP+3+3GmOUmJS2FBiwWk7Mk7xe5pGlZvyC3db8lyxAThhi430CAs/xVXFoulEnD22fDMMxAVBY89diIethD8w/xpOKwhPRb2oOfynkQOi+TgrIMsP305/7X9j+0vbid1n1mNWZYa1j+6P8O6D8tyxAIcAQztOtRqmMVnuOOEpblitxRAROpyohpZaegJTBORGGAQ8KaIXOKBdn1DQVn4w8NNPp/MmIurr4aOHeHTTyE9Pf97suEIdFD38rp0+bkLvbf2JurxKI4tP8aaS9ewoKlxyJK3JRM7NtaDb6ZgRvUbleWEKUpwQHARd1gslnJPYfr15ZewahWcfz4895yZGXv44ROrxosgrEsYrd9oTd/dfWn7YVsC6wWy9aGtzG88nzWD17Bh+IYy1bCnT3+aQD8zj5DuTOf+vveXSb8WS36444RNBL4B6onIOOAfYHxpO1bVZqoararRwJfACFX9trTt+oz4eBPAmnuLjzepLa66ygjZ9OlmReW115o8ZB9+6JYzBhASHUKzsc04OfZkOn7fkWqdqpG4LBEUdk/eTdL2JC+/SYgMj2Ro16E4xEHbiLa8tuA1ft78s9f7tVgsXqQw/QIzcPziC1i9Gi6+GF56yThj999/IrdiEfiF+tHg+gZ0+7sbvdb2otGdjTj8+2EOzTwECnHvxZXJbFhkeCQ3dbsJQVCU0X+O9skjUosF3HDCVPVT4CHgWSAOuERVZxR1n4h8jkk90UZEdorIzSJym4jcVlqjKywOBwwebNJZfPWVSfx6442mjNL770NaWpFNADj8HdQZWIfglsGQGeuaDkt6LOHYqmNeMz+TUf1GEV0zmllDZtGpXieu/fpath/d7vV+LRaLj2nf3szir10LgwbBa69Bs2Zw770nKpC4QbV21Wj5SkvqDK4DrowRmqKsvXptmThEo/qNolmtZjzY90E+WfkJU5ZO8XqfFkt+uLM6sgWwU1VTROR0oDMm7cQRr1uXD+VyZVFJUYUffoAxY8wy8ehoE3Nxww0QWHjYXUG13iRQaDamGU0eaFImqyk3HtxIz8k9aV+3PXOHzs2a5rdYPIldHVlO2bwZxo+Hjz4yM/y33GIeVTZuXOStBWlYzTNr0u7jdgQ19H56Hqc6Of/T85kTM4f5N8+ne6RPcpBbKjmlXR35FZAhIi2Bd4AmwGcetK/qIgIXXQSLFsHMmaYw7/Dh0LIlvPUWpBQ8NR8zNgZ15nKgAyCocRBbH9nKstOWcXzTcS+/AWgd0Zr3L36fhbsW8tCvD3m9P4vFUo5o2dLM4m/cCNddB2+/DS1awO23w/bCZ8fz1TA/ODr3KIs6LmLv53u9PivmEAefXPYJ9arVY9D0QRxJPuLV/iyW3LjjhDlVNR24DHhDVR8EIr1rVhVDBC64ABYuhJ9+MqVFRowwYvbGG5CcNy3Fwe8P5iy2C5Bmco21+7Qdx9cdZ3HXxeyatCuv0HmYQe0HcfdJdzNh4QS+XFtkqjeLxVLZaN4cpkyBTZtg6FB47z3joA0fDjEx+d6Sr4ZlgH9tf0LbhLLumnWsvWItqQfy1rT0JHVC6zB90HR2xO9g6HdDbXyYpWxR1UI3YCEmR9hqoJnr2Oqi7vPW1qNHD630OJ2qv/6qeuqpJjw2MlL1tddUjx93u4nkncm64twVOoc5uvys5ZoUm+RFg1VT0lO095TeGj4+XDce2OjVvixVD2Cx+khzPL1VCQ3bvl11xAjVwEBVf3/Vm25S3bzZ7dud6U6NeTZG/wz4U/+p94/u/26/F401vDLvFeUp9KV/X/J6X5aqRWH65c5M2FBMstZxqrpNRJoBH3vFI7QYROCss2DuXPjjDxO4f++9JgD2lVdMkd4iCGoURKcfO9H6ndYcnX+URZ0WETc1zmujvEC/QKYPnk6AXwCDZgwiKc37KzUtFks5pUkTmDQJtm41s/qffWZ07MYbzWxZEYifEPVIFD0W9yAwMpDVF69m/dD1pB91byV5Sbj35Hu5rN1lPPzbw/yz/R+v9WOxZMet2pHliUoV1Foc5s41Afy//25ix44eNUlgcxMefmJZuYukrUmsv3E9R/8+SsRFEbR+pzVBDbwT9PrTpp84/7PzuanrTbx38Xte6cNS9bCB+RWcuDh48UUTM5aSAtdcA19/DcfziVvNpWHOVCcxY2LY/ux2ghoF0faDttT6X9FllErC0eSj9JzSk+Npx1l26zLqVavnlX4sVYvSBuZbygP9+sFvv8E//0C3bvk7YAAJCXkOhTQPoeufXWnxcgsO/XKIRR0Xse9L9xItFpfzWp3H46c9zvvL32fq8qle6cNisVQwIiPNLP62bTByZMEOGOTRMEegg+bPNKf7vO44Qh2sOGsFG+/cSEZi0ZVHikuN4BrMGDyDg8cPMuTrIWQ4Pd+HxZId64RVNE45BX75pdi3iUNoMrIJPZf1JKRZCGsHr2XtkLWkHXIvN1lxePr0pzmz2ZmMmDWClXtXerx9i8VSQalf38yIFRCsXxjVe1en57KeNL63Mbsn7WZx18UcnX/U4yZ2bdCVSedP4retvzF27liPt2+xZKdQJ0xE/ETkpbIyxuJ9qrWrRrd53YgeE83+6ftZ1GkRB3866NE+/Bx+fHbZZ9QMrsmg6YOIT4kv+iaLxVJ1KGENYL8QP1q+2pIuc7rgTHOy7NRlbH10K84UT1TSO8FN3W7ihi43MOavMczeMtujbVss2SnUCVPVDODUMrLFUkY4AhxEj4qm+8Lu+NfyZ9X5q9gwfAPpCZ4Leq0fVp9pg6ax9fBWhn0/zC77tlgsHqPW6bXotbIXkTdFsv257SzpuYSE5XlDMUqKiPDmBW/SoV4Hhnw9hJ3xOz3WtsWSHXceRy4Tke9F5DoRuSxz87pllpKTT1xYfoR3D6fH4h40eagJce/GsbjzYo78dcRjZvSL6se4M8cxY+0M3vjvDY+1a7FYLP7V/WkzpQ2dZnYi7UAaS3stJeaZGJzpnpkVCw0I5cvBX5KcnsyVX15JWobnQzcsFnecsGDgIHAmMNC1XehNoyxuEB5e8LlLLy002352/IL9aPF8C7r93Q38YPkZy9k8cjMZSZ4JSH3wlAcZ2Hog98++n4U7F3qkTYvFUgkoTMNWrHC7mYgLIui1uhd1B9clZlQMy/ouI3F90Wl83KFNnTa8O/Bd5u2YxyO/PeKRNi2W7LhTwHtoPttNZWGcpRDi403tydzb1KkmjcUNN4DT/RFhjVNq0HN5Txre3pCdr+5kSfclxC8qfSyXQxx8eMmHNKreiMEzBnPwuGfjzywWSwUlPw2LjTV1J88916ykdJOAiADaf9ae9tPbk7Q1iSXdlrDjtR0eqRZyZccrubPXnbyy4BW+Xvd1qduzWLJTpBMmIq1F5HcRWe3a7ywiT3jfNEuJuOEGeOEF+OILuOceI2xu4h/mT+tJren8S2cyjmWwtM9Stj25DWdq6ab3a4XUYsbgGexN3Mt131yHUz0bRGuxWCoJTZua1d8pKTBgAOwrXiqdeoPr0Wt1L2qdVYst921h+ZnLSdpW+sTRLw14iV4NezH0u6FsPrS51O1ZLJm48zhyCvAokAagqiuBq7xplKWUPPgg3H+/qTs5blyxb689oDY9V/Wk/pD6xI6NZenJSzm2+lipTOrZsCevnfMaP23+ief+ea5UbVkslkpM+/Ywaxbs2gXnn+92jGsmQQ2C6Ph9R9q834ZjS4+xuPNidk/ZXarFQUH+QcwYPAM/8WPwjMG2IojFY7jjhIWq6n+5jnmvdoTFM7zwAlx3HYwaBZMnF/v2gJoBtPuwHR2+6UDKrhSW9FjC9he2oxlKSlwKC1osIGWPe3FnmdzW8zau7ng1o+aMYs62OcW2yWLxFSLSRETmiMhaEVkjIve4jtcWkV9FZJPrp3dSuVc1+vSBGTNg+fJixbhmIiJEDo2k16pehJ8UzsbhG1l14SpSdpt2SqJhUTWj+PjSj1m+Zzn3/HxPseyxWArCHSfsgIi0ABRARAYBcV61ylJ6HA547z0zkrz9dpOhugTUvaQuvVb3IuLCCLY+vJVl/Zax+YHNJMckEzs2tlhtiQiTB06mdURrrv7qauIS7K+RpcKQDtyvqu2Bk4E7RKQ98Ajwu6q2An537Vs8wQUXwPvvmxjX66+HjOIvFgqOCqbLr11o+XpLjsw5wqKOi9j7+V62jdlWIg27oPUFPHrqo0xZOoWPVnxUbHsslty444TdAbwDtBWRXcC9wG3eNMriIQICYPp0OOkkU6vtr79K1Exg3UA6fNmBdp+0I3FNIvs/2w9O2PPBnmLPhoUFhvHl4C9JSE3gqq+uIt1pJ1Ut5R9VjVPVpa7XCcA6oBFwMfCh67IPgUt8YmBl5frrTYb96dOLHeOaiTiExnc2pufynoS2CWXdNevYM3lPiTVszBlj6B/Vn9tm3sbqfauLbY/Fkh13VkduVdWzgLpAW1U9VVWLN3yw+I5q1WDmTGjeHC66qFhLv7MjItQfUp+IiyJAzDFnqrPYI0mADvU68PYFbzM3di6j/hhVInssFl8hItFAN2AhUF9VM6d09wD1fWVXpeWBB0yM66RJJYpxzSS0dShd/+5KeO9wcK0NcqYXX8P8Hf5MGzSNGsE1GDR9EAkpnksSa6l6uLM6MkJEJgJ/A3+KyAQRifC+aRaPERFhVhxVr26Wfm/dWqJmUuJSODDjgOvBNJABcZPjij2SBLiuy3UM7z6c5/59jpkbZ5bIHoulrBGRMOAr4F5VzZHDRU3kd75TNSIyXEQWi8ji/fv3l4GllYxSxrhmkrY/jcQV2XKIpUHc+8XXsAZhDfj88s/ZdGgTw2cOtxVBLCXGnceR04D9wOXAINfrL7xplMULNGliHLHUVDjnnGIv/QaIGRuTJ++OpitrBq8pkUkTzptAtwbduP6b64k5ElOiNiyWskJEAjAO2KeqmhlkuVdEIl3nI4F8/7BUdbKq9lTVnnVLWDexSuOhGNd8NSxF2fak+znJMjk9+nSeOeMZpq2exluL3yqRPRaLO05YpKqOVdVtru0Z7JR7xaR9e/NoctcuOO88kyyxGBz8/iCamnfEF/9PPLsm7Sq2OcH+wcwYPAOnOhk8YzAp6cWfUbNYygIREeA9YJ2qvpLt1PfADa7XNwDflbVtVQYPxLjmq2EKez/cS8bx4gf+P3zqw1zQ6gLu/fleFu1aVOz7LRZ3nLDZInKViDhc2xXAL942rLR8+ilER5sBVHS02bdgln5/+aWJDSvm0u++O/tyup6eY+uX0o+IiyLYdOcmdr+zu9jmtKjdgqmXTGXx7sXcP/v+Yt9vsZQRpwDXAWeKyHLXdj7wHHC2iGwCznLtlxqrXwWQO8Z1+fJi3Z6fhrX7pB2apqy+eHWxy7U5xMFHl35Ew/CGDJ4xmENJh4p1v8WCqha6AQmYMMY01+Z0HUsA4gu5733M1PzqAs4PAVYCq4B5QJeibFFVevTooUXxySeqoaE562GEhprjFhcffWQ+mMGDVdPTS9VURnKGrrhghc5hju5+d3eJ2rj/l/uVp9Bpq6aVyhZL5QRYrG7oQ0XYitIwq19usH27auPGqvXrq27ZUurm4qbG6RyZoyvOXaHpScXXw4U7F2rAmAC98LMLNcOZUWp7LJWLwvTLndWR4arqUNUA1+ZwHQtX1eqF3DoVOLeQ89uA/qraCRgLlDzaMhePPw7Hj+c8dvy4OW5xcd118NJLJiFiCZd+Z+IIctDhyw7UPrc2G27ZQNzU4uf/evZ/z3JKk1MY9sMw1h9YX2JbLJaKjtUvN2jSBGbPhrQ0U95o795SNdfghga0ebcNh34+xJpBa3CmFK+02kmNTuKVc15h5saZvPjvi6WyxVK1cOdxZIlQ1blAgXOzqjpPVQ+7dhcAjT3V9/bt+R+PjS2Vr1H5uP9+s/x70iR45plSNeUX7EeHrztQ66xabLhpA3s+2VOs+wP8Avhi0BeE+IcwaPogElMTi77JYqmEFKZfSbZazgnatTOPJnfvNgH7xYxxzU3kTZG0fqc1h2YdYs0Va4pdM/eOXndwZYcreeyPx/grpmQ5GS1VD685YcXkZuAnTzXWtGnB5zp3hgkT4OBBT/VWwXn+eZMQ8ckn4Z13StWUX4gfHb/tSM0zarL+hvXs/bx4o9NG1Rvx2eWfsXb/Wkb8OMIu+7ZUSQrTr8hIuPPOEqf7q3yUIsY1PxoOb0irSa04+P1B1l61Fmea+46YiDBl4BRa1W7FVV9dxZ5jxRuIWqomPnfCROQMjBP2cCHXFCvHzrhxEBqa81hICNx8s/l5773QqJFZYPPHH+As3oCncuFwwLvvmhIhI0aUeOl3Jn6hfnT6vhM1TqvBumvXsW968VJhnNX8LEb3H81HKz7ivWXvlcoWi6UiUpB+PfaY+TN9913o2hV69TIps0o5AVTxOf98+OADI+bXXVei8kbZaTSiES0ntOTANwdYd806nOnu/4MIDwrnyyu+5GjyUa756hoynKWzxVIFKChYLHMDWgBBrtenA3cDNYu6z3V9NAUE5rvOdwa2AK3daU/dDMxXNUGsUVGqIuZn9qDW5ctV77xTtWZNE/TaooXq+PGqu0sWU145SExU7dNHNTBQdc6cUjeXlpCmS09dqnP85ui+L/cV6970jHQd8PEADRobpMvilpXaFkvFhyoUmK9auH4dOKA6YYJqx45Gv6pVU73pJtV581SdTjc/0MrISy+ZD2TECI98ENtf2a5zmKNrrlqjGWnFC7b/cPmHylPo478/Xmo7LBWfwvTLHUdqOeAPtAQ2Ai8CPxZ1nxbhhAFNgc1AX3faytzcdcLc4fhx1Y8/Vu3f33wSfn6qF1+sOnOmalqax7qpOBw8qNq+vWr16qrLlpW6ubT4NF3SZ4n+6f+n7v92f7Hu3XdsnzZ6uZG2mNBCjyQdKbUtlopNVXPC3MHpVF2wQPXmm40jBqodOqi++qpx1KokDz5oPoinn/ZIc7EvxBpHbMgadaYXz7Eb9t0w5Sl01sZZHrHFUnEpTL/EnC8YEVmqqt1F5EEgWVVfF5FlqtqtiPs+d82c1QH2AqOBANfs29si8i4mC39m4a50Ve1ZqDFAz549dfHixUVdVmw2bjQJmadONcnkGzWCm24yW3S0x7srv+zcCX37msz68+aZfDylIP1oOisGrODYsmN0+LoDdS6s4/a983bM45T3T8n3XKPwRuwcubNUtlkqDiKyxB19qAh4Q8MSEmDaNPOo8r//IDAQLrsMbrkFTj/dRB1UCVRh6FD48EN4+2249dZSNxn7bCzbHttG/evr0/b9toifuHVfUloSNZ6rQZozLc85q19Vi8L0y50/zTQRuRqTDTqzyF9AUTep6tWqGqkmrUVjVX1PVd9W1bdd54epai1V7erafCqwrVubGPUdO+Crr0wA/zPPGB/knHNMJofUVF9aWEY0bmzKG3lo6bd/DX86/9KZap2rsebyNRz8yf0VEX2b9KVv4755jgf6BXJxm4tLZZfFUpkIDzcO18KFJkb91lvh55/hf/8z2vbssxBX/MwxFQ8RmDLFYzGuAFGPRhE9Jpq9H+1lw/ANecoeFURIQAiD2w/Oc9zqlyU77jhhQ4E+wDhV3SYizYCPvWuW78gcQf74I8TEwOjRsG4dXHGFmR174AFYX9nTWLVrB7NmGdUuQXmj3ATUDKDL7C5U61CN1Zeu5tBs97NKzxg8A4fk/DX1Ez9G9R9VKpsslspK584wcaLJ3PDJJyal1mOPmZ+XXGKyOqSn+9pKL5JZ3qh3b7j6avjzz1I3GT0qmqgno9jz/h423rbRbUfspQEvEeDIOWdh9cuSHXeSta5V1btV9XPX/jZVfd77pvmepk2NE7ZtG/z0E/TrZ9JbtGsHp51mZryzJ1WsVKVGTj7ZLP1etcojS78DagfQ5dcuhLYJZfXFqzn8++GibwIaVm/IjV1uPNGOI4ChXYfSIKxBqeyxWCo7ISEwZAjMmWPCLR54ABYsgIEDjT6NGmW0LZNKpV+hocbbbNkSLr642OWN8iP6qWiaPtaUuClxbLpzE0WF8gBEhkcyrPuwrIGkv8Pf6pclB+7EhJ0CPAVEYQL0BVBVLV2wUAnxVkyYu+zda5yvd9+FTZugenUjdI0awfjxOZ2y0FCzhHzIEJ+ZW3o++cQs+x40yASd+PmVqrnU/amsOHMFSVuS6PRjJ2qdXqvIe+IS4oh6LYo0Zxr+4s+OkTusiFUxbEyYZ0hLM77JlCnmcSXAWWdBmzYmJjZ7MthKoV/ZY1z//RdatChVc6rK1ke2suOFHTS6y6SyMLXdCyYuIY5mE5qRkpGCIMTcG0PTGoUkg7NUOkobE/Ye8ApwKtAL6On6WSWpXx8eegg2bDCz3BddZFLUPPFEJS01cu218PLLZlbsrrtKXXIgsG4gXX7vQnCzYFZduIojfx8p8p7M0SSAohxPO17EHRaLJT8CAszE9o8/mgz8o0cbLXvjjbzZ+CuFfmWPcT3nnFLHuIoIzZ9rTuORjdn1+i62jNxS5IxYZHgkN3W7CUFQlGmrp5XKBkvlwp2ZsIWq2ruM7CkSX8+E5cfhw1C7dv7nRCpJMtiHH4YXXsj/XHh4sePGUvaksPz05aTuSqXzL52p0bdGodfHJcRx8nsnc/D4Qc5odgY/XP1DsfqzVGzsTJj3yMgAf//8z1Ua/Vq4EM48E5KT839DxdQwVWXzvZvZNXEXTR5oQvMXmhc6IxaXEMepH5xKq9qt+Gf7P6y7Yx1NajQpyTuxVEBKOxM2R0ReFJE+ItI9c/OwjRWaWrUgKir/c4WVIKlQPPdcwecSEordXFCDILr+0ZXAyEBWnruS+IWFC2BkeCSx98by9OlPM3PjTH7YYJ0wi8UT+PkVrF9NKouf0Lu3WfZekEdZTA0TEVq+1pKGIxqy46UdbHtsW6EzYpHhkWy5ewtvX/g2GZrB/bPvL1Z/lsqLO05Yb8wjyPHAy67tJW8aVRHJr9QImCwPlYIi4h5KQlDDILrO6UpAvQBWDFhB/KKiR6J3976b9nXbc/fPd5OUZqsZWyyeoCD9atAAjh0re3u8wrnnerQ5EaHV662IHB7J9ue2EzM6psh7omtG8/hpjzNj7Qx+2/qbR+2xVEzcWR15Rj7bmWVhXEViyBATxBoVZfyVxo2hQwcTAHvHHVUkx1gJCGrkcsQiAlg5YCUJSwsfkQb4BTDp/EnEHInh+X+rxCJdi8Xr5Navpk1NdofFi02N7M2bfW1h+UQcQuu3WtPgpgbEjo0lZkxMkfc80PcBWtZuyZ0/3klqhv3HUNUp0gkTkRoi8kpmAW0ReVlECg/gqaIMGWJyizmdJunr8uVmWfibb5qkiaWMCa20BDcJpuucrvjV8GPFWStIWF64I3Z69Olc3fFqnvvnObYc2lJGVloslZvs+hUbC599ZlZQ7t5tioVnrqa05EQcQpspbah/Q31iRscQOy620OuD/YOZeO5ENhzcwKvzXy0jKy3lFXceR74PJABXuLZ44ANvGlVZ8PeHF180YrZkCfToYUqKWPISHBVM1z+64hdmHLFjqwp/BvLSgJcI8Avg7p/vditfj8ViKT5nn21mw5o2hfPPN5n37Z9bXsQhtH2vLfWG1GPbE9vY/vz2Qq8/r9V5XNL2EsbMHcOOozvKyEpLecQdJ6yFqo5W1a2u7WnAJznCKipXX23KMAYEmCSv77/va4tKSHh4/serVfNI8yHNQ+jyRxccwQ5W/G8FiWsSC7y2YXhDnj79aX7c9CM/bLRB+haLt2jWzOjXlVeazPtXXFGB48QK0rCCjhcD8RPaTm1LvavqmVxiLxfuXL16zquoKiNnjyx135aKiztOWJKInJq540reaiOii0nXrmZEedppcPPNFTROLD7eDIMztzVrTJ2niy7yWBehLUPp+kdXxF9YfuZyEtcV7IjdddJddKjbgXt+vscG6VuKRESCRWSQiEwQkRki8pGIPCQiHXxtW3mnWjUzo//ii6YcY4WNE8uuYRkZcMopJr+Qh96Mw99B24/bUndwXbY8sIWdEwou0p0ZpP/l2i/5dcuvHunfUvFwxwm7HZgkIjEiEgu8AdzmXbMqJxERJq6i0sSJtW9vhsaff27qOnmI0NahdPmjCwisOHMFxzfkn5w1e5D+c/8UkkLDUuURkaeBfzF1cBcC7wDTgXTgORH5VUQ6+9DEco+I0a5KEyfmcJiVU8eOwb33eq5ZfwftPm1HnUvrmFxik3YVeG1WkP5Pd5KSXrrScJYKiqq6tQHVgeruXu+trUePHloZ+Owz1ZAQ1UaNVBcu9LU1pSA5WbVdO9WmTVUTEjza9LE1x/Sfuv/ovw3/1cP/Htb5zedrclxynuuu+eoaDRobpJsObvJo/5byA7BYS6EbwAVFnK8H9CxNH+5ulUHDtm5V7dxZVUR1/HhVp9PXFpWCp54yc2OzZnm02YyUDF150UqdwxyNeS6mQP36adNPylPos38/69H+LeWHwvSrwJkwEbnW9XOkiIwEhgHDsu1bSkGliRMLCjKFNHfsMLWbPEi19tXo8kcXNFVZOWAlyduSiR2bd+XRi2e/SKBfIPf8fI8N0rfki6rOyn1MRBwiUt11fp+qlp809uWcShUn9sgjZlb/9ts9+iYcgQ46TO9A7Qtqs+2RbQXq17ktz+XStpcydu5Yth8tPKDfUvko7HFkZrR1eD5bmJftqhLkjhO7805T4qzC0bevEbCJE015EA8S1jGMdp+3w5noBIW49+NI2ZNz2t4G6VvcRUQ+E5HqIlINWA2sFZEHfW1XRSS/OLEtFTFjTFCQeSzphYGkI8hBq9dbmf+0CnHv5tUvOBGkbzPpVz0KdMJU9R3Xy99U9ensG/B72ZhX+cmME7v/fpg0qQLHiT37LDRsCLfc4nFPcv/X+8FV205TNN+EiHeedCcd6nbg7p/utgW+LYXRXlXjgUuAn4BmwHU+tagCkz1ObNcu6NmzgsaJ9e0LI0Z4ZSC5/cXt4Gdea6qy9aGtea6JqhmVFaQ/e8tsj/ZvKd+4E5j/upvHLCXE3x9eegk+/dTMjFXIfGLVq5vVBqtWmaGxh0iJS2HvB3tN+DSAwp539+QZTWYG6ccejbVB+pbCCBCRAIwT9r2qpgH2GXYpyZ1P7LnnKmA+sfHjPT6QzNKvbM3t/XQvSTvyrubODNK/66e7bJB+FaKwmLA+InI/UDczDsy1PUWWX2/xJNdcY+Is/P2hXz/4oKKlxL3oIhg0CMaMgY0bPdJkzNgY1JlTzTVN2XTnpjzX9o/uz5BOQ3j+3+fZfKgirp+3lAHvADGYcIu5IhKFSUBtKSXNmxv9uuIKePRREy9WoeLEvDCQzE+/cMLqgavzXBvkH8Tr573OxoMbeWX+Kx7p31L+KWwmLBAT++VPzniweGCQ902rmmTGiZ16Ktx0UwWME3v9dQgJgeHDTf2TUnLw+4Noat4h9YFvD5B2MO8H8+LZLxLkF8TdP9lM+pYTuAaVoqoTVbWRqp7vWrW0HTjD1/ZVFqpVMxlrXngBvvqqAsaJXXQRDB7ssYFkQfqVuCLRhFnkIjNI/5m/n7FB+lWFgpZNZm5AVFHXlOVWGZZ3u0Namur995uV06edprpnj68tKgZTphjDp0zxSvNHFx3VPwP/1BXnrVBnRt618a/Me0V5Cv123bde6d9S9lD6FBVvAUuBacCNQIPStFearapo2OzZqrVqqdasqfrTT762phjExRmj+/dXzcjwePMZyRm6uNdinVt9riZuSsxzPuZwjIY8E6KXf3G5x/u2+IbC9MudmLDjIvKiiPwoIn9kbt5xCS2ZVOg4sZtvhv79TcRuXJzHm6/eszotX23JoZ8Osf25vKPFO0+6k471OnLPz/fYIH0LAKp6u6p2B54CagFTRWS+iIwXkX4iYkMsPEyFjRNr0MA8jvzrL3jvPY837why0GFGB8RPWDNoDRlJGTnOR9WM4ol+T/DVuq/4ZfMvHu/fUr5wxwn7FFiPWUX0NCaeYpEXbbJko0LGiYnA5MmQnAx33+2VLhre3pB6V9dj26htHJ5zOMe57EH6z/79rFf6t1RMVHW9qr6qqucCZwL/AIMxWfQtHqbCxondfDOcfjo8+KBXBpLBUcG0+7gdiSsS2Xx33vjV+/vcT6varWyQfhXAHScsQlXfA9JU9S9VvQkjXoUiIu+LyD4RyRuBaM6LiEwUkc0islJEuhfT9ipDhYwTa90annwSvvwSvvvO482LCK0ntya0dShrr15LSlxOoeoX1Y8hnYbwwrwXbJC+JQ8iEgp0ABap6l2q2tPXNlVWKmScWBkMJCMuiKDpo02JezeOPR/tyXEuM0h/06FNNki/kuOOE5b57z5ORC4QkW5AbTfumwqcW8j584BWrm04JmbDUgB16uTNJ/bmmxAdbUqgRUebR5fligcfhE6dTLXyeM8vQPMP86fDlx3ISMhg7dVrcabnXAhgg/QtmYjIRa76t0tF5HxgDaYO7ioRucHH5lV6RIwc5M4n9umn5VjDWrWC0aO9NpAEiB4TTY3+Ndh420aOrc45RXhOy3O4rN1lNpN+ZaegYLHMDbgQqAF0BOYAS4CLirrPdW80sLqAc+8AV2fb3wBEFtVmVQlqLYxPP1UNDDR120yUhdlCQ1U/+cTX1uVi4UJj6IgRXusi7qM4ncMc3fLoljznXp3/qvIU+s26b7zWv8X7UPrA/BVAa6AXcAxo7jpeD1hVmraLu1V1DduyRbVTJyMLAQHlXMNSU02RzIYNVY8c8UoXybuT9Z/6/+iCNgs0LT4tx7nYI7Ea8kyIXvbFZV7p21I2FKZfhc6EuYJVW6nqUVVdrapnqGoPVf3eA/5fI2BHtv2drmOWIrjmGpNpP/fkzvHj8PjjvrGpQE46yUznv/km/PuvV7pocF0DIm+JZPuz2zk462COc3eedCed6nWyQfoWp6puVNVFwDZV3QqmZiQnUgFbyoDmzWH+fJPJJndYRbnTsIAAU9IoLs4EtXmBoMgg2k9rT9KmJDYO35hj1r5pjaaM6jeKr9d9bYP0KymFOmGqmgFcXUa2FIiIDBeRxSKyeP/+vLlVqiJ79uR/fHt5nLV+5hmzROqWWyDFO0GmLSe2JKxrGOuuW0dybHLWcX+HP2+c/wbbj263QfpVG4eI1BKRCMDpel1bRGrjXliGxYNUq2Ycrvwodxp20klwzz3w1lteG0jWOr0WzcY2Y9+0fex+a3eOcyP7jLRB+pUYd8TnXxF5Q0ROE5HumZsH+t4FNMm239h1LA+qOllVe6pqz7p163qg64pP06bFO+5TwsLg7bdh3TqzTt0L+AX70eHLDmiGsuaKNThTT8SH9Yvqx7Wdr+WFeS+w6WDeTPuWKkENTCjFYqA6JmfYEtcW7kO7qixRUfkfL5caNnasMdiLA8mmjzSl9vm12XzfZuIXn4ihzR6k//L8l73St8V3uOOEdcWsIhoDvOzaXvJA398D17tWSZ4MHFVVz68FrqSMGwehoTmPicBjj/nGniI57zzzHHXcOFi71itdhLQIoe0HbUn4L4EtD+RcfvXi2S8S7B/MXT/dZYP0qyCqGq2qzVW1WT5bc1/bVxXJT8OCgszxckdYmJkJW7cOnvXOjLo4hHYftSOwQSBrB68l7fCJZ7XntDyHy9tdzjNznyH2SKxX+rf4hiKdMFccWO7NnRQVnwPzgTYislNEbhaR20TkNtclPwJbgc3AFGBEKd5HlWPIELOCOirKOF8NGpgVRt9+65FqQd7h1VchPNyMJr1kZN3L6tL4vsbsen0X+2bsyzreIKwBT5/+NL9s+YVv13/rlb4t5RcR8RORsGz7J7uStPYTETsT5gOyaxhAYCD4+Zmnf+WSzIHk+PFeG0gGRATQYXoHUnalsP6G9TnqTr5yziuICPf9cp9X+rb4iIIi9jM3oD7wHvCTa789cHNR93lrq+oriwrjrbfMCqNRo3xtSSFMnWqMnDTJa11kpGbokj5LdG74XE3ccKIsSFpGmnZ6s5M2fbWpJqbmLRdiKb9Q+tWRLwEPZdvfBvwA/Ao8X5q2i7tZDcufmBjViAjVDh1UExJ8bU0B7N2rWru2at++XilplMmOCTt0DnM09vnYHMfHzx2vPIX+tKki1YGyFKZf7jyOnAr8AjR07W8E7vWMC+h9kpK2Vok+AW69FYYONeELXkprU3quvx7OOgseeQR27vRKF44AB+2/aI8EusqCHDdlQfwd/kw6fxLbj25n/N/jvdK3pdzyPyB71ssjqjoQGACc4huTiqYq6VdUFEybZp743XxzOS1xVK+emdGfN8/EuXqJRnc1ou7gumx9bCtH5h7JOj6yz0haR7S2QfqVCHecsDqqOh1wAqhqOpBR+C3lg9jYZ1m4sAWxsWW3Ks4XfWYiYjJB9OwJ110HGzaUuQlFIwLvvAPp6SaJq5eUNrhJMO0/bU/i6kQ23XkiGP+0qNO4rvN1vDjvRTYe3OiVvi3lEodLuzJ5GMA1Sg3L/5YT5FcBRESeEpFdIrLctZ3vSYOrmn6BGZ89+yxMn25q55ZLrrvOFMb04kBSRGjzbhtCmoew9qq1pO5NBU4E6W8+tJmX5pXXD8hSHNxxwhJdy7oVTCwFcNSrVnmA2NhniY19xvX6mTIRFV/0mZvgYFMaJCgILr0UEhLK3ISiad4cxoyB7783xnqJ2ufUJuqJKPZ8sIe4D06s+Xjh7BdskH7VIzB77JeqzgYQkRpAsBv3TyX/CiCvqmpX1/ajRyyl6uoXmMz6gwcbH+f3331iQuGImFkwLw8k/aubiiDph9NZe81aNMP0M6DFAC5vdznj/h5HzJEYr/RtKTvcccJGYlYythCRf4GPgLu8alUpyRQTp9MkonE6j3tdVHzRZ0E0bWpGkhs2mMeT5dLPuPde6N4d7roLDh8u8vKSEj06mpr/q8mmEZs4ttKUBWkQ1oAxp49h9pbZfLP+G6/1bSlXTAG+EJGsBAgiEgV8Drxb1M2qOhc45D3zTlDV9UsE3n8f2rY1Bb9jy+NiwDIaSIZ1DqPVpFYc+eMIMU/HZB23QfqVB3FnJkBE/IE2gAAbVNVn5aN79uypixcvLvB8bjHJiYOQkJaEhrZBxL+Aza+Qc/lvhw79wsGDs1BNzdujI5SoqCeIivJOtmUwMRwhIXlX2b/8MjzwgJnef+QRr3VfcpYuNUuhhg41Wam9ROreVBZ3W4xfmB89FvfAv7o/6c50ur/TnaMpR1k7Yi3VAqt5rX9L6RGRJVrKItuuldmPAZlf9jHgOVV1q26tiEQDM1W1o2v/KeBGIB6Tf+x+Vc13RCEiwzE1cmnatGmP2AI8C/f0qzVQfJ0qSNsOHfqVQ4d8p1+Qv4Zt3Ai9ekHLlvDPPybDfrkiPR169zbFMNetg1q1vNbV+qHr2fPhHjr/1Jna55jSzc/98xyP/v4oP17zI+e1Os9rfVtKT2H6VaQTJiLBmPQRp2IeSf4NvK2qyYXe6CUKc8KSkraycGGLItsIDe2AiAPV9CK2jKzXrpC4ElOv3hDCwjoTHNyM4OBmhIQ0w9+/NiJSqnZjY59l27bHaNZsfB6hVDUrqqdPh59+ggEDStWVd3joIXjxRfjzT+jf32vdHPn7CMvPWE7dy+qaoH0R/o79m35T+/HYqY8x7n/lMTmRJRNPOGHZ2goHUNViPazPxwmrDxzA6OJYTO3bm4pqpyANK55++eWrUwVtpQ3jrVPnEqpV65RDvwIDG+Fw+JeqXShcw2bOhIED4YYb4IMPzCxZuaKMBpIZxzNYevJSUnan0HNZT4KbBJOakUrntzqT7kxn9YjVBPu781Td4gtK64RNBxKAT1yHrgFqqupgj1rpJqWZCSvNqE7VWaDY7dz5Gjt3TiR/v9SPwMD6OJ3JpKfnfJrh5xdOcHC0S9iis8Qtc9/fv3qhNmV/rwW9t8REOPlk2L0bFi+GZs2K/da9y/Hj0KmTSRC0cqUJavMS21/YztaHt9JyYksa39UYgOu/uZ5pq6exesRqWke09lrfltJRWidMRK4FPlPVfEdTItIC40T9U0gb0WRzwtw9l5vCNMx7+qV59AvM/o4dr7Jz54QC9Ss4uAmqTlJSdpJ9MCriT1BQkyzHLDg4Ood+BQY2QKTwiBd3NOypp+Dpp2HSJBhRHrNJZg4k58yB00/3WjfHNxxnSc8lVOtUja5/dcUR4ODXLb8y4JMBjD1jLE/0e8JrfVtKR2mdsLWq2r6oY2VFUU4Y5C9k3p5Wd6fP9PSjJCfHkJS0jeTkGJKTt2VtSUnbcDoTc7Tp7187m2MWnUPs9u2bwY4dz7v1HjdvNtP60dGm9FnuLNU+59dfzTTdY495NV22OpXVl6zm0M+H6PZ3N6r3rs6eY3to80YbTm58Mj8P+bnUM5MW7+ABJ+we4CZOlCrajwnIbwn0x8xoPaKqBda1ymcmLFJdVT5E5D6gt6peVZQtJRlIlgf9cjpTSUnZka9+JSfHkJqas6CtSFA2xyy7fpn93bsns337uCLfp9MJF10Ev/xiJsxPKW8JRbIPJFes8Opz033T97H2yrU0vq8xLV9pCcDgGYOZuXEm6+5YR3TNaK/1bSk5pXXCPgHeUNUFrv3ewB2qer3HLXUDd5wwcG+E5WlK06eqkpZ2MEvQsjtnZj8G1aLzwhTU748/woUXmizVH31UDqf1b7wRPv0UliyBzp291k3a4TSWdF+COpWeS3sSEBHAxIUTuefne/jqiq+4rN1lXuvbUnI8FBPmB5yJyQsWCSQB6zCJqAstG+2qAHI6UAfYC4x27XfFPI6MAW5VN0qvFXcgWRH0CyAjIymbdsXk0q9teZ4EFER+fR85YgaSx44ZiWjYsOD7fcJvv5m0FV4eSAJsumsTu97YRYevOlD3srrsOLqDtpPaMqDFAL650i40Ko+U1glbhwnKzxSppsAGIB2TZsd7/zHzwV0nDAqPNfAW3upT1Ulq6h6OHv2HtWuvLPL6rl3/pmbNU3McGzsWnnwSJk40ixLLFQcPQrt2Zrpu/nwzqvQS8YvjWXbKMmqdVYtOP3Qigwx6TO7B4aTDrLtjnQ3SL4d4MibM1xRnIFlZ9AsgPT2e5ORtHD26gE2bbivy+pNO2kRoaMus/dWrTWhFly7myV9goEfNKz1lNJB0pjhZdtoyjm84To8lPQhtGZoVpD/rmlmc38qj6eosHqC0TlgBte4NqlqmC4iL44RBwSsHvYm3+yx8BZXgSulGWFgP6tS5mDp1LqZatU6oCpdeambF/vgDTjvNayaWjM8/NysJXnsN7rnHq13tenMXm+7YRLPxzYh6NCorSP/RUx9l/P9sNv3yRlV0wqBy6hcUpWGGwMAGREQMpE6di6lZ83/4+QUzfbpJWzFihIkRK1eU4UAyOTaZxd0WExwVTLd53cgIzLBB+uWYwvTLnQLesUBNYKBrq6mqsZmbRy31AmUtYGXRZ1TUo0RFPYHDkTO4y+EIpVmzcfTqtY7mzZ/D4QgkJmY0ixd3YeHC5mzZci+TJs2hZct0Bg0yK6vLFVddZYrkPv6415MDNby9IfWuqse2J7Zx+M/DnBZ1Gtd3uZ6X5r3EhgPlsdSApSpSGfULCtewpk1H0a7dJ9SocRr79n3OqlUX8u+/dVi9+nL69fuYRx89xJtvwtSpXjezeEREwIQJsGgRvPGGV7sKjgqm3cftOLb8GJvv2UygXyCvn/c6Ww5v4cV/X/Rq3xbP4s5M2D3ALcDXrkOXApNV9XUv25YvxZ0Jq8y4E8ORkrKHgwd/4MCB7zh8+DdUUxCpze+/X8Du3RczceI5hIYWWbWl7IiNhQ4doF8/mDXLq8Fr6QnpLOm1hPQj6fRc3pMjYUdo/UZrG6RfDqmqM2GVnaI0zOlM4fDhORw8+B0HDnxPaupuwI+YmNP4+eeLGTnyYk46qRwt+VaFCy6AuXNhzRpTENOLbH10K9uf207bj9rS4LoGXDHjCn7Y+IMN0i9nlPZx5Eqgj6omuvarAfPLOhYsEytgOSlODEd6+jEOH57NgQPfERc3E4fjEBkZQdSt+z/q1LmYiIiBBAVFutWvVx9ZTJhgMup/9hlcfbV3+nBxbPUxlp60lOq9q9P51868seQN7vn5Hr4c/CWXt7/cq31b3MdTTpiIBAGXA9FAVpIrVR1T2rbdxWpYTtzVMFUnCQlLOHDgW/bu/Y6UlDUABAV1okGDi4mIuJjw8B5uD568pmFlOJB0pjtZcdYKEhYl0OO/HhxqfIi2k9pydvOz+faqb73Wr6V4lNYJWwX0ykzO6kreukhVO3ncUjewApaXkoiJ05nOSy/9Q2zsd1xyyXcEBGwDIDy8tyuO7BJCQ9vmK2heDxjOyIC+fWHbNpOJOiLC831kY89He1h/w3qaPtaUpmObEjIuhHRnep7rGoU3YudI7xTstRSOB52wnzG1b5eQLYOpqr5c2rbdxWpYXkqiYYsWbeHVV7/jnHO+IyrqH8BJUFBjIiIucsWRnY7DkX/0vtc1LHMg+emnJs7Vi6TEpbC422ICagXQfVF3Il6PID41Ps91Vr98R6liwoAPgIUi8pSrTMcC4D0P2mcpJSUZzTkc/tx//+ls2vQqF164heDglURHjwUy2LbtMRYtas9//7Vhy5YHOXLkH1TN/6syKfLr52eyTx8+DPff7/n2c9Hg+gZEDotk+/jtHP35KBe2ujDPNYF+gVzc5mKv22LxOo1V9UpVfUFVX87cfG1UVackGtarVwsGDBjJjTf+xezZe2nbdirh4b3Ys2cqK1eew7//1mXNmqvYu/dz0tOPZt1XJhp2550mk/6995qAfS8SFBlE+8/bc3zjcTYO38hVHfKmqrP6VX5xt3Zkd0zZIoC/VXWZV60qBDuK9CwHD0LPnqYM2pIlUK8eJCfvdMWRfcuRI3NQTSMgoC5BQU1JTFyVo8acV3MYPf44jB9vkrmedZbn289GRlIGy/ouI3l7Mk3/bkqzL5vhzJZcPcQ/hK33bKVBWAOv2mHJHw/OhE0GXlfVVR4wq0RYDfMsd9wBb74JX3wBV1xh8pUdPvwbBw58x8GDP5CWtg8Rf2rWPAOHI5hDh37NUR3Aaxq2ahV0726SM5bBKoLYcbFse2Ib9V6pR9djXUlznijxbPXLt5TqcWR5wwqY51m2zDz9O/lk4+/4ZysHl55+lEOHfiY2djyJiSvzvd9rIpacbPLtZGQYQfNyqv/jm4+zpMcSQtuFMun+SXyw9gMAAhwB3NL9FiZdUN7WxFcdPJAxfxUmd4s/0ArYCqTgyulSljGuVsM8S2oqnHGGSVa/YAF0zFY4SjWD+PiFHDjwHXv2vE9a2oF82/CahmUOJGfPNslcvYg6lVUXruLw74eZ/fxsnot/Dqc6rX6VA6wTZimSjz+G66+H++6DV17Jec7dwsK9e2/xfKBraCgkJeU9Hh4O8XnjHkrL/q/3s+byNdS8rSb9a/cnPjCeWqm1WPvoWjuK9CEecMLKTb5Dq2GeZ/du6NEDwsJMhoiaNXOe95mGhYebNP/5HfeCfqUdTGNxt8U4HU6uu+Q6dlfbDX6w7cFtRIa7t+jK4nlKFBPmWkVkqSJcd53Jov/qq2ZRYnZCQprTrNn4PDl9shMa2p70dM+LSr4OGEBCguf7AupeVpfG9zbmyNtHeOvHt2gZ1xInTkIDylvBTUtxyJbX8JnseQ4zj/naPkvpaNgQvvwSYmLM0z9nrjLtRWuYULfuYIKCmnrWsPwcMPCafgVEBNB+envSd6cz8fOJ3DjnRlL8Uvhv139e6c9SegoLzJ8PICIfl5EtFh/z8ssmi/6wYbAy15PHgpIrioRQs+b/SEnZxZIl3Vi9+jISEpaXndFeoPnzzQnrEUbD5Q15+JuHiQ+IZ9SsUb42y+IZOmTfcdWT7OEjWywe5JRTzKLEH3+EMfkkHClYwwIJDGzA/v0zWLSoA3v2fIIzn9XRFYUaJ9cgalQUYfvCGLxgMNH7o7lr1l0kpib62jRLPhTmhAWKyDVAXxG5LPdWVgZayo6AAJg+HWrVgksvhUO56u3mFjGHI5To6FF07fobJ58cQ3T0Uxw+/EeFd8YcgQ5C25v32HJfSy5ecjGTVk5i5d78Y+Is5R8ReVREEoDOIhLv2hKAfcB3PjbP4iFuvx1uuAGefhp++CHv+fw17Cn69NlJhw5f43CEsH79dRXeGUvenQwCfurH498+zo5jOxj3t3cLi1tKRmFO2G3AaeQsWZS55V3Dnw8icq6IbBCRzSLySD7nm4rIHBFZJiIrRcRWHvUxDRqYaf0dO8y0fkZGzvOZImZenwhkDQioSXT06ErhjKXEpXBgxokA3tt+vo2wpDBu/ebWHCsmLRUHVX1WVcOBF1W1umsLV9UIVS2b6tgWryMCb71lFiVeey1s3Jj3mvw0TMRB3bqX0rPn0grvjKXEpbBv6r7MEsK03NWSi5ZexEvzXmLd/nW+Nc6SB3eStd6sqsXOC+aa5t8InA3sBBYBV6vq2mzXTAaWqepbItIe+FFVowtr1wa1lg3vvAO33WYW9zyTT8RMUckV09KOsGvXBHbseJWMjKPUqXMpUVFPEh7etXiGFJZt2kuLSjaM2MCe9/agqSfaX9RqEQ8NeYj3L3qfod2GeqVfS8F4IDC/e2HnVXVpSdsuLlbDvE9srAnUr1/frJgMD897TWEapurkwIHviIl5msTEFYSEtCYqahT16l2Fw+Gf7z35Uk70KzUglcGPDqZH8x78fv3vtiRbGVPaZK0fi8jdIvKla7tLRALcuO8kYLOqblWTWGoakDtbnALVXa9rALvdaNdSBgwfDjfdBOPGwbff5j1f1Aoij82M5aeeAMHB7rdRTA5+fzCHgAH03NSTvlv78tBvD3Eo6VABd1rKMS+7tknAQmAyMMX12q7dr2RERcG0abB+vdGx/PydwjTMYzNjBemXfzEcuWKSn34FpgXy9FdPMydmDtNWT/Na35bi444T9iYmcPVN19YdeMuN+xoBO7Lt73Qdy85TwLUishP4EbjLjXYtZYAITJoEvXqZ1BXr15esnVI7Y/HxRkEzt9RU6NQJ6tTx2gqjvjv7crqenrX1XNUTv2A/nt/5PIcTD/PY7495pV+L91DVM1T1DCAO6K6qPVW1B9AN2OVb6yze4Kyz4LnnTHjFiy+WrI28zlhw8Zyx3PqlavKGpafnH7TmAXLrV//0/tQ4rQY9Yntwjv85jJw9kqPJR4tuyFImuOOE9VLVG1T1D9c2FOjlof6vBqaqamPgfMysWx6bRGS4iCwWkcX79+/3UNeWoggOhq++Mj8vvbR0aW2yO2NRUaNLPjMWEGCele7aBU8+WXKDikFYxzBavNyC9D/SeTXuVSYvmWyXfFdc2mTPlq+qq4F2PrTH4kUeeMBk0X/0UZOIuqSccMaWlcwZy87995sC33feWXAKCw8ifkK7T9oh/sJjXz7GgaMHGP3naK/3a3EPd5ywDBHJynInIs3JVvi2EHYBTbLtNybviPNmYDqAqs4HgoE6uRtS1cmukWvPunXrutG1xVM0aWLKgWzaBDfeWPowhoCAmjRr9lSJnLGkpK3mRZ8+JmBt4kRTa6kMaHh7QyIujqDz1M70Ptqb22fdTobTnT8DSzljpYi8KyKnu7YpgF32WkkRgffeg3bt4OqrTR6x0rVXcmcsS78CA81Acvt2eOqp0hnkJsFNg2k9pTXO5U4mrp/I6/+9zvI9y8ukb0vhuOOEPQjMEZE/ReQv4A/AnarKi4BWItJMRAKBq4Dvc12zHfgfgIi0wzhhdqqrnHHGGfDCC/DNN2Z63xMU1xmLjX2WhQtbnCi2O368KXQ5fLiZ2vcyIkKbd9sQUCeAsd+OZW3sWt5e/LbX+7V4nKHAGuAe17bWdcxSSQkLM9qVng6XXVZw/ufiUFxnLI9+nXKK0a7XXjN148qAeoPqETksknZftqPfrn7cPut2u9q7PKCqRW5AENDZtQW5c4/rvvMxKyS3AI+7jo0BLnK9bg/8C6wAlgMDimqzR48eail7nE7Vq65SFVGtV8/8jIpS/eQTz7SfmnpYt24drXPn1tA5c9BVqy7V+PhlqqoaEzNe//orVOfMQf/6K1RjYsabm6ZNM1EWr73mGSPc4NDvh3SOzNGX+7+sNZ6toXsS9pRZ31UZYLG6qTvlfbMa5ht++MHIxamnqjZt6lkNczozdN++r/W//zrrnDnoggWtNS7uY83ISCtYvw4dMmLaq5dqenrpjXCD9GPpuqDNAv217q9a/aHq+u6Sd8uk36pOYfpla0da3Oa99+CWW3I+kgwNhcmTTU4xT5CWdoSdO19j587XyMg4Smhoe5KStqKanHVNVrHdpo/A+efDP//AunXQuLFnjCiCrY9uZftz2xlz5RgaX9mYjy79qEz6rcp4IEXFdFW9Ilsh7xyoLeBdJbj8cvj665zHPKlhJ1JbPEVi4koCAuqQnh6PSRBgyFEs/LPPTMdvvAF33FF6A9wgYVkCS09eytoOaxl15Sg23LWBiNCIMum7qmILeFs8QnS0yb+Tm6io0sda5CYt7Qhr1lzOkSN/5Hs+S8icV5kg13PPzauuXsKZ5mTZKcs4tP4QQ4YNYcbdM+gf3b9M+q6qeMAJi1TVuIIKeast4F0liIoyoVj5Hfekhqk6Wbfuevbt+4x8fP6cA8lzzjHJzNavN0Uwy4Adr+5gy8gtTLhgAnVvrcvkgZPLpN+qSonzhImhSWHXWKoO+YlXYcdLQ3r6oQIdMACn8zjbtj1GUgOF0aNN0Md3ZVN9xhHgoP3n7QnSIMZ8P4Y7Zt5BWkZamfRtKRmqGud6eRYQqHmLeFuqADt25H/c0xqWnBzDvn2fkp8DBtn0K3mbSfGflgb33ONZIwqh8T2NqXVOLe789U5+/flXFuxcUGZ9W3JSqBPmepb5YxnZYinnNG1avOOlISSkOc2ajc9TbDcTkWCaNRtvEi6OHAkdO5ol317KHZbHvhYhtH6zNW23tKXb1914bcFrZdKvpdQ0Bd4Rka0iMsOVfLqrr42ylA1lpWFF61fgCf1q0QJGjTIJzWbO9KwhBSAOod2H7QiqGcTT3zzNXd/eRXoFKs1UmXBndeRSEfFUXjBLBWbcOBM/kR0RU9rIG+QutpsTJSiosVkAEhBggjp27jSzYmVE/WvrU++aegz9ayhffPwFO44WMMy2lBtUdbSqngl0AP7GrP4umzwnFp+Tn4YFBprjnqZg/XKgmkpS0ibS012DxgcegPbtTVxYYqLnjcmHwPqBtJvajqZxTenzcR/eWuRODnaLp3HHCesNzBeRLa4i26tExObVqYIMGWJ8nago43w1aGB+zp3rvT5zC5nDEUrjxg9QvXov1q+/nrVrryQt7dCJ3GETJsDSsikDKCK0fqs1gU0CeeCLB3j4m4fLpF9LyRGRJ0TkJ2A20BJ4AJPD0FIFyK5hYMZvwcEmu743yE+/oqOfomnTx9mz50MWL+7C0aP/+iR3GEDEeRE0uqcRl/13Gd+++S1xCXFF32TxLAUtm8zcgKj8tqLu89Zml3eXL0aPNsu+v/jCu/3ExIzXOXPIWt7tdKZrTMyz+uefAfrvvw314MHZqocPq9avr9qjR5kt+VZVPTL/iP7h94c+0fEJ/WnjT2XWb1UCD6WoAJYC/wGjgdMpRsodT21Ww8oPq1erBgWpDhxo0vB4i9z6pap65Mg/On9+M50zx6FbtjymGRkpqsOGqfr5qS5b5j1jcpGRnKH/dPxHvwn9Roe9O6zM+q1KFKZfbq2OFJFTgVaq+oGI1AXCVHWbxz1CN7Ari8oXaWlw6qkmo/6qVdAod3VQD5KUtDVP0d2EhGWsWzeE48fX0ajR3TRf0gO/q28wM2J33+09Y3KxZewWdjy5g/eHvM/kqZMJ9vdegfGqSGlXR+ZqqzpwCnAqMBjYp6qneqJtd7AaVr547TW47z4zQ3bLLd7rJz/9Sk9PYPPme9mz533CwrrTruEbVOt6MTRrBvPmgZ+f9wzKRuK6RBZ0W8CyRsvoMbsHZ7Q4o0z6rSqUeHWk6+bRwMPAo65DAcAnnjPPUpEJCICPP4aUFBg6FJxeTMCcW8AAwsO70aPHEho1uptduyaypPnzJFzfB554wsSIlRHNH2uO9launn41E76YUGb9WoqHiHQEhgA3AFdiSqkVvAzXUum5+2743/+MI7Z5s/f6yU+//P3Dadv2PTp0+Jrk5FiWbD6TnZPPQ//7zzyeLCOqtatGy9da0nNrT7554BtSM1KLvsniEdyJCbsUuAhIBFDV3UC4N42yVCxat4aXXzYFct94o+z79/MLoVWrCXTu/Avp6UdYOnQxsZckofeW3UyY+Al9ZvRBAoVaD9di8x4vqrmlNDwHVAcmAu1U9QxVLZtK8JZyicMBU6eaAeW115ZJFbQ81K17Kb16raZmzTPYXPMjVr4bQcqLD8Pu3WVmQ9Nbm5I+IJ2Lvr+IyR/YvGFlhTtOWKrrmaYCiEg175pkqYjceitccAE8/DCsXesbG2rXHkCvXquoU/cStt2UzvJ+35D0w5Qy6z+4STDNJjej9a7WfHXLV7jzqN9Stqjqhar6vKrOU1Wb3M0CmGIbb70FCxfCs8/6xoagoAZ06jSLVq3e5GjLRBZNOMa+iYPKrH8Rof/n/UmqmUStR2oRsyumzPquyrjjhE0XkXeAmiJyC/AbUHb/2SwVAhF4911TLPfaayHVR7PZAQG1ad/+C9q2ep9jrRws9r+VPTHvlJlD1OaaNhy45AC9Z/Zm5vtlk/PHUjSZq7oL2nxtn8X3XHUVXHMNPP00LFrkGxtEhEaNbqdnr+WESCPWnjufdb+eRXp6fJn0H1A7gFYftSLyUCQ/DrEpQsuCIp0wVX0J+BL4CmgNPKmqr3vbMEvFo0EDmDIFli0r01XWeRARGjQaSq/qMwjbqKyPuY01awaTlnawTPof+PFA9jTYQ/rIdA7vOlwmfVqK5EJgIPCzaxvi2n7EJqS2uHjjDYiMNAPJMkrXlS+hoW3odvYGon6sw16/31n8X2eOHPm7TPpue0Fbdl+/m/Z/tefnV38ukz6rMu7MhAGswiQ2nOt6bbHkyyWXwE03wfPPm7raviT4lMvoum4YzScLBw98x6JFnTh40PuiEhQWROMPGlMtsRqzB822jyXLAXqiPNHZqvqQqq5ybY8AA3xtn6V8UKsWfPghbNwIDz3kW1scwdVoNvBrut0FHD7K8uX92br1UZxO7z9mGPzOYLY024LzMSdHNh3xen9VGXdWRw7D5NW5DBgELBCRm7xtmKXi8tprptj39ddDfNnMoheIPPsCTX+vS/dXW+PvX5tVq85j48Y7ycg47tV+Tz33VJYPXU79BfVZ8rxNyF6OEBE5JdtOX9wfjFqqAGeeaSqhvfkm/PSTj4057TRq9LmZnlfGExl4Cdu3P8fSpb1JTFzj1W6DgoJoPrU5TnXy1yV/4Uz34rL3Ko474vMg0E1Vb1TVG4AemJQVFku+hIfDRx9BbCzce6+PjalVC157jfDv19Jj0c00bnwvu3dPYsmSHiQkeNc5uvHVG1nSZglHRh0hYWXZ1LS0FMnNwJsiEiMiscCbgB1UWnIwbpwpR3vTTXDggI+NeeEF/EMjaDNyNx07fENKyi4WL+7Bzp0TUPWec3RGvzP47/b/qLG2BsseXea1fqo67jhhB4Hs/0ESXMcslgI55RR45BH44AP4+msfG3PVVTBgAH6PjqZlyAN07vwr6ekJLF16MrGx41DN8Eq39cLqUWNiDeKD4llw2QIykrzTj8V9VHWJqnYBugCdVbWrqpZNnStLhSE4GD75BA4dguHDwacRBbVrwyuvwMKF1Pkyjl69VlGr1lls3nwvK1eeS0rKLq91ffuY2/m9++8cffkoh+fa+FZvUKATJiIjRWQksBlYKCJPuRK3LgA2lpWBlorL6NHQvbsRsT17fGiIiHm2kJYG99xD7dpn0avXSurUuZxt255g2bJ+JCVt9UrXQ88ayte3fE3AlgDW3bfOK31Y3EdEgkTkGuAO4B4ReVJEbJ4wSx66dIFnnoFvvjFxYj5lyBCTUfaRRwg86KRTpx9o3fptjh79l0WLOrFv33SvdBsZHkn9F+uzu9Zull65lLTDNquLpylsJizctW0BvsWVJwz4DvBJySJLxSIw0IwmExPNtL5PR5MtWsCTT8JXX8EPP7hSWXxOu3afkpi4hsWLuxAX936eIPrSOmd+Dj/ue/A+pvedzoF3DnDgO18/26jyfAdcDKRjElBnbhZLHkaOhP79TVb9bb78rydiEpmlpMC99yIiNGx4Kz17LiMkpBVr117JunXXkZ5+NMdtnhhc3nb6bUwfPh3dp6wZtsYuNPI0BRWVLK+bLX5b8Zg40RT5fvNNHxuSkqLaoYNq06aqCQlZh5OSYnXZstN1zhx01apLNCVln6rmX3S3pNz57Z36TuQ7+metPzV5Z3Kp26tq4LkC3qs90U5pNqthFYuYGNXq1VVPOUU1Pd3Hxowda8R01qysQxkZabpt21M6Z46fzpvXVA8f/lNVPatf87bP06vOukrnMEd3TdlV6vaqGoXplzurI3uKyDcistQmN7SUhDvugAED4P77YcMGHxoSGGjqsW3fniORWXBwU7p0+Z0WLV7i4MEfWbSoE+vW3Uhs7DMAxMY+Q2xs6dJojz1nLG9e+yYpiSmsvW4tmmFHkz5inoh0Ku5NIvK+iOwTkdXZjtUWkV9FZJPrZy3PmmopD0RFmfxh//4LL7zgY2MefBDatoURI7ISmTkc/kRHj6Z7939xOAJZvvwMli3rR0zMWMAz+tWnSR/C7ghjafOlbLx7I4nr7eSxp3AnMP9T4APgckyyw8zNYnELh8ME6IeEwHXXmdAsn3HKKXDLLSaPxrITK35EHDRpcj89ephU2Xv3fojTadJYOJ3HSy1kNYNr8sC1D/Daua9xdM5Rtr+4vVRvw1JiTgWWiMgG14BylZuDyqnAubmOPQL8rqqtgN9d+5ZKyLXXwuDBJqJhmS8XCgYFmYFkbCyMGZPjVPXqvenZcznh4b04evRvVJMAz+gXwHMDnuOtq98i0S+RdVevw5li01Z4AnecsP2q+r2qblNXwkM1SQ8tFrdp2NBox6JFJtjVpzz3HEREmIKXGTlXLB48OCvfEiGeELIhnYZw/JLj/Nv5X7aN2kb8fz5OolY1OQ9ohUnQOpATmfQLRVXnAodyHb4YyAzZ/hC4xGNWWsoVIvD221C3romRT0ryoTH9+pkg25dfhpU5xw87d04kMXF1nls8oV8RoRE8fNnDjBs4jmPLj7H1Ue8sZqpquOOEjRaRd0XkahG5LHPzumWWSsegQWYmbNw4WLDAh4bUrg2vvmo8wrffzjqclLSVbdseyxpB5sbpPM62bY+VONhVRJh0wSRevOBFjtU6xtqr15KekF6itiwlI9sgMgmz2ChzKwn1VTXO9XoPUN8DJlrKKbVrw9SpsG6dSb/jU154weRAvPVWcJoZqUz9ypzBz01p9Qvgpm43of9Tfu77Mztf3cnBn222qtLijhM2FOiKmYrPfBR5oTuNi8i5rmn/zSKS76+tiFwhImtFZI2IfOam3ZYKyuuvQ+PGxhk7dsyHhlx9NZx9Njz6KOzeDUBISHOaNRuPwxGa7y0igTRrNp6QkOYl7rZDvQ4MP2M4j174KMkxyWy6Y1OJ27IUHxG5SEQ2YVZ4/wXEAKXOi+4Kvi3QmROR4SKyWEQW79+/v7TdWXzEgAFw110wcSL8+qsPDYmIMLnDFiyAyZOBovUL/IiOHlMq/XKIg7cueIsJZ07gaNRR1t+wntS93i+jVJlxxwnrpao9VfUGVR3q2orMMC0ifsAkzPR/e+BqEWmf65pWwKPAKaraAbi32O/AUqGoUcPk3NmyxQTq+4zMJd+u3GGZREU9SlTUE/kImQPVNByOwFIv0X6y/5Mc6XSEn877ib0f72Xvp3tL1Z6lWIwFTgY2qmoz4H+Y3IclYa+IRAK4fu4r6EJVnezS0Z5169YtYXeW8sDzz5vY+BtvNMlcfca115oaS488AnFmQrZg/fIHMjhyZA5paaVLutq1QVeG9x3OfeffR1p8GutvXI867UKjkuKOEzYvt/PkJicBm1V1q6qmAtMwMRTZuQWYpKqHAVS1QBGzVB7694cHHjADuB9+8KEhLVrAqFHw5Zcwc2bW4dxC5nCEEhX1JHXrXs6WLQ+wceNtOJ0lX10QFhjGhHMn8FL3l0jsnMjG2zeStNWXQSZVijRVPQg4RMShqnOAniVs63vgBtfrGzA5yCyVnJAQ+PRT2LcPbr/dh/kPMweSyclw331Zh/PTr2bNxtC27YccPfoPS5f2ISlpS6m6HnPGGJJaJPHNZd9w6OdD7Jy4s1TtVWXcccJOBpaXYDVRI2BHtv2drmPZaQ20FpF/RWSBiORefWSppIwdazJSDxtmxMxnPPAAtG9v8mgknlh2nSlk5vUTNGs2mvbtv6Bp00eJi5vMqlXnk5Z2pMTdXtr2Uga0GcDd59yNOpS116zFmWZXG5UBR0QkDJgLfCoiE3AjWauIfA7MB9qIyE4RuRl4Djjb9XjzLNe+pQrQvTs8/TRMn24cMp/RujU8/jh88UWOauO59Ssq6lEaNLieLl1+Iy1tP0uW9ObIkX9K3G2N4Bq8POBlJraaSEK/BLY+vJWEZbY+bokoKIFY5gZE5be5cd8g4N1s+9cBb+S6ZibwDRAANMM4bTXzaWs4sBhY3LRpUw+kTrOUB1atUg0KUr3oIlWn04eG/P23SYD4wAN5Th0/viXPsd2739c///TXhQvb6fHjW0vc7aaDmzRobJA+NvIxncMc3fLYFk3enazzm8/X5Dib0DU7eC5ZazXM4NMfM3t1NxDhibbd3Wyy1spBerpJ4Fq9umpsrA8NSU5WbdNGNTpaNTExx6n89CsxcaMuWNBK//wzUPfs+aTE3TqdTj1j6hnaZFQT/Tvyb13QZoEmbk60+pUPhemXOzNhWsBWFLuAJtn2G7uOZWcn8L2qpqnqNkxNylZ5DLDxFJWSjh3h2Wfh++/hvfd8aMipp5opuVdfhRUrcpzKL4g1MnIonTvPJjV1D0uX9ubo0fkl6rZl7ZY8cuojjK8+HudgJ9uf3c6G2zaQHJNM7FibBcYbqGqiqjpVNR2YBbyu5vGkxVIs/Pzgo4/M4sQbbshapFj2ZOYOi4nJkzssP/0KDW1F9+4LqF69D+vWXcu2bU+VKM5VRJh0/iT2BOxh1u2zSNqYxKqBq6x+FRN3nLBZmBmrWZiEhFtxbzXRIqCViDQTkUDgKkwMRXa+BU4HEJE6mMeTNvlIFeKee0xs6b33wubNPjTk+efNGvR8coflR61aZ9C9+3z8/KqzfPkZ7N07rUTdPnzKw7So1YL7et9HULMgDn1/CJyw54M9pOxJKVGblryIyMki8qeIfC0i3VyZ71djguttGISlRDRvDhMmwJ9/msWKPqN/fxg61OQOW7WqyMsDAmrTpcts6te/gdjYp1m37loyMpKL3W27uu24v8/9POd8Dr1RSVqXZPWrmBTphKlqJ1Xt7PrZChNwX+TQ3zXSvBP4BVgHTFfVNSIyRkQucl32C3BQRNYCc4AHPTEqbTxvHiM2bCAupex+CXzRZ2XA4TC5dwICTNqKdF+lzcrMHbZwoRlVukFoaBvXiPIk1q27mpiYZ4o9ogwJCOH1815n5bGVzO47O+u4M91pR5Oe5Q1gPPA58AcwTFUbAP2A0qUS9zBWvyoWQ4fCJZeY0KyV7kRLe4sXX4SaNXPkDisMhyOQtm0/oFmz8ezb9xkrVpxFamrx06c80e8JmtZoyoj6I1Ax+udMs/rlLu7MhOVAVZcCvd289kdVba2qLVR1nOvYk6r6veu1qupIVW3vcvJKNp2Qi12pqbwbF0f0ggVcu2YNyxMSOJiWxrH0dFKdzlKnGCioz/f27KH5woVWzIpJkybw5psm5c1zvgxtvuYaOOusHLnDiiIwsA5duvxK/frXEhMzivXrb8DpLN53f16r8wjXcJ6NepYjoUfMwTTY+s5WOjzVoZhvwlIA/qo6W1VnAHtUdQGAqq73sV15yNSSZi79WhIfz/7UVI6mp5OckYHT6le5QsSs9K5Vy2SNSC7+hJJniIgwM2Hz58OUKW7dIiJERT1K+/bTOXZsCUuXnkxiYvH+JKoFVkOPKOuD1zOzm2uVebrVL3eRohwSERmZbdcBdMcEsp7jTcMKomfPnrp48eJCr5E//yyynUARghwOghyOrNdZPx0OgkTMz1yvC7p2VExMVtt+gEOEi2rXZmSTJrSpVo2a/v74iZTuzWej8bx5XBQRwajoaCKDgjzWri+5+mqTLWL+fOhZ0qQBpWXzZhOsdtFFZumTm6gqsbHPEBPzJDVqnEbHjt8QEBDh9v0vXPICozuMpvvW7oybNg6AdEkn5rwYhs0aVuy3UdkQkSWqWuLfChFZqqrdc7/Ob9/bFKVh7uiXv4hbupSfnuW+NsjhYHQ++nVB7drc27gxrUNDqeXvT7CfX+nffDYqm4bNmgUXXmjyH770ko+MUIX//Q+WLoX166FBA7dvjY9fyKpVF+F0ptCx41fUqvU/t++dcv4U3q31LquiVvHJhE+ofbw2TpxsG7CNm3+5uSTvpFJRmH6544SNzrabjskw/ZWq+sTfL6kTJkAtf39GNmlCitNJqtNJiqr5met1qmrOn67zBd3nLjX8/KgdEEAtf39q+fsX+TrzZ7ifH5LLgZM//yRQBIcIQ+vXrxRCdvgwdO4M1aoZDQktKPGztwkKgtR8skCHh0N84fUe9+79nPXrhxIc3IROnWYSGtrGrS7/afgPnzT7hHcGvMNTXzxF/3X9AXDUctDvUL9iv4XKhgecsAxMKgoBQoDM2i4CBKtqQOmtdI+SOGGZ+vVAkyZu6VLmNYXpWea1RUdAGkIcDvd0y9+fWtle1/T3x9+R96FLZdSw22830Qy//w5nnOEjI8LCcqTbycIN/UpKimHVqgtJStpAq1Zv0bChewPAfxr+w/bk7QwdMZReW3oxdtpYBEGChX7H+iF+npuAqIiUygkrbxTXCQsUwU+EoQ0aMCoqigYe/iNXVdJVCZw7N+tYAGaa96xatTindm0UOJSWxuH0dA6np+f7Oq2Q78EPskQtU+x+zpaqOXPkemlEBOObN6eFz7yX0vP77+aJ4B13wBtv+MiIwmYs3fh7OXp0HqtXX4JqOh06fE2tWqe71e2tP9zKlKVTUJQQZwgffvkh9bbUo+sfXanRt4Z7tldSSuuElSeK44R5W78AMlTx/+uvrP0AjJ6cXasWF0REoFCgbmW+TiwiBinczy+Pc/bVgQNZ5/0APxGurluX8c2b0zA42OPvsyxITIRu3cwjyZUrTYhWmVNK/UpPP8qaNVdw+PBsmjR5iObNn0Wk6MilEbNGMHnJZDI0Az/x44XdL9D9ne40vq8xLV9pWZx3UOko7UxYa+ABIBqTWwcAVT3Tgza6jbtOWFmIl6f6VFWOO51FOmrZXy9KKDgxXoPAQFoEB9M8JIQWISE0Dw7O+lk/MDDPrFp5Y+RIEyP/009wri/WrZVSxMAU0zUjys20bv0OkZFDi7wnLiGOZhOakZKRgiCsunIVxwYeI/1IOt0XdCekRYi776DSUdWcsIqkXwCpTidH3NCt7K/XHs+/0LQAnapVy6ldISG0CA6maXAwgfnMqpUn/vsP+vaFq66CTz7xgQEe0C+nM53Nm+9m9+63qFPnMtq1+xg/v8IH99n1C2DqxVPp+0Ffdk3cRatJrWg0Ineu9qpDaZ2wFcDbwBI4MXOtqks8aaS7uOOENZ43j4vr1CkT8fJVn9lHy5kj1341a9IjLIx9aWlsTU5mS1ISO1NSciR1C3U4sgQtt5MWXYTAlVUMR3KyiQk7eNCstq5Tx2td5Y8HRAwgLe0Ia9cO5vDh32ja9FGaNXumyBHliFkjeHvx24gIZzY7k697fc2KU1YQUDeA7vO7E1CrzJ6alSuqkhNWFfQL8mqYiHBSeDhtQ0PZk5bG1qQktiYnk5xtls0BNA0OzjGwzO6k1Qwo/O+jrDTs6afhqadg2jS48kqvdZM/HtIvVWXnzgls2TKS8PAedOz4PUFBkYXek6lfdULrkJyezPyh83EOd3Jw1kE6/dCJiPPdj5OtTJTWCVuiqj28YlkJcMcJqwq4O3JNcTqJcTlkW5OS2JKcbH66BC4pm8AJ0CQoKF9xax4SQsS//5ZZDMeKFdCrFwwcaIL1y3TyzkMiBuB0prFp0x3ExU2hbt1BtG37EX5+Bc9oxSXEceoHp3LXSXdx3y/3cd/J9/FkyJOsOGsFNU6pQedfOuMILN8zAd6gKjlhVQV3NMypyp7UVLZk06zsP/en5azhWtvfv8BBZqOgIPz/+qtMNCw93eSA3rDBDCQbN/Z4FwXjQf0COHDgB9auvZqAgNp06vQDYWFdCrw2U79mDJ7B+Z+eT3hQOPOvmk/MOTEkbUqi2z/dCOsSVmwbKjqldcKeAvZhygtlrVtWVZ/Uj7cCZvDEyFVdAre1ACdtb1rBRaodmBiOa+vVY1zz5l4RshdegIcfNnnEbrihyMs9h4dFzIwoX2HLlgcJD+9Fp07fExhYv8j77vnpHib+N5GpF0/lnNXnsP669TS4sQFt3m9T7h8pexrrhFU+PKFhCenpbM01sMz8GZOcTHq2v9dAEVKz7WfGod1Uvz5PNmvmcQ3btAm6doU+fWD2bJMTsUzwsH4BJCQsY9WqgWRkHKV9+y+IiDi/yHv+3f4vZ3x4Bmc0O4Ov+3/Nij4rEBG6L+xOUMOKvQCjuJTWCduWz2FV1bz1EMoAK2BlR2JGRtYjgS1JSdy/ZUu+1wWIcF39+vSpXp2+NWrQNjQUhwechIwMk03/v/9MLtW4OGjaFMaNgyFDSt18wVSvDvnF3DkccOgQ1ChZkPz+/d+ybt0QAgLq0qnTTMLCOhZ6fVpGGud+ei7/bv+Xv278i3rv1iP26ViaPdOMqMejSmRDRcU6YZbiku50sjMlJcfA8vkdO/K9NtTh4ImoKPrWqEGv8HBCPZSOY/Jkkzu1Vi04csTH+gXwyy8wYECJmk1J2cWqVQM5dmwFLVu+RuPGdxV5z5QlUxg+czgP9HmAJ+s9ybJTlxHaJpRuc7vhV82zKU/KM1VudaTFO+QXw9EtLIzq/v4sTUjgoCvdfU1/f06uXt04ZdWrc1L16lT398+/0SJ47TW4776cx0JDjbh5Vchy8+efcPbZZvvhB1M4rgQkJCxxjSiP0aHDDGrXLjzd3sHjB+k1pRfJ6cksumURR0ccZd+n+2j3eTvqX1X0bFplwTphFk+QXcP8MRrWIjiYdGBzUhJgZsi6hoXRp0YN+rp0LCo4uESzz598kreupE/069gxOOUUiI01VUHauJc6Jzfp6cdYt24IBw9+T6NGd9Kixas4HIVr+50/3smkRZP4+NKPOW/Heay6aBURF0bQ8euOVSZ1RYmcMBE5VVX/KaTR6kBTVV3tGTPdwwqY7ygshkNV2ZSUxPz4eOYdPcr8+HhWJyainFjt1LdGjSzHrEVIiFuiFh1tdCM3UVGmXm2Zkjmsve++UhWKS07eyapVF5KYuJpWrV6nUaPbc5xPStqao/Duqr2r6PNeHzrW68gfV//BhnM3EL8ovkqlrrBOmMUTFKZhh9LSWJBNvxbGx2el3ogMDDQOmcsx6x4eTpAbzxfLlX7FxppA25o1TXmS2rVL1IxqBlu2PMTOna9Qu/b5tG8/DX//8KzzufUrLSONsz8+mwU7F/DPTf/Q4OsGbL5rM43vbUzLV6tG6oqSOmGvYsoT/YxZGbkfCAZaAmcAUcD9qrrIG0YXhBUw31HcGI6j6en8Fx/PPJewLYiPJ95VHLtuQAB9MmfLatSgZwGPAByO/MMYRNwqj+Z57r4bXn8d3n0Xbi55Juj09ATWrr2aQ4dm0bjxvbRo8RIifsTGPsu2bY/RrNl4oqIezbr+q7VfMWjGIG7seiPvnPIOy/osq1KpK6wTZvEExdGwdKeTVYmJOQaWW101iQJF6BEenqVffapXp2E+7ZU7/fr3XxPjcdppJgdQEatJC2P37nfYuPEOqlVrT6dOMwkOblqgfu1P3E+vKb1Id6azePhiEp5IYNeEXbR6oxWN7qj8qStK/DhSRGoDlwOnAJFAEqYY96zCZsm8iRWwiotTlbWZohYfz/yjR9ngegTgL0LXsLCs6f++NWrQJCiIgG/mkzE3Aj6KhsMnRM4nI0kwy54uuADmzIHffoN+Jc9mb0aUD7Bz52tERFxIWFgPdux4EafzOA5HKFFRT+QQstFzRjNm7hgmnDuBYbWHsfTkpVUmdYV1wizlgT0pKWa2LD6e+fHxLIqPz6qaEhUUdGK2v0YNOlerRsi3C4x+fRwNh07oV9Om+c+QlQkffgg33uiRjNiHDv3KmjWD8PMLpU6dy9izZ2qB+rV8z3JOef8Uujboyu9DfmfT4E1VJnWFjQmzlFsOZnsEMC8+nv/i4znuGiI2DAxkd2qqKZblFPgmEia3BKeDZ5+FRx7xkdFHjkDv3iZI/7//oFmzUjW3a9ebbNp0p2vvxN9jbiFzqpPLvriMmRtn8su1v9BjZ48qk7rCOmGW8kiq08myY8eY79KveUePsstV8izE4TApgDIw+vVrPXi9FST7c+WVJoeYz3joIXjxRXjzTVNrqRQkJq5l2bJTSU8/nON4fo7YjDUzuOLLK7i52828fcbbLO+/vEqkrrBOmKXCkO50sjLbI4DP9u07cVKB4374v9GKOhvqsGiuf9nm38nOxo3GEWvUCObNMyuSSkhs7LPExDyNakqec7mFLCElgT7v9SHuWByLbllE6KxQ1l+3nvo31KftB20rbeoK64RZKgo7kpOz9GvCrl0nTqjZwn9pTMIHjfno5WCuu85HRmZkwCWXmEeSv/xiin6XEKNfY1FNynMuP0fsiT+eYNzf43jjvDcY1mgYS3ovqfSpK6wTZqmw5FfMGIBkB9XXRvDqpXUZ3KQ24SVcfVkqfvvN1FU67zz49tsSrZhMStrKwoUtiryud+8tWcGuWw5todeUXjSq3oj5N89n//j9lT51hXXCLBWRAvULYF04w1rV5dFT6tI8xAdxnfHxpr7S7t1mxWSrVsVuoiT65VQnl0y7hB83/chv1/9Gz6M9WXbqMkJahdB1blf8w3yg5V6mMP2qvM8vLJWOQBGCRbgoIoKz/esSH32Em2PXUvfff7l41So+3rOHI4UkmPU4Z50FEyfCzJnw6KNFX58PISHNadZsPA5H/nXZREJo1mx8jtVGLWq34ItBX7B2/1qu/+Z6mj7ZlPrX1mfbE9vY+/neEtlhsVi8S6AIIQ4H19Srx/31mhJSTXnXfystFi6k2+LFjIuNZX1iYtkZVL26SbfjcJjSJEeOFLuJkuiXQxx8ctkntI5ozaDpgzgQdYD2X7Tn2IpjrLtmHZpRsSaGSkuRTpiIhIrIKBGZ4tpvJSIXet80i8WQKV7DIiPZdvLJfNepE7PPasfHyX3h7q40WdGQpQnHuH79eurNm8d5K1fyXlwcB1yxGV5lxAizvfiiSe1fAqKiHiUq6ol8haxatbY0aTIyz/GzW5zNS2e/xDfrv+H/7Z15WJXV1sB/m1FxngcQcE4UBWcbNMustLTMW7eszDIbNLPSumZ2m6xu6Zd1tcEsh7S6WZqWlVYeRxzAIQecUEFlUlBERcazvj/2gRA5cIBzQHH/nud9OGe/+91rvWefs1jvHtaasm4KbWe3pdYNtdg3Yh9nNpwplR4Gg8H55Ldfh3v0YGFQEFODWhDVrytNX+hB9fktccty45UjR2gXHk77LVv495Ej7Dx3DpfPVDVvDosXw+HDOsmlLdZjSSjKfrm7V6V+/bsvKa/pXZOl/1xKjuQw+NvBVOlXhdYftSb5p2QOjS88KHhlxZGRsDnodEW9bO9jgbdcppHBkA9fL6884zWzTZuLtpU/+IDi/YdrE/Vsa4Z815ONoZ0Z5+fH/rQ0Ru7fT+OwMG7esYNPYmNJyLh0vZXTmD5dr6l44gm9BbwUFDRkSlWldu2bOXduO3/91Y/MzKRLrhnXcxwPd3qYf6/+N8uOLKPDkg5U8a/C7rt2c+HQpeszDAZD+VKU/WraFP5YUBXPH5tx7pHO7Gzbi/+2akVDLy/eiomhU0QEbbZs4V+HDhGRmuo6h6x3b/jkE51bafz4UjVR0H65ufnQpMmTKOXBtm09OXXqj0uuaV2vNd/e8y27T+zmkaWP0PTppvg+68vx6ceJnRl7Sf1Ki4gUeQARtr/b85X9Vdx1rjq6dOkiBkMuVqvIs8+KgMj77+eWWWVbaqpMOnRI2m7aJFgsoiwWuX7bNpl+7JgcvXDB+YokJ4u0aiXSoIFIdHSpm4mOflssFiQ6+m0REUlM/FbWrKkiGzc2l3Pn9lxS/0LWBek2q5tUf7u67ErcJecPnJd1ddfJprabJDM5s9R6XG7k2qHKcBgbZsjPunUiVaqI9Owpcv68LkvMyJDPYmOl/44d4m6xCBaLBISFyXMHD8qGlBTJsVqdr8i4cdqQzppV6iYK2q8LF6Jly5YOYrG4y/HjnxR6zfsb3hdeQ95a85ZYs62y886dYnGzSNLypFLrcblRlP1yJHdkGHAzsEFEOiulWgLfiEh3VzqH9jCLWg0FsVrh/vvhu+9g4UJ44IG/z4kIkWlp/HDyJN+fPMku25qL7jVqMLRBA+5p4MRFsfv2Qc+eOojZhg1QvXRbrgtGnE5N3cyuXYOxWi/Qvv13l6Q6ik2NpevnXfHx9CH88XDcItx06IprK0/oCrMw31CZWbIE7rkH7rhDzw7m32d0KiuLZUlJ/JCUxMpTp8gUoamXF3fXr8/QBg24oXZt3J2xKzo7W68N++MP+P13uPHGUjVT0H7lD0zt6zuWli2nXZTqSER4aMlDLNy1kKX/XMoA3wHs6F25QlcUab/seWe5B3ALsAYdMX8hEA3cWNx1rjrMU6ShMC5cEOnTR8TTU+SPP+zXO3D+vLwTHS1dwsMF2xNmSHi4vBUdLXvPnRMREd8NG+SpffskLj295IqsWCHi5iYyeLBITk6p7qUwLlyIkS1bOtqeKGdccj7saJh4vekl/eb3k6ycLIn/Kl4sWCRyeKRYXfHUXM5gRsIMlZwZM/RA1OOP6xH+wjiTlSULExJkyK5dUnXNGsFikQbr18vj+/bJiuRkyczJKZv9SkkRueYakbp1RQ4dKtsN5cNqzZaDB58TiwX566/bJSvrzEXn0zLTpMtnXaTG2zVkz4k9kh6bLmF+YbLBd4OkHy/FfVxmFGW/HApRoZSqB/REpwHcJCKXLlApJ8xTpMEeKSlw/fVw9CisWwedOhVdP/rCBRYnJfH9yZNsTE0FIMjHh8i0NDwAd6V4tHFjJgcG0sSBNE15fPQRPPus3jH59tulvp+CZGeftSXP/anQ5Llzts/h0WWP8lzP5/i/W/+P6NejiX4tmsA3Awl8JdBpelQEZiTMcDXw8svwzjvwxhsweXLRdc/n5PBrcjI/JCXxc3Iy53JyqOPhwens7LLZr6goHQOxcWPYuLFMMRALEhc3i4MHR1O1aluCg3+iatW/A10fTz1O11ldqeFdgy0jt+B5wLPShK4oU5wwpdTdwCoROWN7Xxs9Evajk/V0CGPADEVx/Dj06qVjEYaF6QS6jhCbkcGSkyf5ISmJ1fm2arujUyqVyJiJwJNP6oTfX30FDz5Ymlux03QOhw69xPHj06hT51bat/8fHh5/J/F+9tdn+WjLR8wdPJeHOz3Mvof3kbggkXZft6PR/Y2cpkd5Y5www9WAiM4oNH9+ydLTpufksPL0aX44eZL5iX+HqXHDZr8aNeLV5s0dd8YsFujfXx/LlpUqBqI9Tp/+kz17hqKUJx06/EitWtfmndtwdAN95/Wlb/O+LH9gOWd+O8OuO3dRb2A9OizpgHK/MoNRlzVO2L9zHTAAEUkB/u2g4NuUUvuVUlFKKbtJZpRS9yilRClVKYysoeLw84PffoMLF3Qc1eRkx67z9fZmjJ8flpCQi8pzgAwRPomPp8vWrTgycoxSOsl3nz4wciRs2lTi+7DftDutWk2lbdvZpKT8ybZt13LhwuG881P7T+Wm5jfxxM9PsCV2y9+hKx4xoSsMhssdpbTzdeuterP18uWOXVfF3Z1B9eszr127i8qtQKYInyYk0DE8nPM5OY412Levziv5yy/w0kslu4liqFPnZjp33oSHR2127OhLYuLCvHPX+V/HzAEzWXloJRP/mEi9AfVo/V8duiLqhSin6nG54IgTVlidYscFlVLuwEzgdiAIuF8pFVRIvRrAs8BmB3QxGIqlfXtYuhSOHIFBg7RDVlo80aNh3koRn5lJp4gIPo2N5Vxx8XS8vOCHH3Rao7vugmPHSq9EITRp8hgdO/5OZmYC27b1ICVlvdbX3ZPvhn5H0xpNuft/d5OQmaBDVwRUYdfgXaRFpTlVD4PB4Fw8PWHRIr2c4t57dXraUrcFeCpFXQ8PkrKz8Q0L47moKA6mOWAHnngCxoyBadNgzpzSK1EIPj5t6dx5E7VqXcfevQ9y5MhkRHTO4Me7PM7obqOZunEqC3YuwPdpX/zG+RH7YSzHZxx3qh6XA444YRFKqf9TSrW0Hf8HbHXguu5AlIgcFpFM4FtgcCH13gT+A6Q7rLXBUAy9e+udkhs36t2Sjj4A5pIbYPHxpk053qsXp66/ntlt2+KhFE8dPIjvxo2MPXiw6AjX9erpiNRpadobdHI07Dp1brQ9Udblr79uJiFhvhbrU4+l/1xKakYqQ/43hJxaOQQvDwaBXQN3kXWqHLMKGAyGElOjhh4Fa9QIBg7Uy7RKQn77dbRnT5Kuu451ISHcXq8eM2JjabNlC7f+9RfLkpLIKWp0/4MP4JZbtEO2bl3ZbqoAnp516djxN5o0GUlMzFtERt5HTo52Dj+49QP6BPRh5LKRRMRF0HJqS+oNqkfUs1EkL3dweuNKwd6K/dwDqAa8C0TYjneAag5cNxSYne/9Q8CMAnU6Az/YXq8Gutppa1SufH9/f+dvXTBUWj76SO84euop+zuOCuK7YYM8vX+/xBeyu8hqtUpYSooM27NHvFavFiwWuXn7dvnhxAnJsrcbcvlyvWNyyBCn7pjMJTPzlGzffpNYLMihQxPFatUyvt/zvfAa8siPj4jVapXTa0/Laq/Vsq3PNsnJcL4ergSzO9JwFXLggEj9+iItWogkJDh2TVH2S0QkPj1d3jhyRHw3bBAsFvEPC5O3o6PlREZG4Q2eOiXSpo1W5PDhUt6JfaxWqxw9Ok0sFiUREV0lPT1OREROnDshAR8EiO80X4k/Gy/Z57IlvHO4rK2+VlK3pzpdD1dSlP1ymaEpzglDj8KtBgKlGCcs/2EMmKGkvPii/qZPmeLcdhMzMuTt6GjxDwsTLBbxCwuTN48ckYTCjNm0aVqJyZOdq4SNnJxM2bdvlFgsyK5dQyQ7W4fbeHXVq8JryIebPhQRkYQFCTp0xcNXVugK44QZrlY2bRKpWlWkSxeRs2ed125WTo78cOKE3LR9u2CxiNfq1fJgZKRsTEm51Dbs3y9Su7ZIhw4iqa5xgE6eXCZr1lSTsDA/SU3dJiIi2+O3i88UH7n2i2slPSv9ig1dUSYnDGgDzAJWAqtyDweu6wWsyPd+IjAx3/taQBI67lg0ejoyrjhHzBgwQ0nJyREZNkx/2+fMcX772Var/HjypNyyY4dgsYjn6tVy/549su706b+NmdUq8uijWolvvnG+EpL7RPmBWCxuEh7eWdLTj0uONUcGfzNY3F93lz8O6QBqR147IhYscuTNIy7RwxUYJ8xwNfPTT3ow/bbbRDJdkAgj8tw5GXPggNRYu1awWCQ0PFxmx8XJ+ezsvyv9/ruIu7vInXeK5C93ImfP7pCwsGayZo2PnDixREREvtv9nfAa8tjSx8RqtcrZv87K2uprJTw0XLLOZrlED2dTVifsL+Ap9BqvLrmHA9d5AIeB5oCXrZ32RdQ3I2EGl5GRIdKvn7Yhv/7qOjn7z5+XcQcPSi2bMeu4ZYt8Fhsr57KzRdLTRa6/Xuco2bzZZTokJf0sa9dWlw0bmkpq6lZJTU+V9jPbS93/1JVDpw6J1WqVyAcjxYJFjs88LhtbbJT0+Mv7qdI4YYarnc8/1/+xH3nE8aUVJSU1K0s+Pn5c2m/eLFgsUmfdOnn+4EE5mJtPKTei7IsvukYBEUlPj5eIiO5isSiJifmPWK1WmfTnJOE1ZMZmHag66ZcksbhZZOedO+XCsQuXvQ0rqxO2tbg6RVw7ADgAHAIm2creAAYVUtc4YQaXcuaMSEiISLVqIuHhrpV1LjtbZsXGSqctWwSLRWqtXSvPHjgg+44dEwkMFGnSROT4cZfJP3t2p4SFBdieKH+QqOQoqfNuHenwcQc5m3FWctJzZFvvbWJxs4hFWWT/0/tdposzME6YwSDy2mv6v/akSa6VY7VaZc3p03Lv7t3iYVv7ettff8myEyck+6mntBLz5rlMfnZ2muzefZ9YLMjevSMkK/uC3Pn1neL+urtYjlhEROT4zONiwSKbgzeLxe3ytmFF2S9HgrW+BpwAlgAZueUicqrIC12ECXRoKAvx8TqY64ULOphry5aulScibExNZWZsLItOniRLhH6enox+7TXuOHMGj9WrwcfHJbIzMxPZvfsuUlM30bz5OxzI6sxtX9/O4LaD+f7e70mLTCMiOAIElLeiZ3RPvBuXILJ2OWKCtRoMOpjrqFE6ltjHH8NTT7leZnxGBp/Hx/NZXBxxmZkEenvz5C+/8Ninn1J/6VK49triGykFIkJ09OvExLxOrVq9CWg9l+vnDeTE+RNEjIogsHYg+5/YT/yseABUFUXPI5enDStrxPwjhRSLiLQopNzlGANmKCv79sF110HdutoRa9CgfOQmZmYyOz6eT+PiOJ6RQbPERJ6MjmbkuHF03rqVQfXqlTzFSDHk5KSzf/+jnDjxDY0aPcyK0x147vcXef3G17nvf/cRPzsebBEr6vSvQ6cVxeR6qiCME2YwaLKzdejBX3/VoQjvuqt85GZZrSxNSmJmXByrU1LwzsrivrAwRt9/P0OSklxivwASE79h374ReHv7UbPZDK5bcD/+tfwJezSMY2OPkfB5go5K6wZNHm9C20/bOlW+MyiTE3a5YQyYwRmEhcHNN0PHjrBqFVSrVn6ys61WfkpO5uOwMP6oVQsvq5VMN7ey5XsrAhEhJuYtoqNfpWbN6/n0WFM+3/Edb/3wFtftug4aJsCJxgD4veBHy/daotwur/QgxgkzGP7m/Hm46SbYuRP+/NNlg1F22XP+PB/v3s38U6c4V7UqblYrys2t5CneHOTMmU3s3j0YqzWDC3Ve4vbFr3BX4F2MfWIski5QPRXO1QQ36LK9CzU61nCabGdQ1rRFKKU6KKXuVUo9nHs4V0WDoXy59lr49luIiID77tNPl+WFh5sbdzdowO+DBrF38WKeXLIEj+xsstEpkmbFx9N80yae3r+f+IyMYtsrDqUUgYGTCQr6H+fORTCi4Ra65tRnyh1TOPLIf+F/98N935Cjcjg+7Th77t1DzvkSRrc1GAzlRrVq8PPP0KwZ3HmnHt0vT9pXq8bMHj2IU4qZH36Ib1JSXoq3z5xsvwBq1epJly5bqFLFH6+kyXzZ9y4WH1nMnB5z4IGF8NNguH4tYhXWd1vP2e1nnSK3PCjWCVNK/Rv4r+3oC7wHDHKxXgaDyxk8WK+rWL5c59su90Fhpbjmvff4cOtWYocOpVlCAvB3vspPY2O5bvFip4lr2PBeQkLWYLVe4D89z9OrQQ6vtF1MahbwyDzc//ktmT6ZJC1JYvv120k/apJYGAyXKw0a6Dy5Hh4612RcXPnrUOO223j6xhuJue8+HrUlurRiy7cbF0fPH390mqwqVQIIDd1A3bq3EZCzmHfr+vJV33lsuGOurjDpbdRtv+Kd7c3267dz4vsTTpPtShwZCRsK3AwkiMgIoBM6xpfBcMXzxBPwyivwxRfw+usVoECVKrBkCReqVCHsmWdolJyMR1YWympF3NzI8PBgxvHjXChp3iU71KzZnS5dtuBZswavhGTSsx68EQlZXhmkPzabpjtWE/xTMBcOX2Brt62cCTNJv4tDKRWtlNqllNqhlDLzjIZyo0ULnWP71CkYMABSUytAibFjmT1wIF9Mncr9f/yBZ2Ym7tnZuIkQX7cuo/bv53BZEvjmw8OjBsHBS/Hze54ewbFMD4EPorM5ch6okkH6+Pepv24t1TtVJ/IfkUS/Ho1YL+8lV444YRdEZ9bMVkrVRO+UbOZatQyG8uONN2DECO2EzZpVAQo0asSgt96iztmz/DRpEqOXLiV26FB+e/FFWsTH80xUFM03beL9o0c564R508TEhVhzzqIUPNMarqsP43fCuWw4Ff8h59rPovPGzrjXcGdH3x0kzEtwwk1WevqKSEhlWbdmuHLo0kUv0N+zB4YMgczMclZAKUY/+yxrg4P58r33mPLllxy/914OP/AAjy9fzvyEBNps3szDe/ey1wn5c5Vyx9OzPkp50aEm/F8neCsSNiZDFXdIyX6funNX0mh4I6JfiybyvsjLenmFI7sjPwZeBv4JvACcA3bYRsXKHbOo1eAKsrL09OSKFfDjj3qdRXnit2gRk+fP54mff77k3NrTp3krJobfT5+mrocHz/r58YyvL3U8PUss58KFw2zefGlcjqhzMPMQPBoIwbWgR49DeKQ1Y8+9e0hZlUKz8c1o8W4LlHvFLNi/nBfmK6Wi0TEOkxypb2yYwRXMnw/Dh8MDD8BXX4GbQyu+nYPfokU88McfvD17Nh5W60Xn4tLTmXbsGJ/GxXHBauWeBg2Y5O9PSI3SLZ4vaMOsAplW+G8UNPSGhwLATUH37lEkfezJ4RcPUz2kOh2WdqBKsyplus/S4rTdkUqpQKCmiOx0km4lxhgwg6s4dw769tVPlC+9BHPmwNGj4O8PU6bAsGEuFK6KcG5sv9EtqalMiYlhWXIyNdzdGePry3N+fjTw8iqRqJiYd4iJeQurNS2vLEe0MZsbDW2b3sHkW5ehlMKaZSXquSjiZsZRd0Bdgr4JwqOmR2nusExc5k7YEeA0IMBnIlLkeKqxYQZX8c478PLLMHAg7N59edmvpMxMph8/zn9jY0nNyWFg3bpMCgigV62Sr24qaMOsoh2vTclgOal4/6ZX6NjmDQCSlycTeX8kbj5udPixA7V6lv9qqjI7YUqpjkAgOhURACLivBXDJcAYMIMrOXECgoP13/z4+OipSpcZsqKMWHY2uLvnvd157hxvx8Tw3cmTVHFz44mmTRnfrBm+JdgSXpgjli1ueCgru8/APgbz3oCv8fHUgWRjP40l6pkoqrauSodlHfBp5ZoAs/a4zJ0wXxGJVUo1BH4HnhGRtQXqjAJGAfj7+3eJiYmpAE0NlR0R6N8f/vjj4vIKtV/Hj4Ovb97blKwsZsbF8cGxYyRnZ3NT7dq8EhDAjbVro4pqpwAFbZiI3tSUlg3fxjfkX/1/p2PjjgCcjzzPrkG7yDiWQdvP29L44calus3SUtZgrV8CHYE96I0PoIO1PupULR3EOGEGV+PrW/hOo4AAiI52kdCaNeGsnW3Vt9wCCxdeElV2f1oa78TEsCAxEXelGNG4MS/5+9O8alWHROY3Ym5uPvj7T6JKFX927XucnJx0fj7py3P9V9OybisATltOs2foHgDaL2pPnZvqlP5+S8jl7ITlx5Zh5JyITLVXx9gwgysJCNAjYIWVV4j9atgQvvlGBzbLx7nsbD6Lj2fqsWMkZGZybc2aTAoI4Pa6dR12xgrasKZNnyT25AokYw/rk91p3Wom93V6AoCs5Cz2/GMPKZYUmk1oRot3ym95RVnjhPUUka4iMlxERtiOCnHADIbyID6+8PLCDJvTSE3Vj3IFj9mzYe1a6NwZNm686JK2Pj7MbdeOgz168GiTJsxJSKD15s0M37uXfQ4sgA0ImEhAwCu2168QGPgyjRs/SO9eUXj6dGVo41iWr2vHb/vmAVCnbx26bOmCV2Mv/ur/F7Efxzr/c7jCUEpVU0rVyH0N9Ad2V6xWhquZY8cKL68Q+xUZCfXq6QfJt9+GfOvFqnt48EKzZhzp0YOZrVtzPCODgbt20WXrVhafPInVgVm6gjasVatp9O75Fw18J9GzrhXPxCd57/fBZOVk4VnPk44rOtL06aYce/8YuwbvIju1HANE2sERJ2yjUirI5ZoYDJcJ/v6FlzeriD3Bjz2mw/t7ekLv3vDRR5cENGtetSqftGnD4Z49Gevnx6KTJwkKD+e+PXv469y5IpsPCJhIjx6HCAiYmFfm7e3LTT23UMd3Cm2qW8k5/giz1gwhx5pD1ZZV6byxM3Vvq8vB0Qc58PQBrFnWIiRUehoB65VSfwFbgOUi8lsF61Qqqlevnvf66NGj9O/fn3bt2hEUFER0gSGUsWPHXlTfHvPnz6dDhw4EBwcTGhrK1KlTmTRpEi+99FJenZiYGFq0aEFKSgpbtmyhd+/etG3bltDQUEaOHElaWhpz585lzJgxl7QfGBhIcHAwISEhhISEMHbsWLu6LFq0iPbt2+Pm5kZlGoks2G/e3v2BdkAQEJ13rkmTCui3zZsZc8MNOiL2pEkwaBCcPn1Rv/Xs0oV9//kPB3v04Mu2bTmbk8M9e/YQHB7OwsREIrZto2fPnoSEhNC1a1e2bNlyka4FbZhS7rRv/RZdu0Tg5lGf7p7LmPmrH3EpB3DzdKPNzDa0/rg1p347xbZe27hwyDnhM0qNvczeuQfQBzgD7Ad2AruAncVd56qjS5cujqUtNxhKyYIFIj4+lz7W+fuL7NpVQUqdOiVy551akfvuE0lNtVv1REaGvHzokNRYu1awWOTOnTtl05kzpRObukcWrmwoFgvyxa+N5OSZfSIiYs22StSEKLFgke19t0tmUmap2ncUIEIqyOY4+3CGDVuwQCQgQEQp/XfBgjI3KdWqVct73adPH1m5cqWIiJw9e1bOnz+fdy48PFwefPDBi+oXxi+//CKhoaESGxsrIiLp6ekya9YsSUtLkzZt2khkZKSIiAwePFgWLFggCQkJ4u/vL2FhYXltLFq0SBISEmTOnDkyevToS2QEBATIyZMnHbq/yMhI2bdvn/Tp00fCw8MdusYVpMely7be2yQ9Pt0p7RXst5deWmmzX2cFzufZL0/PcOnRo4L6zWoVmTFDxNNTJDBQApo0sdtv2VarfJ2QIB22bBEsFqnavbuM/eorycjJkeXLl0ufPn0c/mxycjJk6ca75I9VyA8r3GT9/ul5506tOiXr6q6TdXXXyalVpxxuszQUZb8cccKi0BHymwMBuUdx17nqME6YoTwo+E/uhRdEGjYU8fYWmT5dJCenApTKyRF55x0RNzeRa64R2bOnyOqnMjPljSNHpO66dYLFIv127JDVp0+L1WotodhsWbD+bvntD+Sn391k68Gpeefi58XLaq/VsrHlRjm351ypbssRjBP2N4U9JPj4lN0Ry/3nvGfPHrnuuusKrZOdnS033nijxMXFFfvP/IYbbpA///yz0HPLly+Xvn37yvLly+Wmm24SEZHJkyfL5MmTC63vDCcsl4p2wvY9tU8sbhbZ//R+p7RXWL8VtF/Tp2dL7do3CsSJu3s1Keojc2m/bdok0qyZBICcnDZNO2d2yLFaZcmJE1KzZ09h8mRpFhYmw//7X7n3n/+0r7wdIg4vkIW/eorFgixe11uysvRDbFpUmmxut1lWe6yW458cL3G7jlKU/XJkYf5GEenlkmG4UmAWtRoqisREPTu4fLlOEzJnjh7iL3csFvjnP3UW388/h/vvL7L6uexsPo2LY+qxYyRmZXFdzZrsS0vjH/Xr82rz5g4n2l17cAEH9o+gVfVs0r17cVOXZXh51efMxjPsvns31jQrQd8GUW9APWfc5UVcKQvzHaE4GzZuHOzYYf/6TZugsJR83t7Qs2fh14SEwPTpRetVvXp1zp07x48//sjs2bPx8vLiyJEj9OvXj3fffRd3d3c+/PBDrFYrzz33XF59e9StW5cjR45Qy04IgnvuuYe1a9eyfv162rZty5AhQxg+fDiDBw++pO7cuXOJiIhgxowZF5UHBgZSo0YN3G27h4cPH85zzz1X5H3eeOONTJ06la5dnft1OjjuIOd2FD39b82wcnbLWb3FzQ1q9KiBm5f9VUHVQ6rTenrrItt0tN9ycqwo9RzPP1+dxo3PMWcO3Hbbpe25vN+Skghs1owa6em416kDfn4MHzHCbr9FRkZyY//+nMnOJjMnh/qffsqEbt2YfuwYd9Wv73Cy8KTzsXy56nq6Vo/mvLUGPUIW07BeP7JTs4l8IJJTy0/R9OmmtJreCjdP5wZZK+vC/O1Kqa+VUvcrpYbkHk7V0GC4AmjUCH76SeebXLtWh7JYsqQCFOnbF7Zvh9BQHZlxzJjC/yvbqO7hwXh/f4707MmM1q05mpFBcnY2nyUkELBpE0/t2+dQot3erR/k9t6HWJHcDPcLG1m1IYDEkz9Sq1ctuoR3oWqrquy6YxdHpx6luIc7Q+mx11VOypVMdnY269atY+rUqYSHh3P48GHmzp1LXFwcixYt4plnnnGKnNGjR9OtWzfatm1bpnYsFgs7duxgx44dxTpgFU1GTIaOJgcgtvdOorh+Gzv2GZ57DqpWhfr14fbbYexYKGlGoTL3W/360KgRlgkT2JGSwg7guTvusFv9008/5ZMPPyQjIYF/v/ce1vff56XDh4nPymJWCZKF16/mywsDo9jBw5zNPMvunbewbc8oVLVsgpcG02xCM+I+jmPnbTvJOpVVunsrBY5EXawKZKB3/eQiQIXECTMYKhKl4KmntB80bJhOE/LYY3qUwYH1rs6jaVNYtQomToRp0yA8HBYtsr+rAKjq7s5oX18eb9IE77VrESBLhM8SEvgiMZERjRrxWjEjY741/Xn9riheW/kQLXO+o8qeu4mvfz8drvmE0HWh7Buxj8MTDnN+13nafNYG9yrudtsyFE5xI1aBgVBYmLGAAFi9uuzy/fz8CAkJoUWLFgDcddddbNq0icaNGxMVFUWrVjpkSVpaGq1atSIqKqrQdtq3b8/WrVu5qUBoglzc3NxwyxfWPbd+YSMqVwLFjVhlxGewucXmi5yw7NPZBH0bhHdjx2P82cPRfktPTyMtrRXPPhvFhx/Cn3/qCDghIbqdcuu3F1+Em2/WhrRLF5g7VxvUAsybN48PP/wQgH8/8gj/9+yzbO7cmR7btpED5IjwWXw8XyYk8GjjxkWOjLm7ufN833n8tHcgK3Y+yO3qc9aeXkGXjj/Q8r2uVGtfjf2j9rO1+1aCfwqmWrtqJbunUlDkSJhSyh1Ilr9DU5gQFQYDcM01OmLExInw5Zd6UGrz5nJWwtMTpk7VieP27tVhLFasKPYyrwL5THKdsVkJCQSHh3O+mGThXu5evH37//Dw/Zxvj7lz6uQ3bNh0DamZqwn6XxCBrweSOD+Rv/r+RUaC8570DZopU3Twzfz4+OhyZ9CtWzdSUlI4efIkAKtWrSIoKIiBAweSkJBAdHQ00dHR+Pj42HXAACZOnMiECRNISNC5RzMzM5k9e7bd+mPGjGHevHlszvdDWrx4MYmJic65sQom+s1Lk0lLjhDzpnMC95ak3w4dimL6dG0uTp2CHj20KbFay7nfbr0Vtm2Ddu3gnnvghRd0Drl8NG3alDVr1uTdU+vWreles+ZFdaxAhgifxMfTfevWYsXe2e5eRvbbw8yYAJLOH2Xrth4cOfIqDR+qS8jqEHLO5bCt5zaSf0ku/h7KSJFOmIjkANe5XAuD4QrEy0uHvlm9WifNve46nQzcCTm2S8aQIbB1qx4du/12eO01KMaRyo8n4KUUTby8SM7Oxn/jRv595AhJxWQCHh46kif6hTMlqglHUxP4669+REWNpdmkBgQtCuLcX+fY1m0bZ7fbCeJoKBXDhuno5wEBemQ2IMC50dDd3d2ZOnUqN998M8HBwYgIjz/+eInbGTBgAGPGjKFfv360b9+ezp07k5qaard+o0aN+Pbbbxk/fjxt27alXbt2rFixghq2HINz587Fz88v7zh+/DgAffv2zQtR8fDDD9ttf8mSJfj5+bFx40YGDhzIrbfeWuJ7KgupG1ORzAJOWKZwJuyMU9ovTb/17w+7duk0RxMmQL9+EBxczv02aBAPt2oFo0fD//2fDuqaL1r2559/zgsvvECnTp14+eWXmTXr0qxgnoC77YjNzOSe3bvZUoTOAK3rtWbO/bv56dzd/J5gJSbmTcK3dsc9+JheXtGyfJZXOLIw/xPAF1gE5EWAFJO2yGDIIyVF25Cvv4Zrr9UJdG2zAuVHWpqeK50/X1vXhQv1+otCUKtX46VUXqT9yQEBNPb2ZuOZM/zn6FGWJidT1c2Nx5o04QU/PwKLiMKfnJbMw0vuo7n8yVA/qFKlJe3azcftcDC7B+8mKymLa+ZfQ8OhDUt9a1fTwnyDobwR0SP6zz6rB9g/+wzuvbcCFPnmGxg5Uq/t+PZbve7DDoXZMKUUHx0/zsdxcaRkZ3Nj7dq81KwZtxYRhV9E+GDTByzdNoHxbRU1PN1o0fwtmtYdx/4RBzn5/UkaDW9E28/a4uZdugX7ZV2YXwVIBm4C7rQd9lfRGQxXIbVra59n4UKdADwkBObNuySuqmvx8dHrKmbNgjVr9PSknTlSXy8vRjZpwuEePZjZpg2NbWsoetWqxY/BwUR268Y/Gzbks7g4Wm3ezLDISLuBX+v51GPZ/Suo2WQi43ZA3NljbN9+AydqvkXIpiCqh1Qn8h+RRL9+6XSMwWCoeJTSa1t37IC2bXVs1eHDdSD8cuX++/X61rp19bDcu+9eFGU/P4XZsEZeXkxp0YKjPXsytWVLDqalcfuuXYRGRPB1YiLZhbSllOL5Xs/z2oA/GLerNmFJwuHDL7HzwI0EzvUk8LVAEuclsuOmHWQmFj07UBocSuB9OWGeIg2XOzEx8PDDegfl0KH6qbJu3XJWYutWLTw2Vg/xjx5ddJJdOxxPT2f68eN8Fh/PuZwcbqtbl5eaNaOPnWS7S/Yu4cllD/N482z6NUzHx6c9bVvOJe6FaiTOS6TB0AY0f7c5Ox74lS5L73B4QbIZCbt8mTJlCosWLbqo7B//+AeTJk2qEH1Gjx7Nhg0bLip79tlnGTFiRIXoc7lir99efHESb70Fb72lp7q/+kovtXA1F/Wb1QrHjvFsSgoj7rxTP9HWKXmu2kyrlYWJibx37Bj70tIIrFKFF/z8eLRJE3zcL900dOzMMYYuuoeaWeG8eE0VvN0VLVq8h+emoex/+ACe9T3psLQDXo292HrXzw7bsCLtl70AYrkH4AcsAU7Yjh8Av+Kus117GzrSfhTwr0LOPw9EoiPx/4kDQWBNsFbDlUB2to6r6uEh4usr8scfFaBEcrLIwIE6muc//yly9mypmzqVmSlToqOl4fr1gsUi3SMi5IcTJyS7kGCLe0/ulWtmXCO9PnKTFZaasnq1hxw+/JrETD0kFmWRNX5LxPK/BhLx0fMOy8cEazUYypUNG0SaN9exoV95RSTTtUkxLsVqFfnoIx1lv3lzka1bS91UjtUqP548Kb22bhUsFqm/fr28fuSIJBVyU+lZ6TJq2Sip/zYy+9d6YrEg27ffJCcjdktYszBZ47NGNo54TywWHLZhRdkvR6Yj5wDLgKa24ydbWXGenzswE7gdncTq/kJyUG4HuopIR+B74D0H9DEYLnvc3eFf/9KzgdWr65H18eOdF8vJIerWhWXL9La5776D7t31LspSUMfTk5cDAoju2ZNPWrcmOSuLe/bsIWjLFmbHxZGRb5j/mvrXsGXkFpo2upuhG1I5cKEpMTGvcfLG+6g963espzzhyU85W+N7Du1+01l3azAYnMi11+rpyYcf1qNi118PBw+WowJKwTPP6CmFrCyt0OzZpVrj4aYUg+vXZ0NoKGtDQuhRowb/jo4mYONGxh08yNH09Ly63h7efHbnZ7xz6+c8HZHK3GP1SDmzkb1pvfBbuQv31qdJn9MNlt3J2dYzy2zDHHHCGojIHBHJth1zgQYOXNcdiBKRwyKSCXwLXBRIREQsIpJme7sJPepmMFQaOnfWO7CfekqH8+reXa8ZKzfc3ODll2HlSkhKgm7d9ILXUlLV3Z0nfX3Z36MH/wsKorq7O48fOEDzTZt47+hRzti2htbwrsGifyzilRv/w5NbjjP7mB9nz+0mpeXb8NVD0HcV+B/jWMLbxMS846y7NRgMTqRmTZ0ZZNEi7YCFhOgkHeW6iqlnT21Ee/eGxx+HRx/Vm5BKgVKKG2rX5ueOHdnVtStDGjRgZlwcLTdv5uG9e9mdb93ryM4jWT9iA6uSfBgRnsN5mnIo4Qmypt0Dw76CLluhSkaZbZgjTliyUupBpZS77XgQvVC/OHyBY/neH7eV2eMx4FcH2jUYrih8fHSU/Z9+gvh4HZfwo4/srjd1DTffrKPsd+qkF78+84yOq1FK3JXi3oYNiejShd87dqR9tWq8dPgw/hs38q9Dh4jPyEApxYvXvcjKB1fyS+wphm1K51QmUPc0PDMT3AQ80tkXNck4YgbDZczQobBzJ/TqBaNG6ag4SUnlqECDBvDrr/Dqq3rzUa9eUESMOkfoUL0689u141CPHoxu2pQfTp4kOCKCO3buZF1KCiJCN99ubB21lRYNr2fAqv1YToC45cDIL8HXFkajjDbMESfsUeBeIAGIB4YCTl3haHPsugLv2zk/SikVoZSKyA1EZzBcadxxh47J06+f3go+YIB2ysoNX18d1Oy552DGDJ1sUKmLjwJBEItDKUW/unX5vVMnIrp04ba6dXn/2DECN21i1P79HEhL49omzfk4JI3qHnDPJlh78uInaW934ciRl7lw4bBz79dguAw5fdrCxo2BnD5tqWhVSoSfnx5QnzYNfvlFp21zIDa083B3h9df18KPH4fWrS+1X6WwYf5VqjC9dWuO9urF64GBbD57lt47dnDd9u0sTUqink99frznE+71gzf2wlt7IavAA3RZbJhdJ0wp9R/by+4iMkhEGohIQxG5S0SOOtB2LNAs33s/W1lBOf2AScAgESl0xYyIzBKRriLStUEDR2ZCDYbLk8LyT/74Yzkq4Ompd0va42zpA6t2qVGD/7Vvz/7u3Xm0SRPmJyRwzZYtPHQoDZ8WH5IcspBmjYP4dyRM3A1ncwNjZ3jTvPnbVK1a3oHVrlAaNy78n0/jxmVqtnq+vFtHjx6lf//+tGvXjqCgIKKjoy+qO3bs2Ivq22P+/Pl06NCB4OBgQkNDmTp1KpMmTeKll17KqxMTE0OLFi1ISUlhy5Yt9O7dm7Zt2xIaGsrIkSNJS0tj7ty5jBkz5pL2AwMDCQ4OzgvWOnbsWLu6TJgwgWuuuYaOHTty9913k5KSUvyH4mROn7awa9cdZGTEsGvXHU5xxMqz3yZOfInnn4ctW6BGjRhuu60FTz6Zwtq1ruu3RYsW0b59e9zc3IiIiNABqbdtA/SOvl5AeyAYSIdS27B6np68GhhITM+e/LdVK+IzM7lr9246hIfzfWoN3rz5HWq0e541yZ7cuxl25Y+xWxYbZm/FPrALUMA2e3WKOtB5KQ8DzQEv4C+gfYE6ocAhoLWj7ZqdRYbKwt69Ip07682LI0eKzJ4tEhAgopT+u2CBC4XrwajCDyeRkJEhLx86JLXXrRMsFsFiEbc/V4jbwmek+nt1ZM7K2vL7Kg+Jjn7bAXXN7sh8H4ZL+q5atWp5r/v06SMrV64UEZGzZ8/K+fPn886Fh4fLgw8+eFH9wvjll18kNDRUYmNjRUQkPT1dZs2aJWlpadKmTRuJjIwUEZHBgwfLggULJCEhQfz9/SUsLCyvjUWLFklCQoLMmTNHRo8efYmMgIAAOXnypEP3t2LFCsnKyhIRkRdffFFefPFFh65zFqdOrZI1a3zEYiHvWLPGR06dWlWmdiuq3+64Y7DceusCgQTx9PSXJ54Iy7Nf9esvkpkzndNvkZGRsm/fPunTp4+Eh4fnlWeBBIPssH33k0CynWjDsnJyZGFCgnTaskWwWMR3wwZtw36aJfzHT7ovulO+t9R1yIYVZb+KSuD9G3AaqK6USrU5ZJL7V0SKHPMTkWyl1BhgBTqbwJciskcp9YZNoWXo6cfqwCJbzKGjIjKoZG6kwXBlkpt/8rXXdEzCL774e5ouJkavvQDnpaNxmEWL4O67waMo81A8uYET/+Xvz6z4eMYfOoTVzQuaDuF844GMUnB39USmN77PSYpXEsaN09vSSsONNxZeHhJSfGZwG5GRkWRnZ3PLLbcAF4+05OTkMGHCBL7++muWLFlSZDvvvPMOU6dOpWnTpgB4e3vnpdH54IMPGD16NOPHj+fs2bMMGzaMV199leHDh9OrV6+8NoYOHeqQzo7Qv3//vNc9e/bk+++/d1rbAAcPjuPcuR2FnsvOPs3587vRWQ7/xmpN46+/+lGtWgc8PC6Ng1W9egitW093SH5591ta2ln+/HMYw4a9yg8/DOezz/7ut6SkoUyYAA8+qAffy0K7du0KLV8JdAQ62d7Xy3/y5Em9jqwMeLi58UCjRtzfsCErTp3ivWPHiM3MxFq9NXSbx1aVzQMymrvKaMPsTkeKyAQRqQ0sF5GaIlIj/19HGheRX0SkjYi0FJEptrJXbQ4YItJPRBqJSIjtMA6Y4aoiN/9kw4aX7jhKS4MKiXd5773Qpo3ePWAnSn5JqOHhwQvNml1UJm7eZClvvj/vz/Xbt5dZhsF5HDhwgNq1azNkyBBCQ0OZMGECObZcpDNmzGDQoEE0adKk2HZ2795Nly5dCj03YMAA6tSpw/Dhw/n444+LrV8U+XNHfvDBBw5d8+WXX3L77beXWFZpSUvbT0EH7G+stvNlo6L67cKF3VSvfmn9tDT44Qf7ckrTb/k5gB4RuhXoTIH4Vv7+8OSTcOBAidstiFKK2+rVY1VISL5CN3LwItMJNqzIR11brK+SrXIzGAwl5sSJwstjYrQf5MAyDuexZAlMnap3D/z73zq+xjPPgAMG3GGsWVRx9+LRJk2YHBDgvHYrA8WNWBWV+WD16jKLz87OZt26dWzfvh1/f3/uu+8+5s6dy+23386iRYtY7QQZoCOkX7hwgbZt25apHYvFQn07OVILY8qUKXh4eDDMyUPMRY1Y5a4Fs1ovDa3g5uZDcPDP1KljP0+iI1RkvyXbiZeQnAxn7OQnL2m/FSQbWA+EAz7AzUAX218eeujvFG6DBukgjdddV6qsIXZxkg0rcnekiOQAVqVUrVJLMBgMxeLvb/+cry+MGePk+GI1atgvv+suWL8ewsJ0aIt334XAQB2fp4xKeClFVTc3nvYL4EjPnhflrTRcHvj5+RESEkKLFi3w8PDgrrvuYtu2bWzfvp2oqChatWpFYGAgaWlptGrVym477du3Z+vWrXbPu7m54ebm5nB9ZzB37lx+/vlnFi5caDehsyuoU6cvwcE/4+bmc1G5sxwwqNh+q1XLfv0FC6B/f/1sZwsj6BT8qlShN1Af7YQNALaBtmGzZukn2FdegXXr4IYbdFiL778H2+hgaXG2DXMkRMU5YJdS6gul1Ee5R6klGgyGS5gyRccTy0/VqjoszqBBOkBihw7Qp4+OtVqGEF+a1NTCl3bnz9iba7QOHtRBEr/9VisxYACsWlXiiI32koYbSkijRiUrLyHdunUjJSWF3HBAq1atIigoiIEDB5KQkEB0dDTR0dH4+PgQVUSspokTJzJhwgQSEhIAyMzMZPbs2Xbrjxkzhnnz5rE5X9L5xYsXk5iY6JT7+u2333jvvfdYtmwZPgV/bOVAQUfMmQ4YVGy/eXjMw9t7c77SxVStmsiwYX8n6hgyRD/Lvf56mf0gAG6Ni2NXaChp58+TnZXFmptvJujnn/+2YY0awRtvwLFjejt6cjL84x86tMWMGXD+fIllusSG2Vuxn3sAwws7irvOVYfZHWmorCxYYH935IkTIv/5j0iLFtpbathQZOJEkSNHylHBpCSRN98UadRIKxEaqpUsh6RymN2RLif/rrmVK1dKcHCwdOjQQYYPHy4ZGRlF1rfHl19+Ke3bt5egoCBp3769TJs2Le+cxWKRgQMHXlQ/LCxMrr/+emnTpo1cc801MmrUKDl//rzMmTNHqlWrJr6+vnnHsWPHJCAgQDp06CCdOnWSTp06yUMPPWRXl5YtW4qfn19e3SeeeMKRj8XpnDq1SsLCAsq8KzKXy6Xf2rS5Xjw82ghcI9Wrj5Ivvri43+rV8xVvb1+BYwIBUrNmB2nZsvh+W7x4sfj6+oqXl5c0bNhQ+vfvn3fuq6++ytNxwoQJRd9UdrbI4sUi116r7VedOiIvvywSF1fs51FWirJfShx4mlVKVQX8RaTsqwfLSNeuXSUiIqKi1TAYKgSrVQdM/OQT+PlnPRg1YIBetnXbbTqeoctJT4eFC/W6sX37dBTHceP0aFkJAyU6ilJqq4h0dUnj5YyxYYarmago+OwznQ4pOVnvAXrySXjkEahz6QZR1xAWpqPOLlmit28++CC88AIEFUxv7RyKsl/FTkcqpe4EdqBDVqCUClFKLXOqhgaDwSHc3LSztXQpHDmid09u3aqj8bdqpZdv2Vvk7zSqVIHHHtPrw37+WQsePx6aNYMJE/Twv8FgMBRCq1bw/vs66P38+VCvHjz/PDRtCiNGQHh4OShx7bV66+aBAzByJHzzDbRvDwMHgsVSrskxHVkT9ho6GXcKgIjsAExoa4OhgvH3hzffhKNH4bvvoHlzmDhRD0w98IBej+pSW+Lm9rfRCg/XQ3IffAAtWujdSaWNdWW4opgyZUpeqIHcY8qUKRWmz+jRoy/RZ86cORWmz+VKRfdblSraTISFaVPRosVo5s8PoXv3EHx8QvD3D+HTT13cb61awcyZ2oi++SZERMBNN0HXrtoxy8oqvo0yUux0pFJqk4j0VEptF5FQW9lOEenocu0KwQzlGwz22bsXPv0U5s3TW8Pbt9dTlQ895LKZwouJjoYPP9Q7Cc6f14kyX3gBbr21TNvDzXSkwVD5SU3Vuyk//lgPtNeqBcOH6+lKOzFbnUt6ulZg2jS91MLfX4fqGTmyTAa0TNORwB6l1AOAu1KqtVLqv0BYqbUxGAwuo1077QPFxsLs2fppc8wYPdT/xBPlMDgVGKhHw44d03OjkZE611vHjnq7pxMS7hoMhspJzZrw9NOwa5fOrTtggF7/GhQEffvqEf8y7wwviipVtMO1Z49O8tu8uX6IbNYMXnxRB2x0sg1zxAl7Bp0fMwP4GjgDjCu1RIPB4HKqVdPLtiIidLLde+/V6y9CQ3Xkifnz9cLYwEA9qxgYqNfaO406deCll/TCtXnztKFKTy+8bhmShhsMhsqHUjq019df67Vj77yjB9nvu08PTr3yip5BXLjQRTbMzU0vtF29WhvQ22/Xo2P2wlqUwYbZnY5USlUBngRaoZN5fyEiTgy1VjrMUL7BUDpOn9b+0CefFJ7Nw8dHxzh0Sa5KEW3YijpfBGY60mC4usnJgRUrtP1avlyXubldHHPMpTYsOlqPjNmjCBtW2unIeUBXtAN2OzDVATUNBsNlSp06OpLEvn06V2VB0tJg7Fh93ukL+ssxOrnBYKh8uLvr6cmfftID7DVqXBr0NS1Nzx5euOACBQIDXdBo0U5YkIg8KCKfAUOB3i7RwGAwlCtKgS2o9iWcOqXXlTVsqLMXTZsGmze7eB2GoUSEfhaKel1dcoR+FlqmdqvnS1B69OhR+vfvT7t27QgKCiI6OvqiumPHjr2ovj3mz59Phw4dCA4OJjQ0lKlTpzJp0iReeumlvDoxMTG0aNGClJQUtmzZQu/evWnbti2hoaGMHDmStLQ05s6dy5gxYy5pPzAwkODg4LzdfWPHji1Wp2nTpqGUIikpqdi6ziQ0PJyn9+8nPiPDqe1W9n6bPHkyHTt2JCQkhP79+xMXF0dAAKSmLgQ6AsHAtcBfACQmQu3aOlXkSy9pp81ebsvLAntRXIFtRb2vqONyjTZtMFxJBARIITmLRJo2FZk9W2T4cJGWLf8ur1pV5MYbRV55ReS330TOnCmF0MITJemj2EtNxPxcnvr5KfF600t4jbzD600vefrnp8vUbv5I6n369JGVK1eKiMjZs2fl/PnzeefCw8PlwQcfLDby+i+//CKhoaESGxsrIiLp6ekya9YsSUtLkzZt2khkZKSIiAwePFgWLFggCQkJ4u/vL2FhYXltLFq0SBISEmTOnDkyevToS2QEBATIyZMnHb7Ho0ePSv/+/cXf379E1zkDLBbxWr1aqqxZI0/t2ydx6elOabey99uZfMbmww8/zMt00KjRBoFTNhPyi0B3AZEGDUQmTBDp1UvE0/NvExMUJDJqlMj8+TrTiNXqkPiLKaUNK8p+eRThn3VSSuUmklNAVdt7pX03MVuaDIYrlClTYNQoPXyfi48PvPeeXk/x2GO6LD4eNmzQ+bzXr4e339ZR+93coFMnuP76v4+mTYsRWqNG4QtY7SUTv0oZ99s4diTssHs+IzuDbOvFy3OzrdlsT9jOjXNvLPSakMYhTL9tukPyIyMjyc7O5pZbbgEuHmnJyclhwoQJfP311yxZsqTIdt555x2mTp1KU9sXw9vbm8cffxyADz74gNGjRzN+/HjOnj3LsGHDePXVVxk+fDi9evXKa2Po0KEO6ewozz33HO+99x6DBw92arsA4w4eZMe5c0XWybT9y/40Pp7P4uNp5OVFgLc33nbWS4ZUr8701q0dkl9Z+61mvp2H58+fz0u8Pm3atflsWE/gOD4+enN27pqwCxd0CMNc+/Xtt3rNGICv78X2KzjYgYwjLrBhdqcjRcRdRGrajhoi4pHvtXHADIYrmGHDtDEKCNDTkwEBhS9obdIEhg6F6dP1TsuUFPj9d707qU4d+OILvWPJ11fHaH34Yd3O3r2FrCtLTWXhAiEwQHBT+u/CBQWShhuKxdvDm0bVGqHQ/4wUisbVGuPl7uWU9g8cOEDt2rUZMmQIoaGhTJgwgRzb4psZM2YwaNAgmjRpUmw7u3fvpkuXLoWeGzBgAHXq1GH48OF8/PHHxdYvir59++ZNa33wwQd26y1duhRfX186depUYhnORgArEJ+Zyd78T0JloLL2G8CkSZNo1qwZCxcu5I033gAutmHwBdWr336JDataFXr3hpdfhl9+0cstduzQ+btvuEE7Zs88o3eN162rs5FMmQJr1thZV+YCG1bUSJjBYKjEDBtW8l1ENWro+Kv9+un3WVnaqOU+aa5YAV99pc/Vq6fXZeQ+aR44oGMA5f7PiYnRo3G5uhg0joxYxZ+Np8VHLUjPTqeKRxW2PrGVxtUbO0V+dnY269atY/v27fj7+3Pfffcxd+5cbr/9dhYtWsTq1audImf06NFcuHCBtm3blqkdi8VC/fr1i6yTlpbG22+/zcqVK8skqyiKG7FS+T43L6VwV4oRjRszOSCAxt7eZZZfGfstlylTpjBlyhTeeecdZsyYweuvvw5ou9G0qYWnn/6C9evXU69e0e24u+sR/E6dYPRo/aB49Ojf9mv9ev2ACTqlZJcuf9uv667T9i3/DIIzbJgjccIMBoOhUDw9oVs3eO45nYotIUE7W198AYMG6RGxF1/UqdpGjLh4+hP0+0mTKkb3K5kmNZowImQEbsqNESEjnOaAAfj5+RESEkKLFi3w8PDgrrvuYtu2bWzfvp2oqChatWpFYGAgaWlptGrVym477du3Z+vWrXbPu7m54ZZvGq64+mXh0KFDHDlyhE6dOhEYGMjx48fp3LkzCQkJLpFnDy+lqOrmxsgmTTjcowcz27RxigMGlbPfCjJs2DB++OGHvPc7d+5k5MiRLF26lHrFeWCFkDsLMGyYDn2xa5dexP/TTzqfpbs7fPSR3qTUoIFrbJhxwgwGg9NQClq3hkcfhS+/1A5ZQoJ20C6ZnrRx9Gj56lhZmNx7Mtf7X8/kPpOd2m63bt1ISUnhpG0L7apVqwgKCmLgwIEkJCQQHR1NdHQ0Pj4+REVF2W1n4sSJTJgwIc/RyczMZPbs2Xbrjxkzhnnz5rF58+a8ssWLF5OYmFjmewoODubEiRN5uvv5+bFt2zYaN3ae81ocIdWqucT5yqUy9hvAwYMH814vXbqUa665BtA7QYcMGcJXX31FmzZtnCIL9LTkHXfohB/r1+v0b+vW6YCx9lJJlsWGmelIg8HgUho1giFD9BNnTMyl5/39y1+nykCTGk1Y88gap7fr7u7O1KlTufnmm3N3c+YtzC4JAwYMIDExkX79+iEiKKV49NFH7dZv1KgR3377LePHj+fEiRO4ubnRu3dvbrvtNgDmzp3Ljz/+mFd/06ZNgF5b5G5bUd2xY0fmz59fYl3Lg+3durm0/crab//617/Yv38/bm5uBAQE8OmnnwLwxhtvkJyczNNPPw2Ah4cHrgiCXKXK31OSn37qfBtWbALvyw0TbdpguDJZuLDwHZmORLg2EfMNBkNFU1obVtYE3gaDwVBmHN2RaTAYDJcjrrBhZjrSYDCUG6XZkWm4vJkyZQqLFi26qOwf//gHkypox8Xo0aPZsGHDRWXPPvssI0aMqBB9LldMv5UOZ9swl05HKqVuAz4E3IHZIvJugfPewHygC5AM3Cci0UW1aYbyDYarj8t5OrI4O1cQY8MMhquLCpmOVEq5AzPRyb+DgPuVUkEFqj0GnBaRVsAHwH9cpY/BYDA4GwftnMFgMBSKK9eEdQeiROSwiGQC3wIFc0UMBubZXn8P3KxycxIYDAbD5Y8jds5gMBgKxZVOmC9wLN/747ayQuuISDZwBrgk4ppSapRSKkIpFZEbA8VgMBguAxyxc8aGGQyGQrkidkeKyCwR6SoiXRs0aFDR6hgMBkOJMDbMYDAUhiudsFigWb73frayQusopTyAWugF+gaDwXAl4IidMxgMhkJxpRMWDrRWSjVXSnkB/wSWFaizDBhuez0UWCVXWvRYg8FwNeOInTMYDIZCcVmcMBHJVkqNAVagt25/KSJ7lFJvABEisgz4AvhKKRUFnEIbMIPBYLgisGfnKlgtg8FwhXDFpS1SSp0EYtBTl2cKnC6sLBTYXg6qOVNmYffhDHlFtVvSc4XJLKneJcWR+3SGDvnbcJbM4urYk2nvOke//47gzN+IozoUJbOwNgJEpFIspiqhDbsS7Re4xoaV5DfkSHlBmZeD/XKWHrltONNmOvo/wpHP1Zn2qzCZpaUkOtiTWTL7JSJX5AHMcrBMKkC3Msks7D6cIa+odkt6rjCZJdXbFZ+rM3TI34azZBZXx55Me9c5+v131udams+utDJd/T26XA5H+vBKtF+l6UNn/M5K8lspTOblYL+cpUduG860mY7+j3Dkc3Wm/SrJZ+vMz96ezJLexxWxO9IOPzlYdiXiqvsoqt3SnitNPVfiDB1K2oYj9YurY+98Scqv1s//SuVy7UNn4Ir7cPZvqLT1XE15/4ac8fmU9Nzl+t0vd/t1xU1HlhSllIhIuQaALW+ZV8M9GpmVR15FybwSuVr65mqQeTXco5FZcq7kkTBHOXcVyLwa7tHIrDzyKkrmlcjV0jdXg8yr4R6NzBJS6UfCDAaDwWAwGC5HroaRMIPBYDAYDIbLjkrrhCmlrEopUUqVy1CfUuqNXHm2I6085Npk1yjne71Q4F6DXCCj0P5TSqXlk5vjRHlBBe4p21aev8yqlGriLJm29u8uICMs37l0W9mIMsq45LNUSuUUkHu3rbxJ/vpKqYxSyCv0t6CUyi5QfijfNUtd/Z26kjD2y6XyKp39srVd7jasMtovWzvlZsMqrROGjt+xshzlpQIrbQv1+gFVlVLflJPscssIrJSaBFQBQvItSgwr4pLSckn/KaV2AVWBNjbZY5woby/Q29ZuU8BdKbUeOIz+nbgBCjjoRJkAPwBnbXIDgfdBGwHA20kyCvstRAH1bXJzgEW28p3oZQoK6AZ4KaXeL6G8on4LGSKibEdLAKVUPWAQ8LPtmoe5OCn21YixXy6gEtsvqBgbVhntF5SnDXNGbI3L9UB/IaSCZAuwtxzkTLbJ2l0e9wpMssn7J1DP9np/efSfTVZkOdxjV5ustQXKLwDZTpRzh02OsvP9+cn2d4SzP8sC52Jzz6H/IYqtbx/K7esyyhb0P4hsIL2Q84cq6nd6OR/GfrlEXqW3XzZZLrdhV4v9ync/LrFhlXkkrMLI53mPKwdxbwB/ANZykIWITEH/kL8BkmxlbctDto02+YZ7Lc5sOHdaBJ0PMEdEeuc71wT9BL3DiSKfsv3NHVq3KqV6KaWOAlYRudOJsoqiKTptGEBH298kYD5wTkS+LW3DhfwWvPPd69B88vNPm6SXVp6h7Bj75VJcZr+g3G1Ypbdf4HobZpwwJ6OUugEYD8SJyAoXy4pGe9+3uFJOAZlD0UPqo/j7i5dcXvL5e1h9DXCjUsppsWFEJHdYfQh6KP/7fKdj0Yalq7PkoQ0iwHqbXAHWA82AwU6UYxelVKbtZX3b3x9tf5sCTwPVlVIflrLtgr+FcUBN9H1bge9yq9r+PoqeQvBWSpn8ixWAsV8ux2X2C8rdhlVq+2Vr3/U2zNnDoJfTQTkP5wNN0F/ES4YrXSQv2ybvosPFMhPQP+Tc96fyv3dl/9nub1eB94+7SHZmbj/aXgvg7WQZ4wrcX0Rh/Wk7xjnzs7SVpdja7pqvzAqcKvA+sRTyivwt5NcHPYWQ/zuVae+6q+kw9sslMq8K+2Vr36U2rDLbL9u15WLDzEiYk7A90cShO6JKcfWdgYh4iG2BILDLVubqqMEH0Lfb1XbPtYHymj46D7RDK/CFrWy2MxpWSj2eb4dNJ8ATSFBKpdpeh4hIqXba2ENEptvkzbUVhaC/PypfvwI8mlvXWSilotCJZkeJSES+U1noPkUp1Qv9hLephG0X+ltQSo3PVy3/ouSn+Ps7VQ/9eceXRKahbBj7VS64zH7Z2ixXG1ZZ7Zft2vKzYa7ywiv64FJP/IyL5YUXIvNQOd7vTsrpqZlLn2Bbl0f/AQEFynY7Ud7SAm1n2tEj08n3ubxA+0ML+RzKtLDVzmdZsMxqq3tDgfISj4rY+y0UUjY+3zXJ+cpzyuN7fDkfxn65VFals182meVuwyqj/bK1U242zETMNxgMBoPBYKgAzHSkwWAwGAwGQwVgnDCDwWAwGAyGCsA4YQaDwWAwGAwVgHHCDAaDwWAwGCoA44QZDAaDwWAwVADGCTM4FVvKhmn53o9XSr3mpLZfU0rFKqV2KKUilVL3O6Ndg8FgyMXYMEN5Ypwwg7PJAIYopeoXW7N0fCAiIei0GJ8ppTxdJMdgMFydGBtmKDeME2ZwNtnALOC5gieUUnPzJTxFKXXO9vdGpdQapdRSpdRhpdS7SqlhSqktSqldSqmWBdsSkYNAGlDH1sYEpVS4UmqnUup1W1mgUmqfUmqhUmqvUup7pZSP7dy7tifRnUqpqa74IAwGwxWJsWGGcsM4YQZXMBMYppSqVYJrOgFPotN6PAS0EZHu6LQezxSsrJTqDBwUkRNKqf5Aa6A7OnVGF6VUb1vVtsDHItIOSAWetqWVuBtoLyIdgbdKcY8Gg6HyYmyYoVwwTpjB6YhIKjAfGFuCy8JFJF50brNDwEpb+S4gMF+955TOTr8ZmGIr6287tgPbgGvQBg3gmIhssL1eAFyPTnuRDnyhlBqCfho1GAwGwNgwQ/lhnDCDq5gOPAZUy1eWje07p5RyA7zyncufWNaa770V8Mh37gMRaQ/cgzZAVdBJWt8RkRDb0UpEchPkFszLJSKSjX7i/B64A/itdLdoMBgqMdMxNszgYowTZnAJInIK+A5txHKJBrrYXg9CZ5ovbfvLgAhgOLACeFQpVR1AKeWrlGpoq+qvlOple/0AsN5Wr5aI/IJe99GptHoYDIbKibFhhvLAo/gqBkOpmQaMyff+c2CpUuov9JPb+TK2/wbwNXoNRjtgo1IK4BzwIJAD7AdGK6W+BCKBT4BaNj1yn0CfL6MeBoOhcmJsmMGlKJGCI50GQ+VAKRUI/CwiHSpaF4PBYCgpxoZVfsx0pMFgMBgMBkMFYEbCDAaDwWAwGCoAMxJmMBgMBoPBUAEYJ8xgMBgMBoOhAjBOmMFgMBgMBkMFYJwwg8FgMBgMhgrAOGEGg8FgMBgMFYBxwgwGg8FgMBgqgP8H2+rjl1d6U0gAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -236,38 +296,63 @@ ], "source": [ "for bm in unique_bms:\n", - " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", - " \n", " flag = \"insert_cgsize\" in bm\n", " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", " # Plot INT32 performance\n", " tmp_int32df = tmpdf[tmpdf[\"Label\"].str.contains('I32')]\n", - " unique_labels = tmp_int32df[\"Label\"].unique()\n", - " plot_perf(bm+'_INT32', tmp_int32df, \"NumReps\", unique_labels, flag, True)\n", + " \n", + " randomdf = tmp_int32df[tmp_int32df[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", + " unique_labels = randomdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_INT32_RANDOM\", randomdf, \"NumReps\", unique_labels, flag, True)\n", + " \n", + " cycledf = tmp_int32df[tmp_int32df[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", + " unique_labels = cycledf[\"Label\"].unique()\n", + " plot_perf(bm + \"_INT32_CYCLE\", cycledf, \"NumReps\", unique_labels, flag, True)\n", + "\n", " \n", " # Plot INT64 Performance\n", " tmp_int64df = tmpdf[tmpdf[\"Label\"].str.contains('I64')]\n", - " unique_labels = tmp_int64df[\"Label\"].unique()\n", - " plot_perf(bm+'_INT64', tmp_int64df, \"NumReps\", unique_labels, flag, True)" + " \n", + " randomdf = tmp_int64df[tmp_int64df[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", + " unique_labels = randomdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_INT64_RANDOM\", randomdf, \"NumReps\", unique_labels, flag, True)\n", + " \n", + " cycledf = tmp_int64df[tmp_int64df[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", + " unique_labels = cycledf[\"Label\"].unique()\n", + " plot_perf(bm + \"_INT64_CYCLE\", cycledf, \"NumReps\", unique_labels, flag, True)" ] }, { "cell_type": "markdown", - "id": "supposed-kruger", + "id": "wrong-skiing", "metadata": {}, "source": [ - "### Single-Value Retrieval" + "### find_all" ] }, { "cell_type": "code", "execution_count": 8, - "id": "middle-omaha", + "id": "peaceful-bernard", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", "text/plain": [ "
" ] @@ -280,30 +365,49 @@ ], "source": [ "for bm in unique_bms:\n", - " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm] \n", - " unique_labels = tmpdf[\"Label\"].unique()\n", + " flag = \"find_all\" in bm\n", " \n", - " if bm == 'nvbench_static_multimap_find':\n", - " plot_perf(bm, tmpdf, \"Occupancy\", unique_labels)" + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", + " unique_labels = randomdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", + " \n", + " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", + " unique_labels = cycledf[\"Label\"].unique()\n", + " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" ] }, { "cell_type": "markdown", - "id": "wrong-skiing", + "id": "musical-merchandise", "metadata": {}, "source": [ - "### Multi-Value Retrieval" + "### retrieve" ] }, { "cell_type": "code", "execution_count": 9, - "id": "peaceful-bernard", + "id": "bound-pulse", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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pC1b2qy/3CRw7pBzaSnX2YIiUg64HtgPmAocraoZiQqsMKZOtTPBoUOhenV49VW48srt60+pWu/Vk09aTZeKFW2GTpYmTXLet/dUOeeKolIl6/WeMgVmzrRJNAcfXPT9rl1rRT8HDrS2bcsWG9pw//3Wvt1///aXBitUsDIyzrn4yasUw5vAFmA0cCZwMEnaYzVnjp39vf22jV/o0cN6oypU2Pm1Dz5ot332sddddx1UrZrwkJ1zaapRo6KXW9i82RKpAQMssVq/HmrUsLX/2ra1WYBZRT+rV7exV/PmWY9V9+7Qrl3RP4dzLnd59cc0UNX2qvoq0AY4IUEx5Sn7tOJatayq+gEH2KW/rl1tkOZdd21LrP76ywZt/vCDPW7fHvr1gz//tNd5YuWcSxY5lU3IkplpS+F07GhjSFu1srX+Lr/cambNmwf/+58twZW9mvp11+3CnDnw559z2W23Zvzvf01o2LAhr7zyCgDr16/n7LPP5qCDDqJhw4bcdddd+cbZr18/DjnkEA499FCaNm1Kz5496datG3feeee/r5k7dy777rsvK1eu5Mcff+SEE07gwAMPpGnTplxzzTWsX7+evn37cvPNN++0/7p163LooYfSpEkTmjRpwi1ZYzcSaOBAK/RasqR9HTiw6PvcZZdd/r0/b948TjvtNA4++GAaNGjAnDlztnvtLbfcst3rc5MOP4uUlNMUQptdyMS8Hsfjll8phpymFYNqixaq8+dv/9pff1W97jrVcuXsNY88UpDJlc65RCBNSjGEkVP7VqGC6kMPqXburFq9um2rWFG1XTvVoUNVN2/Of78VK1ZUVdVNmzbpxo0bVVV1zZo1WqdOHV24cKGuW7dOhw8f/u9rjjvuOP3ss89y3d9nn32mTZs21YULF6qq6saNG7VXr166fv16PeCAA3TGjBmqqnreeefp22+/rUuWLNHatWvr999//+8+Bg0apEuWLNE33nhDb7rppp2OUadOHV2+fHm4b1wcDBigWq+e6vDh9j0ePtweDxhQtP1m/SxUVU888UT96quvVNV+HuvWrfv3uZ9++knbt2+/3etzkg4/i2SXWxuW12XBxiKyOrgvQPngsVhOpnGcQJyznKYVg/VC1ay57fFVV1n5hbJlbYZO585WCdk556Jy221WET03P/wAmzZtv239ehvyIGIzlhs0sAk1CxbA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\n", "text/plain": [ "
" ] @@ -316,12 +420,18 @@ ], "source": [ "for bm in unique_bms:\n", - " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", - " unique_labels = tmpdf[\"Label\"].unique()\n", + " flag = \"retrieve\" in bm\n", " \n", - " flag = \"find_all\" in bm\n", " if flag:\n", - " plot_perf(bm, tmpdf, \"NumReps\", unique_labels, flag)" + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", + " unique_labels = randomdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", + " \n", + " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", + " unique_labels = cycledf[\"Label\"].unique()\n", + " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" ] } ], From b43bfbde21434eb15320b36a779737fa602a800a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 5 May 2021 21:41:35 -0400 Subject: [PATCH 081/267] Benchmark updates: remove insert CG benchmark, add count-varying-matching-rate benchmark --- .../static_multimap/static_multimap_bench.cu | 106 +++++++++++------- 1 file changed, 67 insertions(+), 39 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index c93fbb3ef..1362b9eca 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -117,40 +117,6 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_i state.skip("Key should be the same type as Value."); } -/** - * @brief A benchmark evaluating multi-value insertion performance by varing number of repetitions - * per key and CUDA CG size: - * - Total number of insertions: 100'000'000 - * - Map occupancy: 0.8 - * - Number of repetitions per key: 1, ... , 128, 256 - * - CG size: 1, ... , 16, 32 - * - */ -template -std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_insert_cgsize( - nvbench::state& state, nvbench::type_list>) -{ - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const num_reps = state.get_int64("NumReps"); - auto const dist = state.get_string("Distribution"); - - std::size_t const size = num_keys / occupancy; - - std::vector h_keys(num_keys); - - generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); - - launch_nvbench_insert(state, h_keys, num_keys, size); -} - -template -std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_insert_cgsize( - nvbench::state& state, nvbench::type_list>) -{ - state.skip("Key should be the same type as Value."); -} - /** * @brief A benchmark evaluating multi-value count performance by varing number of repetitions * per key: @@ -214,6 +180,61 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_c state.skip("Key should be the same type as Value."); } +template +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_count_analysis( + nvbench::state& state, nvbench::type_list) +{ + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const num_reps = state.get_int64("NumReps"); + auto const matching_rate = state.get_float64("MatchingRate"); + + std::size_t const size = num_keys / occupancy; + + std::vector h_keys(num_keys); + generate_keys(h_keys.begin(), h_keys.end(), num_reps, "RANDOM"); + + std::vector> h_pairs(num_keys); + + std::random_device rd; + std::mt19937 gen{rd()}; + auto tmp_max = static_cast(num_keys / num_reps) / matching_rate; + std::uniform_int_distribution distribution{1, static_cast(tmp_max)}; + + for (auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = i; + + h_keys[i] = distribution(gen); + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_pairs(h_pairs); + + state.add_element_count(num_keys, "NumKeys"); + state.add_global_memory_writes(num_keys * 2); + + state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, + [&](nvbench::launch& launch, auto& timer) { + auto const cg_size = 8; + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); + + // Use timers to explicitly mark the target region + timer.start(); + auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); + timer.stop(); + }); +} + +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_count_analysis( + nvbench::state& state, nvbench::type_list) +{ + state.skip("Key should be the same type as Value."); +} + /** * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions * per key: @@ -347,7 +368,6 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_r using key_type = nvbench::type_list; using value_type = nvbench::type_list; -using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) .set_type_axes_names({"Key", "Value"}) @@ -384,12 +404,20 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, NVBENCH_TYPE_AXES(key_type .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert_cgsize, - NVBENCH_TYPE_AXES(key_type, value_type, cg_size)) - .set_type_axes_names({"Key", "Value", "CGSize"}) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_count_analysis, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) - .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) + .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}) + .add_int64_power_of_two_axis("NumReps", {3}); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_count_analysis, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_type_axes_names({"Key", "Value"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.8}) + .add_float64_axis("MatchingRate", {0.5}) .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); From ac5655f136c028b775218a4eeab88b113d0ccca4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 6 May 2021 09:46:14 -0700 Subject: [PATCH 082/267] Customize benchmark name --- benchmarks/hash_table/static_multimap/static_multimap_bench.cu | 2 ++ 1 file changed, 2 insertions(+) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 1362b9eca..2b174fe7e 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -405,6 +405,7 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, NVBENCH_TYPE_AXES(key_type .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); NVBENCH_BENCH_TYPES(nvbench_static_multimap_count_analysis, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_name("count_varying_matching_rate") .set_type_axes_names({"Key", "Value"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -414,6 +415,7 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_count_analysis, NVBENCH_TYPE_AXES(ke .add_int64_power_of_two_axis("NumReps", {3}); NVBENCH_BENCH_TYPES(nvbench_static_multimap_count_analysis, NVBENCH_TYPE_AXES(key_type, value_type)) + .set_name("count_varying_num_reps") .set_type_axes_names({"Key", "Value"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. From a94d2c5a8b56f94587e9d886e59fc6fbb967d05e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 6 May 2021 13:11:33 -0400 Subject: [PATCH 083/267] Add in-depth count analysis in notebook --- .../analysis/notebooks/StaticMultimap.ipynb | 153 +++++++----------- benchmarks/analysis/notebooks/Utils.py | 9 +- 2 files changed, 65 insertions(+), 97 deletions(-) diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index b5f5526c1..356cedd29 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "id": "exceptional-dining", "metadata": {}, "source": [ "# Preparation" @@ -11,7 +10,6 @@ { "cell_type": "code", "execution_count": 1, - "id": "radio-fundamental", "metadata": {}, "outputs": [], "source": [ @@ -26,7 +24,6 @@ }, { "cell_type": "markdown", - "id": "cleared-delight", "metadata": {}, "source": [ "### Global Parameters" @@ -35,20 +32,18 @@ { "cell_type": "code", "execution_count": 2, - "id": "external-cleaning", "metadata": {}, "outputs": [], "source": [ "# Specify the data path\n", "datafile = '../data/static-multimap-data.csv'\n", "\n", - "output_keys = ['Benchmark', 'Label', 'Distribution', 'CGSize', 'NumReps', 'NumInputs', \\\n", + "output_keys = ['Benchmark', 'Label', 'Distribution', 'MatchingRate', 'NumReps', 'NumInputs', \\\n", " 'Occupancy', 'GPU Time (sec)', 'Elem/s (elem/sec)', 'Bandwidth (GB/s)']" ] }, { "cell_type": "markdown", - "id": "removed-period", "metadata": {}, "source": [ "### Import Data" @@ -57,7 +52,6 @@ { "cell_type": "code", "execution_count": 3, - "id": "professional-jurisdiction", "metadata": {}, "outputs": [], "source": [ @@ -67,12 +61,10 @@ "# Filter out skipped tests\n", "perfdf = rawdf[rawdf[\"Key\"] == rawdf[\"Value\"]].reset_index(drop=True)\n", "\n", - "# Set 'Int64' as CG Size type. Default is 'float64'.\n", - "perfdf['CGSize'] = perfdf['CGSize'].astype('Int64')\n", "\n", "# Add labels\n", - "perfdf['Label'] = perfdf[\"Key\"] + \"_\" + perfdf[\"Distribution\"]\n", - "perfdf.loc[perfdf['CGSize'].notnull(), 'Label'] += \"_\" + perfdf['CGSize'].astype(str)\n", + "perfdf['Label'] = perfdf[\"Key\"]\n", + "perfdf.loc[perfdf['Distribution'].notnull(), 'Label'] += \"_\" + perfdf['Distribution']\n", "\n", "perfdf[\"Bandwidth (GB/s)\"] = perfdf[\"GlobalMem BW (bytes/sec)\"] / (1000 * 1000 * 1000)\n", "\n", @@ -82,7 +74,6 @@ }, { "cell_type": "markdown", - "id": "faced-belarus", "metadata": {}, "source": [ "# Visualization" @@ -90,7 +81,6 @@ }, { "cell_type": "markdown", - "id": "careful-produce", "metadata": {}, "source": [ "### Visualization Parameters" @@ -99,7 +89,6 @@ { "cell_type": "code", "execution_count": 4, - "id": "imported-sharing", "metadata": {}, "outputs": [ { @@ -110,7 +99,8 @@ "nvbench_static_multimap_count\n", "nvbench_static_multimap_find_all\n", "nvbench_static_multimap_retrieve\n", - "nvbench_static_multimap_insert_cgsize\n" + "count_varying_matching_rate\n", + "count_varying_num_reps\n" ] } ], @@ -123,7 +113,6 @@ }, { "cell_type": "markdown", - "id": "spatial-patent", "metadata": {}, "source": [ "### insert " @@ -132,12 +121,11 @@ { "cell_type": "code", "execution_count": 5, - "id": "homeless-grave", "metadata": {}, "outputs": [ { "data": { - "image/png": "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oErwXABV1R2K37xzLlUNGACNGlnF6XLltm7ftMmq7edczNuZyy7Le1wKwOef2+8v2po1NrD40Udz/0z79jalPhYVo5ZAWL9+PZs3W0WiqlWrcvDBB295T8eOHbfpwchP8+bNqVq1Kn/++Sf16tXjn3/+YerUqXzwwQcce+yxDBs2bMt769aty7777sv48eM577zz8tyniDBgwABefvll3nzzTVq3bs20adN49tlnt7zn+uuvp1mzZvz444+UK1eOqlWrsscee5CdnU1mZibPPvssp5xyypYkM54OOmj7baecAhdeaJe/atSAqB+bGjVg8GC71LViBfTsue1nC1OP6ttvv2Xjxo0cfvjhwLY9ZJs2bWLw4ME8/fTTvPzyyzHvs6x8hyJw8cVW/7BXLzjsMLj6aivOmoiJR3nmcapaTlV3CG41VLV81GNPwJxzBerZ03ppAF5/Hc46C+rVg9q1oUMHWyTXFU7OBKyg7UWxZMkS2rZtS6NGjbjyyivZZZddtnl91apVvPbaaxx66KEx7W/69Ok0b958S2/MpEmT6NatGy1atGCnnXZi2rRtlyO+8sorufPOO9kUQxdqx44d+f777/n2229p37495aIy/nLlytG+fXvmRBWx69WrF8888wxLliyhXLly2/1syTB3LtSsue22mjXjV/R43rx51KpVixNPPJEOHTowePDgLb/L+++/nx49etCgQYNC7bOsfYft2kF2ttVDvOUWOPBAW+823kMBClw70jnnimvTJujb16Z4P/YY9OkDb75p96+9BnvtFXaEJUdBPVYZGbkvl5KeXvzq3RGNGjXim2++4ZdffuH444+nZ8+e1K9fH4CNGzdy2mmncckll7DbbvkvnnL33XczduxY5s2bx2uvvbZl+8SJE7n00ksB+w914sSJdOrUacvru+22G126dOHpp58uMFYt5DTcbt26cd1111G/fn1OPfXUQn22MPL7LvbYw3rBgo5FAD74wHpgwC6LFee73LhxIx9//DEzZsygcePGnHrqqYwbN46jjjqK559/nimF2HlZ/g6rVbPj1eGH28lk69a2nmTkKmtkKABAVlbR2ojDFc28iUg3EZkrIvNFZLtRnCIyUES+FZFvROQ9EUlPZDzOuXD89ZfV1GnVymYZPfEEHHMMXHcd3H132NGVLsOHb38pt2pV2x5vu+yyC3vuuScf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\n", + "image/png": "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bXMEsGWLLU4qXTr/sWTbCBORciJyIXALsBDorKp7qupVqro+/0U659JNqSDZzYsv2pXl7bcXrIveOeeSrXVr+PxzOO882ztyn33sgjIrffvCjTdu31B74AHLo9iwYf5jyKkn7HGgE/At0B24LYfXOuccRx0FvXvbfIuLLrIrReecK6zKlYN77oHXXoNFi6BjRxg3bseLyMGDLX9YixZ2v0sXuOMOy0dWEDk1wlqp6smq+hDQGziwYEU559JduXLw7LPWALvrLujTB9atizqq9DNhgmUAL1HCfk6YUPBzVqpUCYAFCxbQsWNH2rdvT+vWrXnwwQf/e02/fv1o2bIlu+++O6effjqbNm3K9nyPPfYYtWrVon379uy6667ccccd2z3/1VdfISK8++672x0XES655JL/Ht92222MHDkSgJEjR1K/fn3at29P8+bNOf744/nuu+/+e+3GjRu58MILadq0Kc2bN6dnz54sXrx4u3Ofcsop/z3evHkztWrV4uijj87DbyoxJk6E3XeHkiXt58SJBT9n7DsEWLhwIYcddhi77bYbrVq1Yv78+du9dsiQIdu9PivF6Ts85hibStG5M5x5JpxwAqxcue350qVtTthLL0GbNpai54cfoHnzAhWbYyPsv78uVc3D7kvOueKsRAnLoTNmDLz8su3F5hJnwgRbkbVggV2tL1hgjxPREAOoW7cu06ZN4+uvv+azzz7jpptuYkmQg6Rfv3788MMPfPvtt6xbt45x48bleK4+ffrw9ddf88knnzB69GgWLVr033MTJ05k//33Z2Km1kfZsmV56aWXWLFiRZbnvOiii/j666/5+eef6dOnDwcffDDLg4RNV155JatXr+ann37i559/5thjj+X4449Hg26NihUrMnv2bNYFVwbvvfce9evXz98vqgAmTrS8VffcA+vX28/hwxPTEIs59dRTGTZsGN9//z2ff/45tWvX/u+5GTNmsGrVqlDnKU7fYb16NgH/ppvglVegfXv4+OPtX9OxI5x7ruUNK1Om4GXm1AhrJyL/BLfVQNvYfRHx9IzOuRxddBF8/71NeoVtcym2bPGVlDm58EIb6sjuNnDgjr+/tWvteHbvufDC8OWXKVOGsmXLArBhwwa2xiVTOvLIIxERRIS99tprux6KnNSoUYNmzZqxdOlSAFSVF154gccee4xJkyaxfv22acalSpVi0KBBO/S6ZKVPnz4cdthhPP3006xdu5bx48dzxx13ULJkSQAGDBhA2bJlmTJlyn/v6d69O28GO9FPnDiRvn37hvoMeZXV93D//fbcqFFQuTJcey0ceqj9rFwZhg2z51es2PG9efHdd9+xefNmDj30UMB6yCpUqADAli1bGDZsGLfcckuezllcvsMSJSwFxSefWO/XQQfZ95OXjcDzVF52T6hqSVWtEtwqq2qpuPtVkhOOcy6dtGhhPz/4wO4PGGDzKqpXhz32sMz7Lm+yW8GV08quvFq0aBFt27alYcOGXHbZZdSrV2+75zdt2sSTTz7JEUccEep8CxcuZP369bRt2xaATz75hCZNmtC0aVO6dOnCW2+9td3rzz33XCZMmMDff2dOUbmjDh068MMPPzB37lwaNWpElSrb//fUqVMn5sQlsTvxxBN55plnWL9+PbNmzWLvvfcO9RkS6ccfoWrV7Y9VrZq4pMc//fQT1apV4/jjj2ePPfZg2LBhbAkmaN5777306NGDunXr5umcxe073Gsv+Oor2+t25Ejo2hUWLkz8VIAwG3g751yB7Lyzza948knbf7J/f8vNc+qp8PrrVuE5c+edOT+fkWFDkJk1bmybrCdCw4YNmTVrFkuWLOHYY4+ld+/e7Lzzzv89f84553DggQdywAEH5HieZ599lqlTp/Ljjz/y8MMPU65cOcB6L04MdlM+8cQTefLJJzn++OP/e1+VKlU49dRTufvuuylfvnyOZcSGqVQVic8fEPd8/PG2bdsyf/58Jk6cyJGxbtokyOm72G03613p2nXbsalTYcgQu1+zZsG+y82bN/PRRx/x1Vdf0ahRI/r06cNjjz1G9+7def7553k/Dycvzt9h5crwxBOWD/Hss+1727x52565sakAYI21/AiTJyzfROQIEflRROaKyOVZPN9PRGYFt2ki0i6Z8TjnohH7/7tVK5v0+sQTtpLy6qtthZELb/RoCEaW/lOhgh1PtHr16tG6dWs++uij/45de+21LF++nDFjxuT6/j59+jBnzhw++ugjLrnkEn7//Xe2bNnCiy++yHXXXUdGRgZDhgzh7bffZvXq1du998ILL+SRRx5hzZo1OZbx1Vdfsdtuu9GsWTMWLFiww3m+/PJLWrVqtd2xHj16MHTo0KQNReZm+HAbPp46FTZtsp8DB9rxRGjQoAF77LEHu+yyC6VKleLYY4/lyy+/5KuvvmLu3Lk0a9aMjIwM1q5dS7NmzXI8l3+H1sD66qvtG2Axa9cW7HtLWiNMREoC92HpLVoBfUWkVaaXzQMOUtW2wChgbLLicc5FZ9EiaNTI5ll07w6xkZA994S5c6ONrajp1w/GjrWeLxH7OXZs/q/EM1u8ePF/k55XrlzJJ598QsuWLQEYN24c7777LhMnTqREifD/fXTu3JlTTjmFu+66i//7v/+jXbt2LFq0iPnz57NgwQJ69erFK6+8st17qlevzgknnMAjjzyS7XlffPFFJk2aRN++falYsSL9+/fn4osv/m/o7YknnmDt2rUcfPDB273v9NNPZ8SIEbRp0yb0Z0ikvn2t0TxkiK0oHjLEHieqPbHnnnuycuXK/ya7T5kyhVatWnHUUUfx+++/M3/+fObPn0+FChWYG/IPsLh/h02b7tgAi1m4MP/nTWZP2F7AXFX9VVU3As8APeNfoKrTVDW2CHQ60CCJ8TjnItKkCfz2G/zzj+XjOfxwOz5lCgRTTFwe9OsH8+fbBsTz5yeuAQbw/fffs/fee9OuXTsOOugghg4d+t9/dIMHD+aPP/6gc+fOtG/fnuuuuy70eS+77DLGjx/P2LFjOe6447Z7rlevXjz99NM7vOeSSy7ZYYXdHXfc8V96g6eeeoopU6ZQq1YtAG688UbKlStHixYtaN68Oc8//zwvv/zyDkNcDRo04IILLggdezL07WubQG/ZYj8T2aFTsmRJbrvtNrp160abNm1QVc4888wCn7e4f4eNG2d9vFGj/J9TNElprUWkN3CEqp4RPD4F2FtVz8vm9UOBXWOvz06nTp10xowZCY/XOZdc11xjG37fdZfl1nnpJRuO/OADG6bMiYjMVNVOqYk0ubwOc65oiqWHiV+dXKFC7j3ROdVfyZyYv+PsOsiyxSciXYGBwP7ZPD8IGATQqCBNTudcZEaOtLlhgwbB0qWw3362OjK3BphzzhUGsYbW8OE2BNmokQ0jF6QnOpmNsMVA/I5KDYAdFuCKSFtgHNBdVf/M6kSqOpZgvlinTp18RzrniiAROOccu7n0MX78eO66667tju23337cd999EUXk8sq/w/D69Uvs8H8yhyNLAT8B3YDfgC+Ak1R1TtxrGgFTgFNVdVqY83pXvnPFjw9HOueKqkiGI1V1s4icB7wLlAQeVdU5IjI4eP5BYARQA7g/mHS3OV0qWuecc865nCQ1WauqvgW8lenYg3H3zwBynIjvnHPOOZeOkpqs1TnnnHPOZc0bYc4555xzEfBGmHPOOedcBLwR5pxzzjkXAW+EOeecc85FIGl5wpJFRJYDC4CqwN+Zns7qWBNso/BUKmiZWX2ORJSX03nz+lxWZeY17rwK8zkTEUP8ORJVZm6vya7M7N4X9t9/GIn8GwkbQ05lZnWOxqpaqyCBFRZ5rMOKYv0FyanD8vI3FOZ45jILQ/2VqDhi50hknRn2/4gwv9dE1l9ZlZlfeYkhuzLzVn+papG8AWNDHlsTQWwFKjOrz5GI8nI6b16fy6rMvMadjN9rImKIP0eiysztNdmVmd37wv77T+S/n7z+7vJbZrL/HRWWW5jvsCjWX/n5DhPxd5aXv5WsyiwM9Vei4oidI5F1Ztj/I8L8XhNZf+Xld5vI3312Zeb1cxTl4cjXQx4ripL1OXI6b36fy8/rkikRMeT1HGFen9trsns+L8eL6++/qCqs32EiJONzJPpvKL+vS7ZU/w0l4veT1+cK67/9lNdfRW44Mq9EZI2qVkznMovDZ/Qy06e8qMosiorLd1McyiwOn9HLzLui3BMW1kvFoMzi8Bm9zPQpL6oyi6Li8t0UhzKLw2f0MvMo7XvCnHPOOecKo+LQE+acc845V+ikbSNMRH4Ska0isj5F5e0lIitFZIOIrBeRF1NRblB2aRFZKyJ/pKi8V4LPuF5EFohI1SSUkeX3JyLPi8jGoOzPElheVRH5V0TWBed+Pzj+efCdrhORJSLSOFFlBudvLCKLgzI2iMiZcc+9LiIqIi0KWMYOv8vsPpeIlBeRucHvYIOIvJOP8rL8WxCR90VkS1DmOhEZEfeeXiKyOu7fVcL/TRUlXn8ltby0q7+Cc6e8DkvH+is4T8rqsLRthAF3AyensLwNwLmqWhbLH3KMiByTorJfAJaloiAR6QgcBdRV1XLYv6Hbk1DUDt+fiFwEHAzUCMoekMDy/gGaqmp5YCegk4gMxMb9qwTHFwLPJrBMgMnA/wX/bqoDk8AqAaAzsCUBZWT1t5Dd57oVKB38fusBh4jI/nksL6e/hbdUtXxwuw5ARMoCTwGnB+XuDqzNY5npxuuvJEjj+guiqcPSsf6CFNZhadsIU9V7sS8nVeV9o6pPB/eXAn8CrZJdroh0Ag7A/qGmigA7Bf/wygBzE11ANt/fxcBNqro6eM13CSxPVTV2JV4B+9tQVb1JVTcEx98Hdk5UmSJSH2hMUBmr6hpVXRA8/RJwdiLKyep3mcPnUqBs8N3uBGwFluSxvLz+LVwGLFXV54P3zFXVTXkpM914/ZXcYkmz+is4X0rrsHStv4Lzp6wOS9tGWJSClnctrGWcbK8AQ7B/bEmnqjOBV4FfgHXAWlW9KRVlAzWBo4Iu91Ui0j+RJw+GRdYBK4BZqvpoppecBrydwCL3x664fg6GY34QkVoicj2wPPYHnQKnse1zXRrEtA74GXhWVX/N74mz+FvoHnTj/yQiGcGxPYLXrgh+D2/mtzxXcF5/JU1S6y9IeR2W9vUXJL8O80ZYgonIzsC7wO2q+luSy7oWWKWqE5JZTqYyM4CuwG5ARaCciNyfquKBakBl4EJgnIhIok6uqpuC7u0MoKWIHPtfwSKTsP8ozk1UedhVeEXgBlWtgFUcb2KfrUcCy8lWFp+rf/C4ItAa6CMiB+Xz3Jn/Fs4FygOVsOGnScFLSwENgX2DnweKyNB8fSBXIF5/Jbd4klh/QcrrsLSuv4LzJ78Oyy2lflG+YS319Sksrzx2BfJqisqbBmwObluwrthfk1zm7cCPcY8fAman4vsDlgMXxj3eBOyapLKnAK8H98cCq7G5HIksow2wOe7xucBfWCUS+141+Nkmkb/L7D4X8C3wYNzjn4A78lFejn8L8fEAdwFz4577P+CNZHyvRenm9VdSyiwW9Vdw/qTWYelcfwXvTUkd5j1hCRJc0cwGFqlqz1SUqar7qmopVS0FXAIsU9VdklzsHKCxiNQIPnM34PsklxkzCTgOQEQOw64sf0zEiUVk17gVNjsBHYEvRWQ4dnW1p6r+mYiyYlT1W2CNiBwRHPof9odcIu573QK0Cl6bMDl8rkVANzG1sDkfH+fx3Fn+LYhIu7iXDQVi81fuAOoF/6bKYl37M/L6mVz+ef2VEkmrv4JzprQOS9f6Kzh/6uqwZLXCo74BC9h2dbUZGJ/k8s4OyloXdxuRws97IfBHisp6Hxt3Xw/8ClROxfeHdTH/GpS7Frg4geX1Cs65Ljj/5OD4xqD82Hc6J8Gfsw+wJjj3UiAj0/ObgRZJ+F1m+bmwCa6Lgt/BBvLRI5Xd30Lcd7cO+B1oF/ee+4Pn1gOfpeLfcWG+ef2V1LLSrv4Kykx5HZaO9VdwnpTVYZ4x3znnnHMuAj4c6ZxzzjkXAW+EOeecc85FwBthzjnnnHMR8EaYc84551wEvBHmnHPOORcBb4S5hBIRFZHb4x4PFZGRCTr3SBH5TUS+FpHvRKRvIs7rnHMxXoe5VPJGmEu0DcDxIlIzSee/Q1XbAz2Bh0SkdJLKcc4VT16HuZTxRphLtM3YdhIXZX5CRB4Tkd5xj/8NfnYRkQ9E5LlgU9SbRKSfiHwuIt+KSNPM51LVn7HEhDsF5xgmIl+IyKxgTzpEJCPYVPbx4PgLIlIheO6m4Ep0lojcloxfhHOuSPI6zKWMN8JcMtwH9BORqnl4TzvgAmw/slOwLMt7AeOAIZlfLCIdgJ9VdVmwBUhzYC+gPdBRRA4MXtoSGKuqbYF/gHNEpDq2fUjr4Pj1+fiMzrn05XWYSwlvhLmEU9V/gCeA8/Pwti9UdamqbgB+Ydvu9N8CGXGvu0hEfgQ+A0YGxw4Lbl8BXwK7YhUa2N5fnwT3n8I2Xf0H21pinIgcj12NOucc4HWYSx1vhLlkuRMYiO2XFrOZ4N9csEFqmbjnNsTd3xr3eCtQKu65O1S1JbZn2RMiUg7bCPdGVW0f3Jqp6iPB6zPvy6Wquhm74nwROBZ4J1+f0DmXzu7E6zCXZN4Ic0mhqn8Bz2GVWMx8oGNwvyeQ7wmpqvoStkt9f+Bd4HQRqQQgIvVFpHbw0kYi0jm43xf4OHhdVVV9C9s4uH1+43DOpSevw1wqlMr9Jc7l2+3AeXGPHwZeFZHPgcnAmgKe/zrgaWC34PapXZzyL3AysAX4HugvIg8BPwMPAFWDOGJXoDtMwHXOObwOc0kmqpl7Op1LDyKSAbyhqrtHHYtzzuWV12Hpz4cjnXPOOeci4D1hzjnnnHMR8J4w55xzzrkIeCPMOeeccy4C3ghzzjnnnIuAN8Kcc8455yLgjTDnnHPOuQh4I8w555xzLgL/D4vy1Rc4LKbjAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -149,7 +137,7 @@ }, { "data": { - "image/png": "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H5UqFe/8d91llbpLLoGWLaFFi+jEncAOU9XFIrIH8ImI/KSqX2Q/IKic9QSol2yJjJwLQfny8NZb1mrfuzds2ADXXlv487Rta2PNtm2DtEianeIskgW864jIWyKyLNjeFJE6kZxcVT9Q1caqureqDg723ZJbBUxV23krmHPxUaoU1KwJu+xig+p/+cVmFN18c/HPXbq0DardbTdL5LpyZfHPmchUdXHwdRnwFjYzPOcxPqTCuUIqW9auJWedBdddB7ffXrQW+zZt4IAD7PHjj9v1LlFEUi98DutGrB1s7wb7nHNJSBVGjbK8Ol98YRe6UqXgjjvgpZeiU0bNmpYodsECOO+8xOwGiAYRqRjkOkREKmKpfHwhJ+eipEwZuy517w633AIDBhR96MRff1m+xHbtYrOcW1FEUgmroarPqeqWYBsB+K2cc0lswwZLjlinjl3Q+veHRYtsdmO0HHIIPPigje24++7onTfB1AS+EpEfgG+B91X1o5Bjci6llCoFzz5ra9XedRf07Vu0ilj16paPbPNmq4jNnh31UAstkkrYChE5R0RKBds52EB951wSErEBr089Zc+XLNk+NiwzygkWrrjCcofddJMNkE01QTLqlsHWLGvYhXMuutLSYOhQGx/20EPQq1fRWtibN7dM+6pWEZs5M9qRFk4klbALgTOAJcCfQBegSIP1nXOJ4b77rJXqvPPg7bet8rVtG0yYEN1ZjSIwfLhlwu7aFRYujN65nXMliwg8/DBcfz08+aQt3p2ebhW0jAwYOTKy8zRtaksllSkDU6bEMuKC5VkJE5F7godtVbWjqtZQ1T1UtZOq+qXUuSTWuDFMnw6tWsH331tOnjlz4LDDrGL2wAPRK6tiRZt1uXmzZcIugYlcnXNRImJdkp0725jWhQutVWvBAuuujLQi1qSJ5U087zx7viGkhRPzawk7QUQEuCFewTjn4mf33S2p6rBhtv5jRgZ89JElSGzePLplNW68PR9Z9eqFv3N1zrksIrm3YK1bZwP3I5WVjuezz6BhQ7shjbf8KmEfAf8ALUTkXxFZnf1rnOJzzsVR2bLw3HPwf/9nz99+G9asic65162z9BVr1hTtztU557LkNbShKEMe0tPt2tS+vd0oxlOelTBVvVZVq2KzfXZV1crZv8YvROdcGBYssHUg27WzwfvFNWAAbNmy477C3rk65xxAXjmPK1UqfNdi/fo2Rmy33eCYYyyZdbzkOzBfREoBXuFyrgRKT7eM1bNn2/IfP/1UvPNF887VOVeyDR4MFSrsuK90aVi92hKzzihktr70dKuI1agBxx0Xvzxi+VbCVHUrsE1EqsQnHOdcIjnxRLswrVtneb++/LLo58rrztVX8XHOFVa3bjaeNT3dxoilp9u40w8+sEW7DzjA1rAtTD6xunXtetenjy3jFg+RpKhYA0wXkWdE5NGsLdaBOecSQ2YmTJxod4jFmc6d251rhQq23znnCqtbN5g/39LrzJ9vz48/Hn780dJX9OoFp5ximfIjtddetjxSWpoNySjOjWckIqmEjQZuBr4ApmTbnHMlRIMGNnOoTx97njUtvDByu3MdNsz2O+dctNSsCe+/D488YsuztWgB//tf4c9z5ZU2SWncuOjHmKXASpiqPg+8BkxS1eezttiF5JxLRBUrWuVp3jxLYXHVVbB1a+HOkdudq3PORZuIZdf/9luoWtVWBLn2Wti0KfJzPP20pa446SQYOzY2cRZYCRORk4FpWMoKRKSViLwTm3Ccc4kuIwMuvhgefdRmT0ZzvUnnnIumli1h8mS49FK4/36bZDRnTmTv3WMPGD/eErt27AjvvQdvvAH9+tmKI8uXFz++SLojbwXaAisBVHUa0KD4RTvnklFammXUf+QRGDPGsu0XZsyFc87FU4UKtszRW29ZC/z++9uC4JEMqahe3Spi++4LZ59tla8aNWz2ZbNmxU9nEUklbLOqrsqxrwjLZjrnUknv3nZXOG2a3WE651wi69TJBu0feCBcdBGceSb880/B79t9dzjhBLvh/PpruO46q8QNGWIJpws7Pja7SCphM0XkbKCUiDQSkceACUUv0jmXKjp3tjvB226z54UdI+acc/G0117wySdw993WMtayZWQzIMeOhb59be3bHj0sbc9pp8GKFfDbb0WPJ5JK2JVAM2Aj8DKwCriq6EU651JJy5a23NHy5dCmjS115JxziapUKbj+epgwAcqVs1VBbr4ZNm/O+z1lylgm/k2bbM3dChXspnPTJnutqPKshIlIeRG5CrgXWAgcrKoHqOpNqhrSeuPOuUSlapWxzp3hiSfCjsY55/J3wAEwdSp07w533AFHHGGzv3PTtSvcdZdV2po1s31PPmmD9uvWLXoM+bWEPQ9kAtOB4wEf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\n", + "image/png": "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y4e4xBs5Eho3tvEpjRvb46KqUqUKAEuWLKFDhw60bduW1q1b8+ijj/67T8+ePWnevDm777475557Lps2bcrzmGPHjiUzM5OWLVvSokULBgwYwIgRIzj11FP/3WflypU0bdqURYsWsWDBAo455hh23XVXWrZsySmnnMJvv/3GpEmTOPbYY7c7/iGHHELz5s1p27Ytbdu25aSTTir6D6KAXnrJlrspXdpuX3qp6MfM+i4AfvzxR4488khatmxJq1atWLx48X/27du373/2z01J+C4KS8TqrJkz7e/p+OPtRHLNmm37lC9vSaqHDbPcYSedBAsW2HdeJKqa4wbMzOtxVFuHDh3UOZfatm5V/fTTbY+3bCna8YDpmgL1TyK2otZhL7ygWqlS1mgU2ypVsueLonLlyqqqumHDBl2/fr2qqq5atUozMjL0p59+UlXVMWPG6NatW3Xr1q162mmn6fDhw3M93pw5c3SXXXbRefPmqarqpk2bdNiwYbp161bdb7/99IMPPlBV1X79+ultt92m69at01133VXfeeedf48xceJEnTNnjn700UfapUuX7co4+OCDddq0aUX74EXw4ouqTZqoTpyounGj3TZpYs8XRdZ3oWqfcfz48apq38eaNWv+fW3atGl6xhln/Gf/nJSE7yJRNmxQveoqVRHV5s1VZ8wo+jHzqr/K5NE+21NEslKRCVAxeCzWdtNqRWz/OefSlAgccIDdnzwZ+veHN96w8RNbtlienezrSDrTv3/eC6VPnbp9gty1ay2J7uOP5/yetm1hyJD4yi9Xrty/9zds2MDWmNHKxxxzzL/3O3bsyLJly3I9zt13382gQYNo0aIFAGXKlOHiiy8G4JFHHuH000/nmWeeYcKECcyYMYMXXniBfffdl+OOO+7fYxx66KEATJo0Kb7gQ3DIIds/d8opcPHFcOutULWqzZrLUrWqjS/q0QN+/916TGIV5KN88803bN68mSOOOAL4bw/Zli1bGDhwIC+++CJvvvlmnsdJl+8iGcqVs9QTRx0FZ54J++xjKSmuvNJ6nhMt10OqamlVrRZsVVW1TMx9b4A55+KyaRN8951VZueea9mna9WCdu3g/fejjq74yW2FgkSuXLB06VLatGlDw4YNufrqq6lfv/5/Xt+0aRPPP/88nTt3zvUYc+fOpUOHDjm+1qZNG4466ig6derE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\n", "text/plain": [ "
" ] @@ -178,7 +166,6 @@ }, { "cell_type": "markdown", - "id": "excessive-occupation", "metadata": {}, "source": [ "### count" @@ -187,12 +174,11 @@ { "cell_type": "code", "execution_count": 6, - "id": "descending-enterprise", "metadata": {}, "outputs": [ { "data": { - "image/png": "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MmXo2LHjtse0atXqPz0YBdlnn30oU6YMv//+O1WqVOHPP/9k+vTpvPfee3Tp0oVRo0Zte2zlypVp3749EydO5Mwzz8z3NUWEIUOG8Nxzz/Haa6/RpEkTZs2axZQpU7Y9ZsSIETRo0IDvv/+ezMxMypQpw3777cfMmTPJyspiypQp9O7de1sjM5oOO2zHbb17W05Tdl2/HG+b8uVt9Yx+/WyorVev/z532rTI971w4UI2b97MkUceCfy3h2zLli0MGzaMJ554gueeey7i10y032HDhjMZNy6LM86YwqZNvSlffiX33fffNStr17YTyEGD7Ljz+ec2G/yNN6zo9ejR9rl36mSjBEcdZaUw4infnjBVzVTVCsGlvKoWy3HdG2DOJbFWrWwtys2bYdw4GxKZMcMaYLB9uZDddoPXXrMu/K+/hkcfteWT9t3X7p8504rD1q5t/2DGjLFetLwSY//919bHrFIF9tgDWra0g6ErmtwNsMK274zly5fTrFkzatasyeWXX0716tX/c//atWt56aWXOPzwyFZtmj17Nvvss8+23pgXXniBzp07s++++1KpUiVmzfrvcsSXX345t912G1si6HZt1aoVX331FQsXLqRFixZk5ljrJjMzkxYtWrBgwYJt2/r27cuTTz7J8uXLyczM3OG9xcPXX9t3K6fddrO8zWj45ptvqFixIieccAItW7Zk2LBh2z7Le+65h65du1KtiFWdE/F3eOihy2nfPpPx46szYMB/G2C5ZWZayYsRI+wY9euv8MwzNsvyiy+scdyggV3OPRdeeMFOQnOLdipAoWtHOudSU9261qMVCRFreO27L5xyyvbttWrB7bdbg+7TT62SP1g3/8EH28Htiy/s4Dd2rC1JMmuWPe+116xB99JLNjzgTGE9VnXq2BBkbrVrF623pCA1a9Zk3rx5rFy5ku7du9OrVy+qVq0KwObNm+nXrx8XXngh9erVK/B17rjjDsaPH88333zDSy+9tG375MmTueiiiwD7hzp58mRat2697f569erRrl07nnjiiUJjLWzVl9w6d+7MNddcQ9WqVenTp0+RnlsUBf0u9tvPesGCjkUA3nsPLrjAru+55679Ljdv3syHH37InDlzqFWrFn369GHChAkcc8wxTJ06lWlFePFU/R1WrAgnnGAXVfjuOzspfPNNO9m87z4rHHvggdZDdvTRNsR59tnW8wzbUwGg4AZgQSKpE+acc3mqUcOSX6dMsQPSqlVWiyz7WDx1KgwcaOvA3Xef9YZNmGC9NscdZ8Vl77gjzHeQfLbnwmxXpkxsyotUr16dpk2b8uGHH27bNnjwYPbZZx8uvvjiQp8/ZMgQFixYwDPPPMMZZ5zB33//zW+//ca7777LoEGDqFOnDrfeeitPPfXUDv+Ir7rqKm6++eZC/0HPmTNnW/L53Llztw2fAmzdupW5c+fSuHHjbdtKlChB69atuf322+mVe8wvToYPt+Hj996z78R779nt4cOj8/o1atSgRYsW1KtXj2LFitG9e3dmz57NnDlz+O6772jQoAF16tRhw4YNNGjQoMDXSoffoYitYXn++fDii5ZiMW2aDQ9v2GDHqbZtrdRPdgMs24YNu/Z780aYcy5q9toLunWz0hdgZ/vz5sHIkTbc8vPPtlhvyZJ2f5s2dgbqIte/vw0h165t/zxq17bbO3smntuKFSvYuHEjAL///jvTp0+nYcOGAFx99dWsW7eOOyNNMAt07dqVrKwsJk6cyNNPP80pp5zC0qVLWbJkCcuXL6du3br/aegBNGrUiMaNG/+n9yUnVeWuu+5i1apVdO7cmQYNGtCyZUtuuOGGbY+54YYbaNWq1Q4NjUsvvZSbb76ZPfbYo0jvI1r69bNG8wUXQKlS9nP0aNseDW3atGHt2rX88ssvALz77rs0btyY4447jtWrV7NkyRKWLFlCmTJl+C7CL2A6/Q5LlIAOHeDGGy3l4uef4YknYGs+Czbuyooj3ghzzsVMZibsvz9ceqndfv11+PFHy6cAKyCbnYfmIte/v8382rrVfkarAQawaNEi2rVrR/PmzenQoQNDhw5l//33Z8WKFYwePZqFCxduK2Hx0EMPRfy6I0aMYMyYMUyePJkePXr8576ePXvuMMMOYPjw4Tsk/w8bNmxbeYPPP/+c9957b9tkgocffphvvvmG+vXrU79+fb755hsezp5RkkOTJk0YOHBgxLHHQr9+8OWXljD+5ZfRa4CB5VHddtttHH744ey///6oaoEJ8pFK199h5cr2+6ldO+/7t5fLKDop6lhs2LKysnTmzJlhh+GcK6KRI60o7Nix1vX/7LPWzf/++5BjpCFPIjJLVbPiE2ls+THMueSUXR4m55BkmTKF90QXdPzyxHznXFxce60tmTR4sOWOtW9vibCFNcCccy4RZDe0hg+3IchatWwYeVd6or0R5pyLCxGb+n3uuWFH4qJp9OjRTM2eFhs48cQTGR6tLHMXc/47jFz//tEd/vfhSOdcwvPhSOdcsiro+OWJ+c4555xzIfBGmHPOOedcCLwR5pxzzjkXAm+EOeecc86FwBthzjnnnHMh8EaYc84551wIvBHmnHPOOReCpKsTJiK/AEuB3YB1ue7Oa1tdYHEcQovmPvN6H9HYX0GvW9T78tpnUeMuqkjeZzRiyPka0dpnYY/Jb5/5PS/Sv/9IRPM7EmkMBe0zr9eoraqVdyWwRFHEY1gyHr8gNsewonyHItmee5+JcPyKVhzZrxHNY2ak/yMi+VyjefzKa587qygx5LfPoh2/VDUpL8C4CLf9FUJsu7TPvN5HNPZX0OsW9b689lnUuGPxuUYjhpyvEa19FvaY/PaZ3/Mi/fuP5t9PUT+7nd1nrP+OEuUSye8wGY9fO/M7jMb3rCjflbz2mQjHr2jFkf0a0TxmRvo/IpLPNZrHr6J8ttH87PPbZ1HfRzIPR74U4bZkFKv3UdDr7ux9O/O4WIpGDEV9jUgeX9hj8ru/KNvT9fNPVon6O4yGWLyPaH+HdvZxsRbv71A0Pp+i3peof/txP34l3XBkUYnIX6paNpX3mQ7v0feZOvsLa5/JKF1+N+mwz3R4j77PokvmnrBIPZsG+0yH9+j7TJ39hbXPZJQuv5t02Gc6vEffZxGlfE+Yc84551wiSoeeMOecc865hJOyjTAR+UZEtorI33HaX1sR+V1ENonI3yLyTDz2G+y7uIhsEJGf4rS/54P3+LeILBWR3WKwjzx/fyIyNcdn/FkU97ebiPwpIhuD154WbF8sIv8E274RkdLR2mfw+rVFZEXwnjaJyJk57ntRRFRE9t3FfezwWYrIjGB/G0VkpYjUDraXFpHvgve7SURe34n95fldEJFpIrIl2OdGERmR4zk9RWR9jr+rqP9NJRM/fsV0fyl3/ApeO+7HsFQ8fgWvE7djWMo2woC7gJPjuL9NwHmqWhKrH9JFRLrEad9PAz/HY0ci0ho4DqimqqWwv6HbY7CrHX5/IjIE6ATsGez7tCju7w+gvqqWBnYHskTkDGA8UBIoHfx8OIr7BHgHeDv4u9kDeBPsIAAcBGyJwj7y+i48C1QI3u8yYEqw/VagePD5VgeOEJGDi7i/gr4Lr6pq6eByHYCIlAQeB04P9tsU2FDEfaYaP37FQAofvyCcY1gqHr8gjsewlG2Eqeo92C8nXvv7QlWfCK6vAtYAjWO9XxHJAg7B/lDjRYDdgz+8EsB30d5BPr+/S4CbVHV98JiFUdyfqmr2mXgZ7LuhqnpdcJ8Cc4Ba0dqniNQEahMcjFX1L1VdGtz9LHBONPaT12epqjep6qbg5jSgavZdQMngd7s7sBVYWcT9FfW7cDmwSlWnBs/5TlX/Lco+U40fv2K7W1Ls+BW8XlyPYal6/ApeP27HsJRthIUpaHlXxlrGsfY8cAH2xxZzqjoLeAH4HtgIbFDVm+Kxb2BP4Ligy32tiAyM5osHwyIbgV+Bear6SI77SgNHAZOjuMuDsDOub4PhmK9EpLKIjAZ+yf5Cx8GpwGvB9cuCmDYC3wJTVPWHnX3hPL4LxwTd+N+ISJ1gW8vgsb8Gn8MrO7s/t+v8+BUzMT1+QdyPYSl//ILYH8O8ERZlIlIVeAO4XVV/jPG+RgFrVXVSLPeTa591gI7AfkBZoJSI3Buv3WNnN+WBi4GHRESi9eKq+m/QvV0HaCgi3XPcPQf4WlX/F639YWfhZYEbVbUMduB4BbgI6BrF/eRLRN7E/gGeF2waGNwuCzQB+ohIh5187dzfhfOwIZFy2PDTm8FDiwE1sYN6TeBQERm6U2/I7RI/fsV298Tw+AVxP4al9PEreP3YH8M0CqX+E/UCHAz8Hcf9lcbOQF6I0/4+BjYHly1YV+wPMd7n7dgXOfv2A8CX8fj9Ab8AQ3Lc/hdoFKN9vwO8FFx/F1gFZEZ5H/sDm3PcPg/4DTuIZP9eNfi5fzQ/y2DbQ8B6oFKObfOB+3Pc/ga4Yyf2V+B3IWc8wFjguxz3vQ28HIvfazJd/PgVk32mxfEreP2YHsNS+fgVPDcuxzDvCYuS4IzmS2C5qnaLxz5V9SBVLaaqxYBLgZ9VtV6Md7sAqC0ilYL3fDiwKMb7zPYm0B1ARI7Cziy/jsYLi0ijHDNsdgeygNkiMiG43lhVo5Fkuo2qzgf+EpHOwaYTsS9yRo7f65Zg3/OjuW8RGQ6cArRR1TU57lqO/U4RkcpYzsf0Ir52nt8FEWme42FDgez8lTuA6sHfVEmsa39m0d6R2xV+/IqLmB2/gteM6zEsVY9fwXPjdwyLVSs87AuwlO1nV5uB8THe3znBvjbmuIyI4/u9GPgpTvuaho27/w38AJSPx+8P62L+IdjvBuCSKO6vZ/CaG4PXfyfYrtgZa/bv9J0ov88+wF/Ba68C6uS6fzOwbww+y3+C69nva0Hw2KrYgezv4Hdc5B6p/L4LOX53G4HVQPMcz7k3uO9v4LN4/B0n8sWPXzHdV8odv4J9xv0YlorHr+B14nYM84r5zjnnnHMh8OFI55xzzrkQeCPMOeeccy4E3ghzzjnnnAuBN8Kcc84550LgjTDnnHPOuRB4I8xFlYioiNye4/ZQEbk2Sq99rYj8KCJzRWShiPSLxus651w2P4a5ePJGmIu2TcAJIrJnjF7/DlVtAXQDHhCR4jHaj3MuPfkxzMWNN8JctG0GxgFDct8hIhNEpFeO238GPw8TkfdF5AUR+UFEbhKR/iIyQ0Tmi0j93K+lqt9ihQl3D15jmIh8LiLzgjXpEJE6waKyk0RkkYg8LSJlgvtuCs5E54nIbbH4IJxzScmPYS5uvBHmYuF/QH8R2a0Iz2kOnI0trHsKVmW5LbY+2AW5HywirYBvVfXnYAmQfYC2QAugtYgcGjy0IXCvqu4H/AGcKyKVgB5AE1VtBtywE+/ROZe6/Bjm4sIbYS7qVPUP4FHgwiI87XNVXaWqm4Dv2b46/XygTo7HDRGRBcBnwOhg21HBZQ4wG2iEHdDA1v76KLj+OLbo6jpsaYmHReQE7GzUOecAP4a5+PFGmIuVO4EzsPXSsm0m+JsTkQygRI77NuW4vjXH7a1AsRz33aGqTbB10h4WkVLYQrj/p6otgksDVX04eHzudblUVTdjZ5xPA8cDr+/cW3TOpbA78WOYizFvhLmYUNXfgKewg1i2JUDr4HpXYKcTUlX1RWyV+oHAG8DpIlIOQET2FpEqwUNriciBwfWTgOnB43ZT1VexvI/mOxuHcy41+THMxUOxwh/i3E67HTg/x+0HgRdE5AvszO2vXXz964AnsByM/YBPRATgT+BkYAvwNXCeiDwCLATuA3YL4sg+A71kF+NwzqUmP4a5mBLV3D2dzqUGEakDvKyqTcOOxTnnisqPYanPhyOdc84550LgPWHOOeeccyHwnjDnnHPOuRB4I8w555xzLgTeCHPOOeecC4E3wpxzzjnnQuCNMOecc865EHgjzDnnnHMuBP8PHEzzuIZ4XfkAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFhCAYAAAA4HX3WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAB5DUlEQVR4nO3deZzN9ffA8dexZ8kWIssolCVZhqiUJX2FJBRSiUpKSvuivqXSr2/7oo3SilZaJVoU7UghhcpWUiolW5bz++N8JmPcmbkz7r2fuXfO8/G4j7n3c5fPuXfmfub9eb/P+7xFVXHOOeecc4lVJOwAnHPOOecKI2+EOeecc86FwBthzjnnnHMh8EaYc84551wIvBHmnHPOORcCb4Q555xzzoXAG2HO5UJE0kRERaRYgverIlIvkfvMjYj8LSIHhh0HgIjMFJGzc7j/YRG5LpExOedcXngjzLlCIq+NukiNHFUtq6rfxz66vSMiZ4rI7MzbVHWoqt4UVkwFQaTPJYfHPiEi/wQN7d9FZIaIHBLhcTNF5A8RKRnh+SoirTNtqycimuW5W0Rkg4j8JSJzReSqCK/VSEReFZE/g8e+JyJHZLo/48RoXpbn7Re8h+XRvGfnwuaNMOeccxluU9WywAHAj8Bjme8UkTSgHaBAjwjP/x24OZd9XKCq5YDqwKVAP2CqiEiwj4OAD4EFQF2gBjAFmC4ibbO8VhkRaZLp9qnAD7ns37kCwxthrlARkeUicpmIfBWcZT8nIqVEZLGIdM/0uGIisk5EWmR6+mAR+UlE1ojIpZkeWyQ4m/9ORH4TkedFpFJwX8YZ+0ARWRm85shMzy0qItcEz90Q9AzUyrTPY0VkadDz8EDGP6oc3l89EXk/eG/rROS5YPsHwUO+DHo6+opIRRF5XUR+DV7/dRGpGTx+NPbPdkzw+DHB9n9700RkHxG5U0RWBPubLSL75BBbxmcxSERWBfscKiKtgt/H+oz9BI+/QUSeifD8YlletyHwMNA2iHV9sP0JEbk5uN5eRFaLyBUi8kvwO+wpIl1FZIlYz881mV6ztYh8HMS0RkTGiEiJTPeriFwoIt8Hn/PtIpLr8VREzgn+1jaIyNcZf18i0lCsl2i9iCwSkR6ZnrNbj6Rk6d0KYhma9e8ku88lGqq6GXgeaJblrjOAT4AngIERnvok0FREjoliHxtVdSbWmGsLdAvuugH4WFVHqurvqrpBVe8Dngb+l+Vlns4SxxnAU7nt27mCwhthrjA6BeiCnWU3Bc4EJgH9Mz3mP8A6Vc083NEBqA8cB1wlIscG2y8EegLHYGftfwAPZNnnUcDBQCfgv8E/SIBLgv12BfYFBgObMj2vO9AKOCyI+z+5vLebgOlARaAmcD+Aqh4d3H9YMKT4HPb9fxyoA9QGNgNjgsePBGZhvRZlVfWCCPu6A2gJHAFUAq4AduYSH8Dh2OfYF7gHGAkcCzQGTonmH3hmqroYGIr94y6rqhWyeej+QCmsl+e/wDjgtOA9tMN+Lxn5bjuAi4H9sAZCJ+D8LK93EpAOtABOxH532RKRk7EGxhnY77oH8JuIFAdew35vVYHhwAQROTj3d/+vPf5O8vC5RIq1DPZ3uSzLXWcAE4LLf0SkWpb7NwG3AKOj3ZeqrgTmYL8DgM7ACxEe+jxwpIiUzrTtGaBfcDLTECgHfBrtvp0LmzfCXGF0n6r+pKq/Y//8mgETgR6ZDvCnBtsyGxWcvS/AGi8ZjbZzgZGqulpVt2L/aPtk6bEZpaqbVfVL4EvsnyXA2cC1qvqtmi9V9bdMz7tVVdcH/6jeY8+eiay2YY2qGqq6RVWzzQdS1d9U9SVV3aSqG7B/nFE1gIJen8HARar6o6ruUNWPgvefm5uC2KYDG4FJqvqLqv6INfyaRxNDPmwDRqvqNuBZrIF1b9DTsghYhDXKUdW5qvqJqm5X1eXAI+z52fwv6KlZiTUm+5Ozs7Hhvs+D3/UyVV0BtAHKYr/rf1T1XeD1KF4vs7z+nWTnsqDHbAN24nB6xh0ichT2t/W8qs4FvsO+J1k9AtQWkePzsN+fsIY82O9lTYTHrMH+Z1XMtG018C3WiB+I94K5JOONMFcY/Zzp+iagrKouAxYDJwQNsR7s2Qhblen6CqzXC+wf05RgKGl98Do7gMy9BHvsM7heC/tnFnWsOTwWrDdKgM+CYa1se2dEpLSIPBIMJ/4FfABUEJGiuewD7B9lqVxiz87aTNc3R7id23vMr99UdUem/USKpSyAiDQIhmd/Dj6bW7D3nFl2fw/Zye53XQNYpaqZexFXYD120crr30l27gh6zNKwzyNzb9xAYLqqrgtuTyTCkGTQEL8puOQ4fJ7JAVg+GcA6LF8sq+pYT+sfWbY/hfVm98d6xpxLGt4Ic26XjCHJE4Gvg4ZZZplztWpjZ+9g/4yPV9UKmS6lgp6d3KwCDtrbwDOo6s+qeo6q1sB66B6U7GdEXor9kz1cVfcFMoYsM/5xasRnmXXAFmIYewQbgcxDT/vn8NicYs2Ph4BvgPrBZ3MNezYosvt7yE52v+ufgFpZcspqY4nxkLfPIat8fS5Bj9pFwL1B7t8+2DDnMUHD9GdsuPYwETkswks8DpTHhmxzJJYD2RLrBQV4Gzg5wkNPwYZWN2XZ/hKWT/Z90LPoXNLwRphzuzyL5Xudx569YADXBb1HjYFBwHPB9oeB0SJSB0BEqojIiVHu81HgJhGpHyRTNxWRyvl9AyJysgTJ9ViPgWK9cmC9PplrfJXDejvWi00kuD7Ly2V9/L+CXpvxwF0iUiPIyWkrWUoN7KX5wNEiUltEygNX5/DYtUDNzMnze6kc8Bfwt1iZhvMiPOZysckNtbAGy3MRHpPZo9hwX8vgd10v+Jv5FGtoXSEixUWkPXAC9vcI9jn0Cv726gFn5eF95PtzUdUZWANxCJbzuANohA11NgMaYg2nMyI8dzs2LH9ldq8fvJ9jgFeAz4CpwV2jgCNEZLSIVBKRciIyPNjPHq+nqhuBjthwr3NJxRthzgVUdQ3wMZZoHukf6vtYovI72LDN9GD7vcCr2BT6DdjsscOj3O1dWMLxdOyf/mNAtjMMo9AK+FRE/g5iukhVM6bs3wA8GQybnoLlMe2D9Wp9AkzL8lr3Yrltf4jIfRH2dRlWRuBzbCjpf8TwmBI0Ap4DvgLmYnlS2XkXy+n6WUTW5fC4aF2G5TttwBL4I/09vBLENR94gyzlHLJS1RewvLuJweu+DFRS1X+w4e/jsd/Fg8AZqvpN8NS7gX+wBtWTWFJ8tPb2c7kdG+IeAjyuqiuD3tafVfVnbCLHAIlcyHgSkXO7xgTfk7XY3+BLQJeM4VhVXYrlox0GLA9eozc22eDDSEGq6hxVzc/QuHOhEtVY9+I751xqEytAWj/CkLVzzkXNe8Kcc84550LgjTDnkozYmoh/R7g8XABiG5BNbIvCji0RCvLvBiCYMRspvgFhx+ZcYeTDkc4555xzIfCeMOecc865EHgjzDnnnHMuBN4Ic84555wLgTfCnHPOOedC4I0w55xzzrkQeCPMOeeccy4E3ghzzjnnnAuBN8Kcc84550LgjTDnnHPOuRB4I8w555xzLgTeCHPOOeecC0FSNsJEZLyI/CIiC6N4bB0ReUdEvhKRmSJSMxExOuecc87lJCkbYcATQJcoH3sH8JSqNgVuBP4vXkE555xzzkUrKRthqvoB8HvmbSJykIhME5G5IjJLRA4J7moEvBNcfw84MYGhOuecc85FlJSNsGyMBYarakvgMuDBYPuXQO/g+klAORGpHEJ8zjnnnHP/KhZ2ALEgImWBI4AXRCRjc8ng52XAGBE5E/gA+BHYnugYnXPOOecyS4lGGNajt15Vm2W9Q1V/AnrBv4213qr6Z2LDc84555zbXUoMR6rqX8APInIygJjDguv7iUjG+7waGB9SmM4555xz/0rKRpiITAI+Bg4WkdUichYwADhLRL4EFrErAb898K2ILAGqAaNDCNk555xzbjeiqmHH4JxzzjlX6CRlT5hzzjnnXLLzRphzzjnnXAiSbnbkfvvtp2lpaWGH4ZxLoLlz565T1SphxxELfgxzrnDJ6fiVdI2wtLQ05syZE3YYzrkEEpEVYccQK34Mc65wyen45cORzjnnnHMh8EaYc84551wIvBHmnHPOORcCb4Q555xzzoXAG2HOOeeccyHwRphzzjnnXAi8EeaccwXQL7/AqlXgK8s5l7pSthE2YQKkpUGRIvZzwoSwI3LOudytWAGdO8PBB0N6OrRoAZ98EnZUzrl4SMlG2IQJMGSIHcxU7eeQId4Qc84VbDt2QJcu0LEj/PwzrFkDV18NPXrYbedcaknJRtjIkbBp0+7bNm2y7c45V1DNmAH77msNr5IlYetWOOUU6NkTnnwy7Oicc7GWko2wlSvztt055wqCVaugcWO7/t130KABPPecbVu9OtzYnHOxl5KNsNq187bdOecKgsMPt96wLVugalWoWxdOPRXGjYPWrcOOzjkXaynZCBs9GkqX3nP70KGJj8U556LVtCm0awfdusHnn8NNN1ljbNEi2Lgx7Oicc7GWko2wAQNg7FioUwdEoHp1qFABbr8d5s4NOzrnnMvek0/CCSfAVVfB8OFw+unQqROcdx5MmRJ2dM65WCoWdgDxMmCAXTJ8950dyDp2hKlT4cgjw4vNOeeyU7w4jBhhlwxbt1oP/3HHhRWVcy4ecu0JE5GqInKSiAwTkcEi0lpEkq4H7aCDYNYs2H9/O5C9/XbYETnnXHRKloQbb4QyZWDDBp8p6VyqyLYxJSIdROQt4A3geKA60Ai4FlggIqNEZN/EhBkbtWrBBx9Yg6xbN3jttbAjcs65vBkzBs48E66/3qvpO5fschqO7Aqco6p7FHYQkWJAd6Az8FKcYouLatVg5kwriNirFzzzDPTtG3ZUzjkXnSuugKVLrWds61b4v/+z3FfnXPLJthGmqpfncN924OV4BJQIlSrZcGT37tC/v806Gjw47Kiccy53RYvCo4/aEOX//mcNsbvu8oaYc8ko20aYiFyS0xNV9a7Yh5M4++4L06bBSSfBWWdZQ2z48LCjcs653BUpAg8+aA2x55+3mZTVqoUdlXMur3JKsC8XXNKB84ADgstQLDcs6ZUuDa++akuCXHihdes751wyEIG774Z586wBpmprTzrnkkdOw5GjAERkOtBCVTcEt28AXkhIdAmQcSZ55plwzTXw999w883ete+cK/hEdjXALroI/vgDHn8ciqVs8SHnUks0X9XawD+Zbv8DpMUlmpAULw5PPWXTv2+5xRpi99zjDTHnUp2I1AKeAvYHdgJjVfVeEXkOODh4WAVgvao2i/D85cAGYAewXVXTExD2HjKKUt9/v+WITZhgxzXnXMEWTSPsaeAzEZkCKHASdtBKKUWLwiOPWEPsnnssR+yRR2y7cy5lbQcuVdV5IlIOmCsiM1T13znTInIn8GcOr9FBVdfFO9DcXH219exfein8848t/F2yZNhROedykmsjTFVHi8g04Khg0yBV/SK+YYVDxGYZlStna7Zt3Gg9ZH5G6VxqUtU1wJrg+gYRWYzlvn4NICICnAJ0DC3IPLjkEmt4XXAB9OsHkyd7j75zBVm0mQPzsQNVMQARqR2pflgqENlVmfqqq2DTJjujLFUq7Micc/EkImlAc+DTTJvbAWtVdWk2T1Nguogo8Iiqjo1vlLkbNswaYlWregPMuYIu10aYiAwHrgfWYnkPgh14msY3tHBdeSWULWtnlD162MK5ZcqEHZVzLh5EpCxWeHqEqv6V6a7+wKQcnnqkqv4kIlWBGSLyjap+EOH1hwBDAGrXrh3DyCM7++xd16dNs7Vyy5WL+26dc3kUzRqQFwEHq2pjVW2qqoeqako3wDIMG2Yzjd55xyrs/5lTVohzLimJSHGsATZBVSdn2l4M6AU8l91zVfWn4OcvwBSgdTaPG6uq6aqaXqVKlViGn6OffrISPMcdB+vXJ2y3zrkoRdMIW0XOSakp7cwz4dln4ZNPoFMn+O23sCNyzsVKkPP1GLA4QgHqY4FvVHV1Ns8tEyTzIyJlgOOAhfGMN69q1IBJk2DuXDj2WPj997Ajcs5lFk0j7HtgpohcLSKXZFziHVhBcvLJNhy5cCG0bw8//xx2RM65GDkSOB3oKCLzg0vX4L5+ZBmKFJEaIjI1uFkNmC0iXwKfAW+o6rREBR6tk07adfzq0AF+/TXsiJxzGaJJzF8ZXEoEl0Kpe3d44w048URo186GKBOQ2uGciyNVnY3luUa678wI234CugbXvwcOi2d8sdKtG7z2mh2/nn3Wl2hzrqCIpkRFRuX8cnZT/457VAVUp04wfTp07bqrIVavXthROedc7jp3hgUL4MAD7baqz550Lmy5DkeKSBMR+QLLdVgkInNFpHH8QyuYjjgC3n3Xaoi1aweLFoUdkXPOReegg6zhtXAhtGkDy5eHHZFzhVs0OWFjgUtUtY6q1gEuBcbFN6yCrUUL+OADO5gdc4wlvTrnXLLYsgWWLLHj17JlYUfjXOEVTSOsjKq+l3FDVWcChb5iVqNG1hArUwY6doQPPww7Iueci056Orz3nvXoH3MMfPONDU9+9x2sjjgX1DkXD1HNjhSR60QkLbhcC/wQ78CSQb16MHs2VKtmdXiuvhrS0qBIEfs5YULYETrnXGTNmsHMmbB9u6VZ1K9vDbLmzeHoo61B5pyLr2gaYYOBKsDk4LIfMCieQSWTWrWsR6xSJbj1Vlixws4oV6yAIUO8IeacK7iaNIEXXrDl2UaPhlWrrMDrSSdZgert28OO0LnUlmsjTFX/UNULVbVFcBmhqn8kIrhksf/+kbdv2gQjRyY2Fuecy4uPP4aBA6FvX1sVZNEiuPhiW3vyrbfCjs651BbN7MgZIlIh0+2KIuJfzSx+/DHy9pUpucy5cy5V/PgjHHKIXR861FIrfvjBtmV3XHPOxUY0w5H7qer6jBtBL1jVuEWUpLIr3OoFXZ1zBVnbtvDKK5ZGceONNgTZrRu8+abd55yLn2gaYTtF5N+mhIjUATR+ISWn0aOhdOndt4nAFVeEE49zzkWjd2/YvBn694dffoGrrrLZkgANG4Ybm3OpLppG2EhsfbSnReRp4APg6viGlXwGDICxY6FOHWt87b8/FC8O48fD34V2jQHnXEFXogS8/baV3RkxAl59FU49FdasgeuuCzs651KbqObeqSUi+wFtsDXWPlbVdVE8pxbwFLA/sBMYq6r3ZnlMe+AVdpW8mKyqN+b0uunp6TpnzpxcYy4IXn/d1mo77jg7sBUvHnZEziUnEZmrqulhxxELyXIMu+8+O37VqRN2JM4lt5yOX9Ek5gvQBWihqq8BpUWkdRT73Q5cqqoNsQbcMBFpFOFxs1S1WXDJsQGWbLp3h4cfhmnTrFxFFO1d55wrEC680BpgO3fC4sVhR+NcaopmOPJBoC3QP7i9AXggtyep6hpVnRdc3wAsBg7IZ5xJ65xz4Prr4Ykn7KdzziWTkSPh8MNt8W/nXGxF0wg7XFWHAVvg39mRJfKyExFJA5oDn0a4u62IfCkib2a3MLiIDBGROSIy59dff83LrguE66+Hs86Cm26CRx4JOxrnnIvesGFQtiyccAKsXRt2NM6llmgaYdtEpCjBjEgRqYLleEVFRMoCLwEjVPWvLHfPA+qo6mHA/cDLkV5DVceqarqqplepUiXaXRcYIjYs2bUrnH++5Yc551wyqFkTXnvNZk727GkzKZ1zsRFNI+w+YApQVURGA7OBW6J5cREpjjXAJqjq5Kz3q+pfqvp3cH0qUDyYBJByihWD55+Hli2hXz+rUu2cc8mgZUt45hn45BMr6Oqci41iuT1AVSeIyFygEzY7sqeq5pqmGST0PwYsVtW7snnM/sBaVdUg2b8I8Fte3kAyKVPGZkwecYR17X/4IRx8cNhROedc7nr1gvvvt4W/nXOxEc3syIOAH1T1AWAh0DnzMkY5OBI4HegoIvODS1cRGSoiGedSfYCFIvIl1uPWT6OpmZHEqla12ZJFitgCuT//HHZEzjkXnQsugKOOsuu+JJtzey+a4ciXgB0iUg94FKgLTMztSao6W1VFVZtmKkExVVUfVtWHg8eMUdXGqnqYqrZR1Y/26t0kiXr14I03LMeiWzfYsCHsiJxzLnpPPgkNGsBHheKI7Vz8RLVskapuB3oB96rqxUD1+IaV+lq1ghdegC+/hD59YNu2sCNyzrnodO9u6+L27GmLfTvn8ifa2ZH9gTOA14NtXvs9Brp2taWOpk+Hs8/2Yq7OueRQubLlt27fbg2yP/8MOyLnklM0jbBBWLHW0ar6g4jUBZ6Jb1iFx+DBcOON8NRTcO21YUfjXOEiIrVE5D0RWSwii0TkomD7DSLyY+Z81mye30VEvhWRZSJyVWKjD1eDBvDSS7BkCfTta5X1nXN5E83syK+BCzPd/gG4NZ5BFTbXXgurV8Mtt8ABB1gtMedcQmQsrzZPRMoBc0VkRnDf3ap6R3ZPDOonPgB0BlYDn4vIq8Exs1Do0MEKUO/caZONnHN5k2sjzMWfCDzwAKxZY7OPatSwXAvnXHyp6hpgTXB9g4jkZXm11sAyVf0eQESeBU4ECk0jDKw3P8Nvv9lQpXMuOn7uUkAUKwaTJkHr1tC/v886ci7RIiyvdoGIfCUi40WkYoSnHACsynR7NYVwfdwMs2ZBWhq8+WbYkTiXPHJshIlIURG5PVHBFHZlytjyILVqWTHXb74JOyLnCocIy6s9BBwENMN6yu6M9LQI2yJOr0n29W+j0by5ld/p2xcWLgw7GueSQ46NMFXdAbQMqt+7BKhSxYq5FitmxVzXrAk7IudSW6Tl1VR1raruUNWdwDhs6DGr1UCtTLdrAj9F2keyr38bjbJl7SSybFmbMemLfTuXu2iGI78AXhGR00WkV8Yl3oEVZgceCFOnwrp1Vsbir6zLnjvnYiK75dVEJHMtxJOw1UKy+hyoLyJ1RaQE0A94NZ7xFnRZF/vesiXsiJwr2KJphFXC1nPsCJwQXLrHMyhnC+a++KJ16/fuDf/8E3ZEzqWkiMurAbeJyAIR+QroAFwMICI1RGQqQFDE+gLgLWAx8LyqLgrlXRQgGYt9t25tPfrOuexJsi3VmJ6ernPmzAk7jIR58kk480w47TSrJeYDw64wEpG5qpoedhyxUNiOYZs2QenSYUfhXHhyOn5Fs4B3AxF5R0QWBrebioiXFU2QgQNh9Gg7s7zmmrCjcc656H3/PRxyCEzMdbVh5wqnaIYjxwFXA9sAVPUrLPfBJcjVV8PQoXDrrTBmTNjROOdcdGrWhLp1YdAgL7vjXCTRNMJKq+pnWbZtj0cwLjIRa3ydeCJceCFMnhx2RM45l7sSJex45Yt9OxdZNI2wdSJyEEH9GxHpQ1Bh2iVO0aLWpd+mDZx6KsyeHXZEzjmXu4zFvrdt88W+ncsqmkbYMOAR4BAR+REYAQyNZ1AustKlbfp3Whr06AFfF6rFUZxzyergg3f1iCXZXDDn4irXRpiqfq+qxwJVgENU9ShVXRH/0FwklStbMdeSJeHooy3nokgRa5hNmBB2dM45F1mHDlb/sEIF6xVzzkU3O7KyiNwHzAJmisi9IuJLtIYoLc0W+v7tN/jxRzuzXLEChgzxhphzruASseHIDh0sz1XVCrtu2hR2ZM6FI5rhyGeBX4HeQJ/g+nPxDMrlbty4Pbdt2gQjRyY+Fueci1bZstajf9FFNjx5yCFQvTqcey5s3Bh2dM4lVlQV81X1JlX9IbjcDFSIc1wuFytX5m27c84VBEWLwmWXWRrF77/D++/Dd9/Bhg1w9tlhR+dcYkXTCHtPRPqJSJHgcgrwRrwDczmrXTtv251zrqAYP97qH5YvDyecADt2wKOPwvTplmLhXGERTSPsXGAisDW4PAtcIiIbRMSXlg7J6NGRlwLp3z/xsTjnXF788AO0b2+zvStUgD/+sOPZQQfBqlVhR+dc4kQzO7KcqhZR1eLBpUiwrZyq7puIIN2eBgyAsWOhTh1Ldq1Vy2ZKPvwwLF0adnTOOZe9li1tlnfLlvDFF5YX9vPPduw6+OCwo3MucaLpCXMF1IABsHw57NxpuWAffADFiln3/vr1YUfnnHORXXQRPP209eh/952VrmjSBDp3hooVw47OucTxRlgKqVsXXnrJDmr9+1uehXPOFTS1a9tJ45Il0KkTXHedzZp86y1Ytizs6JxLHG+EpZijj4YHH7Su/iuuCDsa55yLrH59ePJJq3E4dy7MnGk9+X36wObNYUfnXGJEU6z1IBEpGVxvLyIXikiFuEfm8u2cc2D4cLjrLpuF5JxzBV1aGjzzDHz1FQwbFnY0ziVGND1hLwE7RKQe8BhQF5st6Qqwu+6CY4+FoUPhww/DjsY553J3/PFw7bXw4ovWQ+ZcqoumEbZTVbcDJwH3qOrFQPX4huX2VrFi8PzzdnbZq5cf0JxzyeH66603rE6dsCNxLv6iaYRtE5H+wEDg9WBb8fiF5GKlYkV49VXYuhVOPBH+/jvsiJxzLmdFi9rJoyo89pjVEHMuVUXTCBsEtAVGq+oPIlIXeCa+YblYOeQQePZZWLAABg60chbOOVfQLV0K550HZ5zhxy2XuqIp1vq1ql6oqpOC2z+o6q3xD83FSpcucMcdMHkyjBoVdjTOOZe7Bg0st/X11+F//ws7GufiI5rZkUeKyAwRWSIi34vIDyLyfSKCc7EzYgQMGgQ33mi5Ys45EJFaIvKeiCwWkUUiclGw/XYR+UZEvhKRKdnNCBeR5SKyQETmi8ichAZfCAwbBv36WbL+O++EHY1zsRfNcORjwF3AUUArID346ZKICDz0EBx5JJx5JsybF3ZEzhUI24FLVbUh0AYYJiKNgBlAE1VtCiwBrs7hNTqoajNVTY9/uIWLCIwbZ0sZDRgAGzeGHZFzsRVNI+xPVX1TVX9R1d8yLnGPzMVcyZI2JFmliiXqr1kTdkTOhUtV16jqvOD6BmAxcICqTg9mhQN8AtRMZFwTJlhyepEi9nPChETuvWApW9ZWAnn8cShTJuxonIutaBph7wVd821FpEXGJe6RubioWhVeeQV+/x1OOgm2bAk7IucKBhFJA5oDn2a5azDwZjZPU2C6iMwVkSGxiGPCBBgyxMrKqNrPIUMKd0OsYUOrIQa2LJtzqSKaRtjh2BDkLcCdweWOeAbl4qtZM1s899NP7eCuGnZEzoVLRMpihalHqOpfmbaPxIYss2sCHamqLYDjsaHMo7N5/SEiMkdE5vz66685xjJyJGzatPu2TZtse2H39ts2NPnCC2FH4lxsRDM7skOES8dEBOfip1cvS9J/+mmbOelcYSUixbEG2ARVnZxp+0CgOzBANfKpiqr+FPz8BZgCtM7mcWNVNV1V06tUqZJjPCtX5m17YXL00dC6NQweDN98E3Y0zu29aGZHlheRuzLO4kTkThEpn4jgXHxdey2ccgpceaVNA3eusBERwSYfLVbVuzJt7wJcCfRQ1U3ZPLeMiJTLuA4cByzc25hq1468/YAD9vaVk1+JEja7u1Qp6N3bC1C75BfNcOR4YANwSnD5C3g8nkG5xBCxZNfmzeHUU2HRorAjci7hjgROBzoGZSbmi0hXYAxQDpgRbHsYQERqiMjU4LnVgNki8iXwGfCGqk7b24BGj4bSpffcvmkTfP753r568qtZEyZNgsWL4dxzPZ3CJbdiUTzmIFXtnen2KBGZH6d4XIKVLm2J+q1aQY8e8NlnULly2FE5lxiqOhuQCHdNjbAtY/ixa3D9e+CwWMc0YID9HDnShiBr14ZzzoFHH4WjjoIHH4Szzor1XpPLscfCLbfYEkfOJbNoGmGbReSo4GCFiBwJbI5vWC6RataEKVOgfXvo0wemT4fivjqoSyIiUgrL32oH1MCOUQux3qmk6+MdMGBXYyzD0KHQvz+cfbb1iN17r5WdKayuumrX9Z07rZyHc8kmmj/b84AHgsrQK7Bu+qHxDcslWps2VhRx5ky46KKwo3EueiJyA/Ahtsbtp8AjwPPYrMZbgxU/moYXYWxUrgxvvmmNj0cesZOmH38MO6rwzZgBLVrAunVhR+Jc3uXaE6aq84HDRGTf4PZfOT/DJavTT4eFC+G226BJEzj//LAjci4qn6vqDdncd5eIVAWySXdPLkWLwv/9H6Sn28oXLVtauYZ27cKOLDyVKll+2GmnwRtv+BClSy7Z9oSJyGnBz0tE5BLgbODsTLddCrrlFujWDS68EN59N+xonMudqr6RdZuIFMl04viLqqbUuo69e1udv/LloWNHuO++wpug3rIl3H8/vPUW3Hxz2NE4lzc5DUdmLBBRLsKlbJzjciEpWhQmTrSCiCef7NWpXfIQkYkism9QLuJr4FsRuTzsuOKlUSObSNO1q6UQnHHGnkVeC4tzzrH3P2qUNcacSxbZNsJU9ZHg6tuqOirzBfD17FPYvvvCa6/Z9RNOgL98ANolh0ZBukRPbHZjbaz8RMoqX94m1dx0ky1rdOSR8MMPYUeVeCLw0EOWRuE1D10yiSYx//4ot7kUcuCB8OKLsHSpzcjasSPsiJzLVfGg+n1P4BVV3Yat7ZjSihSxwstvvAHLl9vw3PTpYUeVeKVLwwcf2NCsc8kip5ywtiJyKVAlIw8suNwAeOpjIdChg+VaTJ0KV18ddjTO5eoRYDmWSvGBiNTBiksXCscfD3PmWMmZLl0sgb+w5YlVqGC9Yt98A7feGnY0zuUup56wEljuVzF2zwf7C+iT2wuLSC0ReU9EFovIIhHZo/CBmPtEZJmIfCUiLfL3Nly8DB1qsyRvvx2eeirsaJzbU3DCKKp6n6oeoKpdg7UeVwIdwo4vkQ46CD7+GPr1g2uusQT+DRvCjirxnnrKThwnZLfsunMFRLYlKlT1feB9EXlCVVfk47W3A5eq6rxgfbW5IjJDVb/O9JjjgfrB5XDgoeCnK0DuucemgJ9zDtSvD23bhh2Rc7sZiNUyXAJMA6ap6s9BQ2x7uKElXpky1vho1Qouv9wWvJ4yBQ45JOzIEmfUKJg9G4YMgWbNoHHjsCNyLrJocsI2icjtIjJVRN7NuOT2JFVdo6rzgusbgMVA1iVoTwSeUvMJUEFEquf1Tbj4Kl7cahHVqmVDHjVrWh5KWpqfabrwqepQVW0B3ABUBJ4QkY9F5BYROVpECl36hAhcfDG8/Tb89ps1xF5+OeyoEqd4cXjuOShXrvD2BrrkEE0jbALwDVAXGIXlXORpGVkRSQOaY9WsMzsAWJXp9mr2bKi5AqByZTur/PNPq9KtCitW2DZviLmCQFW/UdW7VbUL0BGYDZzMnsedQqN9e5g713rBTjrJEvgLyySb6tWtIbZsmeeHuYIrmkZYZVV9DNimqu+r6mCgTbQ7EJGywEvAiAjV9iMtnLtHKqmIDBGROSIy59dff4121y7GHnxwz22bNtlCw84VFCJSGmiMVdIfrqrpYccUplq1bNbg2WfD6NHQvTv8/nvYUSXGMcfYxKLrrgs7Eucii6YRti34uUZEuolIc6BmNC8eTBd/CZigqpMjPGQ1UCvT7ZrAT1kfpKpjVTVdVdOrVKkSza5dHKxcmbftziWCiPQI1radJyJdgUXYGrcLRGRgyOEVCKVK2dqwjzwC77xj+WJffhl2VIlx3HH2/tevh6++Cjsa53YXTSPsZhEpD1wKXAY8Clyc25NERIDHgMWqelc2D3sVOCOYJdkG+FNV10QXuku02tmsvpfdducS5CbgOOBcbOHuTqraBmiKHbNcYMgQ6xXbutUm2EycGHZEidOvnzXIhg+3VQYuvBC+/TbsqFxhl2MjLEhora+qf6rqQlXtoKotVfXVKF77SKxadUcRmR9cuorIUBEZGjxmKvA9sAwYB/iS0QXY6NFWEDGri/YoPuJcQu1U1SWq+jnwg6p+D7ZmJIVwdmRu2rSxPLFWrWDAAEvg37Yt9+clu/POg7Vr4ZVX4NxzoWJFOOoom0XpXFhybISp6g6gR35eWFVnq6qoalNVbRZcpqrqw6r6cPAYVdVhqnqQqh6aaovsppoBA2DsWKhTx2Zf1ahh0+GfeAI2bgw7OleIFRGRiiJSGdgZXK8kIpWIrre/0KlWzWZOXnSRlaDp3NlyPtPSUnfm88SJcMopsGqVLX4+ahSMGWNlPJwLS7Z1wjL5SETGAM8B//6rzSg/4QqXAQPskmH6dCtbcfbZdpCTSFMtnIuv8sBcdk30yXxsKmQ146NXvLg1wNLT4ayzbJgyo8J+xsxn2P37nszefdfy4MqXt9UEjjzSylcMHGgTjCL18jsXb9E0wo4Ift6YaZtiU8BdIXfccXDLLXDVVXYwv/TSsCNyhY2qpoUdQzI77TS44gpYkyUbN2Pmc6o0wipVsvI6990HRYtC8+bw669QsiSUKBF2dK6wyrURpqqFatkPl3dXXGFr1l1xBRx2GBx7bNgRucIkyF3dR1X/Dm63wZZdA/giKBbtcvDzz5G3p9LM57PPtqHHV16Bhx6CLVvgjDOskVksmu4I5+Ig13wJEakmIo+JyJvB7UYiclb8Q3PJQgQefxwaNoS+feGHH8KOyBUy/2P3ST2TgMuB64BrQ4koyWQ3w7lWrcjbk9Ell9jyRXXrQocOu+qneQPMhSmapNUngLeAGsHtJcCIOMXjklTZsrYsys6d0KuXDWU4lyCdgMxlcNar6glY2YojwwkpuWQ38/ngg+07nQqKFoUHHoBFi2zlgM8+g5NPhvvvt94x58IQTSNsP1V9HtgJoKrbgUKy8IXLi3r1bEbVl19aUq96SrRLjCLBcSnDlWCzr4GyOT1RRGqJyHsislhEFonIRcH2SiIyQ0SWBj8rZvP8LiLyrYgsE5GrYvWGEi3rzOfataFbN5gxwxLXU6mERfXq0KmT9YjdcYflsp55pvfgu3BE0wjbGEz9Vvg33+LPuEblklbXrnDTTdYYu/fesKNxhUQJESmXcUNVpwMERaZL5fLc7cClqtoQW45tmIg0Aq4C3lHV+sA7we3dBLloDwDHA42A/sFzk9KAAbB8ufV8rVgBr71mk26eecZmEW7ZEnaEsVeyJDz/vJ0wnnKKFbF1LpGiaYRdglW2P0hEPgSeAobHNSqX1K6+2hYLvuwyeO+9sKNxhcA44DkR+TezSUTqYLlh43J6oqquySi3EyTwLwYOAE4Engwe9iTQM8LTWwPLVPV7Vf0HeDZ4XkoQse/ygw/C669bKZq/sq7+mwLq1rVah7/8kloTEVxyiGZ25DwROQY4GKvD862qplDntIu1IkXgySfh8MPt7HLuXF/ayMWPqt4lIpuA2SJSBuu13wjcqqoPRfs6IpIGNAc+BaplLKGmqmtEpGqEpxwArMp0ezVweDavPQQYAlA7yb4M550HFSrYTMJOneDNN2G//cKOKrZ69oT//Af22SfsSFxhE83syFLAhdj6bKOw7vrcuvhdIVeuHEyZAv/8Y4n6mzeHHZFLZcFKHLWBOkBdVa2TxwZYWeAlYISqRtvfE6k0ccRMSFUdq6rpqppepUqVaMMqMPr3t4k3CxfC0Udbva1Us88+lvt29dWwbFnY0bjCIprhyKeAxsD9wBgs9+HpeAblUsPBB1s+ydy5MHSoJ+q7+BCR00SkCICq/p21LpiIHCQiR+Xw/OJYA2yCqk4ONq8VkerB/dWBXyI8dTWQuYhDTeCn/L+Tgq1bN5g2DVavtjUXU7GhsnYtPPKIzZpMxRw4V/BE0wg7WFXPUtX3gssQoEG8A3Op4YQT4IYb4KmnbHq4c3FQGfhCRMaLyDAROUVEzhCRG0XkfeA2YG2kJ4qIAI8Bi1U1c5mLV4GBwfWBQKQiBp8D9UWkroiUAPoFz0tZxxxjeZ5//20Nsa++Cjui2KpZ045V8+fbwubOxVs0jbAvghmRAIjI4cCH8QvJpZrrrrPG2MUXW3FE52JJVe8FWmCJ+FWwumEtgB+B01W1t6ouzebpRwKnAx1FZH5w6QrcCnQWkaVA5+A2IlJDRKYG+90OXIDVUVwMPK+qi+L1PguKli1h1ixbe/KYY+Djj8OOKLa6d7fK+g8/DJMmhR2NS3WiuYwRichiLCk/Y95IbeyAsxMrxdM0rhFmkZ6ernPmzEnkLl0M/PkntG4N69fb8GTNmmFH5JKJiMxV1fSw44iFVDmGrVhhS5T99JPli3XuHHZEsbNtG7RvD0uXWtkOX9zb7Y2cjl/RLNjQJcbxJMTq1fDRR1CtGrRrZzP2XHjKl7cDdevWVnPo/fehlE/vcC5p1akDs2fbrMJu3azXqHfvsKOKjeLF4bnn4PffvQHm4ivXpomqrgAqACcElwqquiLjEuf48kwVrrkGmjaFZ5+Fiy6CQw+F778POzLXsKHlW3z2GQwb5on6ziW7atVg5kxo1crK0YwfH3ZEsVOzpv0fgdQbcnUFRzQlKi4CJgBVg8szIlJgi7W+9BK8+qp1I0+eDF98AWefbVOsXfhOOsnWbRs/3mYhOeeSW4UKMH26DUeedRbcdVeuT0kqkyfDEUfA014TwMVBNDlhXwFtVXVjcLsM8HGic8Ey5JZPccIJ1uA69VSbYvzRR5Y8mpYGb79tZRNcuHbsgB49bF26996DI32JZZeLaHLCRKQk0BtII1OqhareGN/o8iZVcsKy+ucfOO00eOEFO9G68Uarup/stm+3IrVz5sDnn0OjpF2YyoUlp+NXNJlSwu4Ldu8gcpHCAuHvv6FSJbs+dqx9eXr3tnH9DRtyfq5LjKJFbW3JOnWgTx9L7HUuBl7Blg3ajlXMz7i4BChRwvLCzjoLbr4ZLrzQ1qFMdsWK2fsqU8bqh230vygXQ9Ek5j8OfCoiU4LbPbG6OgXS8cfDo49asui558KmTXZGtnkzvPgiHHIIlC0bdpSuQgWrqN+mjTXE3nvPFtN1bi/UVNWknEiUKooWhXHjoGJFuOMOmw09frwluiezGjVg4kQ47jjLZ33iibAjcqkimsT8u4BBwO/AH8AgVb0nznHl2/nn2yKsxx9vvS1//23LURxzDPzvf7b+mSsYmjSxg9nHH9sECuf20kcicmjYQRR2InDbbXDLLbZiRu/eqVF9/thj4dZbbSaoc7ESTU8YqjoPmBfnWGKibFkrfzBxos3aqVbNplE3bGj/7DOmG//yi61/1rx5qOEWen36wFVX2cGtZUs455ywI3LJRkQWYGs2FgMGicj3wFYsbSLhtQydNcSuvtp6vIcNs5PiV1+1NWWT2RVX7Lq+fbsNVTq3N3JNzC9oYpXUetFFcP/99k//5pshCdfUTRk7dtjZ5XvvWQO6TZvcn+MKl5wSW0WkTk7PLWildFI1MT87EyfaCETz5vDmm7DffmFHtPeeeALuucdO8D29xeUmX4n5wUyjlDVqFIwYYfkKDRrAffdZlWSXeEWL2oG6Zk0buvj557AjcskkU83CmzPXMMzYFnZ8hd2pp1qh5oUL4eijbQQi2dWpAwsWwNChXu/Q7Z2ccsI+BhCRlKyOUqGC1bP58ksrNHjRRdZ97sJRqZIl6q9fbzOQ/vkn7IhcEmqc+YaIFAVahhSLy6R7d5g2zVYyOeooWLYs7Ij2TocOdiI/YYJNBHMuv3JqhJUQkYHAESLSK+slUQHGW6NG8NZbdqaWkRy+bBn88EOoYRVKTZtaz+Ts2XDJJWFH45KFiFwtIhuApiLyV3DZAPyCla1wBcAxx1jKwYYN1hD76quwI9o711xjsyWHD7eTeefyI6dG2FCgDbsvWZRx6R73yBJIBE48EWrVstsXX2yJ/P/9r9eESbS+feHyy+GBB+Dxx8OOxiUDVf0/VS0H3K6q+waXcqpaWVW9f7sAadkSZs2yhPZjjoEbbrBC2kWK2M8JE0IOMA+KFLHZn1WqwAcfhB2NS1bRVMw/S1ULTF2wRCS1rl4NV165K0/pjjtsXbRUqP6cDLZvt9lUs2bZpVWrsCNyYcslMb9FTs8NZncXGIUtMT+S5cttAs7atbtvL13aimwPGBBKWPmyYUPyz/p08bW3FfOfFpELReTF4DJcRJK89F7Oata0M7JZs+wsp18/X+cwkYoVs8XXq1eHXr2snIhzObgzuDwAfAqMBcYF1+8LMS6XjbS0yAVcN22CkSMTHs5eyWiAzZwJTz4ZaiguCUXTCHsQS259MLi0AB6KZ1AFxVFH2Vph48fbmmhgeQzr1oUbV2FQubIl6v/2mw1b1KmTnEMWLv5UtYOqdgBWAC1UNV1VWwLNgSRPAU9d2c2SXLkysXHEyl13wZAhMHdu2JG4ZBJNI6yVqg5U1XeDyyCg0AwQFS0KgwZZLRhVm27doAGMGWPDZi5+mjWzz/6bb+zArAorVtiBzhtiLoJDVHVBxg1VXQg0Cy8cl5PatfO2vaB7/HErDn7KKfDnn2FH45JFNI2wHSJyUMYNETmQ3Rf0LjRE4LnnoEULmxHTvLnN9gGrMfbSS3D99ZasuXlzuLGmijfe2HNbMg5ZuIRYLCKPikh7ETlGRMYBi8MOykU2evSuFUwy69078bHEQuXK9v9h5UoYPNjrh7noRNMIuxx4T0Rmisj7wLvApfENq+Bq3BhmzIDJk21dyo4dbWHwVq3g3nvtMRMm2LqIKwpUne7klN3QRLIOWbi4GgQsAi4CRgBfB9tcATRggCXh16ljJ7i1asGBB9pKJq+/HnZ0+dO2rS3BNnmylT1yLjdRLVsUVM8/GFuL7RtV3RrvwLJTkGYWbd5siZhffmkHkTPPtMZX6dK2FNLcuZbX5PIvLS1yY7Z2bW/kFiY5zS5KNgXpGFbQrF8PnTtb7u2UKdC1a9gR5Z2qjYr06mV5rM7ldPyKdgHvrUCSl9aLvX32sWUr9t8f3n7bEsjLlrUKyiNG2Bpp//wDJUqEHWnyGj3acsA2bdp9e8OGsHOnH+QciMjzqnpKpoW8d+MLeCePChVg+nQ49lg46STrTTr++LCjyhsR6NPHrq9YYbMnK1UKNyZXcPka8DFQpAiUKmVnbkOHWhXlCy7wnIBYyKgXNHKkDUHWqmWrHEybBqefbsmw3sgt9IK1LvJeRFpExgfP+0VVmwTbnsN6/sGKVa9X1WYRnrsc2IDlyG5PlZ66sFWsaCkfmRtiXbqEHVXebdxotdBatLD3sXIlpKdDt2424cs5yCUnTEytRAWTrE4+2fIA2rWDOXNg2DCbPbnPPrBlS9jRJb8BA6y4486ddmY5dap93hMnQo8evqpBYaeqa4KrnYASERbxzskTwG7/4lW1r6o2CxpeLwGTc3h+h+Cx3gCLoUqVbHShYUPo2dOWlks2ZcrY7O6pU+Gee6yHbPRo+z+xYUPY0bmCIsdGmFrC2MuJCSV5jRoFCxZA69a2DMeiRXDAAdY423ffsKNLPSK2osGjj9oZc6dOVk/MFXppwCMi8p2IPB8Ulm6W0xNU9QPg90j3iYgApwCTYh2oy13mhtiJJ9owZbKZPdtK7XzzDfznP/Dxx1C3Lvzvf2FH5gqKaDJqPhGRQlMXLD8qVICPPrIGWKVKNhT5/fcwbpzdv2iR5Qh45ffYOussS4CdP9/OLletCjsiFyZV/a+qdgSaALOxmd17UzqzHbBWVZdmt0tguojMFZEhe7Efl43Kla0hdsgh1hB7++2wI4reunU2aWvGDJsB2rev/Q+45BI7bjkH0TXCOmANse9E5CsRWSAinqSfRdGiNtZ/1VVW5yZzntLChTbl+tBD4c03w4sxFWUMVfz4IxxxBCz2qlCFlohcKyJvAtOBesBlQM29eMn+5NwLdqSqtgCOB4aJyNE5xDZEROaIyJxff/11L0IqfDIaYvXrwwknwDvvhB1RdDLWGt53XytjdMwxdpK+Y4dPKHK7RPOncDxwINAROAFLYj0hnkGlmr59LVesWjWbcn3hhV7MNZaOOQY++MAK5h51FHz6adgRuZD0AioDb2N5XK9myhfLExEpFrzec9k9RlV/Cn7+AkwBWufw2LHBckrpVapUyU9Ihdp++1njK6Mh9u67YUeUu8qVrX7kAw9YYe9nnrGT9ZtusqFJ5yCKRliQ2FoL6Bhc3xTN89zumjSBzz6Diy+2YoT33x92RKnlsMNsSLhiRSugm4yJvG7vBL1SnYDPgM7AAhGZnc+XOxaribg60p0iUkZEymVcB44DFuZzXy4KVapYQ+ygg6B7912rlRRkDz8M991nM+Yvu8yOU7NmwSuvePqEM7k2pkTkeuBK4OpgU3HgmXgGlapKlbJFXmfOhIuCSfWrVtmsP7f3DjzQEmEbNLCD9MSJYUfkEklEmgCnAQOBvsBqbIWPnJ4zCfgYOFhEVovIWcFd/cgyFCkiNURkanCzGjBbRL7EGn1vqOq0mL0ZF1FGQ6xuXUv/mDkz7IhyVq+epUgMHmyx33uvlddZtw46dPCGmIuiYr6IzAeaA/NUtXmw7auwCiCmUrXpDRush+yQQ+CJJ6B69bAjSg1//mm5YjNn2kHvwgvDjsjtrWgq5ovIG8AHwCzgc1XdlpDg8iiVjmFhWbvWeryXL7c826OzzcYrmD791HrH9tvPjlO1vBBUSsvp+BXNsOI/QakKDV6sTCyDK8zKloVrrrHu6UMPtS5qt/fKl7cD80knWY/jtdd64dzCQFW7qer/VPWjgtoAc7FRrZrlhdWpY3m2s2aFHVHeHH64ldxYt85WBHGFVzSNsOdF5BGggoicgyW9jotvWIWDCJx7LsybZ2sh9uxpFfe3hrYyZ+ooVQpeeAHOOccKJJ57LmzfHnZULh4yZmxndwk7PhcfGQ2xWrVsaaPZ+c3+C8nhh9vQ6qOPhh2JC1Ouyxap6h0i0hn4C2gA/FdVZ8Q9skLkkEPgk0/guuusQVa8eNgRpYaiReGRR6BqVWuIrVtneWKlSoUdmYuxjOWKhgU/nw5+DsAmErkUtf/+1hDr0MEaYtOmwZFHhh1V9NKDAaodO6y80fDhdkLuCo9oZzkuwPIsPgiuuxgrUcKqKL/5ptWQ+eknuPtuT9rfWyJw882WGzZliq1B9+efYUflYinT8kRHquoVqroguFwFeDGAFFe9us2UrFHDvt8ffRR2RHn33XdW3Lt9e1tj0hUe0cyOPBub/dML6IMVbh0c78AKq2JB3+STT1pl5c6dYXXESfIuLy68ECZMgA8/tAPd2rVhR+TioIyIHJVxQ0SOADyHtRDIaIhVr24NsY8/DjuivGnQwCrr//67HZ9W5LbiqUsZ0fSEXQ40V9UzVXUg0BIrWeHi6Kqr4LHHbBZN06a+zEUsnHoqvPYaLFliQxbffx92RC7GzgIeEJHlIrIceBDwE8ZCokYNa4hVq2bFUD/5JOyI8qZVK1sZ4I8/bHjVG2KFQzSNsNVA5jXfNwC5VjcRkfEi8ouIRCxgKCLtReRPEZkfXP4bXciFg4jVlvniC6sS3afPrrUoXf516WI5JH/8YcsczZ8fdkQuVlR1rqoeBjQFDlPVZqo6L+y4XOIccIA1xKpWtYZYsq2ekZ5uPWL//OM1xAqLbBPzReSS4OqPwKci8gpWpuJEbHgyN08AY4CncnjMLFXtnsP9hV79+jbr58474eSTbdv27buGLcHyxnwtsugdfrh9pscdZ0sevfqq/XTJTURKAr2BNKCYBIv3qeqNIYblEqxmTWuItW9v3/EZM6B1tgtKFTzp6ZYjVrKk3d64Ecr4oHrKyulfd7ng8h3wMkGdMOAVINf12FT1A+D3vYzPYbMlr7oKKlSwM6SjjrJk8zvusJk0xYrZF9cXB49ew4aWwFujhp0xv/xy2BG5GHgFO0ncDmzMdHGFTK1a1hCrXNkaYp9/HnZEeZPRABs3zmpILl8eajgujrLtCVPVUQnYf9tg2Y+fgMtUdVGkB4nIEGAIQO1CPn9361ZbsuO666zY6/PP20HmzTdh0CB47jnv1YlWrVrWI9atG/TuDWPHwlln5f48V2DVVNUuYQfhCobata0affv2NsHp7bd3lYRIFi1bwvr19h5mzoS0tHDjcbEXzezIdBGZIiLzYlwAcR5QJ8jhuB/rbYtIVceqarqqplepUiUGu05e5crB449bAwygf39riHXvbiUubr893PiSTeXKVjCxc2c4+2y49Vavrp/EPhKRQ8MOwhUctWtbj1jFivYdnzs37IjypkULazz+9Zc1xLxHLPVEk0k0AXgcy7U4IdNlr6jqX6r6d3B9KlBcRPbb29ctDH79FfbdF776Cho3tkKkW7dC27bwzTdhR5d8ypSxvLBTT4Wrr7bSIF6fLSkdBcwVkW+Dk8UFXjHf1aljDbHy5a0hdvPN1qNUpIj9nDAh7AhzlrUhtmFDrk9xSSTXivnAr6r6aqx3LCL7A2tVVUWkNdYg/C3W+0lFVatabtiOHfD++1YJvmRJ+6LWrRt2dMmpRAl4+mlbUPeee+Czz6w+26pVdjY9ejQMGBB2lC4Xx4cdgCuY0tKsIdaqlaVyZFixYtfajQX5+53REPvoIxsNcakjmkbY9SLyKPAO8O+qhqo6OacnicgkoD2wn4isBq4HigfPfRgr/HqeiGwHNgP9goXCXS5KloTLLrPZkg8/bImbL7wAl15qS/K88w506hR2lMmnSBFrgK1ZY59nhmQ5UBd2QdV8RKQq4ItTud3Urbsr4T2zTZtg5MiC/91u0cIuYKU3qlSBAw8MNya396JphA0CDsEaUBmDNArk2AhT1f653D8GK2Hh8uGKK+yM6PTTrZHQqhU89JDlhB13HNxyiz0mmKXvoiRivWBZJcuBujATkR7AnUAN4BegDrAYaBxmXK7gWJPNvP5kWipo2zbo189GQmbO9IZYsosmJ+ywICl+oKoOCi5ehTpkInD++Vb9fetWm+V35pl2hnTyyVbSondvXycxP7I7ICfTgbqQugloAyxR1bpAJ+DDcENyBUl2k+uTadJ98eIwebLVD2vf3lf+SHbRNMI+EZFGcY/ExUTZsjBpki3+/eGHVhne5U12B+TSpeHvvxMbi8uTbar6G1BERIqo6ntAs5BjcgXI6NH2Pc5MxCbjJJPmzS3tJKMh9t13YUfk8iuaRthRwHyfcZQ8RGDECFi2zBJSd+60bmsXnUgH6mLFbEgyPd1mpboCab2IlAU+ACaIyL1Y4VbnAEsnGDvWZkyKwP77Wx7tmDHw889hR5c3zZrtaojdc0/Y0bj8iqYR1gWoDxyHlaboTgxKVLj4y5hF8/TTtiDsiBGWT+BylvVAXacOPPGEHfD++suWQHn4Ya8nVgCdCGwCLgamYat9+LHK7WbAAKu3tXOn5Yi9/Tb89BMce6zNNE8mzZpZCspdd4UdicuvaBphms3FJYlTT7UG2L33WmMsu+RUt0vmA/Xy5Xa7Qwdb8Lt9ezjvPOjb13PuChJV3aiqO1V1O/AGcH8wPOlcto44wuoELltmk5rWrw87orypV8/yxNautSXYli0LOyKXF9E0wt4AXg9+vgN8D/gqhUmkeHHLEZs0Cb74wvIJZs8OO6rkVLUqTJ1qlfUnT7Yp48m2Ll2qEZE2IjJTRCaLSHMRWQgsBNaKiC9j5HLVsaN9nxcuhOOPT86CqL/8YisCdOhga0727m3v65Zb/GSxIMu1Eaaqh6pq0+BnfaA14P/Ck1C/flZ+oXJl2O6ZMvlWpAhceSV88IF9jkceaY1cH54MzRjgFmAS8C5wtqruDxwN/F9OTxSR8SLyS9Bwy9h2g4j8KCLzg0vXbJ7bJciVXSYiV8Xu7bgwdO0Kzz5rJ1U9esDmzWFHlDeHHmopE7//bjPnW7e249SiRdCunaVSuIInmp6w3ajqPKBVHGJxCdC4sSWWt29vt198MTnP+gqCI46wnsWuXW121Yknwm8++BWGYqo6XVVfAH5W1U8AVDWaRbyewPJes7pbVZsFl6lZ7xSRosADWJX+RkB/n0We/Hr1gqeespVIevWy8j/JpFYtKFrU8oHvv9+GKp95Bho0gMceCzs6F0k0C3hfkulymYhMBH5NQGwuTooWtZ/Ll9sC4Icf7mtO5lelSjBlCtx3H7z1liXK+lBvwmVe6TNr/0WO/ZOq+gHwez722RpYpqrfq+o/wLPYxACX5E491Ybzpk2z0YNkmsz0+edWuDujiGuZMja5qG9fa1i6gieanrBymS4lsdwwP9ikgLQ0azisW2df3JdeCjui5CQCw4fbum4lS1ov4y23+CLgCXSYiPwlIhuApsH1jNuH5vM1LwhK8owXkYoR7j8AWJXp9upgm0sBZ51lJ1YvvwxnnGHV6ZNB1ap2ct2kiTW69t/fevNee83ucwVPNDlhozJdRqvqBFXdkojgXPx17Ajz5tkwZZ8+tjSPy5+WLe2zPPlk+xz/85/kqz2UjFS1qKruq6rlVLVYcD3jdvF8vORDwEFYodc12FJIWUVaECzbXjcRGSIic0Rkzq+/+kBCMhg+3CbgPPssnHNOcpxUNWtmOb+33LKr4fjf/1qZonXr4J9/Qg3PRRDNcGQDERkrItNF5N2MSyKCc4lRs6adNZ1/PtSoEXY0yW3ffWHiRBvOmD3bDopvvx12VC4vVHWtqu5Q1Z3AOGzoMavVQK1Mt2sCP+XwmmOD5d/Sq1SpEtuAXdxceSVcdx08/jhceGHBn3wjYiMab71l9Q2bN4fx46FbN0ub8BJFBU80C3i/ADwMPAokSaesy6uSJeGBB3bdfu01qFIF2rQJL6ZkJQJnn22fXd++Vnvommvghhus8r4r2ESkuqpm/Ks6CSt3kdXnQH0RqQv8CPQDTk1QiC6BRo2y1TLuvNNW0vjf/+w7XlDVqgWzZtm6wn/8YSeCJUvC88/DoEHWY//KK5aC4sIXzb+E7ar6UNwjcQXGzp3Whb1okZVeOP/8gn3QKaiaNLGSIBdeaEshvf++1WqrWTPsyFwGEZkEtAf2E5HVwPVAexFphg0vLgfODR5bA3hUVbuq6nYRuQB4CygKjFfVRYl/By7eROD2260hdvvtlux+/fVhR5W7Bg12v33KKdCwoeW4lS0bTkxuT6K59K+KyA3AL8AU4N8Ju6qanxlFey09PV3nzJkTxq4LlT/+gNNPhzfegNNOg0ce2XM9RRe9CRNg6FA7I33iCejePeyIkouIzFXV9LDjiAU/hiWnnTth8GB48km47Ta4/PKwI8ofVWtYqlquWL9+UKJE2FGltpyOX9HMjhwIXA58BMwNLn4ESXEVK9pSHjfdZA2Itm2tntjatbb80ahRNhuwoOdIFBQDBlg161q14IQT4NJLPUnWuWRSpIjV2jrlFLjiit3TN5JJxqjGJ5/AwIGeJxa2aGZH1o1wOTARwblwFSkC114Lb75pM/0+/BAaNbL1E7dutW7tQYOSY9ZQQdCgAXz8MQwbZgvuHnUUfP992FE556JVtKgVP+3RAy64wBL2k1XbtvDcc3Y8b9nSjk0u8bJthInIUTk9UUT2FZEmsQ/JFTT/+Y/1iA0caMmptWvb7a++ggULbM01F51SpWDMGJvBtGSJzV568cWwo3LORat4cWu8HHec1RN79tmwI8q/U06xHrF99oFjjrGhVpdYOfWE9RaRj0TkvyLSTURai8jRIjJYRJ7GFvXeJ0FxupDNnm0VmL//Hm680Ra53bzZenW8yGve9eplZ6ANG1pdsfPPt7PqtDTrgUxLs2Fg51zBU6qUlXxo185yZl9+OeyI8u/QQ63S/rHHWo0xl1jZzo5U1YuDStF9gJOB6tiSIIuBR1TVF2cpRIoUsWHHG2+0vKYLLrApzqed5jMn8ystzaaSjxxps64efnhXjt2KFTBkiF0fMCC0EJ1z2ShdGl5/HTp3tlI0r75qowbJqFIlm4SVcSx//nlLl/C6kfGXY06Yqv6hquNU9UxV/Y+q9lTVq70BVvgceSSsWgXvvmvVoz/4wPLCbr7ZhtRc/hQvbjOtqlbdc5LDpk2+goFzBVm5cpYz26gR9OxpazYmq4wG2O+/2wlgerrniSVCNLMjnaNECRseO+UUO+ubNMkaDYceChddFHZ0yS+7lWxWrEhsHM65vKlYEaZPh7p1rfRMsjdcKlWyHvrSpS1PbNy4sCNKbd4Ic1Hr0AGWLrXcgQMOgKlT4csvrYG2bp0l7q9bF3aUyal27cjbixWzxH0vBeJcwVWlCrzzji2YffzxtoZsMsvIE+vY0XrFzj/fj0Hx4o0wlycVK9pw5OWX23IYGebMsRlD6enwxRehhZe0Ro/esxhuiRJ2UD/5ZGjd2g7yzrmCqXp1+46WL28zJxcl+foJFStantjVV9tJouf+xkc0C3iXFpHrRGRccLu+iHi9b7ebLl1sBuWOHXDEET6zL68GDICxY23RXRH7OX48LF9uFfZ/+cV6IDt3tgavc67gqVPHGmIlSkCnTjZykMyKFoVbboGrrrLb776b/MOtBU00PWGPY8sVtQ1urwZujltELmmlp1tV+MMP37XUkYvegAHW6Nq5034OGGAHwYEDrabYPfdYWYtWrax37Ntvw43XObenevXg7bfthLRTJ/supwJVa4wdc4ydMLrYiKYRdpCq3gZsA1DVzYB3TLqIqlaFGTNsgdtevcKOJnWULGkTIL77zj7badOgcWPL11i9OuzonHOZNWpkx8ENG+yktGbN5K//J2LHnY4d4dxz7bJ1a+7PczmLphH2j4jsAyiAiBxEpoW8ncuqeHG44QZLVt22bde6iW7v7buvfbbffWe12p54AurXt7Xsfv897OiccxmaNYMRIyyV4McfrScpo/5fsjbEMuqJXX219YZ16GANTZd/0TTCrgemAbVEZALwDnBFXKNyKWP1assVO/JIeOqpsKNJHVWr2vDkkiVWMuSOO2xFg//7P9i4MezonHMQeW3JZK//l5En9sIL1htftqylULzwgqVJ9O5tjcwdO8KONDlEs4D3DKAXcCYwCUhX1ZnxDculirp1LZH8yCMtt+nCC613zMVGWpr1hn31leVqXHON5aQ89JB/zs6FbeXKvG1PJn36WA0xEejfHy69FLp1g5NOgvvvt7xgL2uRu2hmR54EbFfVN1T1dWC7iPSMe2QuZVSpAm+9BZdcYl/Os88OO6LU06QJvPIKfPihDU+ef76tS/nss3aW6pxLvOzq/5UrB9u3JzaWePniC6sZuWoVfPSR9YbNnGm10mbNCju6gi+q4UhV/TPjhqqux4YonYtasWJw553WTX3JJWFHk7qOOALef9/yNsqUsTPUli0todbPSp1LrEj1/4oWhb/+snIzP/8cTlyx9M47cOaZlic2bhy0aWOFXk8+2WsbRiOaRlikx2S78LdzOTn1VDjsMLs+YoTVwnKxJQJdu9oZ6oQJdsA//nhLovUaP84lTqT6f08+aSkEn35qyfvvvRd2lHunUiVYs8byxF5+2VZNOfpo65WvVCns6Aq+aBphc0TkLhE5SEQOFJG7AZ/r5vbK1q2wcCGcdRYMGwb//BN2RKmnSBFr9C5eDGPGwDffWE9Zz55WzXvCBMspS/ap884VZJHq/w0cCJ99BhUqWBHm0aOTN22gd2/rfX/zTTjxRKtfOHSo5an26wcLFsDff4cdZcEVTSNsOPAP8BzwArAFGBbPoFzqK1nShsguuwwefNBqz6RC13xBVKKENXSXLYObb7Yz70MPtX8EK1akxtR555JNkyY2aalvX7j2WktqT8a1d8uXhylTrG5Y8+bWC/bKK5aPWrmyNcwOPhiefjp5G5rxJJpkiSLp6ek6x9dtSSnPPguDB1sS68KFlj/m4ue336ycxV9/7XlfnToFs8K3iMxV1fSw44gFP4a5zFRtdZGLLrLSM889Zz3WyWb7dhti3bnT8sKKF7ftH31k723OHFsD99577f7CJKfjVzSzIxuIyFgRmS4i72ZcYh+mK6z69bNcpTvv9AZYIlSunH2BxRUrbPjSOZcYIjZ89/HH1mt9zDFw113JN5GmWDErRdSu3a4GGFiD8tNPLQ9u1Spo29YaZs5EMxz5AvAFcC1weaaLczFz2GHWHQ9W48qXxIiv7KbOgy25cuihcOONlkeWykRkvIj8IiILM227XUS+EZGvRGSKiFTI5rnLRWSBiMwXEe/acnulRQtbWeSEE6zmVq9esH592FHFRpEiu9bAfeABa4iBNcY2bQo3trBF0wjbrqoPqepnqjo34xL3yFyh9dNPu5bE+OknS/QcPdrymRYtCju61BBp6nzp0lbH7f77oWJFWx6pYUNo2tQ++yVLQgk13p4AumTZNgNooqpNgSXA1Tk8v4OqNkuVoVIXrgoV4KWXrCfs9dd3NcxSRdmyVsNQBP78E7p0gUMOsZSUZOv5i5VoGmGvicj5IlJdRCplXOIemSu0brrJ8iK+/NK+oG3aWMLqH39Ap05w661hR5j8Ik2dHzvW1qO84AL44ANbcuq++yzx9rrrLLm2WTNrwC1dGvY7iA1V/QD4Pcu26aqaUUrzE6BmwgNzhZYIXHyxfQe3bbPhvIceSr1GSvny8Nprlh7Rv78NY6ZSgzNauSbmi8gPETarqh4Yn5By5kmthcebb0L37pZfsHQp1Kpl9WiaNbOKzA0bhh1h4bF6tZ2hP//8rnyOZs3glFOsKGO9evHdfzwT80UkDXhdVZtEuO814DlVfSbCfT8AfwAKPKKqY3PYxxBgCEDt2rVbrlixIkbRu1S2bh2ccYYdC/v3twT+cuXCjiq2duywNTZHjrT3u2QJHHRQ2FHF1l4l5qtq3QiXUBpgrnD55hs7AI0fbw0wsANQ//42JdolTs2aNsPpww9t3bu774Z99rG1KuvXt6r8t94K330XdqSxIyIjge1AdoU7jlTVFsDxwDAROTq711LVsaqarqrpVapUiUO0LhXtt58NS44ebaMDrVpZ3a1UUrSoLWW3ZImVschogL31FmzZEm5siRDNcCQi0kREThGRMzIu8Q7MuaJF7XLqqXZ79mxLKJ8/37rsXThq1bLVDj76yGZT3nmn9VZefbX1iKWnw223wQ+R+tCThIgMBLoDAzSb4QJV/Sn4+QswBWiduAhdYVGkiJ3svPOO5VEdfrjNNEw15cvvOtYvX26rfjRqZCfcqTYUm1k0JSquB+4PLh2A24AecY7LOU46CSZPtiKjYAuBN2xo1ZmfecaX4CkIate2tUA/+cQOnHfcYQ3nK6+0WmStWsHtt++qPZYMVfpFpAtwJdBDVSPO3RKRMiJSLuM6cBywMNJjnYuF9u1tKbI2bWDQIFttJFVnFqalWTHv0qVtlminTlaBPxVF0xPWB+gE/Kyqg4DDgJJxjco5rMfl9tutwN/gwXZ98WK7vn69JayOGBF2lC5DnTo2tf7TT+H77603DOCKK6BuXeslGzSoYFXpF5FJwMfAwSKyWkTOAsYA5YAZQfmJh4PH1hCRqcFTqwGzReRL4DPgDVWdFsJbcIXI/vvDjBlWYX/8eGuQfftt2FHFR+fONurxwAM2SeuII/Ys2aFqJ3i//hpCgDESTWL+Z6raWkTmYj1hG4CFqto4EQFm5Yn5hc/q1bYwrKotgVG7thUbvekmy1W68EK7b+dO64VxBcv338OLL9oMy0hrhEZTpd8r5ju3u2nT4LTTrJ7io4/a8kep6vffbeSjWzc71r/4Iuy7r52E//mn9QgedRSMGwfVq4cd7Z72KjEfW8C7AjAOW7h7Hnbm51xC1KxpZROGD99VZLRcOetpufBCuz1hgvWYffJJeHG6yA480HrDtm2LfP/KlYmNx7lU0KWLDU82bWqrjgwblroFritV2lXM+9NPbVZ2t27W8Fy92mbNH3YY9OiRfPlj0cyOPF9V16vqw0BnYGAwLOlcgbHvvrYAeNu2liuRzN3TqSq7Kv05Ve93zmWvVi0r13PppfDgg7ZsUDJPiIlGmzZWFqd8eRg1Co4/3oYrb7oJ/v47+U7Eo50d2VREegAtgHoi0iu+YTmXNz16WEmLyy+Hp56CBg1g4sSwo3KZZVelf/TocOJxLhUUL24TYqZMsUlMLVrYZJmCPgFmb5QqBf/7n5XK+fRT6N3besAaNky+QtLRzI4cD4wHegMnBJfu0Twv65psWe4XEblPRJYFa7S1yGPszu0mY4jyyy+heXOrYwXJ1z2dqrKr0j9gQNiROZf8evaEefNsybG77y5YE2BirXVrK2A7YoSlM7z8suWFvf++pT4cc4zlyf35Z9iR5i6axPyvVbVRnl/YChf+DTyVTSXqrsBwoCtwOHCvqh6e2+t6UquLRsaftYj1tCxfDv/3f1b80CUfT8x3Ljp16kTOs4xmAkyy2LDB6qUdfbQVev3tNxuabNzYZmI//bSNjJQqZaMkV15pPYRh2dvE/I9FJM+NsEhrsmVxItZAU1X9BKggIgVwXoNLRiK7Crpu3WrFDRs0gIcftmUynHMuFa1aFXl7Kq2UVa6cra1ZvryVvRk1CgYOtGWdrrkGvv4aPvsMzjkH3n3XGmlgn8GcOQVrdCSaRtiTWEPs22DYcIGIxKJs2gFA5j+X1cE252LqxhttiLJZMzjvPOvKnj8/7Kiccy72spvoUrQovPpqYmOJp/32s7ywBQts9Y5zz7UcOLAT8Fat4L774KefoGNH2z5mjG1v3NhGRgrCzOxoGmHjgdOBLuzKBzshBvuOtPBMxPapiAwRkTkiMudXn/bm8qFRI1v249lnbeak94Y551JRpAkwJUta/awTT7RLKvWK5aZ48V31I6+5xnrLKle262lp4Ze1iKYRtlJVX1XVH1R1RcYlBvteDdTKdLsm8FOkB/rity4WRKyuzHff2YLTYFO7fYjSOZcqIk2AeeyxXatYvP22nZTedlv2tftSVcWKNklh1iz7P3DDDdCkya7UlauusiK427cnLqZoEvMfBCoArwH/loJT1cm5vrhIGvB6Non53YAL2JWYf5+q5roArie1ulj55x+rMfPuu9Yoe/BBG6oEOzh99ZXVH6tfP9w4nSfmOxcrK1daketXXrEGyEMPWbX5wm7tWitx8ccftjzUqafC6adbEdiMRtqmTbZu8SefQI0aVpOybt3cX3tvE/P3wRpfx5G3EhV7rMkmIkNFZGjwkKnA98AyrBr/+VHE4lzMlChhZ4WTJlneQJs2lsj55JN29njmmbZo7hFHpM6sIudc4Va7tpV0eOUV+OsvaNfOGhPr1oUdWbiqVbPK+y+9ZP8L7r/fSh1NmWL3//GHFQN/9VX7uXmznbS/887e7TfHnjARKQrcqqqX791uYsfPIl08bNhgM2zGjYNixWDqVJsCvWMH3HWXFYD98stdiZ8usbwnzLnY27jRJi7ddZfNNLztNjv59OOczah87jk44wwoWxb+8x9YuNAS+nv1sm3Tplmv4jff5PyZ5bsnTFV3YFXynUtp5cpZ1enTTrM12Fq3ti/Xhx/CZZfZYz76KNwYnXMulsqUsRmGX3xhQ3FnnWWFThdGLLFeuFSuDOefb40tsIYWWCmMLl3s+n/+A1u2WH5ZfkXT3p0vIq+KyOki0ivjkv9dOldw/fmnLTi9ejW8+KIdkI4+2r6IP/8cdnTOORd7TZpYtfnHHoPFi20Y7sorrafMmYwVPmbNsoR+sNzhjRutMZtf0TTCKgG/AR3JQ06Yc8moXTt44QWoWdPWYbvvPptV9MkntkDs3pzxOOdcQVWkCAwebD0+Z5xhQ5ONGqVWbbG9ccYZcPPNlqh/7LFW1uK226wSf40a+X/dYrk9QFUH5f/lnUsup59uZzv9+lnXfKVKlivRrJklsR4QlBP+7js7MyqW6zfIOeeSx377WY/YoEEwdOiu2mL33Zd9IdjCYPBgW5vzwAOhQwdrrIrA66/v3etGs4B3TRGZEizGvVZEXhKRmnu3W+cKptKlYeZM646/5RYr7nrTTfZFmzXL1iLbts3OhA45xBaJ/eefsKN2zrnYOuooyxW77TaYMcNyxm6/vfDVFstQpIiVMfrkEzjpJKu+/8UXUKtW7s/N8XWjeMzjwKtADWxZodeCbc6lpHLlrGjfzJnw2mvQu/euOjFg1ZfvvhsqVLCSFvXq2XTmzZvDitg552KveHG4/HJbi/HYY+GKK2z47cMPw44sPAcdBP37W65wLGaRRvMSVVT1cVXdHlyeALxsvSu0ihSBnj3h889tinJams2knD497Miccy726tSxumIvv2yTl446Cs4+e9fC2C7/ommErROR00SkaHA5DUvUd65QE7Epyh98AB9/DCcEK6recQdcf70foJxzqeXEE61X7PLLraj1wQfD44/Dzp1hR5a8ommEDQZOAX4G1gB9gm3OuUCbNru6pr/+2gog1qljBysvbeGcSxVly1qe2Lx5lhc7eLCtLPK//9moQJEi9nPChJADTRLZNsJE5H/B1cNVtYeqVlHVqqraM0YLeDuXksaPhwUL7KzxrrvsgPToo2FH5SIRkfHBpKOFmbZVEpEZIrI0+Fkxm+d2EZFvRWSZiFyVuKidC9+hh9oowGOPWYL6VVfBihVWumHFClso2xtiucupJ6yriBQHrk5UMM6liiZN7AD07bdW9qJpU9u+ahUsXRpubG43TwBdsmy7CnhHVesD7wS3dxMs6fYAcDzQCOgvIo3iG6pzBUtGbbEKFfa8b9MmGDky4SElnZwaYdOAdUBTEflLRDZk/pmg+JxLavXq2XqUrVvb7Ztusi78/v2ttyyzH36A55+3mUc5LOnqYkhVPwB+z7L5RODJ4PqTQM8IT20NLFPV71X1H+DZ4HnOFTo//hh5+4oVvgRSbrJthKnq5apaHnhDVfdV1XKZfyYwRudSxk032VqUr79uvWMnngiffmrrVbZqZY2wIUMgPR1++insaAutaqq6BiD4WTXCYw4AVmW6vTrY5lyhk10RVxEbtuzcGd580xP4I8kxMT/oct+LVZGcc5lVq2YJrCtW2Ppjs2bZGm3z5llP2Isv2plj9+7Wze8KLImwLdv+SxEZIiJzRGTOr7/+GsewnEu80aOt0HVmpUtbcdNbbrHJSl27QuPG8MgjNlTpTI6NMFXdAWwSkfIJise5QqFSJStjsWIFbNkC//0vfPml1d+ZMAGGD4fPPvOZlSFZKyLVAYKfv0R4zGogc63smkC2fZeqOlZV01U1vUoVL7PoUsuAAbbcW5061vuVsdj10KFw9dV2gvnMM7bQ9dCh1nM2cqT39kN0JSq2AAtE5DERuS/jEu/AnCsMypWDrVutUbZ+veVWnH66LYWxeTNMngzbt4cdZaHzKjAwuD4QeCXCYz4H6otIXREpAfQLnudcoTRgACxfbkOOy5fb7QwlStjtzz+3GZXt2sH//Z/NHD/9dBsJKKyiaYS9AVwHfADMzXRxzsVAly5WwqJ7d1sYfPZsy6HYts3qjWUsmbRkSeFdty1eRGQS8DFwsIisFpGzgFuBziKyFOgc3EZEaojIVABV3Q5cALwFLAaeV9VFYbwH55KFiDXApkyxWeLnnWdV+Fu2tFpjr7wCO3aEHWViiUYxDUtE9gFqq+q38Q8pZ+np6Tpnzpyww3AuZn77zdYhq18fevSAb76xKtQTJtiZYoMGdnaZlma5FH362OzKdu1is3ZZMhCRuaqaHnYcseDHMOd2Wb/eao3ddx+sXGlrM150EQwaZIVhU0FOx69cD+EicgIwHytZgYg0ExHvdncuRipXthmSxx0H778PxYrBJ5/Y7QYN7DGqMGaM9ZA9/bSdNdaqBRMnhhq6c87tlQoV4NJLbRTgueegShVbi7dmTVswfNWqXF8iqUVzHn0DVhNnPYCqzgfqxi0i5wqhsmXh/PNtPbZbbrGzwcyKFrVeskmT4Jdf7GerVpZLBtZ7NnKk1+RxziWnYsXglFNsHd6PP7Z1ee+6C+rWhX797EQ1FUXTCNuuqn9m2ealJJ0LSZkydlB6+WXLJwP46CO49VaryXPooTZl/LvvQg3TOefypU0b6xX77jsYMcJqjLVpA0ccYWV8MiYrZaRsJPN6ldE0whaKyKlAURGpLyL3Ax/FOS7nXB4MHmzTvceMgfLl4dprrTGWUY9n69Y9n6NqZ5dPPglz5niVfudcwVKnDtxxB6xeDffeC2vXwskn20okAwbAOeck/3qV0TTChgONga3AROBPYEQcY3LO5UO1alZ5f/ZsOyBNmrSrgOLRR1se2SOPwLp18Ndf0KkTnHYavP22DQN06QJ//x3qW3DOuT2UK2d5YkuW2MzKOnUsH3bz5t0fl4zrVWbbCBORUiIyArgNWAm0VdVWqnqtqm5JVIDOubyrXduWRAKbWdmtm51FDh0K1atbL1nx4rbA+NNP23Tx/faD664LN27nnMtO0aLQs6dNYMrOihV2opkscuoJexJIBxYAxwN3JCQi51xMFSliFfm//hq++AIuucRmHHXubPetXGnDmH36WIPMOecKujp1sr+valWbuHTddTYyUJALXufUCGukqqep6iNAH+DoBMXknIsDEWjWzBL4ixaFs86y7bNnW/Jrr15Ws+yII6yh5kuKFFzxSEguGxRlWrFiBS1btqRZs2Y0btyYhx9++N/HDBgwgIMPPpgmTZowePBgtuVQPfiJJ56gSpUqNGvWjEMOOYS77757t/u/+OILRIS33nprt+0iwqWXXvrv7TvuuIMbbrgBgBtuuIEDDjiAZs2aUb9+fXr16sXXX3/972P/+ecfRowYwUEHHUT9+vU58cQTWb169W6vffrpp/97e/v27VSpUoXu3bvn4ZOKjUmToEkT+y42aWK391bZTIW1Vq5cyXHHHUfDhg1p1KgRy5cv3+2xw4cP3+3xkRTk3+Gu9Sq3A1WA7uyzD4waZZcSJWymebt2Vgaod29bSmnFilw/xoTKqRH277crqA7tnEsBIraY7vjxdvvUU61nrH9/q0tWpAg89JBNGQcYN856ye64wxpsvvhuuCZMsATkeCUkV69enY8++oj58+fz6aefcuutt/JT0CIfMGAA33zzDQsWLGDz5s08+uijOb5W3759mT9/Ph9++CGjR49mVaaiT5MmTeKoo45iUpbWR8mSJZk8eTLrshlTuvjii5k/fz5Lly6lb9++dOzYkYxF0a+55ho2bNjAkiVLWLp0KT179qRXr15kFCUvU6YMCxcuZHOQTDRjxgwOOOCA/H1Qe2HSJMtduv9+Wzv2/vvtdiwaYhnOOOMMLr/8chYvXsxnn31G1apV/71vzpw5rF+/PqrXKai/w169NjN2LFStOgM4gH32sWPVf/9rPWAffmgnlS++aDmvn38O555rJy0NG9qJ57Rp4R/PiuVw32Ei8ldwXYB9gtsCqKruG/fonHNxcfvt0KEDfPUVtG0Ls2ZZA2vmTDjwQFseqXhxe+zGjTaM+dJLdrtYMevqnz3bGmzr19uMzIzllXKzY4fN1syYNOB2N2IEzJ+f/f2ffLLnbNdNm6xnc9y4yM9p1gzuuSe6/ZcoUeLf61u3bmXnzp3/3u7ateu/11u3br1bD0VOKleuTL169VizZg21atVCVXnxxReZMWMG7dq1Y8uWLZQqVQqAYsWKMWTIEO6++25Gjx6d4+v27duXN954g4kTJ3LOOefw+OOP88MPP1C0aFEABg0axPjx43n33Xfp1KkTAMcffzxvvPEGffr0YdKkSfTv359Zs2ZF9+HkQfv2e2475RSrB3jTTZZsPmrUrvvKlYPLL7eToXXr7MQns5kzo9/3119/zfbt2+ncuTOwew/Zjh07uPzyy5k4cSJTpkyJ+jUL4u9wwIA+vPXWJBo3tt9h5vUqwQrB9u5tF1WrpzhtGrz1lk1SuvdeKFnSJi516WK1yRo1iv5YFgvZ9oSpalFV3Te4lFPVYpmuewPMuSTWoAEsWACHHWaL57ZqBV9+aQ0w2NUAA2sUfPedJfa/8or9o2jWbNeSST16WA7GCSdY9/+778KGDXvuc9s2uOYae2ylStC8uR0MXd5EKjeS0/b8WLVqFU2bNqVWrVpceeWV1KhRY7f7t23bxtNPP02XjEJ1uVi5ciVbtmyhadOmAHz44YfUrVuXgw46iPbt2zN16tTdHj9s2DAmTJjAn39mLVG5pxYtWvDNN9+wbNkyateuzb777v7vKT09nUWLdi3r2a9fP5599lm2bNnCV199xeGHHx7Ve4ilb7+1E5fMypePXQrAkiVLqFChAr169aJ58+Zcfvnl7AgWZRwzZgw9evSgevXqeXrNZP8dilgP2MUXW0Ps99/t5/nnw48/WtX+Jk1sUtPZZ8MLL8Aff+z5OrFOBcipJ8w5l8IqVbLcr2hVrWoNrh49dt9+1lk2W+njj+H1121bt267rr/wgh3cxoyxxtzcuXage/NNOOMMeO01aN06Nu8pFeTWY5WWFjmvpU6dvPWW5KRWrVp89dVX/PTTT/Ts2ZM+ffpQrVq1f+8///zzOfroo2nXrl2Or/Pcc8/x3nvv8e233zJu3Lh/e0omTZpEv379APuH+vTTT9OrV69/n7fvvvtyxhlncN9997HPPvvkuI+MYSpVRSJ0YWTd3rRpU5YvX86kSZN269mLtZx+Fw0bWi9Yhw67tr33Hgwfbtf322/vfpfbt29n1qxZfPHFF9SuXZu+ffvyxBNPcPzxx/PCCy8wMw8vnqq/w332sZ6v//zHbq9aZSeFb71lQ5iPPWYNrcMP3/W4pUtthnnGEGZGKgCwRy9ctArJ8r/OuXgZONDyyxYv3nV2ecUVdt8ff9gQTKNG8OCD1hv2xBN2MOvWzXI3suT6ulzsSkjepXRp2x5rNWrUoHHjxrsN140aNYpff/2Vu+66K9fn9+3bl0WLFjFr1iwuvfRSfv75Z3bs2MFLL73EjTfeSFpaGsOHD+fNN99kQ5bu0xEjRvDYY4+xcePGHPfxxRdf0LBhQ+rVq8eKFSv2eJ158+bRqFGj3bb16NGDyy67jP79++f6HuJh5Eg7eXnvPftOvPee3Y5VjauaNWvSvHlzDjzwQIoVK0bPnj2ZN28eX3zxBcuWLaNevXqkpaWxadMm6tWrl+NrFZbfYa1au3rA1q2znLJrr7X0iVGjLG3jzDP3zCHb29pk3ghzzsVMxYp2xnh0MJe6fHlrnN14o923bp3lwyxdave3agXLloUXbzIaMMBmedWpY0MsderY7fyeiWe1evXqfxPX//jjDz788EMOPvhgAB599FHeeustJk2aRJEi0f/7aNu2Laeffjr33nsvb7/9NocddhirVq1i+fLlrFixgt69e/Pyyy/v9pxKlSpxyimn8Nhjj2X7ui+99BLTp0+nf//+lClThoEDB3LJJZf8O/T21FNPsWnTJjp27Ljb8wYPHsx///tfDj300KjfQyz172+N5uHDoVQp+zl6tG2PhVatWvHHH3/8m+z+7rvv0qhRI7p168bPP//M8uXLWb58OaVLl2ZZlF/AwvQ7LFbMZomPGmWrivz6q02ayJQeuZuVK/O/L2+EOefipkgROOQQyytThalTLZH/2GPt/nffhSDFxOXBgAGwfLn9U1i+PHYNMIDFixdz+OGHc9hhh3HMMcdw2WWX/fuPbujQoaxdu5a2bdvSrFkzbrzxxqhf98orr+Txxx9n7NixnHTSSbvd17t3byZOnLjHcy699NI9Ztjdfffd/5Y3eOaZZ3j33XepUqUKAP/3f/9HqVKlaNCgAfXr1+eFF15gypQpewxx1axZk4suuijq2OOhf39YuNB6WhYujF0DDKBo0aLccccddOrUiUMPPRRV5Zxzztnr1y2sv8PKlW293uxqk9Wunf/XFk2yBePS09N1zpw5YYfhnMuj66+HN96wGUn168PkyTYc+f77NlyZExGZq6rpiYk0vvwY5lxyyigPk3lIsnTp3Huiczp+eWK+cy4hbrjB1rccMgTWrIEjj7Qk2NwaYM45VxBkNLRGjrQhyNq1bRh5b3qivRHmnEsIEZsOfv75YUfiYunxxx/n3nvv3W3bkUceyQMPPBBSRC6v/HcYvQEDYjv878ORzrkCz4cjnXPJKqfjlyfmO+ecc86FwBthzjnnnHMh8EaYc85lISIHi8j8TJe/RGRElse0F5E/Mz3mvyGF65xLUp6Y75xzWajqt0AzABEpCvwIRFrteJaqdk9gaM65FOI9Yc45l7NOwHeqGmHFRuecyz9vhDnnXM76AZOyua+tiHwpIm+KSONEBuWcS37eCHPOuWyISAmgB/BChLvnAXVU9TDgfuDlHF5niIjMEZE5Gev5Oedc0tUJE5FfgRVAeeDPLHdH2lYX+CEBocVyn5HeRyz2l9Pr5vW+SPvMa9x5Fc37jEUMmV8jVvvM7THZ7TO750X79x+NWH5Hoo0hp31Geo06qlplbwLLDxE5ERimqsdF8djlQLqqrsvlcXk5hiXj8QvicwzLy3comu1Z91kQjl+xiiPjNWJ5zIz2f0Q0n2ssj1+R9plfeYkhu33m7filqkl5AcZGuW1jCLHt1T4jvY9Y7C+n183rfZH2mde44/G5xiKGzK8Rq33m9pjs9pnd86L9+4/l309eP7v87jPef0d5fD/PAoOyuW9/dp3ItgZWZtzO72eVdVsyHr/y8zuMxfcsL9+VSPssCMevWMWR8RqxPGZG+z8ims81lsevvHy2sfzss9tnXt9HMs+OfC3KbckoXu8jp9fN7335eVw8xSKGvL5GNI/P7THZ3Z+X7YX1848LESkNdAbOzbRtKICqPgz0Ac4Tke3AZqCfBkfhKBXU32EsxON9xPo7lN/HxVuiv0Ox+Hzyel9B/dtP+PEr6YYj80pENqpqmVTeZ2F4j77P1NlfWPtMRoXld1MY9lkY3qPvM+8KQ2L+5EKwz8LwHn2fqbO/sPaZjArL76Yw7LMwvEffZx6lfE+Yc84551xBVBh6wpxzzjnnCpyUbYSJyBIR2SkiWxK0v9Yi8oeIbBWRLSLyUiL2G+y7uIhsEpG1Cdrfy8F73CIiK0SkfBz2EfH3JyIviMg/wb4/jeH+yovI3yKyOXjtmcH2z4Lf6WYR+UlE6sRqn8Hr1xGR1cE+torIOZnue01EVEQa7OU+9vgss3tfIrKPiCwLPoOtIjItH/uL+F0QkZkisiPY5+bMay2KSG8R2ZDp7yrmf1PJxI9fcd1fyh2/gtdO+DEsFY9fwesk7BiWso0w4D7gtATubytWT6gkVj/kBBE5IUH7fhH4JRE7EpGWQDeguqqWwv6G7ozDrvb4/YnIxUBHoHKw70Ex3N9fwEGqug9QEUgXkbOwcf99g+0rgediuE+Ad4C3g7+bSsB0sIMA0BbYEYN9RPouZPe+bgeKB59vDeBYETkqj/vL6bswVVX3CS43AohISeAZYHCw3ybApjzuM9X48SsOUvj4BeEcw1Lx+AUJPIalbCNMVcdgv5xE7e9LVZ0YXF8D/AY0ivd+RSQdaIf9oSaKABWDP7wSwLJY7yCb398lwK2quiF4zNcx3J+qasaZeGnsu6Gqequqbg22zwSqxWqfInIAUIfgYKyqG3XX+oSTgfNisZ9In2UO70uBksHvtiKwE/gpj/vL63fhSmCNqr4QPGeZqm7Lyz5TjR+/4rtbUuz4FbxeQo9hqXr8Cl4/YcewlG2EhSloeVfBWsbx9jIwHPtjiztVnQu8AnyH1UbapKq3JmLfwH5At6DLfb2IDIzliwfDIpuBdcBXqjo+y0POBN6M4S6Pws64lgbDMd+ISBURuRn4NeMLnQBnsut9XRHEtBlYCjynqt/n94UjfBeOD7rxl4hIWrCtefDYdcHn8EZ+9+f2nh+/4iauxy9I+DEs5Y9fEP9jmDfCYkxEqgFvAXeq6o9x3tcoYL2qTojnfrLsMw3oADQEygClROTBRO0eqACUA0YAj4qIxOrFVXVb0L2dBhwsIj3/3bHIdOwfxbBY7Q87Cy8D3KKqpbEDxxvYe+sRw/1kK8L7GhjcLgM0BvqKyDH5fO2s34VhwD5AWWz4aXrw0GJALeCI4OfRInJZvt6Q2yt+/Irv7onj8QsSfgxL6eNX8PrxP4ZFKqOfKhespb4lgfvbBzsDeSVB+/sI2B5cdmBdsd/HeZ93At9muv0IsDARvz/gV2BEptvbgEPitO93gdeC62OBDVguRyz3cSiwPdPtYcDv2EEk4/eqwc9DY/lZZve+gAXAw5luLwHuzsf+cvwuZI4HuBdYlum+t4HX4/F7TaaLH7/iss9CcfwKXj+ux7BUPn4Fz03IMcx7wmIkOKNZCKxS1RMTsU9VPUJVi6lqMeBS4BdVPTDOu10E1BGRysF77gQsjvM+M0wHTgIQkeOwM8tvY/HCInJIphk2FYGWwDwRGYmdXbVS1d9isa8MqroA2CgiXYJNJ2Nf5CKZfq87gEbBY2Mmh/e1CugkpgqW8zE7j68d8bsgIodlethlQEb+yt1AjeBvqiTWtT8nr+/J5Z8fvxIibsev4DUTegxL1eNX8PqJO4bFqxUe9gVYwa6zq+3A43He33nBvjZnuvw3ge93BLA2QfuaiY27bwG+B8ol4veHdTF/H+x3E3BJDPfXO3jNzcHrvxNs/yfYf8bvdFGM32dfYGPw2muAtCz3bwcaxOGzjPi+sATXVcFnsJV89Ehl913I9LvbDPwMHJbpOQ8G920BPk3E33FBvvjxK677SrnjV7DPhB/DUvH4FbxOwo5hXjHfOeeccy4EPhzpnHPOORcCb4Q555xzzoXAG2HOOeeccyHwRphzzjnnXAi8Eeacc845FwJvhLmYEhEVkTsz3b5MRG6I0WvfICI/ish8EflaRPrH4nWdcy6DH8NcInkjzMXaVqCXiOwXp9e/W1WbAScCj4hI8TjtxzlXOPkxzCWMN8JcrG3HlpO4OOsdIvKEiPTJdPvv4Gd7EXlfRJ4PFkW9VUQGiMhnIrJARA7K+lqquhQrTFgxeI3LReRzEfkqWJMOEUkLFpV9Mtj+ooiUDu67NTgT/UpE7ojHB+GcS0p+DHMJ440wFw8PAANEpHwennMYcBG2HtnpWJXl1sCjwPCsDxaRFsBSVf0lWAKkPtAaaAa0FJGjg4ceDIxV1abAX8D5IlIJWz6kcbD95ny8R+dc6vJjmEsIb4S5mFPVv4CngAvz8LTPVXWNqm4FvmPX6vQLgLRMj7tYRL4FPgVuCLYdF1y+AOYBh2AHNLC1vz4Mrj+DLbr6F7a0xKMi0gs7G3XOOcCPYS5xvBHm4uUe4CxsvbQM2wn+5oIFUktkum9rpus7M93eCRTLdN/dqnowtmbZUyJSClsI9/9UtVlwqaeqjwWPz7oul6rqduyM8yWgJzAtX+/QOZfK7sGPYS7OvBHm4kJVfweexw5iGZYDLYPrJwL5TkhV1cnYKvUDgbeAwSJSFkBEDhCRqsFDa4tI2+B6f2B28LjyqjoVWzi4WX7jcM6lJj+GuUQolvtDnMu3O4ELMt0eB7wiIp8B7wAb9/L1bwQmAg2Dy8d2csrfwGnADmAxMFBEHgGWAg8B5YM4Ms5A90jAdc45/Bjm4kxUs/Z0OpcaRCQNeF1Vm4Qdi3PO5ZUfw1KfD0c655xzzoXAe8Kcc84550LgPWHOOeeccyHwRphzzjnnXAi8Eeacc845FwJvhDnnnHPOhcAbYc4555xzIfBGmHPOOedcCP4fcXRQyD5WtFQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -204,7 +190,7 @@ }, { "data": { - "image/png": "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uOCCC2jUqBHdunUjMzMTgGeeeYZzzz2XGjVq5Ps6JeGzSFdh6oSllSlTbKZiv35w7rmwcKFdsbRpY8tzjBtn66yVKWONq5YtrXr0GWf47CHnXPSaNoWXXoKMYC765s22uoaq5YxVrmwFp7OrU6dgvSx5qVWrFlOnTuWvv/6idevWXHTRRVSvXh2AjIwMLr/8cjp37sx+++344ikdO3Zkw4YNHHTQQYWK9fPPP2ePPfYo1GvkJa+f6SGH2MV60EEYxGNFcME6AQrzmWRkZPDVV18xefJkateuzaWXXsrAgQM588wzGTp0KF8k6ANPl8+iOCp2i+U8+aStBdm6tV2l9Oljsxrffdd6xObO3XqVct99NvR46aXeAHPOFQ051TnMzISKFW2tyOefT90SQzVr1uSwww7jq6+++ndbhw4dqFevHjfffHOezz300EOZOHFiro+XKlWKUnHrteW3f1HUvbvVcfv8c9iyxb5ee61tT4R99tmHhg0bst9++1GmTBlat27NpEmTmDx5MrNmzeKAAw6gbt26rF+/ngPymDpbEj6LdFXsGmGzZlnhVLC6YP362fpqtWtbUdWpU31RWudc0ZVbncO1a63gdJs2dl6rU8fSJurUsfuJqna/YMECNmzYAMDKlSsZP378vz0kd999N6tXr+aJEAlmd955J926dWPx4sUAbN68mZdffjnX/Tt16sSgQYP4/vvv/902bNgwlixZUoh3k1yXX751+ady5exrr162PRGaNm3KqlWrWLZsGQBjx46lfv36nHXWWSxevJg5c+YwZ84cKlSowKxZs3J9nZLwWaSrYjccefjhlhPWooUlyS9fDuvWQb16luzqnHNFWZg6h8lcYujnn3/mlltuQURQVW699VYOP/xwFixYQK9evTj44INpHJTr79SpE9ddd12Or9OqVSuWLFnCqaeeiqoiIrRr1y7X41avXp0hQ4Zw6623snTpUkqVKkXz5s1p2bIlAAMHDuS99977d//vvvsOsDyk0sHsqwYNGvDqq68m4scQ2uWXJ67RlV3p0qXp06cPp5xySmxm7b8J9QVRUj6LdCQ2ezJ9NGnSRCdMmJDr47NmWaL9PffYMOPs2dC1qyXcP/poCgN1ziWMiExU1SZRx5EI+Z3Dsq99CzbcmMjeLudc6uR1/ip2w5EHHACffWa9YQcfDNdcY42xRx6JOjLn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\n", + "image/png": "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PPNMK0EBVnjVAzDnio/337fcrnPPzX85osGDrRbgscfa+3wJMpdOwvzXdQuwAfgAK9K6DrgpAef2dddSZNkyGzX6+2+rA3bEEfm+pUiYPt1uK4wdazkhRx5pM58mT7YO+oorom6hcy4ZVqywiTZ9++YdVP34o42OH3ggfPaZ54K69BNmduRqVb03CIKaqup9qhriDn2+BgBXBLMkDweWq6rfikywVats1GjSJPj4YzjuuKhbFN6AAVbrZ889LeH2rLNgjz3gssugWjW/4nWuuNmwwb5ee63lrOa1csekSda3Va9efGocupIn3//GRGRf4G6gduz+qnpCPu/rCxwH7CIic7Bk/jLBe18HvgTOAKYDa4C2hfkALndr18I551jBwn79rCZYOildGtasse9PPNHKTjz0ENx5Z/FZ19K5kmzsWFuAe9ddoWFDu/345ps2ezuvFIMZM2x0v0IF+Ppre79z6SjMWMKHwOtAdyD04rR5rMGW/bqSmNuaLo4NG+DCC229tLffhvPPj7pFBfPLL9Czp60Td999divyyCOtYOMHH8DPP0fdQudcYW3aBO3awfDhNsL95ZfWV1WubJNs8rJggQVg69ZZAJff/s4VZWGCsExV9RpeaSQz027ZDRxo6yVefnnULQrv33/h/vut9tfuu8NVV1kO2xln2JXxwIGWrL/PPlG31DlXWO++a2s6/v47rF9vSfXbb29BWN26ub9v+XJbumjuXLtdecABqWuzc8kQJjH/cxG5UUT2EJGdsh9Jb5krlKwsqxL94Ye2hM/110fdovCGDoX69a0u0G23WQf96qv2tXlzOPpoS8r3KtjOpbcPPrCCqmAjYb//bjmgpUtbSZp41q61EhSTJ8Mnn6TPBCPn8hJmJKxN8LV9zDYFfCyiiFG1Wjm9e8Mjj1juVDrIyrJRrn32gcaN4bnn4KCDNr++226WqOucKx42bbKJNeXKWb3CW2+1PLAyZey1nDIz4eKLYcQIeO89K1vjXHGQbxCmqnunoiFu26jaMh1du0L79lZFvqhbscIS7f/+26aX77OPLSTunCveDjkEnn4aWrSwRbbBZjiuW7flBRhsHt3//HPr3y65JPXtdS5ZQk3yF5EDgAbAfxOGVfXtZDXKhdOnD3ToALNmQaVKli9x443WuRXlitGqVv/nrrssyfa662DjRssJcc4Vb0OGWDX8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Pn1szdhSpWyiUcOGcPzx8PfflnD/55/WFxXkInCHYHp4RkYGTZs2pXHjxjRs2JDXX/9vkRNat25N/fr1OeCAA2jXrh0bN27M85iDBg2iWbNm7L///uy3337cfffddOvWjYsvvvi/fVasWEGdOnWYMWMGf/zxB2eccQZ169Zl//3356KLLmLBggUMHz6cFi1abHX84447jvr169O4cWMaN27MBRdcEP4DJ0jfvrYiQenS9rVv320/5g4xU/VnzZrFKaecwv7770+DBg2YOXPmFvvecsstW+yfm5Lwu0hLqhr3AYzL63lUj6ZNm2oY776rWquWqoh9fffdUG/T9evt6+zZqmXLqoJqpUqqF16o2ru36uLF8d+XlaU6apRqt26qw4bZc+dcYgBjtAj0P4l45NWHLV2qWrWq6tixm7fNm6e6116qY8bY83ffVa1Qwfqm2Efr1qpr1hTkp7qlihUrqqrq+vXrdd26daqqunLlSq1Vq5b+888/qqo6cOBAzcrK0qysLL3kkku0a9euuR5v4sSJus8+++jUqVNVVXXjxo366quvalZWlh555JE6ZMgQVVW97bbb9PHHH9e1a9dq3bp1dcCAAf8d49tvv9WJEyfqsGHD9Mwzz9zqHM2bN9dffvml8B96G733nuree6t++63qhg32de+9bfu2yP5dqNpn/Prrr1XVfh+rV6/+77VffvlFL7vssi32j6ck/C6Ksrz6r7xmRx4kIiuC7wUoHzwXi900yQv6bJvWrW36dtmyeQ/FZ2bakkVffGGPxo3h3XftKvT+++0249FH2yzHvIjYrYPDDkvox3DOlSBVqtjSZYcdZrO5S5eGxYutBMVdd9k+P/1kdcJy+ugjmDMn/nEbN7b6hWFsH9PZrV+/nqysrP+en3HGGf99f+ihhzIntxMCzzzzDB06dGC//fYDYLvttuPGG28E4LXXXuPSSy+lV69efPPNN4wdO5Z3332XI444grPOOuu/Yxx//PEADB8+PFzjk+C447bedtFFcOON8Nhjlgv8yCObX9txR2jf3mbFL15saSmxCvJRpkyZQmZmJieffDKw5QjZpk2baN++Pe+99x79+/fP8zjF5XdRHOV6O1JVS6tqpeCxo6puF/N9kQ7Avv3WZiPutJOtydi+vU31zuneey1x/phj4Pnn7fvmze01EUtuPeGE/AMw55xLlLp1Ye+9rbjz/Pl2y7FsWZvxPWVK/AAM4vdxhTV79mwaNWpEjRo1uOeee9hzzz23eH3jxo288847nHbaabkeY9KkSTRt2jTua40aNeLUU0/lxBNPpHPnzmy//fZ57p+X1q1b/3cLrH379gV+/7aYNs2WmotVubLVjkyEP/74gypVqtCyZUuaNGlC+/bt2bRpEwBdunTh7LPPZo899sj3OCXhd5GuwtQJSyu//WbrMHbrZst5/POPXbG0bm1Xl999B59+avkVFSpAixb2OOWUrf8xOedcqh1yCLz55ubcsA0bLMcrK8tyTytXhuXLt35frVoFG2XJS40aNZgwYQJz587l3HPP5YILLmC3mKneN954I8ceeyzHHHNMoc9x0003MWjQoP9GWAqrT58+NGvWbJuOkZe8fqb772+jYLEfYdgwW78TbBBgW34nmZmZjBgxgl9//ZWaNWty8cUX06tXL04//XQ+/PDDhI1KpcvvojgKUycsrbz8Mtx9t9XCmTbNliWaNAk+/tiWJpozB+bNs30feshmOV54oQdgzrmiIV6dw02b7DbXjBm2RmSqlhjac889adiwISNGjPhv2yOPPMKiRYt44YUX8nxvw4YNGTt2bK6vlypVilKlSoXevyjq0MEmQAwbBhs32terrrLtiVC9enWaNGnCPvvsw3bbbce5557LuHHj+PXXX5k+fTp169aldu3arFmzhrp16+Z6nJLwu0hXxS4Imz7d1mYEC7a6dbMZKzVr2kzH8ePzX+LDOeeikludw5UrbWSldWvr12rVsrSJWrXseaKq3c+ZM4e1a9cCsHTpUn744Qfq168PQPfu3fnqq6/o27fvFv9px9O+fXueeOIJ/vjjDwCysrLyDNwuvfRSfvzxRwYOHPjftsGDBzNx4sRt/UhJ06qVBb+33ALlytnXTp1seyIccsghLF26lEWLFgHw7bff0qBBA84880zmz5/PzJkzmTlzJhUqVGD69Om5Hqck/C7SVbG7HXnggZYTdtxxVjNnyRIrNVGvniXYO+dcUVazJmRkxN+eLZlLDE2dOpW77roLEUFVufvuuznwwAMBuP7666lVqxZHHHEEAC1btuShhx6Ke5xGjRrx0ksv0apVK9asWYOIcOaZZ+Z63vLly/PFF19w++23c/vtt1OmTBkaNWrEyy+/zJIlS/jmm2+oXr36f/t/+OGHgOUhlQ+WQdlll10YOnRoQn4OYbVqlbigK6fSpUvz3HPPceKJJ2bPrOWaa64p8HFKyu8iHYnNnkwfzZo10zFjxuT6+vTpNrvowQfh4outbs6dd1oA9swzKWyocy5hRGSsqhaLZJP8+rCca9+C3W5M5GiXcy518uq/it3tyLp1bYmPb7+1tdbatrVgLHtxbeecK8qSfbvROVd0FLvbkWAV6/Mpm+Kcc0VWMm83Jtpbb73Fyy+/vMW2o446ildffTWiFpVc/rtIP8XudqRzrvgpSbcjnXPFS4m6Hemcc845lw48CHPOOeeci4AHYc4555xzEfAgzDnnnHMuAh6EOeecc85FwIMw55xzzrkIeBDmnHPOOReBtKsTJiKLgAygMrA8x8vxtu0NzEhB0xJ5znifIxHny+u4BX0t3jkL2u6CCvM5E9GG2GMk6pz57ZPbOXN7X9i//zAS+W8kbBvyOme8Y9RS1Wrb0rCiooB9WDr2X5CcPqwg/4bCbM95zqLQfyWqHdnHSGSfGfb/iDA/10T2X/HOWVgFaUNu5yxY/6WqafkAuoXctjqCtm3TOeN9jkScL6/jFvS1eOcsaLuT8XNNRBtij5Goc+a3T27nzO19Yf/+E/n3U9CfXWHPmey/o6LyCPM7TMf+qzC/w0T8OyvIv5V45ywK/Vei2pF9jET2mWH/jwjzc01k/1WQn20if/a5nbOgnyOdb0d+HnJbOkrW58jruIV9rTD7JVMi2lDQY4TZP799cnu9INtL6s8/XRXV32EiJONzJPrfUGH3S7ZU/xtKxM+noK8V1b/9lPdfaXc7sqBEZLWqVizO5ywJn9HPWXzOF9U501FJ+d2UhHOWhM/o5yy4dB4JC+uTEnDOkvAZ/ZzF53xRnTMdlZTfTUk4Z0n4jH7OAir2I2HOOeecc0VRSRgJc84555wrcoptECYif4hIloisS9H5DhWRpSKyXkTWicjHqThvcO4yIrJGRBak6HyfBp9xnYhkiEjlJJwj7u9PRD4UkQ3BuUcn8HyVRWSViKwNjj082P5z8DtdKyJzRaRWos4ZHL+WiMwJzrFeRK6Jee1zEVER2Xcbz7HVzzK3zyUi5UVkevAzWC8igwtxvrj/FkRkuIhsCs65VkQeinnP+SKyMubvKuF/U+nE+6+knq/Y9V/BsVPehxXH/is4Tsr6sGIbhAGdgctSeL71wE2qWharH3KWiJyVonN/BCxMxYlEpClwJrCHqpbD/oaeT8Kptvr9icgdwAnAzsG52ybwfCuAOqpaHqgKNBORq7D7/pWC7bOADxJ4ToBvgKHB381OwNdgnQBwBLApAeeI928ht8/1LFAm+PnuCZwkIkcX8Hx5/Vv4UlXLB49HAUSkLPAu0C447wHAmgKes7jx/isJinH/BdH0YcWx/4IU9mHFNghT1S7YLydV5/tNVd8Lvp8HLAEaJPu8ItIMOAb7Q00VAaoGf3jbA9MTfYJcfn93Ak+p6spgnykJPJ+qavaVeAXs34aq6lOquj7YPhzYLVHnFJG9gFoEnbGqrlbVjODlT4AbEnGeeD/LPD6XAmWD321VIAuYW8DzFfTfwj3APFX9MHjPdFXdWJBzFjfefyX3tBSz/is4Xkr7sOLafwXHT1kfVmyDsCgFkXc1LDJOtk+BW7A/tqRT1bHAZ8BfwFpgjao+lYpzA7sAZwZD7stEpE0iDx7cFlkLLAYmqGrPHLtcCQxK4CmPxq64/gxux/wuItVE5HFgUfY/6BS4ks2f639Bm9YCfwIfqOrfhT1wnH8LpwfD+H+ISO1gW5Ng38XBz2FgYc/ntp33X0mT1P4LUt6HFfv+C5Lfh3kQlmAishvwFfC8qv6T5HM9AixT1T7JPE+Oc9YGjgf2ByoC5USka6pOD1QBdgRuB7qLiCTq4Kq6MRjerg3UF5Fz/zuxyNfYfxQ3Jep82FV4ReAJVa2AdRwDsc92dgLPk6s4n6tN8Lwi0BC4WESaF/LYOf8t3ASUB3bAbj99Hey6HVADODL4eqyI3F2oD+S2ifdfyT09Sey/IOV9WLHuv4LjJ78Py6+kfjo/sEh9XQrPVx67AvksRef7EcgMHpuwodi/k3zO54FpMc/fACal4vcHLAJuj3m+EdgvSef+Fvg8+L4bsBLL5UjkOQ4EMmOe3wT8i3Ui2b9XDb4emMifZW6fC5gIvB7z/A/gxUKcL89/C7HtAV4Gpse8NhT4Ihm/13R6eP+VlHOWiP4rOH5S+7Di3H8F701JH+YjYQkSXNFMAmar6jmpOKeqHqmq26nqdsBdwEJV3SfJp50M1BKRnYPPfCIwNcnnzPY1cB6AiJyCXVlOS8SBRWS/mBk2VYGmwDgR6YBdXR2iqksSca5sqjoRWC0ipwWbLsT+IZeK+b1uAhoE+yZMHp9rNnCimGpYzsfIAh477r8FETkoZre7gez8lReBPYO/qbLY0P6Ygn4mV3jef6VE0vqv4Jgp7cOKa/8VHD91fViyovCoH0AGm6+uMoG3kny+G4JzrY15PJTCz3s7sCBF5xqO3XdfB/wN7JiK3x82xPx3cN41wJ0JPN/5wTHXBsf/Jti+ITh/9u90coI/58XA6uDY84DaOV7PBPZNws8y7ufCElxnBz+D9RRiRCq3fwsxv7u1wHzgoJj3dA1eWweMTsXfcVF+eP+V1HMVu/4rOGfK+7Di2H8Fx0lZH+YV851zzjnnIuC3I51zzjnnIuBBmHPOOedcBDwIc84555yLgAdhzjnnnHMR8CDMOeeccy4CHoS5hBIRFZHnY57fLSIPJ+jYD4vIPyIyXkSmiEirRBzXOeeyeR/mUsmDMJdo64GWIrJLko7/oqo2Bs4B3hCRMkk6j3OuZPI+zKWMB2Eu0TKx5STuyPmCiPQSkQtinq8Kvh4nIt+JSL9gUdSnRKS1iPwsIhNFpE7OY6nqn1hhwqrBMdqLyC8iMiFYkw4RqR0sKts72P6RiFQIXnsquBKdICLPJeMH4ZxLS96HuZTxIMwlw6tAaxGpXID3HATchq1HdjlWZflQoDtwS86dReRg4E9VXRgsAVIPOBRoDDQVkWODXesD3VS1EbACuFFEdsKWD2kYbH+8EJ/ROVd8eR/mUsKDMJdwqroCeBu4tQBv+0VV56nqeuAvNq9OPxGoHbPfHSIyDRgNPBxsOyV4/AqMA/bDOjSwtb9+CL5/F1t0dQW2tER3EWmJXY065xzgfZhLHQ/CXLK8BFyFrZeWLZPgby5YIHX7mNfWx3yfFfM8C9gu5rUXVbU+tmbZ2yJSDlsI90lVbRw86qpqj2D/nOtyqapmYlecHwPnAoML9Qmdc8XZS3gf5pLMgzCXFKr6L9AP68SyzQSaBt+fAxQ6IVVVP8FWqW8DfAW0E5EdAERkLxHZNdi1pogcEXzfChgZ7FdZVb/EFg5uXNh2OOeKJ+/DXCpsl/8uzhXa88DNMc/fBD4TkZ+Bb4DV23j8R4H3gP2Dx092ccoq4DJgEzAVaCMibwB/Aq8BlYN2ZF+BbpWA65xzeB/mkkxUc450Olc8iEht4AtVPSDqtjjnXEF5H1b8+e1I55xzzrkI+EiYc84551wEfCTMOeeccy4CHoQ555xzzkXAgzDnnHPOuQh4EOacc845FwEPwpxzzjnnIuBBmHPOOedcBP4PryAuGc4ohJcAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -217,7 +203,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"count\" in bm\n", + " flag = \"nvbench_static_multimap_count\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", @@ -233,45 +219,19 @@ }, { "cell_type": "markdown", - "id": "apparent-skiing", "metadata": {}, "source": [ - "### insert by varying CG sizes" + "### find_all" ] }, { "cell_type": "code", "execution_count": 7, - "id": "varying-stranger", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", + "image/png": "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Tj0cz7lyLv/YsMGS36dM2bv2IdiEnNNOs3yttWttaHHLlr2vS+TyDxmew1Q13RswL833BYHZGT03UrfmzZurcy62Jk9WbddOtUABVVBt2lT10UdV9+yJ/rGBmRrl80qsbpE4f40erVq9uqqIfR09Ote71BIlSqiq6vLly7VZs2batGlTbdiwoT711FP/Puf888/XunXraqNGjbRv3766Y8eODPf3wgsvaPny5bVp06Zar149ffTRR/d5fPbs2Qro5MmT99kO6HXXXffv/YceekjvuusuVVW96667tHLlytq0aVOtU6eOnnPOObpgwYJ/n7t9+3a9+uqrtVatWlqnTh3t0KGDrlq1ap999+zZ89/7O3fu1PLly+uZZ56ZjZ9U5Iwdq9qokWpKin0dOzb3+0z9HFVVV6xYoaeccorWr19fGzRooMuWLdvnuf3799/n+elJhM+xTZsOeu+9q7RDB9WSJW3f0FPtElEVdiqUVzhTq1fPxg8rhjI6h2WWc/XvqKiq7opQI885l2BOOw0mTrS8rMcfhyJFrDhp6kyfyZNh48b4xpgfjBljwynRKmdRqVIlvvjiC+bOncvXX3/Ngw8+yOrVqwHo0aMHP/zwA/PmzWPr1q08++yzme6ra9euzJ07lxkzZjB48GBWrVr172Pjxo3juOOOY9y4cfu8pkiRIrz55pusW7cu3X1ee+21zJ07lyVLltC1a1dat25N6pJot956K5s2bWLx4sUsWbKEjh070qlTp9SLf0qUKMH8+fPZunUrAB9++CGHHHJIzn5QuTRunPXgDhtmeY3Dhtn9/X4cudK7d29uuOEGFi1axDfffEPFNAWpZs6cyYYNG0LtJ96fY48eHZkwoRNvv62sXw/FipUA5gNbg719CNjnuGKFpTm8/LIt27N1a3pHTxwFM3msqYiknlIFKBbcF2xd5tJRj845FzMVK1pO1oABe09cv/1mFd6LFLECpT17Wtd9oUL/fb2qva5IEShQILax5wXXXANz52b8+Fdf/bdW0JYtNjFh5Mj0X3P44fDYY+GOX7hw4X+/3759O3vSJNq1a9fu3+9btmzJL7/8Emqf5cqVo06dOqxZs4aqVauiqrzxxht8+OGHHH/88Wzbto2iwZTVggUL0q9fP4YMGcLgLJLxunbtysSJExk7diyXXHIJL7zwAsuWLaNA8IvVt29fnn/+eaZOnUqbNm0AOOOMM5g4cSJdunRh3LhxdO/enc8//zzcDyebTjrpv9vOO8/W7Lv3XkvyHjRo72OlStm6oN27Wx5Sly77vjY7RX4XLlzIrl27OOWUUwAomWb5hd27d3PDDTcwduxY3nrrrdD7TJTPMSUFSpc+g40bJwJdgHFAd+BzChWy3/UdO2zfKSlQu7alMaS9HXpo+uenWMuw50pVC6hq6eBWSlULpvneG1bOJbFixezrQQfZ7J6+fa1A6VlnWf2sjz/e9/nvv29V4Q880Bppt9+eP2YERVJGRRgjWZxx1apVNGnShKpVq3LTTTdRuXLlfR7fuXMnL7/8Mqeffnqo/a1cuZJt27bRpImVPZwxYwY1a9akdu3anHTSSUyaNGmf51955ZWMGTOGv0OsON6sWTN++OEHfvrpJ6pVq0bp0vv+22nRogULFiz49363bt145ZVX2LZtG99//z1HHXVUqPcQaT/+CGXK7LutTBnrGY6ExYsXc8ABB9CpUyeOOOIIbrjhBnbv3g3A8OHD6dChA5UqVcrWPhPpc7z55m4UKPAKsA34HjiKlBRbjmfzZli0CF5/3WYeNmliq1MMHmyzEhs1ghIlbPv551sC/YQJsHRp1pN2Ip1En1nPlXMunxOBVq3sNmSIJaGOHm2lHsCGE996C95+G156CU4/3brvL73UrtTD9qrkB1n9LDIq2Fi9es6WL0pP1apV+f7771m9ejUdO3akS5cuHHTQQf8+fsUVV3DCCSdw/PHHZ7qfV199lWnTpvHjjz8ycuTIf3s1xo0bR7du3QBr7Lz88st06tTp39eVLl2a3r178/jjj1MstQWfgdQhP1VF0qlGuf/2Jk2asHz5csaNG7dPT1w0ZPZ5NGhgvVYnn7x327Rp1iMMVpYgN5/nrl27+Pzzz5kzZw7VqlWja9eujBo1ijPOOIPXX3+dT7Kx80T8HG+5pQkjRy5n48ZxrF/fjoMO2rsSBNi5p379fXv/tm2zRtf8+XtvM2bsOxRbogQ0bPjfnq5KlWz1iX799ibRpw7JQ86T6MPUuXLOOQoXtno2r74KqeksM2ZYXa3162045PnnbS3DsWNtXcOQqR+O2JazqFy5Mo0aNdpn2GzQoEGsXbuWRx99NMvXd+3alQULFvD5558zcOBAfvvtN3bv3s348eO55557qFGjBgMGDOD9999n06ZN+7z2mmuu4bnnnmPz5s2ZHmPOnDk0aNCAOnXqsGLFiv/sZ/bs2TRs2HCfbR06dOD666+ne/fuWb6HaLntNhvKnTbNem+nTbP7t90Wmf1XqVKFI444glq1alGwYEE6duzI7NmzmTNnDj/99BN16tShRo0abNmyhTp16mS6r0T9HC+4oAOq1/P999155ZW955uMFC1qPee9esH//Z9d9K1YYStHfPGFzTS86CIbnp040VarOO0022+5cvZY2tmJYPdz85l548o5l2P3329d8VddZSejKVNse/nyVrD011/jG19eEqZgY2788ssv/yZ8//XXX8yYMYN69eoB8Oyzz/LBBx8wbtw4UlLC/1to1aoVvXr1YujQoXz00Uc0bdqUVatWsXz5clasWEHnzp15++2393nNgQceyHnnncdzzz2X4X7Hjx/PlClT6N69OyVKlKBPnz5cd911/w5/vfTSS2zZsoXWrVvv87oLL7yQO++8k8MOOyz0e4i07t2tQTxggP3THzDA7keqvXfkkUfy119//ZskPnXqVBo2bMiZZ57Jb7/9xvLly1m+fDnFixfnp59+CrXPZP0cS5e2XvdLLoGhQy2d4fff7TZ1qk3gOffcjIfec7PChA8LOudypUULuwL87ru9V3+rVtkJrEaNuIaW5/ToEb1aPosWLWLgwIGICKrK9ddf/+8/r8suu4zq1avTqlUrADp16sSdd94Zar833XQTzZo1Y/HixZxzzjn7PNa5c2eeeuopevXqtc/2gQMHMnz48H22DRkyhNGjR7N582YaN27M1KlTqVChAgAPPPAA119/PXXr1iUlJYX69evz1ltv/WeYqUqVKlx99dXhfyhR0r175BpT+ytQoAAPP/wwbdq0SS0BwiWXXJLr/eanz7FiRbulDt1+8EH6Q/K5WWEiy4WbY8mL8DmX98yfbyep++6DTp0soffqq212YVb/n72IqHMu3lLLoOSkcGluFm52zrkMNW5sswXffRfq1YPLLrNu+DvuiHdkzjmXtWgMyfuwoHMu11q0gPfei3cULpJeeOEFhg4dus+2Y489lieeeCJOEbmc8M8xnEgPyfuwoHMubhJ1WFBEqgIvAQcDe4ARqjo0s9f4+cu5/Cejc5j3XDnn3H/tAgaq6mwRKQXMEpEPVXVhvANzziU+z7lyzrn9qOoaVZ0dfL8JWETqImfOOZcF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\n", "text/plain": [ "
" ] @@ -283,7 +243,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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7L333nTo0IGcnJwS4/z0009p0aIFTZo0YY899qBjx4706tWL884777/XLFu2jF133ZVp06bxxx9/cNJJJ9GoUSOaNGnCueeey/z58xk1ahSnnHLKRttv1aoVjRs3plmzZjRr1oyzzz67/D/UchowAPbe22Z67r233a+ozTff/L/vZ86cyXHHHUeTJk3Yc889mT59+gavvf766zd4fXGy4XeRllS1yBswoaT7ibjtv//+Wpq+fVUbNFAVsa+vv67as6fqtttaJ5kLLlD94gvVDh1UK1dW3Wwz1ZtuUp07t9RNO+eSDBinCT6uJOsW5vhVkr59VatXL+iIZbfq1VVfeUX1zTdVzzpLtVo1e3y77VT/7/9UR4xQzc0tebs1atRQVdW1a9fqmjVrVFV1+fLl2qBBA50zZ46qqn788cean5+v+fn5ev755+vzzz9f7PYmTZqku+yyi06ePFlVVXNycvS5557T/Px8PfTQQ3XYsGGqqnrjjTfqAw88oKtXr9ZGjRrpBx988N82RowYoZMmTdKRI0fqySefvNE+jjzySP3+++/D//DirH9/1Z13tp/vunX2deed7fGKKPhdqNpnHDp0qKra72PlypX/Pff999/rhRdeuMHri5INv4tUV9wxrKSC9n1FZFnwvQDVgvtiOZnWSmDOV6SiphVfcokdhg4/3Nol7Lsv7LSTdR2+7jrr6bL99smO1DnnNnTTTfDjj8U//803tixOrFWrbL1BgE02Wb8c1xZbWEPj99+3RshhVI2Zlrh27Vry8/P/u3/SSSf99/2BBx7I7Nmzi93OI488QteuXdljjz0AqFKlCtdccw0AL7zwAhdccAG9e/dm+PDhjB8/nr59+3LIIYdwakzn5aOCoEeNGhUu+ARo1Wrjx84911pV3H8/1Kxpy6EVqFlz/QodixZB4QGcsnyUX3/9ldzcXFq3bg1sOKKVl5dHp06d6N+/P++++26J28mU30UmKja5UtWUW+Clc+eNpxWrwtZbwxFHWJ1VpUrQp48N4+6wQzRxOudcUebPt3rPtWttpvLOO68vUSicWMVq1sxmOVd0jb9Zs2Zx8sknM2XKFB599FF2KHSQzMnJoU+fPvTo0aPYbfz888/ceuutRT7XtGlTjj/+eI455hjee+89qlatys8//8z+++9f5ljbtWtHtWrVAGjdujWPPvpombdRXr//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\n", "text/plain": [ "
" ] @@ -296,51 +256,35 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"insert_cgsize\" in bm\n", + " flag = \"nvbench_static_multimap_find_all\" == bm\n", + " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", - " # Plot INT32 performance\n", - " tmp_int32df = tmpdf[tmpdf[\"Label\"].str.contains('I32')]\n", - " \n", - " randomdf = tmp_int32df[tmp_int32df[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", - " unique_labels = randomdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_INT32_RANDOM\", randomdf, \"NumReps\", unique_labels, flag, True)\n", - " \n", - " cycledf = tmp_int32df[tmp_int32df[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", - " unique_labels = cycledf[\"Label\"].unique()\n", - " plot_perf(bm + \"_INT32_CYCLE\", cycledf, \"NumReps\", unique_labels, flag, True)\n", - "\n", - " \n", - " # Plot INT64 Performance\n", - " tmp_int64df = tmpdf[tmpdf[\"Label\"].str.contains('I64')]\n", - " \n", - " randomdf = tmp_int64df[tmp_int64df[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", + " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", " unique_labels = randomdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_INT64_RANDOM\", randomdf, \"NumReps\", unique_labels, flag, True)\n", + " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", " \n", - " cycledf = tmp_int64df[tmp_int64df[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", + " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", " unique_labels = cycledf[\"Label\"].unique()\n", - " plot_perf(bm + \"_INT64_CYCLE\", cycledf, \"NumReps\", unique_labels, flag, True)" + " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" ] }, { "cell_type": "markdown", - "id": "wrong-skiing", "metadata": {}, "source": [ - "### find_all" + "### retrieve" ] }, { "cell_type": "code", "execution_count": 8, - "id": "peaceful-bernard", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -352,7 +296,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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S7Vr29nZQQfZdOaHHrJLfddcszmxWrHCDjZjx9r99u0t+Zozx17viZVzLlnkPb7Vq2f38/rjD2vu2aiRtXV47DEbERswwC4BfvghdOhgiRVAx46Qnb0DdesCzKJixRbstlszHn74QPrlFoABHTt2pEGDBjRu3JjLLruMTZs2FRrnZ599RsuWLTnggANo2LAhXbt2pX///lxwwQX/vmbVqlXsu+++zJgxg6lTp9KmTRvq16/PAQccwPnnn8/ChQsZPXo0Z5xxxjbbP/7442nQoAHNmjWjWbNmtG/fvkTfz9J4802bzVm+vH18883Sb3OH3B8MMHv2bE455RQOOOAAGjVqxMyZM7d4bZcuXbZ4fUHKws8iJalqvjdgQmH343Fr0aKFFmbgQNUqVVTtvG3zrXVr1cWLt3ztX3+p/ve/qlWr2mvuvbfQTTvnIgCM0zgfVxJ1K+r4VZT8jm9Vqqg+8YTq//6n2rSpPSaievzxqv36qS5aVPR2q1atqqqqmZmZumHDBlVVXb16tdatW1f/+ecfVVX95JNPNCcnR3NycvTCCy/U5557rsDtTZ48WffZZx+dMmWKqqpu2rRJn332Wc3JydEjjzxSR4wYoaqqN954oz700EO6fv16rV+/vn700Uf/buPLL7/UyZMn66hRo/T000/fZh/HHXec/vTTT2G+bXExaJDq3nurfvml6saN9nHvve3x0sj9Waja1zh8+HBVtZ/H2rVr/33up59+0k6dOm3x+vyUhZ9FsivoGFbYZcGmIrIq+FyAysF9sZxME16B1L17/jNffv/duqznuvpqaxJavrydxd18Mxx8cOLidM65rd10E/z8c8HP//CDtXvJa906O36B1XzWr291VKo2kjJliq0uEUbFihX//TwzM5OcPD0g2rRp8+/nhx56KHPnzi1wO48++ijdu3enYcOGAGy33XZcd911ADz//PNcdNFFvPrqq4wcOZLx48czcOBAjjjiCNrmmRZ5wgknADB69OhwwcdBfi0ozj/fljh78EGoVs1GCXNVqwbdutn/lCVL7CpIXsX5Un7//XeysrI4+eSTgS1HtLKzs+nWrRuDBg3i/fffL3Q76fKzSEcFXhZU1fKqumNwq6aq2+X5PJLS7lmzCn78/fet/QLYMPkdd1jDvtdf98TKOZccFi60JOqrr+zjwoWbn9s6scrrsMPsOLbnnrb8VknNmTOHJk2asNdee3H77bdTq1atLZ7ftGkTb7zxBqeddlqB2/j1119p0aJFvs81adKEU089lVatWvH0009TsWLFQl9fmI4dO/57Kapbt27Ffn9p/Pkn7LTTlo/ttJM1fI2FqVOnsvPOO3POOedw8MEH061bN7KDf2B9+/alXbt21AxRs1IWfhapKkwrhqSgageVjRu3fa58eeuYPnQonH66zZpxzrlkcsghNqKem0RlZtqJ4dFH24lgQerWtUQsFvbaay8mTZrEvHnzOOuss2jfvj175OmmfN1113HsscdyzDHHlHgf119/PZ999tm/IyIllZGRQcuWLUu1jcIUNlBzwAE2apX3Sxg1Crp0sc932614I1Vby8rK4ptvvmHixInUqVOHCy64gFdffZXWrVszePDgmI0ipcrPIh2FaSKaFL75xobDK1fe9rldd7VCztatEx+Xc86FkV9Zw/r1tsbfzJlw1lm23mle8ZrZV6tWLQ488EC++eabfx974IEHWLx4MX369Cn0vQceeCDjx48v8Ply5cpRLk8/m6Jen4y6d7cZ56NGWWf9UaPsfvfusdl+7dq1Ofjgg9lnn33YbrvtOOuss5gwYQITJ05k+vTp1K9fn3r16rFu3TrqF9T1mrLxs0hVKZNcTZ9uHYVffHFzj5aqVW2V+XPOsWVt8utP5ZxzyWD27IKfmzrVShteeslGqkTsY//+NuMvFubOncv69esBWL58Od999x0NGjQA4KWXXuLzzz/nzTff3OKfcX66devGww8/zNSpUwHIyckpNCG76KKL+P777/nkk0/+fWzYsGFMnjy5tF9S3HToYEltly6W8HbpYvc7dIjN9g855BCWL1/O4sWLAfjyyy9p1KgRp59+OgsWLGDmzJnMnDmTKlWqMH369AK3UxZ+FqkqZdKRgw6yOoULLrCh9MxMWLPGLhU2aRJ1dM45V7iCGnfmJlNgidTMmdZpfebM2CVWAFOmTOGwww6jadOmHHfccXTt2pWDDjoIgGuuuYaFCxdyxBFH0KxZM3r06FHgdpo0acKTTz5Jhw4dOOCAA2jcuDHz588v8PWVK1dm6NChPPPMM+y33340atSIV199ld133x2AkSNHUrt27X9vY8aMAbas8znppJNi940IqUMHW+UjO9s+xiqxAihfvjyPP/44rVq14qCDDkJVufLKK4u9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\n", "text/plain": [ "
" ] @@ -365,7 +309,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"find_all\" in bm\n", + " flag = \"retrieve\" in bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", @@ -381,21 +325,22 @@ }, { "cell_type": "markdown", - "id": "musical-merchandise", "metadata": {}, "source": [ - "### retrieve" + "### count by varying matching rate\n", + "
    \n", + "
  • Fixed num_reps: 8
  • \n", + "
" ] }, { "cell_type": "code", "execution_count": 9, - "id": "bound-pulse", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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uuv83HPPXb4PXUr33efeqpX7yy+7//13fG3VKh5fHkU/+8cff+xbbrllicfMmzfPe/To4d9++22J/1ZSWGbPdn/wQfe99nKvXTt+j1q2dD/7bPexY90XLKi4zyrr/JVR26JlZWYtgafcvUMJz/UnCsAOS+5/DvRw9+/Kek8ltYpk17RpkQPmDnvsUXaexahRcO218NJL8MsvMTOzySbw2GOLVvwHmDsXLrooZtRmz4b114crr4z6ZuWpSon5p5wCY8eW/vpRo2KH6+Jq144+oiXp1AluuKHsuOrXr8/vv/8OwNdff82uu+7KxIkTufrqqzn++OMXOXbu3Llsttlm3HjjjXTr1q3sN15KPXos+dh++8USebt2MTO70koLn/v5Z5g5M/6/nTEjNpoU9+qr5X9m0c/+2GOPMXDgQGrVqsWkSZPYfvvtufLKK6levTo33ngjCxYs4NRTT13k30oK36xZcc66//6o1D9/fpyfDjwwimO3abPw2KFD4bzzYOrU6IN5+eXll78o6/yVZqe5tYDiDQimJY+VOQgTkexq2hROPDGzY7t2jfIX8+bBe+/B88/HIKFoBeecc6JExk47RUmNH36IHZjNm0d+xqGHRqLspptm7+epbEoagJX1+LJo1qwZH374Id9++y177rkn++67L6uvvvo/zx933HF07969wgdg5fn8c9hyy0Ufa9QIxo+vmPefN28eb7zxBh988AHNmzdn//33Z/Dgwey8884MHz6cVzMZ0UnBadQoKvD36ROFrR96KAZkF14Yt86dY0BWs2ac04ryYiukDllpU2QVcQNaUvpy5NPAVsXujwA6l3Ls0cBoYHTz5s0rbo5QRLLq/PNjubJo2axNG/fLLlv4/M03ux9wQPnvg5Yj/9GixaJLkUW3Fi2W621LXWI77LDDfPjw4f/cv/jii32PPfbw+fPnL98HLoP27WMJsriXX47Hl0fRz/7222/71ltv/c/jQ4YM8eOOO86feuopX3311b1FixbeokULNzNv3br18n2o5L2vv3a/5hr3Ll1K/p3L9HevrPNXJm2LsmUa0KzY/abAtyUd6O4D3L2Lu3dp3LhxToITkeV36aXRcPfhh6OwbKtWUSS2yCabRAsSyVxJO8Dq1YvHK8K0adP4448/APj555958803WXfddQEYOHAgzz//PMOGDaNatdz/+TjvvGhT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\n", "text/plain": [ "
" ] @@ -404,10 +349,37 @@ "needs_background": "light" }, "output_type": "display_data" - }, + } + ], + "source": [ + "for bm in unique_bms:\n", + " flag = \"count_varying_matching_rate\" == bm\n", + " \n", + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_RANDOM\", tmpdf, \"MatchingRate\", unique_labels, flag)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### count by varying num_reps\n", + "
    \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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pC1b2qy/3CRw7pBzaSnX2YIiUg64HtgPmAocraoZiQqsMKZOtTPBoUOhenV49VW48srt60+pWu/Vk09aTZeKFW2GTpYmTXLet/dUOeeKolIl6/WeMgVmzrRJNAcfXPT9rl1rRT8HDrS2bcsWG9pw//3Wvt1///aXBitUsDIyzrn4yasUw5vAFmA0cCZwMEnaYzVnjp39vf22jV/o0cN6oypU2Pm1Dz5ot332sddddx1UrZrwkJ1zaapRo6KXW9i82RKpAQMssVq/HmrUsLX/2ra1WYBZRT+rV7exV/PmWY9V9+7Qrl3RP4dzLnd59cc0UNX2qvoq0AY4IUEx5Sn7tOJatayq+gEH2KW/rl1tkOZdd21LrP76ywZt/vCDPW7fHvr1gz//tNd5YuWcSxY5lU3IkplpS+F07GhjSFu1srX+Lr/cambNmwf/+58twZW9mvp11+3CnDnw559z2W23Zvzvf01o2LAhr7zyCgDr16/n7LPP5qCDDqJhw4bcdddd+cbZr18/DjnkEA499FCaNm1Kz5496datG3feeee/r5k7dy777rsvK1eu5Mcff+SEE07gwAMPpGnTplxzzTWsX7+evn37cvPNN++0/7p163LooYfSpEkTmjRpwi1ZYzcSaOBAK/RasqR9HTiw6PvcZZdd/r0/b948TjvtNA4++GAaNGjAnDlztnvtLbfcst3rc5MOP4uUlNMUQptdyMS8Hsfjll8phpymFYNqixaq8+dv/9pff1W97jrVcuXsNY88UpDJlc65RCBNSjGEkVP7VqGC6kMPqXburFq9um2rWFG1XTvVoUNVN2/Of78VK1ZUVdVNmzbpxo0bVVV1zZo1WqdOHV24cKGuW7dOhw8f/u9rjjvuOP3ss89y3d9nn32mTZs21YULF6qq6saNG7VXr166fv16PeCAA3TGjBmqqnreeefp22+/rUuWLNHatWvr999//+8+Bg0apEuWLNE33nhDb7rppp2OUadOHV2+fHm4b1wcDBigWq+e6vDh9j0ePtweDxhQtP1m/SxUVU888UT96quvVNV+HuvWrfv3uZ9++knbt2+/3etzkg4/i2SXWxuW12XBxiKyOrgvQPngsVhOpnGcQJyznKYVg/VC1ay57fFVV1n5hbJlbYZO585WCdk556Jy221WET03P/wAmzZtv239ehvyIGIzlhs0sAk1CxbAE0/AV1/BM8+EO36ZMmX+vb9p0ya2brWKOhUqVKBlUFumTJkyNGvWjAULFuS6nx49etCzZ0/22WcfAMqWLcu1114LwNNPP81NN91Ely5dWLNmDe3ateO+++6jQ4cOHH300f/uo02bNuGCjqOc1my8+GIbg/vwwzZG7sEHtz1XqZJdHWnb1q6I7PgRRo4Mf+wZM2aQkZHBqaeeCmzfo5WZmUnXrl0ZMGAAH374YZ77KS4/i+Io18uCqlpSVXcNbpVUtVS2+wlPrCD3acVz58L771u3OVgX7n332fbevT2xcs4lh6VLLYn69lv7unTptud2TKyyO+YYa9eqVSva5Jr58+fTqFEjatWqxZ133vnvP+UsK1eu5JNPPuHkk0/OdR/Tpk3jsB3r2QTOOussqlatSocOHXjppZfyfX1eWrZs+e+lqKeffrrA7y+KmTN3XrGjcmVbGzIWfvvtN6pUqcIFF1xA06ZN6dq1K5nBP7AXXniBVq1aUb169Xz3kw4/i1SVMstyqtoagJs37/xcyZJ2FjF0KJx1Ftx+e+Ljc865vBx+uJ3sZSVRmzbZCeCRR1pNvdzUqQNjxsQmhlq1ajFlyhQWLVpE69atadOmDXvttRcAGRkZtG3blltuuYV999230Me46aab2LBhAwceeGCRYh0xYgR7xHH16rx6mg4+2HqtsheLHjHC6iCCLapdkJ6qHWVkZDB69GgmTZpE7dq1ueSSS+jbty9nnnkmgwYNYmRRdp5NqvwsiqOUKTAwerSdtZUvv/Nze+wBn3xii6E651wyymlYw4YN8OabVp+qTRur4p5dvMom7LPPPhxyyCGMHj36320dO3Zk//3357bbbsvzvQ0bNmTChAm5Pl+iRAlKZOtey+/1yahbN7j6akuotmyxr1dfbdtjoWbNmjRp0oR9992XUqVK0bp1ayZOnMikSZOYNWsW++23H3Xr1mX9+vXst+NSItmkw88iVaVMcjVrFpxyip35ZRXAq1gRzjkHzj/fvnotKudcspo3L/fnpk2zGc+vvWY9VSL2tVev2JVNWLBgARs2bADgn3/+YcyYMf/2aNx7772sWrWKZ0IM4Lr77rvp2rUrS5YsAWDz5s289tprub7+5ptv5s0332TcuHH/bvvggw9Ymv2aaJJp29aS2k6dLOHt1Mket20bm/0ffvjhrFy5kuXLlwMwfPhwGjRowNlnn82SJUuYM2cOc+bMoUKFCsyaNSvX/aTDzyJVpcxlwUMPtUGGr71mjc3mzXaZ8MILi14zxjnn4q127ZzHjWYlU2BtW7xqUP3yyy/ccccdiAiqSpcuXTj00ENZsGAB3bt356CDDqJZs2aA/RO+5pprctzPWWedxdKlSznllFNQVUSEq666Ktfj7rXXXrzzzjt06dKFZcuWUaJECU444QTOCC419O3bl48++ujf1/8Q1M1p2bIlJUuWBKBRo0b069cvFt+G0Nq2jV0ytaOSJUvSs2dPTj755KyZpv8ORC+IdPlZpCLRrIX1kkDz5s11/PjxOT6nar1T5cvDQw/ZzI2XXoL33rMZOJUqJTZW51zRicgEVW0edRyxkFf7BVazqmPHnaulx7J3yjmXWLm1YSlzIU0EBg+2ZR3OPNMWX162DEaN8sTKOZf82rWzRCpel/2cc8kjZXqunHPFTzr1XKWa7t27M2jQoO22XXTRRXSL1ahuF5r/LJJXbm2YJ1fOuch4cuWcS2Upf1nQOeeccy4VeHLlnHPOORdDnlw555xzzsWQJ1fOOeecczHkyZVzzjnnXAx5cuWcc845F0OeXDnnnHPOxVBS1bkSkeXAXKAysGqHp3fcVg/4M0GhxfKYOX22oh4zv33m9nxu23c8ZkFjLqiw39dYxJG1j1h8X8O8LvtzYb6vYbeFFau/k4LEkNsxc9pHHVWtVpTAkoW3X4U+ZrzbrzDHKKpYtidh9xGrY4b9/of9vxDLNiyWfydhY8jrmOHbMFVNuhvQK79twLoI4iryMXP6bEU9Zn77zO35PLavK8j+E/V9jUUcWfuIxfc1zOuyPxfm+xp2W6y/t7H83ud2zHj/HiXLzduvgh0z3u1XYeKOx/c2lu1XLI8Z9vsf9v9CLNuwWP6dFKA9z/WYBfkcyXpZ8JOQ21JRPD5HfvvM7fmwsSTL9z4WcRRkH7H4/hT0uWT93U/09z6VJevPMBZSsf0q6GvjJYq/oTCvj/X3P1l//xP6/U+qy4IFISLrVLWiHzP1j5kOn9GP6bJLl5+LH7P4HDMdPmMsj5msPVdhfODHLDbHTIfP6Md02aXLz8WPWXyOmQ6fMWbHTNmeK+ecc865ZJTKPVfOOeecc0kn5ZIrEflNRLaKyMYEHe8IEflHRDaJyEYReT8Rxw2OXVpE1ovI0gQd76PgM24UkbkiUjkOx8jx5ycig7J9j8fF+JiVRWStiGwI9j8y2P6niGwOtv0mIuVjeMw6IrIg+EybROTabM8NEREVkQOKeIydvpci8mNwvA0iskhE6gTby4vIrOCzbhKRLwp5zBz/HkRkpIhkBsfdICL3ZXvPhSKyJtvvVsx/r1JFotuv4JiRtGHFsf0KjpPQNiyK9ivYf7FrwxLZfqVccgU8B7RP4PE2ATepalms/sW5InJugo49GFiWiAOJyGHA2UB1VS2H/W48GYdD7fTzE5HOwEnAHsGxr4zxMVcD9VW1PFAVaC4iVwNvAGWB8sHXPjE85jDgm+D3ZjfgK7A/buAYIDMGx8jpb+EDYNfgs84D3g22/w8oHXx/9wFOEZHjCnHMvP4ePlPV8sHtIQARKQu8DVwVHPsQYH0hjltcJLr9gujasOLYfkHi27Ao2i8onm1YwtqvlEuuVPUF7BueqOP9rKoDgvuLgb+BBvE+rog0B47HfvkSRYCqwS9UGWBWrA+Qy8/vduAxVV0TvGZGjI+pqpp19lwB+71XVX0oeE6BSUDtWBxPRGoBdQgaWFVdp6pzg6c/AG6IxXFy+l6q6mOquil4OBLYK+spoGzws60KbAUWFeKYBf17uBNYrKqDgvfMUtUtBT1ucZHo9is4ZsLbsOLafkHi27BEt19QfNuwRLZfKZdcRSnIkqthmWy8fQR0wn6B4k5VJwAfA38AG4D1qvpYIo4N7AGcHXR9rxSRDrE+QHCJYgPwFzBFVV/P9lx54DRgYIwOdwx2hvR7cFnkVxGpJiLdgeVZf6gJcAXweXD/P0FMG4DfgXdVdXZRdp7D38OZQZf6byJSN9jWNHjtX8H3YmhRjumKJoFt2EekT/sFcW7DEtx+QRq0YfFuvzy5CklE9gK+BJ5U1YVxPtaDwEpV7R/P4+xwzLpAS+BgoCJQTkReStThsTORSsBtwGsiIrE8gKpuCbqZ6wIHikjrbE9PAmaq6osxOlwZ7Hv4qKpWwBqDocCtQKsYHSNPIvIV9o/tpmBTh+BxRaAhcImInFiE/e/493ATdnliF+xS0FfBS0sBtbDGuhZwgoh0KexxXeElqg1Lw/YL4tyGJbj9gmLehiWk/dIYlZZP5A04DtiYwOOVx84YPk7Q8b4HMoJbJtYdOjvOx3wS+wPNevwqMC0RPz9gOdA52+MtwEFx/KzDgE+C+8OBxUDJGO7/UCAj2+ObgBVYw5D1c9Xg66Gx/F4G214D1gC7Z9s2FXgl2+PfgKcLecw8/x6yxwQ8C8zK9tw3wKfx+tmmwi3R7VeYn1mMj1Ws26+cfoaJbMPi3X4F+y22bVii2i/vucpHcPYxDZivqucl4piqeoyqllLVUsAdwDJV3TfOh50O1BGR3YPPfDLwS5yPmeUroDWAiJyGnQXOjNXOReSgbDNOqgLNgYki0je430BVYzE4EwBVnQqsE5Ezgk0XYX+gJbL9XDOD406N1XEBRKQbcBlwuKr+ne2p+djPFBGpho2nGFOI/ef49yAijbO9rAuQNUbkaWCf4PeqLNbNPr6gx3WFl+g2LA3bL4hjG5bo9guKbxuW0PYrHpl1PG/YqvNZZ0MZwBtxPt4NwbE2ZLvdl8DPexuwNEHHGold094IzAYqJeLnh3Xzzg6Oux64PcbHvDDY74bgGMOC7YqdYWb9XIfF8JiXAOuC/S4G6u7wfAZwQBy+l5uD+1mfaXrw2r2wxmlj8DMuVO9Rbn8P2X5+G4AlQONs73kpeG4jMC4Rv8vJekt0+5XXzyxBn7dYtV+5/Qzj2YZF0X4F+y92bVgi2y+v0O6cc845F0N+WdA555xzLoY8uXLOOeeciyFPrpxzzjnnYsiTK+ecc865GPLkyjnnnHMuhjy5cqGJrYL+ZLbHXUTkgRjt+wERWSgik0Vkhoi0jcV+nXMOvP1yieXJlSuITcAFIrJHnPb/tKo2Ac4DXhWR0nE6jnMu/Xj75RLGkytXEBlAL6Dzjk+ISF8RaZPt8drgawsR+VZEPhaR2SLymIi0E5EfRWSqiNTfcV+q+jtWNK9qsI+uIvKTiEwJ1i1DROoGi4n2F5FfRGSwiFQInnssOHucIiI94/GNcM6lHG+/XMJ4cuUK6kWgnYhULsB7GgPXY4uqXoZV9T0CWz+q044vFpFmwO+quixYSmJ/4AigCXCYiJwQvPRA4CVVPRhYDdwoIrsD5wMNVbUR8EghPqNzrnjy9sslhCdXrkBUdTXQD7ilAG/7SVUXq+om4A+2rTg+FVvlPUtnEZkOjAO6B9tOC26TgInAQVhjBbY+1HfB/bexBTdXYcsU9BGRC7AzSOec8/bLJYwnV64wngGuxtbTypJB8PskIiWAMtme25Tt/tZsj7cCpbI997SqNsTW0uojIuWwBVB7qGqT4LafqvYJXr/j2k2qqhnYWeJg4Bzgi8J9ROdcMfUM3n65OPPkyhWYqq4A3sMaqCxzgMOC+62AQg/mVNUh2MrjHYAvgatEZBcAEakhInsGL60tIkcH9/8PGBO8rrKqfoaNrWiMc84FvP1yiVAq/5c4l6MngZuzPe4NfCwiP2NnW+uKuP+HgAHYOIeDgbEiArAWaI+tpD4TuElEXgdmAC8DlYM4ss4aby9iHM654sfbLxdXorpjz6RzyU9E6gKfquohUcfinHMF4e1X8eeXBZ1zzjnnYsh7rpxzzjnnYsh7rpxzzjnnYsiTK+ecc865GPLkyjnnnHMuhjy5cs4555yLIU+unHPOOediyJMr55xzzrkY+n8Ky3mdAP1eoAAAAABJRU5ErkJggg==\n", + "image/png": "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PrNFv6+4whrLlSsTH4NzrmLYYgtLms4/38bKduxYdI2x4nz7LYwebYP2r7kGxo6FH36Agw9OzdJAqSZMiYrLgDuDrTNwA3BYguNyLmmqVLFG6MUXbe21446DnXe2wac//wwNG9qVXbJLW1StaiU1broJnn7aap8tWJDcGJxzmatSJbjhBpuk9Pnn1rv19tulO8Yff9jY1exsOPts2HJLK62zbh289FJi4s4kYXrCjgAOABap6iCgNVA1oVE5F4Hu3a03qkkTeP11WLbMylvcdpslP2UZxFpeInDuuZYgfved9dB9+GHy43DOZa4jjoCPPoL69eGAA+DWW8NfdH78MfTuDa++aoP199nHevEPOcRec8ULk4T9o6rrgbUiUgdYDOyQ2LCci8bixTb+6uOPNywIPnaslbSYOze6uLp1s3Uwq1e32waPPRZdLM65zLPzzpaIHXaYzXrs398KXJckJwdmz4a99rLB+rVrWy/+7Nn2mite2AW86wH3YzMjZwIfJTIo56Kyxx52Rbfttvb8mWdsXNakSdawRKllS2sk99zTeuwuuWTTAq/OOVdWderYMm/XXWe3KPfay3rgi9Ozp73nlltgl11swP/bb9tFY7Vq3kaVJMzakaeq6p+qeh/QBRgY3JZ0LuOccII1HhdcAN98YwP2W7SwsRO9e8OFF0a72Pbmm1uxxJNOsrIWRxwR7mrVOefCEIH//c8uRhctsnpixS13VK2atUmTJtn42diYsCuvhGOPtaWOli1LWvhpJ+zsyFYichjQBthRRPokNiznolG/vtXQWb7cljcaOtSqTM+dC8ccY1eIRx8dbYxVqlh9nttug+eegw4dvLK+cy6+DjzQerWaNi15uaMdd7T1b3/80XrF3nnH2s277rLB+e3bw/ffJzf+dCFawug7EXkIaAV8AcQ6FlVVT0hwbIXKy8vT6dO9VqyLxptvWpd9Xp5d3a1da2PHovLqq9C3r90qnTjRGrtMJCIzVDUv6jjiwdswl05idcAefNDKTowbZ7ULw5oyBY480hK4J5+ELl0SF2uqKq79CtMTtpeq5qnqQFUdFGyRJGDORW3//S0BAxg2zAazPvFE8stXxBx8MEybZolhp05W48w55+KlvMsdde5sE51ycmyik9tYmCTsAxFpkfBInEszgwdbfZx+/Wx5oahuCTZvbmUrOnSwGmfDhkW/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nEcftc+J2OOjj4b7HDBdU6D9iceWqm1YzZo1VVV17ty52qZNG23durW2aNFC77333v/ec/TRR2uzZs20ZcuWOmjQIP3333+jCjeuYt9dVXXevHnapUsXbd68ue688846Z86cjd572mmnbfR+l55++UX1/PNVa9VSBdUePVQ/+KDo9599tmpWlupZZ6n+9Zfte/BB1bZtSz5Xce1XcUnYzOKeR7WlagPmXEXy9tuqBx9syRSoduigev/9qmvWJOZ8noRtrKzJbHFiicXq1at11apVqqq6fPlyzcnJ0Z+D7HvSpEm6fv16Xb9+vfbr10/vueee8p+4lB57TLVlS/sPsWVLe15e+ZOqjh076uTJk1XVvv+KFSv+e+3jjz/WY445xpOwDPLHH6pXXKHaoIG1ZZ06qU6ebBee+bVpo9qtm/2ba9XKXl+7VnXLLVXnzi3+HMW1X8XdjmwtIsuCbTnQKvaziCwrZweccy6N7bcfvPKKzSC67jr4/XerAZadba9//bXdsizMunU2K9KVzbhxNts0UaU+qlSpQtWqVQFYvXo16/Pdd+7WrRsigojQrl07FixYEJ+ThjR+vM2mvfNOGzB95532fPz4+Bz/yy+/ZO3atXTp0gWAWrVqUSO4h75u3TrOP/98brjhhviczKWEBg1g+HD7d3TLLVY/7KCDbOHwZ57ZMOwiVqn/o4/gmmts8L+IvablKNolWp5PRyAvL0+nT58edRjOuXxUYfFiK32xapXVIKtRA447zpZE2mknK39x2WVWM2zFCth5Z0vgDj645OOLyAxVzUv8N0m8ktqws84qfjmVadMKL0JZteqGtfEK2m03WzGhOLVq1eLvYObF/Pnz6d69O99//z033ngjQ4cO3ei9a9asYc899+T2229n3333Lf7ApdSp06b7jjrKKpu3aGGrQOQvd7J0qVU8X7DALgaOOGLjz771VsnnjH33iRMn8sADD1ClShXmzJnDgQceyHXXXUd2dja3334769ev5+yzz97od+Uyy+rV8Mgj1jb98IO1U//7n82ofP99+7t46aU2q7tBAxsv9sMPGxKywhTXfoUpUeGcc8USsQQMrDds5EhbS/L6622qd/v2to7lzJkwY4b1hF19tSVpH30UbezpprAErLj9ZbHddtvx2Wef8f333zNmzBh+/fXXjV4/9dRT2W+//eKegJXkm29s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\n", "text/plain": [ "
" ] @@ -420,18 +392,13 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"retrieve\" in bm\n", + " flag = \"count_varying_num_reps\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", - " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", - " unique_labels = randomdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", - " \n", - " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", - " unique_labels = cycledf[\"Label\"].unique()\n", - " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_perf(bm + \"_RANDOM\", tmpdf, \"NumReps\", unique_labels, flag)" ] } ], diff --git a/benchmarks/analysis/notebooks/Utils.py b/benchmarks/analysis/notebooks/Utils.py index 8c5173187..68045a8a4 100644 --- a/benchmarks/analysis/notebooks/Utils.py +++ b/benchmarks/analysis/notebooks/Utils.py @@ -28,10 +28,11 @@ def plot_perf(bm, df, xaxis, unique_labels, is_multivalue = False, is_singletype if is_multivalue: lnum = list(df[xaxis]) - for item in lax: - item.set_xscale('log') - item.set_xticks(lnum) - item.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter()) + if xaxis == 'NumReps': + for item in lax: + item.set_xscale('log') + item.set_xticks(lnum) + item.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter()) if not is_singletype: num_style = len(df["Distribution"].unique()) From 3cd4336b7f8ed157b15d0f7e33bc883535f0dc8c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 6 May 2021 13:24:39 -0400 Subject: [PATCH 084/267] Minor updates to notebook: change file names --- benchmarks/analysis/notebooks/StaticMultimap.ipynb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index 356cedd29..6d0aaa5f2 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -330,6 +330,7 @@ "### count by varying matching rate\n", "
    \n", "
  • Fixed num_reps: 8
  • \n", + "
  • Random non-unique input keys
  • \n", "
" ] }, @@ -340,7 +341,7 @@ "outputs": [ { "data": { - "image/png": "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uuv83HPPXb4PXUr33efeqpX7yy+7//13fG3VKh5fHkU/+8cff+xbbrllicfMmzfPe/To4d9++22J/1ZSWGbPdn/wQfe99nKvXTt+j1q2dD/7bPexY90XLKi4zyrr/JVR26JlZWYtgafcvUMJz/UnCsAOS+5/DvRw9+/Kek8ltYpk17RpkQPmDnvsUXaexahRcO218NJL8MsvMTOzySbw2GOLVvwHmDsXLrooZtRmz4b114crr4z6ZuWpSon5p5wCY8eW/vpRo2KH6+Jq144+oiXp1AluuKHsuOrXr8/vv/8OwNdff82uu+7KxIkTufrqqzn++OMXOXbu3Llsttlm3HjjjXTr1q3sN15KPXos+dh++8USebt2MTO70koLn/v5Z5g5M/6/nTEjNpoU9+qr5X9m0c/+2GOPMXDgQGrVqsWkSZPYfvvtufLKK6levTo33ngjCxYs4NRTT13k30oK36xZcc66//6o1D9/fpyfDjwwimO3abPw2KFD4bzzYOrU6IN5+eXll78o6/yVZqe5tYDiDQimJY+VOQgTkexq2hROPDGzY7t2jfIX8+bBe+/B88/HIKFoBeecc6JExk47RUmNH36IHZjNm0d+xqGHRqLspptm7+epbEoagJX1+LJo1qwZH374Id9++y177rkn++67L6uvvvo/zx933HF07969wgdg5fn8c9hyy0Ufa9QIxo+vmPefN28eb7zxBh988AHNmzdn//33Z/Dgwey8884MHz6cVzMZ0UnBadQoKvD36ROFrR96KAZkF14Yt86dY0BWs2ac04ryYiukDllpU2QVcQNaUvpy5NPAVsXujwA6l3Ls0cBoYHTz5s0rbo5QRLLq/PNjubJo2axNG/fLLlv4/M03ux9wQPnvg5Yj/9GixaJLkUW3Fi2W621LXWI77LDDfPjw4f/cv/jii32PPfbw+fPnL98HLoP27WMJsriXX47Hl0fRz/7222/71ltv/c/jQ4YM8eOOO86feuopX3311b1FixbeokULNzNv3br18n2o5L2vv3a/5hr3Ll1K/p3L9HevrPNXJm2LsmUa0KzY/abAtyUd6O4D3L2Lu3dp3LhxToITkeV36aXRcPfhh6OwbKtWUSS2yCabRAsSyVxJO8Dq1YvHK8K0adP4448/APj555958803WXfddQEYOHAgzz//PMOGDaNatdz/+TjvvGhT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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFhCAYAAAA4HX3WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABlo0lEQVR4nO3dZ5RU1dKH8afIIIgJFQUGREABAWVUDCBmTJh4TSiIEeM1XzN61avXnBVERBRRMUcMGDGDCogJlCAmxIAKBkK9H6pHBpjQwHSf7pn/b61e03061aAc9tm7dpW5OyIiIiKSXdWSDkBERESkKtIgTERERCQBGoSJiIiIJECDMBEREZEEaBAmIiIikgANwkREREQSoEGYiOQMM+ttZs8nHUcmmFl3M5tZxvO3m9kF2YxJRJJlqhMmUjWZ2TTgKHd/MelY8pWZXQRs6O6HpvHa7sC97t4kw2FVmOX5/URk+WkmTESyxsxqJB2DBP23EEmeBmEiOcLMmprZI2b2g5n9aGY3m1k1MzvfzKab2SwzG2ZmDVOvX2Z5y8ymmdlOqfsXmdmDqff8ZmaTzKww9dw9QDPgSTP73czOKiOuUWZ24lLHxpvZfqn7N5jZV2b2q5mNM7OuxV53kZk9ZGb3mtmvwNlmNs/M1iz2ms6p37mmmR1uZmOKPedm1t/MJpvZz2Z2i5lZ6rnqZnaNmc02s6lmdmLq9WUOLszsFTO71MzeTP3uT5rZmmY2PPU7vGdmzYu9vsTfz8x6AOcCB6Y+Z3zq+BpmdpeZfZOK+bGlvv/01H/Lb82sX7HjQ83s0tT97mY2s4zXrpmKuyjeS4v/uZXxu7uZnWBmk4HJK/j7NTSzO1MxfZ367urlfbeILEuDMJEckPpH7ClgOtAcWB+4Hzg8ddse2ACoD9y8HB/dM/U5qwFPFL3X3Q8DZgB7uXt9d7+yjM+4Dzi4WKxtgQLg6dSh94BOwBqp1440szrF3r838FAqhmuAV4ADij1/KHC/u88v5fv3BDYHOqbet2vq+NHAbqnv3gzYp4zfYWkHAYcRf84tgbeAu1K/wyfAgGKvLfH3c/dRwH+BB1J/hh1Tr78HqAe0A9YGriv2WesCDVPfeyRwi5mtXkqMZb32FmBu6jV9U7d07QNsCbRdwd/vbmABsCGwKbALcNRyfL+IpGgQJpIbtgDWA85097nu/qe7jwF6A9e6+5fu/jtwDnBQebM9xYxx92fcfSExOOhY3htK8CjQycwKUo97A4+4+18A7n6vu//o7gvc/RqgNtCm2PvfcvfH3H2Ru/9B/CN+KPwz+Dw4FVtprnD3X9x9BvAyMWCAGJDd4O4z3f1n4Irl+J3ucvcv3H0O8Czwhbu/6O4LgJHE4II0f79/mFljYmDY391/dvf57v5qsZfMB/6TOv4M8Htpn1Xaa1N/ZvsDA9x9nrt/TPyZputyd/8p9d9ieX+/dVK/3ymp/09nEYPMg5bj+0UkRYMwkdzQFJieGgQUtx4xO1ZkOlADWCfNz/2u2P15QJ3lGMAB4O6/EbNeRf/QHgQML3o+tWT2iZnNMbNfiNmbtYp9xFdLfeTjQFsz2wDYGZjj7u8ux+9QP3V/vaU+e+nvKcv3xe7/UcLjou9I5/crrinwU2pQWJIfl/pvXPz3Sfe1jYj/B1b0d1/itcv5+xUANYFvzeyX1OsHEjN+IrKclJgpkhu+ApqZWY2l/uH9hviHr0gzYinoe2IQUq/oidQMSaPl+M7l2Ro9AhhgZq8BdYkZKVL5Q/8GdgQmufsiM/sZsNK+x93/NLMHiRm1jSh7Fqws3wLFdxo2XcHPKVUav9/Sf4ZfAWuY2Wru/ktFx5PyA/H/QBPg89Sx5fnd/4l5BX+/v4C1SrhgEJHlpJkwkdzwLjGouMLMVjGzOma2DTH4OdXMWphZfRbn6Cwg/gGuY2Z7mFlN4HxiKSld3xN5Zul4hhgM/if1/YtSxxsQA4IfgBpmdiGwahqfN4zIdesJ3LscMRf3IPAvM1vfzFYjBhMVrbzf73uguZlVA3D3b4nlzVvNbHWLzQbdKjKg1NLyI8BFZlbPzDYC+qzgx63I7/c8cI2ZrWqxcaSlmW23or+PSFWmQZhIDkj9w7oXkew8A5gJHAgMIWaKXgOmAn8CJ6XeMwc4HhgMfE0kapdaDLQElwPnp5aVzignvr+If/h3IpK3izxHDDo+J5ZK/ySNpTF3fwNYBLzv7tOWI+bi7iAGBBOAD4iB4gJg4Qp+XknK+/1Gpn7+aGbvp+4fRuRzfQrMAk6pwHiKnEgsG35H/P8xgpihWl4r8vv1AWoBHwM/E5suGq/Ad4tUeSrWKiKJMLOXgPvcfXAFfd5uwO3uXlDuiysZM/sfsK67L88uSRFJmGbCRCTrzGxzoqzEAyvxGXXNbHczq2Fm6xNlJR6tqBhzmZltZGYdLGxBlLCoEr+7SGWiQZiIFPVs/L2E26QMfNfdwItEmYPfVuajgIuJJbEPiPpeF6a+o6Tf5XcrVkg2zzUglofnErlx1wCPm1nX0n73RKMVkRJpOVJEREQkAZoJExEREUmABmEiIiIiCdAgTERERCQBGoSJiIiIJECDMBEREZEEaBAmIiIikgANwkREREQSoEGYiIiISAI0CBMRERFJgAZhIiIiIgnQIExEREQkAXk5CDOzIWY2y8w+SuO1BWY22swmmNkrZtYkGzGKiIiIlCUvB2HAUKBHmq+9Ghjm7h2A/wCXZyooERERkXTl5SDM3V8Dfip+zMxamtkoMxtnZq+b2Uapp9oCo1P3Xwb2zmKoIiIiIiXKy0FYKQYBJ7l7Z+AM4NbU8fHA/qn7+wINzGzNBOITERER+UeNpAOoCGZWH9gaGGlmRYdrp36eAdxsZocDrwFfAwuyHaOIiIhIcZViEEbM6P3i7p2WfsLdvwH2g38Ga/u7+5zshiciIiKypEqxHOnuvwJTzez/ACx0TN1fy8yKfs9zgCEJhSkiIiLyj7wchJnZCOAtoI2ZzTSzI4HewJFmNh6YxOIE/O7AZ2b2ObAOcFkCIYuIiIgswdw96RhEREREqpy8nAkTERERyXcahImIiIgkIO92R6611lrevHnzpMMQkSwaN27cbHdvlHQcFUHnMJGqpazzV94Nwpo3b87YsWOTDkNEssjMpicdQ0XROUykainr/KXlSBEREZEEaBAmIiIikgANwkREREQSoEGYiIiISAI0CBMRERFJgAZhIiIiIgnQIExEJAfNmgVffQXqLCdSeVXaQdjw4dC8OVSrFj+HD086IhGR8k2fDjvvDG3aQGEhbLYZvP120lGJSCZUykHY8OFwzDFxMnOPn8cco4GYiOS2hQuhRw/YYQf47jv49ls45xzo2TMei0jlUikHYeedB/PmLXls3rw4LiKSq154AVZdNQZetWvD3LlwwAGwzz5w991JRyciFa1SDsJmzFi+4yIiueCrr6Bdu7g/Ywa0bg3XXQdt28LMmcnGJiIVr1IOwpo1K/n42mtnNw4RkeWx5ZYxG/bnn7DmmrD11nDaaXD11ZEbJiKVS6UchF12GdSrt+QxM/j+ezj0UOVWiEhu6tABunaFPfaAd96BM8+E9u3h668jp/WXX5KOUEQqUqUchPXuDYMGQUFBDL4KCmDwYDj/fBg5MnYd3XADDBumHZQiklvuvhv22gvOPjs2FPXsCTfdBK++ChddlHR0IlKRzPOsCE1hYaGPHTt2hd8/eTKcdBI891wM0Ir/+vXqxeCtd+8KCFREKoyZjXP3wqTjqAgreg57882YKatfHxYtiovHr76K3d8bbxzLlyKSe8o6f9VI481rA9sA6wF/AB8BY919UYVGmSWtWsGzz0Z+2OzZSz5XtINSgzARyTVbbx0/f/8ddtwxBmGTJ0fy/iefQP/+8N//xsWliOSHUpcjzWx7M3sOeBrYDWgMtAXOByaa2cVmtmp2wqxYZvDjjyU/px2UIpLL5s+PGbC334Zjj4U33oDPP4fRo2HgwKSjE5HlUVZO2O7A0e6+ubsf4+7nu/sZ7t4T6Ah8AOyclSgzoLQdlHXrKnFfRHJX3brw229w0EEx83XIIdCgAVx5pQZhIvmm1EGYu5/p7iXOC7n7And/zN0fzlxomVXSDsqaNeMqs23bSI7Ns3Q5EakC5s6Npcjhw+Hyy+H+++HEE2MD0tIpFiKS20rNCTOz08p6o7tfW/HhZE9R3td558USZLNmMTDr3BmOOgoOPxzuuy+uLJs3TzJSEZHF1lgjzlejRsUOyg02iPpi990H222XdHQisjzKWo5skLoVAscB66du/YncsDKZWVMze9nMPjGzSWb2rxJeY2Z2o5lNMbMJZpbVcoS9e8O0abHTaNq0eLzRRvDaa3DzzbEbqX372B6+KC+3IYhIZWMWxVv79YOrropB2c03R9mdmjUjSV9E8kNZy5EXu/vFwFrAZu5+urufDnQGmqTx2QuA0919Y6ALcIKZLT142w1olbodA9y2Ar9DhatWDU44AT76KAonnnxy/LzyStUVE5Hk7borPP88fPZZLEm6w6OPxs7vbbeFt95KOkIRSUe5JSqAZsDfxR7/DTQv703u/i3wber+b2b2CTGT9nGxl+0NDPMoVva2ma1mZo1T701cQQE88wzcey8cf3zMjBWZPj0KKYJKWohI9nXsGEWoi3vzTejRI0pYPPBAFH0VkdyVTsX8e4B3zewiMxsAvAMMW54vMbPmwKap9xa3PvBVscczU8dyhhkcdhisttqyzxXVFRMRyQUbbBAlK9q3h332gaFDk45IRMpS7kyYu19mZqOAbVOH+rn7B+l+gZnVBx4GTnH3X5d+uqSvLOEzjiGWK2lWWm2JDPv665KPT5+e3ThERMrSqBG89BL06RODMhHJXen2jvwQGAk8CvxoZmmNhMysJjEAG+7uj5TwkplA02KPmwDfLP0idx/k7oXuXtioUaM0Q65YZY39zjoLfl16eCkikpD69eGRR6Bbt3j87LNw++2xTNmtG1x7Lfz5Z7IxikgagzAzOwn4HngBeIqooP9UGu8z4E7gkzLKWTwB9EntkuwCzMmVfLCllVRXrG7dSNi/6qpoHTJ0qHZRikhu+eAD2H33SJ047rj4+dJLsOeesHBh0tGJVG3pzIT9C2jj7u3cvYO7b+LuHdJ43zbAYcAOZvZh6ra7mfU3s/6p1zwDfAlMAe4Ajl+RXyIbeveO5t4FBZEnVlAAd9wR5SzefRdatIgt4126RDsREZFc4A6rrw4//wzXXw+bbw6PPw5z5sTGIxFJTjq7I78C5izvB7v7GErO+Sr+GgdOWN7PTkrv3iXvhNx880iGHT4c/v1v2GqrSOa/4gpYb73sxykiUmTMmGhxtMMOcf7aZht46inYd194/XXtoBRJUjozYV8Cr5jZOWZ2WtEt04Hlm2rVYuD1+edwzjmxPbx166jho9wLEUnKuuvCF19Ar17wwgswa1bM4E+eDI0bJx2dSNWWziBsBpEPVovFVfQbZDKofFa/fjTV/fhj2HlnOPdcaNcOHntMvShFJPt69ozz0ZAhUcj1s89grbXg6adh++2Tjk6kakunRMXFAGbWIB767xmPqhJo2TIqWL/4IvzrXzH1v9NO0VqkbblNn0REKkadOtFn8tBDYcCAaG1UowZcc00sTZ5yClxySczmi0h2pbM7sr2ZfQB8BEwys3Fm1i7zoVUOO+0E48fDjTfC2LHQoUMMyn7+OenIRKSqaNcO3n8fRo+GJ5+ETz+NPLHevWPm/sADo/i0iGRXOtc+g4DT3L3A3QuA04mdjJKmGjXgpJMiB+OYY6LZbqtWUbdHW8RFJBvMIk+1XbuY9apZEwYOjGbgDz8M3bvDtzlZIEik8kpnELaKu79c9MDdXwFWyVhEldhaa8Gtt8YVafv2UbNns83g1VdjZ6Wag4tINpnB6adH6sSkSXF+EpHsSadExZdmdgHRQxLgUGBq5kKq/Dp2hJdfjqvPM86IK9Dq1RfPiqk5uIhk0957w7hxsOGG8XjevGWLU4tIxUtnJuwIoBHwSOq2FtAvk0FVBWaxZfyTT6Bhw2WXJdUcXESyaaONInXi++9jyfLaa7WjWyTT0tkd+TNwchZiqZLq1i2976Sag4tItjVoAJ07xzLlZ59FDmvNmklHJVI5pbM78gUzW63Y49XN7LmMRlXFlNYcvHr1qO2zYEF24xGRqqtePXjwwSg6PWgQ7LabdnOLZEo6y5FrufsvRQ9SM2NrZyyiKqik5uC1a0eC/pFHwiabwCOPaGlARLKjWrUoXTF0aFTXP+uspCMSqZzSGYQtMrN/5mrMrADQcKACldQc/M47o6TFI4/Ea/bfP5qDv/xy2Z8lIlJR+vaFV16B//0vHutCUKRipTMIOw8YY2b3mNk9wGvAOZkNq+rp3RumTYNFi+Jn794xINt3X5g4MQZl33wTTXh33TXKXIiIZNrWW8Maa8Bff0Xx6aFDk45IpPIodxDm7qOAzYAHgAeBzu6unLAsqlEDjjgiZsauuSYq73fuHBWvJ09OOjoRqQr+/DMuDPv1i3yxRYuSjkgk/6WTmG9AD2Azd38SqGdmW2Q8MllGnTpw2mnw5ZdwwQXw1FOw8cbQv3/MkomIZErDhvDss1HD8Ior4IAD1OpIZGWlsxx5K7AVcHDq8W/ALRmLSMrVsCH85z/wxRdRdX/IkCiyeM452sUkIplTs2a0W7vmmshXPfzwxc/99Rf88INmyESWRzqDsC3d/QTgT/hnd2StjEYlaVlnHbjppmjGu//+kTy7wQbxU1eoIpIJZjEj//jjcPHFMH8+nHkmrLsutGkTfXEffDDpKEXyQzqDsPlmVp3UjkgzawToWieHbLAB3HMPfPghbLMNnH12zIwNHBgnSPWlFJGKttdekQ5x+ukwcmRU2P/xRxg2LAZpo0cnHaFI7ktnEHYj8CiwtpldBowB/pvRqGSFdOgQeWKvvRYDs/79oxDsEUdE9X33xX0pNRATkZX1229w992xe/LII2OZcuuto8bY9dcnHZ1I7ktnd+Rw4CzgcuBbYB93H5npwGTFde0Kr78OTz4ZV6Z//73k8+pLKbJ8zKypmb1sZp+Y2SQz+1fq+BqpriKTUz9XTzrWbPr+e1hzTRgzJlIizjwz8sQ22gimTk06OpHcl87uyJbAVHe/BfgI2Ll4GyPJTWaw556xHFkS9aUUWS4LgNPdfWOgC3CCmbUFzgZGu3srYHTqcZXRtCn8/jt89RU88EDkiA0bFnUOO3VKOjqR3JfOcuTDwEIz2xAYDLQA7stoVFJhCgpKPl6zJjz0kHYyiaTD3b919/dT938DPgHWB/YG7k697G5gn0QCTEjt2jGrvs8+MGoU9OkDRx8Ns2ZFbqqIlC2ttkXuvgDYD7jB3U8FGmc2LKkoJfWlrFUrlhD+7/+gfXu49141CRdJl5k1BzYF3gHWcfdvIQZqVMG+uv/6V9QtvOSSSIX46Sd49dU4t9x8M9x2m9odiZQm3d2RBwN9gKdSx2pmLiSpSCX1pRwyBGbOhPvvh+rV4bDDIofjzjuXzR8TkcXMrD6xOnCKu/+6HO87xszGmtnYH374IXMBJuSQQ+Ctt2JZ8qGHYinSHV58EY4/Ho49NuqIiciS0hmE9SOKtV7m7lPNrAVwb2bDkopUUl/K6tXhwANh/Hh47DFYfXU46qgobXHLLfDHHwkHLZJjzKwmMQAb7u6PpA5/b2aNU883BmaV9F53H+Tuhe5e2KhRo+wEnDAzePjhWK684w7Yfnv49tukoxLJLensjvzY3U929xGpx1Pd/YrMhybZUK0a7L03vPtu5HQ0awYnnhglLq65JpJuRaq6VPu2O4FP3P3aYk89AfRN3e8LPJ7t2HJZ9epw6aVRR2zCBNhiiyhrISIhnZkwqQLMYNddo7TFyy9Du3ZwxhlR3PWyy2DOnKQjFEnUNsBhwA5m9mHqtjtwBbFjfDKwc+qxLKVXr1iuPP98aNAg6WhEcocGYbIEM+jePXI53nwTunSJE2dBAVx4YdQdE6lq3H2Mu5u7d3D3TqnbM+7+o7vv6O6tUj9/SjrWXLXJJpEbBlFN/+STSy+hI1JVlDkIM7PqZnZVtoKR3LLVVlGB//33YaedYvdTQQGcdRZ8913S0YlIvnrjjeh7u9NOUc5CpKoqcxDm7guBzql8CKmiNt00djx99FHUA7rmGmjRIq5kv/pKvSlFZPlceGGUxnn3XSgshHHjko5IJBnpLEd+ADxuZoeZ2X5Ft0wHJrmnXbs4cX76aWxJv+22GIz17avelCKyfHr3jhkxgG23hUmTko1HJAnpDMLWAH4EdgD2St32zGRQkttatYqaYlOmQN26sHDhks+rN6WIpGOzzWDs2JgZa9s26WhEsq9GeS9w937ZCETyT0EBzJ1b8nPqTSki6Vh7bTjnnLg/ZUq0Oxo4MLp6iFR26TTwbm1mo83so9TjDmZ2fuZDk3zQrFnpz+2xR2xLFxFJx8SJ8OSTkSc2YULS0YhkXjrLkXcA5wDzAdx9AnBQJoOS/FFSb8q6daMv5TvvwNZbww47wEsvqX+ciJRt333htdeifdpWW0WRV4CpU2Nz0Lvv6jwilUs6g7B67v7uUsfU7lmAkntT3nEHPPhgtEi65ppI5N9xxxiQPfWUTqIiUrott4zdkp06wQEHwM47w+abx2afQw+N84jKWkhlkc4gbLaZtQQcwMx6AeoAJv8oqTclQP36cNpp8OWXcOut0Tdur70iGXfkyGUT+kVEANZdNzp37LVXtE6bOhUefTQu6Lp2XVz0VSTfpTMIOwEYCGxkZl8DpwD9MxmUVC516sBxx8HkyXDXXbF78oADoH17GDZMVbNFZFm1akVR6Esvjdnznj2jjMVFF0V6w88/Jx2hyMpLp4H3l+6+E9AI2Mjdt3X3cve+mdkQM5tVlNBfwvMNzexJMxtvZpPMTLswK7maNeHww+Hjj+H+++Mk27cvtGkTu6H++ivpCEUkl/z2G6y1Vsywv/deLEvedVecO0rbmS2ST9LZHbmmmd0IvA68YmY3mFk6m4eHAj3KeP4E4GN37wh0B64xs1ppfK7kuerV4cAD4cMP4YknoFEj6N8fNtgArr9eJ1cRCT16RE3CDh1g/HjYfns48cS4YKtbN+noRFZeOsuR9wM/APsDvVL3HyjvTe7+GlBWM1sHGqRaItVPvVYJ/1WIWeR8vP02vPBCFIE99dRofXT55TBnjloiiVRl55wDo0bFRduoUZHCsMoq8McfkeIgku/KLdYKrOHulxR7fKmZ7VMB330z8ATwDdAAONDdF5X0QjM7BjgGoFlZhakkL5lFI9+ddoIxY6LsxbnnRi7I33/DgtTQvKglEixO/heRymvttWMZcuhQeP55aNo06of9/HMsUwL8+muUyamRzr9mIjnGvJx6AWZ2NTAWeDB1qBfQzt0HlPvhZs2Bp9y9fQnP9QK2AU4DWgIvAB3d/deyPrOwsNDHjh1b3ldLnhs3Drp1iyT+pRUURI6IVB1mNs7dC5OOoyLoHFZx3GM2/ddfo6+trtElF5V1/kpnOfJY4D7gr9TtfuA0M/vNzMocMJWjH/CIhynAVGCjlfg8qUQ6d44lh5IUNQsXkarNDA4+GD74IOqKPfpo0hGJLJ90dkc2cPdq7l4zdauWOtbA3Vddie+eAewIYGbrAG2AL1fi86SSKeuqtlOn2CX1559ZC0dEclDv3rHJp2VL2G8/OP740i/gRHJNOjNhK8TMRgBvAW3MbKaZHWlm/c2sqMbYJcDWZjYRGA38291nZyoeyT+ltUQ68sgoDHvEETFQGzAg6gmJSNXUsiW88QaceWbsuP7996QjEklPxgZh7n6wuzdOzZ41cfc73f12d7899fw37r6Lu2/i7u3d/d5MxSL5qbSWSIMHR3Luiy9Cly5wySUxGOvTJ3LJRKTqqVULrrwy6hA2ahQbekaOVOqC5LaMDcJEKkJpLZHMoh/lE0/AZ59FnbFHHoHCwmhr8vDDi3dVikjVsWoqSeaee6IzR69e8FNZxZJEEpROsdaWZlY7db+7mZ1sZqtlPDKRNLVqBTfeCDNnRsPwmTPjxLvhhvH4l1+SjlBEsq1vX7j6anjyycghff31pCMSWVY6M2EPAwvNbEPgTqAFsVtSJKestlo0DJ8yJWbFmjeHM86AJk2iyvbnnycdoYhkS7VqcPrp8OabULs2dO8Ot9+edFQiS0pnELbI3RcA+wLXu/upQOPMhiWy4qpXh333hVdegfffj1mxO+6IHpV77hnV+d1VjV+kKigsjPNA377Re1Ikl6RTY3i+mR0M9AX2Sh2rmbmQRCrOpptGte3//S+ugm+9FXbZJWbHZs2KivygavwilVmDBjBkyOLHZ58NW24ZF2uzZ0c1/lq1oldl/frJxSlVTzozYf2ArYDL3H2qmbUAtJNR8so660QpixkzYlD2/feLB2BF5s2D885LJDwRyZJ582Jn9X77RUPwDTeEhx6KRuHNm8NzzyUdoVQl6RRr/djdT3b3EanHU939isyHJlLxateOZYn580t+XtX4RSq3evUiT+zwwyNlYZ11oszNs8/C44/DIYdEGySRbEhnd+Q2ZvaCmX1uZl+a2VQzU2V7yWsFBaU/16EDDBwIc+dmLx4RyZ5ataIZ+P77x+7pHXaIGbJttokSN088kXSEUlWksxx5J3AtsC2wOVCY+imSt0qrxn/00VCzZtQdW3/9xbstRaRy+eOPKF0xfnw0/65XL2bBa9ZU2yPJnnQGYXPc/Vl3n+XuPxbdMh6ZSAaVVo1/0KCouv/GG7DbbnDTTdC6NeyxRyxXLFqUdOQiUhH23BOGDYuk/Z13jmPXXBOFnufOVVqCZId5Of+nmdkVQHXgEeCvouPu/n5mQytZYWGhjx07Nomvliro229jaXLgwOhP2aoVnHBC5JM0bJh0dFWHmY1z98Kk46gIOoflBnc49tgo4nrEETH7deutMSM+bVrsnLz9dlh77aQjlXxX1vkrnZmwLYklyP8C16RuV1dceCK5q3FjuOiiSNi/777oSXfKKbFUefzxMGlS0hGKyIowi4urG2+MXdNz5kR1/SlT4Kqr4OmnoV27+CmSKeXWCXP37bMRiEguq1ULDj44bu+/H8uUQ4bAbbdFUu+JJ8Jee0GNdCrviUhOMIulyKLlyCJnnBHpCH37RjFnkUxJZ3dkQzO71szGpm7XmJkWYqTK2mwzuOuu6FF5+eUweXLUHGrZMorCzp6tavwi+a5dO3j33RiMQcyYqYaYVLR0xvhDgN+AA1K3X4G7MhmUSD5Ya62ovP3ll9GrcsMN4/F668UVdFHNsaJq/BqIieSXolmw+fNj5rtHj9g5/fvvycYllUc6g7CW7j7A3b9M3S4GNsh0YCL5okaNSOIdPRo++igKwi5cuORrVI1fJH/VrAlvvw1nnhk7qDt0gNdeSzoqqQzSGYT9YWbbFj0ws20AVVERKUG7dqUXeZ0+PZY3tPU9GWZWx8x6mdkNZjbSzIaZ2Vlm1i7p2CT31akDV14Zg6+iXLJvv006Ksl36QzCjgNuMbNpZjYduBnon9mwRPJXs2YlHzeLpsEdO8INN8CPqraXNWZ2EfAG0Qf3HWAg8CCwALgi1RWkQ3IRSr7Ydtso8Proo7F7GuICS2RFpNM78kN37wh0ADZx903dfXzmQxPJTyVV469Xb3G9sTp1oszFeuvBQQfBCy+oCGwWvOfund39dHe/z91fdPen3P1ad98L6A3USjpIyQ/168Puu8f9556LfNALL4S//042Lsk/pQ7CzOzQ1M/TzOw04CjgqGKPRaQEJVXjHzQoWiIdc0wsSY4fHwm+L7wAu+wSOyv/8x/46quko6+c3H2Zak9mVs3MVk09P8vdVUFVltuWW0bT70sugS5dYOLEpCOSfFLWTNgqqZ8NSrjVz3BcInmtd++our1oUfzs3XvJ5zt0iCXJr7+GESPiSnrAgBiw7bYbPPSQrqozwczuM7NVzWwV4GPgMzM7M+m4JH+tthrcfXcsT379NRQWRjkLgO+/j7/nAwZELpnyQWVppQ7C3H1g6u6L7n5x8RswOjvhiVRudeosXpL88ks4//y4kv6//4MmTeD00+Hjj5OOslJp6+6/AvsAzwDNgMMSjUgqhX32id3Re+4Z6QcvvBAbdT78MHZLH310XIwtvXNaqrZ0EvNvSvOYiKyEFi1iSXL6dHjmGejaNa6o27WDrbeGO+9cXJ9IxWBXWE0zq0kMwh539/mA5iekQjRqFLPYhx0WtQKPOgo6d46/1+PHwxdfwAMPJB2l5JKycsK2MrPTgUZFeWCp20VEQ28RyYDq1WNJ8uGHY3njqqvg55/jhN64MXTvDkceqWKwK2ggMI1It3jNzAqIAtQiFcIM3nknNt5MnQonnbS4nMWJJ8bfa5EiZc2E1SJyv2qwZD7Yr0CvzIcmImuvHX3sPv4Y3ngjlilfew3++mvJ16kYbNlSF5Xm7je6+/ruvru7OzADUH9cqVDVqsWy4/33x6ac996DTTaB55+PQZpIkVLbDbv7q8CrZjbU3VUFRSRBZrEkufXW0beyJNOnw4IFaiJeir5EvcPPgVHAKHf/LjUQW5BsaFLZdOkSPWSfey5ywXbdFY44Au69N3ZRihRJ53Q9z8yuAtoBdYoOuvsOGYtKREpVUFB6ccimTaFPH+jXDzbaKLtx5TJ37w9gZhsBuwFDzawh8DIxKHvD3ZUyLRWiRg247z7Yf3/o1g3WXx8++yyS9s89N17z1luwxRaRfiBVVzqJ+cOBT4EWwMVEPsV7GYxJRMpQUjHYunXh1FPjpH7NNbDxxrDNNjB4MPyqjKd/uPun7n6du/cAdgDGAP9HVNEXqTBdu8LkyVHUtWlTeOIJePLJWKqcPDme79YtBmdSdaUzCFvT3e8E5rv7q+5+BNAlw3GJSClKKgZ7xx1w7bXw+OMwc+biZP6jj45k/sMPV52i4sysHjG7/567n+TuhUnHJJVPw4axDHnGGbDppouPb7ghDBkSuZ6dOsHVV6t0RVWVziBsfurnt2a2h5ltCjTJYEwiUo6yisGuu26c9CdNiiWP3r3hkUdgu+2gdeuYSZs5M6nIk2FmPVP9b983s92BSUQf3Ilm1jeN9w8xs1lm9lGxY53M7G0z+9DMxprZFhn8FaQSMYu0gY8/jnyxM8+E7bfXQKwqSmcQdmkqd+J04AxgMHBqRqMSkZVmFgnCgwbF9vhhw6IA7PnnL67MP3LksjstK6lLgF2AY4nG3Tu6exeiJ+4Zabx/KNBjqWNXAhe7eyfgwtRjkbQ1bhyV9u+7L4q9FuWHqZds1VHmIMzMqgOt3H2Ou3/k7tunmuA+kaX4RKQCrLJKFJB8+WWYMiWSgydNggMOiHpGJ58clb2h0haCXeTun7v7e8BUd/8SomckaeyOdPfXgJ+WPgysmrrfEPimAuOVKsIMDj4YTkt1ZH7mmehHqR6UVUOZg7DUbqGeWYpFRLKgZcvYJj91amyh33lnGDgwclaaN4+dlZWwEGw1M1vdzNYEFqXur2Fma5DeikBJTgGuMrOvgKuBcyooVqnCFi2Kv3edO8ff0/nzy3+P5K90Tj5vmtnNZtbVzDYrumU8MhHJqOrVYZddoqDkt9/CzTfHz6VP+pWkEGxDYBwwlpi9ej/1eBxRhHpFHAec6u5NiRSNO0t7oZkdk8obG/vDDz+s4NdJVbDnnpErtv/+cOGFseO5aJZaKh/zcrZLmdnLJRz2pOqEFRYW+tixY5P4apFKr1q10ndQvvJKbKuvtqLzRivBzMYlvYPRzJoDT7l7+9TjOcBq7u5mZsAcd1+1rM8AncMkfY89Bv37x2aaI49MOhpZUWWdv8ot1uruaukhUkU0a1ZyIViz6FnZtGnkr/TuDR06ZD28FZbKb63r7r+nHnchWrMBfODuv63Ax34DbAe8QtQcm1wBoYr8Y5994u9dw4bx+OGHY1NNYeqf8z//hO++ix3RdeqU9imSy8q9pjWzdczsTjN7NvW4rZlpTC5SCZVUCLZevahDdt99MfC69lro2DF64V1xRenV+3PM/4Djiz0eAZwJXACcX96bzWwE8BbQxsxmps6BRwPXmNl44L/AMRUetVR5q60WF0ELF8bO5i5d4Jxz4OKLY7dzt27x85JLVAcwH6WzsDAUeA5YL/X4cyIhtUwl1dUp4TXdUzV2JpnZq2nEIiIZVFIh2EGDYink4IPhqafgm2/glltg1VXjH4PmzeMfgttvhx9/TPo3KNWOwLXFHv/i7nsRZSu2Ke/N7n6wuzd295ru3sTd73T3Mand4h3dfUt3H5ep4EWqV4+6f337xsXPFVfExdGMGTB2bFTjv+66pKOU5ZVOTth77r65mX3g7pumjn2Yqo1T1vu6Ab8Dw4pyKJZ6fjXgTaCHu88ws7VT28XLpHwKkdwxdWrMkA0fDp98AjVrQo8eMZjba69lZ9VW1MrmhJnZeHfvWOzxLu7+fOp+ueeziqRzmKysxo1j1uuHH6Lt0YYbwgcfxPJlnsxMVyllnb/SmQmbm9rW7akP6wLMKe9NpdTVKe4Q4BF3n5F6fbkDMBHJLS1axM7JSZPg/fej3ti4cXDQQbDOOnHV/vzzsCBViSvBGmS1zOyfXZDFBmANAWXTSF6ZPRsmTIChQ2MABjFzPWOGliTzTTqDsNOAJ4CWZvYGMAw4qQK+uzWwupm9YmbjzKxPBXymiCTALOqMXX11/EMwenQUgn3ssWjL0qRJzJAdeWRiNcjuAB4ws2aLY7YCIjfsjqxEIFJBttgiesEedlg8njQp6oo1bBiz05I/yh2Eufv7xA6grYmWH+3cfUIFfHcNoDOwB7ArcIGZtS7phaqxI5I/qleHHXaAO++E77+Hhx6CrbeOwrBLt0jKVg0yd7+WuJgcY2Y/mtls4DXgSXe/JvMRiFScSy6BE06InLBPP4UxY2Lp/++/oV07+M9/Yuek5L50dkfWAU4meq9dDJyQOrayZgKj3H2uuxedEDuW9EJ3H+Tuhe5e2KhRowr4ahHJhjp1oujkI4+U/poZM7ITi7vf7u7NgAKghbsXuPtt2fl2kYqzww7Rc/Lpp6Fnz2h19Oyz8Pnn8XjAgChjoWr7ua/cOmHE8uNvwE2pxwcD9wD/t5Lf/Thws5nVIOr1bAlob4dIJVVQUHLScLNmyx6raGZ2KHCfuy8qqhW21PMtgcbuPibz0YisvK23juX+pT3wABx1FEyeHBtlIHLI1lorq+FJmtIZhLUpvqsIeDlVF6dMqbo63YG1zGwmMACoCf9ckX5iZqOACcAiYLC7l1rOQkTy22WXRQ7YvHmLj9WrF8ezYE3gAzMralX0A5GQvyGRbjEbODsrkYhk2M47xw1iluyAA6IF0imnQK1aZb5VsiydQdgHZtbF3d8GMLMtgTfKe5O7H5zGa64CrkojBhHJc717x8/zzoslyGbNYgBWdDyT3P0GM7uZqGy/DdAB+AP4BDisaJe2SGXTrh3stBP8+9+xm/LWW6MKv+SGdOqEfQK0AYpOUs2IE9cioodkVpuXqMaOSNWTC70jK4rOYZKEp56Ck06CadPi5403Jh1R1bFSvSOBHhUcj4iIiGTRnnvCjjvC5ZdDy5ZxbOHCKBdTI52RgGREOiUqpgOrAXulbqu5+/SiW4bjExERkQpQt26Ur+jbNx7ffjtsvnm0Q5JkpFOi4l/AcGDt1O1eM6uIYq0iIiKSkKZNY+fk1ltHIeXZs5d8vmimTDInnYr5RwJbuvuF7n4h0AU4OrNhiYhUPDOrbWaHmNm5ZnZh0S3puESS0LNn9Hw980wYNgxat47iyu+/H8n8tWvDGmvA6afDH38kHW3llM4gzICFxR4vTB0TEck3jwN7AwuAucVuIlVS/fpw5ZXw4YfQsWMUeO3RI/q/zp0L48dHfb+iJUypWOmk490FvGNmj6Ye7wPcmbGIREQyp4m7a7ORyFLatYOXXopSFn37RrHXU0+NMjL33hvFlqdMWdwwXCpGOon51wL9gJ+An4F+7n59huMSEcmEN81sk6SDEMlFZtH6qEuXyAcbOBDatIERI2KWbPLkpCOsfNLamJpq4v1+hmMREckIM5sIOHHO62dmXwJ/EakVWa93KJKr2rWD11+H66+HQw+NRuFHHBFlLM46K+noKh9VBxGRqmDPpAMQyQfHHRfNv1u0gD59Yjasd+9YimzaNOnoKp9SlyPNrHY2AxERyZRidQ0vLV7nsOhY0vGJ5IomTSI37JVX4n6PHrDvvjBrVixNAvTvHy2QFi1KMtLKoaycsLcAzOyeLMUiIpJp7Yo/MLPqQOeEYhHJSW3bwqOPxu7ImTPhootglVXiublzYcIE6NcPunaNXZWy4soahNUys77A1ma239K3bAUoIrKyzOwcM/sN6GBmv6ZuvwGziLIVIpKGVVaBMWPgrrsiUb9z5+hFOWdO0pHlp7IGYf2JwqyrsbhlUdFN+RUikjfc/XJ3bwBc5e6rpm4N3H1Ndz8n6fhE8km1anD44fDZZ5FD9sADsGBB0lHlp1IT8919DDDGzMa6u+qCiUjeMrPNUndHFrv/j9QOcBFZDquvDjffDP/9L6y6apS1OOGEGJh17Jh0dPkhnd2R95jZyUC31ONXgdvdfX7mwhIRqVDXpH7WAQqB8UR5ig7AO8C2CcUlkvdWXTV+TpkCDz8Md9wBJ54IF18Mq62WaGg5L522RbcSiau3pm6bAbdlMigRkYrk7tu7+/bAdGAzdy90987ApsCUZKMTqRzatIklyv794aab4vGwYWoCXpZ0BmGbu3tfd38pdesHbJ7pwEREMmAjd59Y9MDdPwI6JReOSOWyxhpwyy0wdixssEEsVc4vYd1s0aJYvqzq0hmELTSzlkUPzGwDlmzoLSKSLz4xs8Fm1t3MtjOzO4BPkg5KpLLZbDN44w0YPRpq1YLff4cLLoBp06ICf4MGULcu9OxZtdshpTMIOxN42cxeMbNXgZeA0zMblohIRvQDJgH/Ak4BPk4dE5EKVq0arL9+3H/hhWgG3ro1TJ8eg7FffoFu3WCHHeJ+VZROA+/RQCvg5NStjbu/nOnAREQqmrv/6e7Xufu+qdt17v5n0nGJVHb77gu33RY9KF96CfbfP2bAzjgDtt0W7qmiZeHTmQnD3f9y9wnuPt7d/8p0UCIiFcnMHkz9nGhmE5a+JR2fSFVgBgcfDIMHw8cfw9lnx/GttoqE/qpIDbxFpCr4V+qnCk2LJKR9e7jmGhg0CPbbb/ES5NNPw6+/RomLDTdMNMSsK3MmzIL6potIXnP3b1N3dwRqldDEW0QybKutoil4377w44+RmH/++dF/cvx42GgjOPLIyBerKsochLm7A49lJxQRkYxrDgw0sy/M7EEzO8nMOiUck0iVYAaPPw5rrx15YBttBDNmwLhx8OWXUeB1+HBo1Sr6UVaF+mLp5IS9bWaqCyYiec/dL3T3HYD2wBhi9/e4ZKMSqTrq14drr4XvvovlyGHDYnZs3XXh+utjSfKYY+K1ZvHzp5+Sijbz0hmEbU8MxL5IJbFOVCKriOQjMzvfzJ4Fngc2BM4AmiQblYgUadIkir3eeGM8fvvtKHNx2mkwa1aysWVCOoOw3YANgB2AvYjE1r0yGZSISIbsB6wJvAg8AjxRLF8sZwwfDs2bR52l5s3jsUhVUjQL1rgxHHQQ3HADtGgROyp//DHZ2CpSOnXCpgNNgR1S9+el8z4RkVzj7psRyfnvAjsDE81sTLJRLWn48FiOmT49cmKmT4/HGohJVVRQAHfdBZ98AvvsA1deCZtuCgsWJB1ZxSh3MGVmA4B/A+ekDtUE7s1kUCIimWBm7YFDgb7AgcBMogtIzjjvPJg3b8lj8+bFcZGqqnXruBD56KOYFatRI/pP3nprlLco7vffI9G/pJ6VuSadGa19gZ7AXAB3/wZokMmgREQy5H/AqsCNwMbuvr27X5hwTEuYMWP5jotUJW3bRvV9iN6UJ5wQy5RXXBEJ/CefHHll228PzZrB7bcnG2950hmE/Z0qVeEAZrZKZkMSEckMd9/D3f/n7m+6e05eJzdrVvLxVVaBH37IbiwiuaxrV3jvPejSBc45JwZfL74IEyfGMv6LL8LVV8MjjyQdaenSGYQ9aGYDgdXM7GgiofWOzIYlIlJxSmtXlIttiy67DOrVW/JYjRrwxx+xJHPTTZUnH0ZkZRUWRsX9l16K5cd586LcBUC7dnDVVbF8mavSScy/GngIeBhoDVzo7jdlOjARkQpUtKt7VOrWO3V7hji/5YzevaOtS0FB7BArKIChQ2HChPgH5+STYbPNotK4dlCKhNatYc014f33oWbNGIx17QpTp8JXXyUdXenS7R05EahLLElOzFw4IiIVr6g1kZlt4+7bFHvqbDN7A/hPMpGVrHfvuC3t+efh0Ufh2GNjxqxI0Q7KoveKVDXrrgu1akVC/hprwDffRIL+6afD6qvH0uROOyUd5bLS2R15FLGdez+gF1G49YhMByYikgGrmNm2RQ/MbGsgb/JczaLxcd26yz6nHZRSlVWvDpdeCvvvDyNGwF9/wcEHQ4MG8fdl551hl12W3UmZtHRmws4ENnX3HwHMbE3gTWBIJgMTEcmAI4EhZtYw9fgXIO8uKmfOLPn4dLUilyqsTx9o1ChywKZNg803h7fegg03jFIWr78egzKIWbL69RMNF0gvMX8m8Fuxx78B5a6wmtkQM5tlZh+V87rNzWyhmfVKIxYRkRXm7uPcvSPQAejo7p3c/f2k41pepe2gBDjjDJg7N3uxiOSS3XaDUaPg00/hnnsiOb92bTj11NglaRZLlU2bxrHZs5ONt9RBmJmdZmanAV8D75jZRanCrW8DU9L47KFAj7JeYGbVibo9z6UdsYjICjKz2mZ2CHAi8C8zu9DMcqpOWDpK2kFZt27URrrmmviH59lnk4lNJNdVrx7LljfeCC1bwuWXL1sgOVvKmglrkLp9ATxGqk4Y8DhQbq81d38NKK/3+UnErstK2JZTRHLQ48DewAKiAHXRLa+UtIPyjjtim/7rr8cAbffdIyfm+++TjlYkt6yzDgweHPXEuneHc8+FNm3gt9/KfWuFKzUnzN0vzuQXm9n6RDX+HYDNM/ldIiIpTdy9zBn6kpjZEKLMxSx3b1/s+EnErNoC4Gl3P6vCIi1HaTsot90WPvgA/ve/mDEbNSoKVtauHWUtZsyI5czLLtNOSqna2raFxx+HMWPiVpQvNm5clIEpaiKeSensjiw0s0fN7P0KLm54PfBvd1+YRgzHmNlYMxv7g0pGi8iKe9PMNlmB9w1lqfQKM9uemFXr4O7tgKtXPryKUbs2XHghjB8Pm2wCRx0FffuqKbhISbbdFs4+O+4X1ePr2hXefDPz351OYv5w4C5gf6LYYdFtZRUC95vZNKL0xa1mtk9JL3T3Qe5e6O6FjRo1qoCvFpEqaltgnJl9lrqgnJjORWUp6RXHAVe4+1+p1+RcWsVGG8Err0TdpEWLlnxOJS1EltW2LQwcCF98AdtsE30qP/00nlu4EJ55Bi64IHpS/vLLyn9fOoOwH9z9CXef6u7Ti24r+8Xu3sLdm7t7c6Ji9fHu/tjKfq6ISBl2A1oBuxAXk0WV9FdEa6Crmb1jZq+aWalpFUnO5lerBj//XPJzKmkhsqQaNWKWeMoUuOQSGD06elP+8EPUGbvggkjsf+WVuMh5fyX3VqdTJ2yAmQ0GRgN/FR109zJbYprZCKA7sJaZzQQGADVT783xvuYiUhkVq5y/NlBnJT+uBrA60IXIa33QzDZwd1/6he4+CBgEUFhYuMzzmdasWckDrlq1Ihdm222XfU6kKltllcihPPZYGDsW7rwz6orttx8ceig0bBjL+UceGQOxFc0fS2cmrB/QiciHKFqK3LO8N7n7we7e2N1runsTd7/T3W8vaQDm7oe7e071bxORysfMeprZZGAq8CowDVjRYg4zgUc8vAssAtaqkEArWEklLWrVin9ounaFAw6IHnsisqRGjaL22COPxI7jE0+MHZXusfv4u++iMOyKSmcQ1jGVj9XX3fulbnlXYVpEBLiEmLn63N1bADsCb6zgZz1G7O7GzFoDtYCESz+WrKSSFkOGRGPjiy6Cp5+OpZWzz869ti4iuaB69ai8P3Zs1BUzi4HYokWx5L+i0nnr22bWdsW/QkQkZ8xPtWCrZmbV3P1lYqa/TKn0ireANmY208yOJFq3bZDqCnI/0Lekpchc0bt3XLEvWhQ/e/eOmbABA+Dzz+Ggg6KsRatWMWBbWO6+dZGq4//+D668Ejp0gB6pfdJ33gnNm8dFzYpKJydsW6CvmU0lcsIMcHfvsOJfKyKSiF/MrD7wGjDczGYRNb7K5O4Hl/LUoRUZXFLWXx/uvhtOOilauRx7LNx8c1Tf33nnpKMTSd6JJ0Yyfvv2sMcesWNy4kR4biX7/aQzE9aDittNJCKSpL2BecCpwCiiI4jOZymFhfDaazByZDQ43mUX2HPPxVv0RaqqWrWisOudd0LjxpGc//nnUdJiZaQzE5az0+siIsvD3YtaFC0ys6eBH3N5CTEJZtCrVwy+brwRLr00Cr4ed1wsXa65ZtIRiiTDLHYSV+Ru4nRmwp4Gnkr9HA18yYrvJsqKKVOgXz/YYAPYaquYZtdpVqTqMrMuZvaKmT1iZpum8rg+Ar43s+VuY1QV1KkDZ50V59Mjj4Rbbol8seuvh7//Tjo6kcqh3EGYu2/i7h1SP1sBWwBjMh/aipkxI7Zct2wZPdMuugiuvTaKrolIlXUz8F9gBPAScJS7rwt0Ay5PMrBct/baUR38ww9jufLUUyMv5okndHErsrKWe2Olu79PDjfcvu46OOywKLLWqlUklT7zTByfMyfp6EQkITXc/Xl3Hwl85+5vA7i7sp3StMkmkYT81FOxJX/vvWGnnaI/5fDhsUusWrX4qZ6UIukpNyfMzE4r9rAasBmQs120x42Diy+O+2+/HQOyk06KE8Onn8KWWyYanogko3jnxD+Wek7zOWkyi51hu+wSs2MXXQSbbhqDr6KSFkXNwSHKYIhI6dKZCWtQ7FabyA3bO5NBrYyCguiCDjFVvs46cMopMZU+aFDkN0DkNFx/feSMbb45/Pe/0dBWRCqljmb2q5n9BnRI3S96vEnSweWbmjXj4nbKlGjlsnRNMTUHF0lPuTNh7n5xNgKpKCedBD17RkG17t0jb6F375gFGzYsHn/9dRQm/P332PlTq1YMyHbbLZp11khnz6iI5A13r550DJXR6qvHebQkag4uUr5yZ8LMrLWZDTKz583spaJbNoJbEVtsETNexx4bs2AbbABNm8KkSXFSuO++WLIcPz52/0ydGsmmI0fCn39G+w4REUlPs2YlH69ePWoqLSi3FK5I1ZXOcuRI4APgfODMYrec1bNnzHx9+CF88w3ccUe051hvvUjUf+cd6NYtBmVHHx1LmJddBjvuGHlkIiKSnpKag9euHXm4Rx0FG28cF7+LFpX4dpEqLZ1B2AJ3v83d33X3cUW3jEe2kqpVi0HXKqss+9x668HMmTFIe/nlSNa/8MLoC6UThYhI+kpqDn7nnTB5clQYr1s3XtOxIzz2mMpaiBSXziDsSTM73swam9kaRbeMR5ZBPXtGu4HbbovKt48/HgOwWrXg9NPjNY8/Dh98sPg97vDmm3DVVXDvvUriFxEpUlJzcLM41374IYwYEZuh9t03Ukaee06DMRFIbxDWl1h+fBMYl7qNzWRQmVanDjz/fAym1lsPmjSJujavvRaFCRctgjPOgM02i+XLZ5+F/feHvn3h22/h/vuhdeto3ikiIqWrVi02Qk2aFDNks2ZBjx6w3Xbw+utJRyeSrHR2R7bIRiDZ1qZNzGx99VUkjjZvHlduECeN996DgQNj1+Tuu8c27EceiUEZwF13xaBs3LjF7xMRkZLVqAFHHBGzZIMHx870bt1g113jfmFh0hGKZF+pM2FmVmaLSjNb1czaV3xI2dW0KbRosexAarXV4N//jqn1Vq1iK3bNmvHc7Nmwzz7w/ffwxRdZDlhEJI/Vrg0nnBDnziuvjAvezTeH/faDjz5KOjqR7CprOXJ/M3vTzC40sz3MbAsz62ZmR5jZPURT77pZijMxtWtDo0Zx5bbddnHskktiW/acOfDll8nGJyKSj+rVgzPPjDJBF18cNRo7dIiZsqKi2iKVXamDMHc/FdgD+Bb4P+AS4DSgFTDQ3bu5+3tZiTJh++0HN9yweOfk4YdHvti8eTGVvscecQIREZHls+qqsTv9yy/hrLPg0Udho42ifNCMGfEa9aaUyso8z7aoFBYW+tix2d0X8Oefsctn1qxoWjt5cgy6hg6Fd9+NXZa77w5DhsTr//gjtmWLSMUws3HuXimyhpI4h+WT776Dyy+P3pQQnU9efz3Oq0Xq1YuyGOpNKfmgrPNXOrsjq7w6dWDUKLjiipgN69o1isHuthsMGBBFX6+8Ml47diysv35c0alth4jI8ll33Vh5mDwZ+vSJnex/LNVyXb0ppbLQICxN1arFtupLLoHjjotE/SK1a8Naa8X9evWi8v4110TLpF694iouzyYcRUQS1axZdDspTdFSpUg+0yCsgrVtG30op06NWmMvvQR77aXiriIiK6KgoOTj9erBZ59lNxaRipZOA+96ZnaBmd2RetzKzPbMfGj5rVkz+N//og7Zs89G+yR32H77WML87rslXz9nDjz0EDz8MPz2WzIxi4jkmpJ6U9aoAfPnR1/KXr2iXqNIPkpnJuwu4C9gq9TjmcClGYuoklllFdgq9Sf3yy/x+D//iUFanz5x8hg5MmqV3XVXlMJo3hyeeCLJqEVEckNJvSmHDo0L3HPPhRdfjEKvu+wSvYCV+iH5pNzdkWY21t0LzewDd980dWy8u3fMSoRLqQw7iyZPhptuikHX779HNf4xY6LBLUTxwl13jan2Ro2SjVUkF2h3pJTm119jh/p110UB7S23hHPOiTSQakq4kRywsrsj/zazuoCnPqwlMTMmK6hVK7jxRpg5MxraHnhgDMAGDYqt2QUFUXvsoYeSjlREJLetump0N5k6FW69NUoJ7bNPFH69555YthTJVekMwgYAo4CmZjYcGA2cldGoqoiGDWHTTWGNNeLxmDExvd6kSdQf++gjTa2LiKSjbt3Yuf7553DvvbF02acPtG4dg7Oly1yI5IJyB2Hu/gKwH3A4MAIodPdXMhtW1bH77nD//ZGYP2wYfPwx9OsXS5a33gonn5x0hCIi+aNGjcgjGz8+cmsbN45elc2bR63HOXOSjlBksXR2R+4LLHD3p939KWCBme2T8ciqiM6doy3SFltEbbEnn4xE01NPjeXJAw+M102dGicSNbgVESlftWqRF/bGG/DKK7HqcM45sSnq3HNj2RLUEkmSlU5i/ofu3mmpY/8k6WdbZUxqdY9dPQ89FFPoBxywuFl4kQcfjKn1v/6Cbt3g+OMjn6xWrWRiFskmJeZLRXj//ZgNe+ihKLLdtWsU0/7zz8WvUUskqWhlnb/SGYRNcPcOSx2b6O6bVGCMaavKJ7DZs2NH5W23xcxYs2aR/1C7dtKRiWSWBmFSkT7/PFrN3Xlnyc8XFMC0aVkNSSqxld0dOdbMrjWzlma2gZldB6g0XgLWWgvOPBOmTIFnnol8saIB2HnnwXPPRW9LEREpXevWUZOxNGqJJNmSziDsJOBv4AFgJPAncEImg5KyVasWzcNPPz0e//hjnFB69IiTy9VXx7Eir74KhxwCO+0UhWKLPyciUlWV1hKpVi0YNUq70yXz0tkdOdfdz3b3Qnfv7O7nuPvcbAQn6Vlzzbhyu+++2Al05pmw/vrwwgsxODvssMh9OOOMmGLfaqtY2hQRqcpKaolUs2Z0NtltN9hsM3jgAVi4MJn4pPJLZ3dkazMbZGbPm9lLRbdsBCfpq10bDj44kkwnTICjj4ZNNondQGedFVd23brBkCHx86abko5YRCRZJbVEuusu+PbbOFf+8QccdBC0aQMDBy6ZwC9SEdJJzB8P3E7kgf1zPeDuieSFKak1fe++C8ceGyeQBx6IytIHHQTt2kWj8FdfTTpCkfQoMV+SsGgRPP54dDJ57z1Yd90oH9S/f5xPRdKxson5C9z9Nnd/193HFd3S+NIhZjbLzEqsbGVmvc1sQur2ppkl0ouyMmvUCL75JorAvvoq7L13VJL+179id6WIiJSuWrUoBfTOOzB6NLRvHy2SimqNff990hFKvktnEPakmR1vZo3NbI2iWxrvGwr0KOP5qcB2qfIXlwCD0vhMWQ4tWkRPygsuiDywYcPgzTcjh+zoo+M1P/4YuQ/Dh8O8ecnGKyKSi8xghx0iz/a992DnnaPeWPPmUURbF7WyotIZhPUFzgTeJJYkxwHlzqW7+2vAT2U8/6a7/5x6+DbQJI1YZDndey+MGxe5DltuGSeSiy6KgRnAF1/AZ5/BoYfGVPtRR0VemXYFiYgsq7AQRo6ETz+NnLI77oBWreIcOnFi0tFJvklnd2SLEm4bVHAcRwLPVvBnCrD22tEG6dVX4dprYfp0OPHExc9vsUXUHXv1VejVK3LHunVbfGU3f34ycYuI5LKiWmNTp8Ipp8Bjj0GHDrDnntEqCdQSScpXbmI+gJm1B9oCdYqOufuwNN7XHHjK3duX8ZrtgVuBbd29xApWZnYMcAxAs2bNOk+fPr3cmGXFzJ0bA7Ldd4/H++8PP/0EffvGIK1+/WXf4x7vq1cvTjYiFU2J+ZLrfvoJbrkFbrgh0jxat46L3r/+WvwatUSqmlYqMd/MBgA3pW7bA1cCPSsosA7AYGDv0gZgAO4+KFWnrLBRo0YV8dVSilVWWTwAg1jCnDkT+vWL5crDD4e33178/LBhsOGGMePWpEk0IddSpohUNWusEWke06fHQOyLL5YcgEHk3Z53XjLxSW5KZ96iF7Aj8J279wM6AivdrdDMmgGPAIe5++cr+3mSGWedFX3WxoyJOmSPPhrtkQDuvz9OKPfeGzNhL7wQBWOvvTbZmEVEkrLKKtFSrrQCr1rIkeLSGYT94e6LgAVmtiowCyg3J8zMRgBvAW3MbKaZHWlm/c2sf+olFwJrArea2Ydmpvn5HGUG22wTCajffhv5DxBXfTNnxpbtIUNiJmzYsJgNUw9LEanKSmuJBNFG7q23tGog6TfwXg24g9gZ+T7wbnlvcveD3b2xu9d09ybufqe73+7ut6eeP8rdV3f3Tqlbpcj3qOzq1YOGDeP+7Nlw/vkwa1bsqlxnnRiY/fJLzIyJiFRVJbVEqlMnevw+/TRsvXXstBw6VJX4q7J0dkce7+6/pAZPOwN9U8uSUsVtumlU3//kkyhmeNxxkQexzjqRwH/33dEEVzssRaSqKakl0uDB8Oyz8PXXcOutMfjq1w+aNo3ir199lXTUkm1p7WUzsw5m1hPYDNjQzPbLbFiSD84/P5YmH3ggCsPusgv89lvUIQO49NIoBLveelHQcMwYLVOKSNXRuzdMmxbnvWnTFu+KrF8/Llo/+ihKCG2zDfzvf3Ee7dUrdqhrqbJqSGd35BBgCLA/sFfqtmeG45I8sMMOkYg/cCBstFEMvq68MspZmMUJ5rHHYMcdoylu167RUBziBKOTjIhUZWZxfnzssVhFOO00eOkl6N4dOnWKPFx1Mqnc0mng/bG7t81SPOVSjZ389Pvv0Qh3k02ioOHbb8c0/CGHxK7LDTdMOkLJZUnXCUtdjO4JzFq67qGZnQFcBTRy99nlfZbOYVKWefNgxAi46SYYPx5WXx2OPBKOPz5myiT/rGwD77fMLGcGYZKf6tePqfgOHeLxwoVRW+zCC6PlxxZbwHXXLZnQ/9VXcfJZb70ofHjZZfD338nEL1XeUErohWtmTYlc2RnZDkgqp3r14rz3wQfw2muw005xbmzZEvbeO5Yvi+ZOVJE//6UzCLubGIh9ZmYTzGyimU3IdGBSuW2zTeQ9zJgBV10Vg7KLL4YaNeL5V1+N3UPrrhstQEaMiJyyww9PNGyposrohXsdcBagxXWpUGaRwvHgg5FPdu65UdZi551jQ9Thh8PRR0fdMff4ecwxGojlm3QGYUOAw4irwKJ8sL0yGZRUHU2bwhlnRJPxzz+H2rXjhPJ//wfffBMNcd95J3LOHn0UXn45GueKJC21Welrdx+fdCxSuTVpEhudZsyIXeerrBI///hjydepIn/+qZHGa2a4+xMZj0SqvLXXXnx/881jduz99+HJJ2OK/pJLYNttYcKEGJSJJMXM6gHnAbuk+fri/W8zGJlUZnXqQJ8+cNhhpffpVUX+/JLOTNinZnafmR1sZvsV3TIemVRZZjEIa9UqrvxeeSV2XG64YeRJ1KoV+WVPPLFsbzaRLGkJtADGm9k0oAnwvpmtW9KL1f9WKlJR3bGSVK8O//lPdDeR3JfOIKwu8BdxxacSFZIVRx8d9cfuuSfyxy69NAq/NmkSg7BRoyJJdZ11IjfimWdUFFayx90nuvva7t7c3ZsDM4HN3P27hEOTKqKkivy1akHbtjBgADRrBgccEBexKgeUu8ochJlZdWC2u/db6nZEluKTKmr99WNgNXgwrLpqnFB+/z3ywnbfHb77LgZi++0XpS969oRff433fv01LFiQbPxSuZTUCzfpmKRqK6ki/5Ahka4xeXIU0h49GrbfPhL5b7oJ5sxJOmpZWjp1wka7+45ZiqdcqrFT9fz2W1zh1a5d8vN//x25Y126xOPu3WHSJNh//7gS3G67mKIvyaJFcauRTnakJCbpOmEVSecwyZY//ojdlbfeCu++GzNnhx4a1fo7dUo6uqpjZeuEfWhmT5jZYcoJkyQ0aFD6AAxigFY0AIOoOr3TTnDvvVGNev314YYblnzPr79C//4xy1a3Luy6a1T4FxGpLOrWjXzad96B996Dgw6KFI9NN400j3vvVfPwpKUzCFsD+BHYAeWESR7o2TPqis2aBSNHRq2dOnXiuV9+gVNPjUHan3/ClCkx07b33nHsO2X0iEglVFgId94Z6RrXXQc//BC7LJs2hbPPhqlTk46waip3OTLXaCpfVsbo0dFUfP78yDP7v/+LJcvCwmgL0rSp6uzkIi1HilSsRYuiT+Wtt0ZerXvk2x53HPToAfffH+fCGTPiXHnZZYsbkMvyWanlSDNrYmaPmtksM/vezB42syYVH6ZI5u24I9x+e7RJ2mQTuPFG2HLLaJ7bpQt8+KFaI4lI5VetWsz+P/JI1Ba74IIomr3nntC4cfT2VTX+zEtnOfIu4AlgPWB94MnUMZG8tMUWMSX/6KPw/ffw8MNRk+yVV2JXUaNGkTsxYoR2E4lI5dekSbSNmzEjEvl//XXZkj+qxp8Z6QzCGrn7Xe6+IHUbCqjaoOSt9u1jIHbggZEDtu22MdU+enRcDR5wQLRHOuSQGJAde2zSEYuIZF7NmpGiUdpqwPTpcaEqFSedQdhsMzvUzKqnbocSifoieeu++6L10c47Q+vWsTPy1VejrMUdd0TfyjfeiCT+jTeO98yfDzvsEAO2jz5SAUQRqZzK6qzVunVsdhoyJDY1ycpJp05YM+BmYCvAgTeBf7l7Ih2qlNQqSZkxI2bP3n47HrdsGbsq+/eP5czi3nsPrr8+cs06doyyGW3aZD3kSkOJ+SLZM3x45IDNm7f4WL16cMUVMHcu3HUXfP55NBLv1Svyx7p1i6KxsqwVSsw3s/+l7m7p7j3dvVGqTcc+SQ3ARJLUrBm89VbMkt1+e1wR3nzz4rIWH38c/SwffzySW7fcEq69NvItunaF8eOTjV9EJB0lVeMfNAhOOinKWXz6aawUHHJIJPZ37x69fS+5JC5WJX2lzoSZ2URgM+Add98sq1GVQVeRkkt+/TWuBqtXhzPPhKuvjpNWly5xJbnnnrDWWjFYGz06NgPI8tNMmEhumjcvBmJ33RUlL8xiF3q/frDvvlEwtqpb0RIVo4DZQAcz+9XMfiv+MyORiuSZVVdd3BLpsstiJqxaNfjqqzgJtW0b9Xj23x9eey3ZWEVEKlpRK6TRo6Pg64ABUQS7d+8oddG/f1TsVw5tyUodhLn7me7eEHja3Vd19wbFf2YxRpG8UKtWFIJt0ADGjIGxY6MQYrVqsaPo99+jke6558ZJadGipCMWEak4zZvHIOyLL2JWrGdPGDYsVgbatYOrror0jeHD47XVqsXPqlx/rMzdkWZWHVglS7GI5L0aNeDoo+GEEyJxv1evyCE77bQ4Ia2zDlx5ZZyUmjSJHUYiIpVJtWqw/fYxAPvuu9hxvvrqcNZZ0cu3Tx8Vgi1S5iDM3RcC88ysYZbiEcl7l14aA6wWLWJnZLt20Q7kwQfj6nDWrGiiu+22sOaa8Z7PPosly2HD4EcVgBGRSmLVVeGooyKR/9NPoX79ZVcB5s2LFYKqKJ0SFQ8CXYAXgLlFx9395MyGVjIltUq++PHH2CnUsmWciMry/PORQ/bNN5Fjtu22MXN25JHQcKlLoL/+igHd66/D2mvH+1q2zNzvkQuUmC9SOVSrVnp+2FVXLc4lq0xWqnck8DRwAfAaMK7YTUTKsOaasOmm5Q/AAHbZJZL53303toD/9FP8LDpZjRkTz/32W0zzDxkCnTrBn3/G0ubTT2f0VxERqRClFYKtXTt2mDdpsnjl4M8/sxtbEsqdCQMws7pAM3f/LPMhlU1XkVJVfPcdrLtu3N9uu9hdueqqsMYacMstUb2/Tp2YETvkkNiZVKNGsjFnimbCRCqH0grBDhoEhYWRkjFsGMycCautFgWyDz886i7mazHYlZoJM7O9gA+JkhWYWScze6JCIxSRZRQNwCDqiw0bFjswv/sO9tgD9tsvnuvaNQZjKgYrIrmutEKwvXtHV5HLLoNp0+CFF6LO4rBhsNVW0Wbuv/+NFYPKJJ2csHHADsAr7r5p6thEd98kC/EtQ1eRUpXtsQccdFAUgK1dO2bDZs+ORuNrrRW9MHfcMY63aJF0tBVHM2EiVdOvv8JDD8HQoTHrX1QMtm/fuBCtVy/pCMu3sjlhC9x9zlLHVHZNJAGHHRatkLbaKgZaEFeKzZvDrrvCyy/HTqQNNogK1hD1yX74IbGQRURW2KqrwhFHRDrGF1/AhRdGMdjDDovVgiOPjOeK5pPyrQZZOhkkH5nZIUB1M2sFnEw08RaRLDvwwCj0uuGGMev15ZeRxP/889FE3D16WI4eHQn8EEuZffpAhw5xBbnjjtFst0GDkr/js8/g4Yfjs/bdN6r+i4gkbYMN4KKLYiD2+utw992RwD9kSMz8b7opPPPM4oT+ohpkEMuduSid5ch6wHnALqlDzwGXunsi+xY0lS8SSfhjxkTx1x13XNw6qSSTJ8PIkTEwe+ONKHFRowZ8/XWUuPjuuyikWLs23HBD5GQcckhcSQ4fHoVm//3v7P1uJdFypIiUZO7c6F15991xjitJQUHkmSWlrPNXWQ286wD9gQ2BicCd7r4gY1GmSScwkRX3xx/w1lswblxsB4eo6v/MM7Ezady4uLLs0SMGdt9+G6UwXn01EmOTokGYiJSnrN2Tc+cmlz+2ojlhdwOFxABsN+DqDMQmIllUt27kkhUNwCCm6486Cj7/PLaN77lnzK5BFE3cZ59Y0hQRyWUFBaU/t/basST55JPw99/Zi6k8ZQ3C2rr7oe4+EOgFdMtSTCKSRbvsAjfeCOecE8uQ994Lxx8fz/39dyT4X3cdnHIKPPvskvV9pPKoX78+ANOnT6dz58506tSJdu3acfvtt//zmt69e9OmTRvat2/PEUccwfz585MKt0IV/e4AM2bMYJdddmHjjTembdu2TFtqHeukk05a4vWSOy67bNnZrrp1oyXSIYfE+atnz0joP/roWL5cuDCZWIuUNQj752/XiixDmtkQM5tlZh+V8ryZ2Y1mNsXMJpjZZsv7HSJScfbdF0aNiqKIBxwQx774AmrWjKXIgQOjkvUaayzeebloUektSCRzMrkDrHHjxrz55pt8+OGHvPPOO1xxxRV88803QAzCPv30UyZOnMgff/zB4MGDK+6L0zRiBLRvH8vl7dvH44rUp08fzjzzTD755BPeffdd1l577X+eGzt2LL/88kvFfqFUmJJqkN1xRwzOBg2K/Nennorz2IgRsNNOUaH/X/+KNI1EzmXuXuINWAj8mrr9Biwodv/X0t5X7P3dgM2Aj0p5fnfgWcCI3pTvlPeZ7k7nzp1dRDLjjjvcV1/d/Ygj3I86yn2NNdxvvjmemzfPfdQo91NPdR83Lo49+6z7+uu79+vn/sAD7j/+WP53LFjgPnfu8sUFjPU0zg/5cFvZc9i997rXq+ce/2TErV69OL4yVllllWWOzZ4925s2bepff/31Ms9de+21fu65567cly6n++5zb9HC/aWX3P/+O362aBHHV0bR7z5p0iTfZpttSnzNggULvHv37v7NN9+U+Gcl+WXuXPcHH3Tfd1/32rXj71Hz5u5nn+3+4YfuixZV3HeVdf5Kq23RijKz5sBT7t6+hOcGEgVgR6QefwZ0d/dvy/pMJbWKZNbMmZED5g577112nsXbb8M118CLL8Ivv8TMzOabw2OPLVnxH2D+fBgwIGbU5s6FjTeGK66I+mblqUqJ+aecAh9+WPr73347drgurXbt6CNakk6d4Prry46rfv36/P777wB89dVX7LHHHkyZMoWrrrqKE044YYnXzp8/ny233JIbbriBrl27lv3By6l792WPHXBALJG3bRszs6uvvvi5n3+GH3+M/29nz46NJsW98kr531n0uz/22GMMHjyYWrVqMXXqVHbaaSeuuOIKqlevzg033MCiRYs49dRTl/izkvw3Z06cs+6/Pyr1L1wY56eDD47i2K1aLX7t8OFw3nkwY0b0wbzssvLLX5R1/kqy09z6QPEGBDNTx8ochIlIZjVpAiedlN5ru3SJ8hcLFsB778Fzz8UgoWgF55xzokTGrrtGSY3vv48dmM2aRX5Gnz6RKLvFFpn7fSqbkgZgZR1fEU2bNmXChAl888037LPPPvTq1Yt11lnnn+ePP/54unXrVuEDsPJ89hlss82Sxxo2hIkTK+bzFyxYwOuvv84HH3xAs2bNOPDAAxk6dCi77bYbI0eO5JV0RnSSdxo2jAr8fftGYeuHHooB2YUXxq1z5xiQ1awZ57SivNgKqUNW2hRZRdyA5pS+HPk0sG2xx6OBzqW89hhgLDC2WbNmFTdHKCIZdf75sVxZtGzWqpX7pZcufv6mm9wPOqj8z0HLkf8oKFhyKbLoVlCwUh9b6hLb4Ycf7iNHjvzn8UUXXeR77723L1y4cOW+cAW0axdLkMW99FIcXxlFv/tbb73l22233T/Hhw0b5scff7w/9dRTvs4663hBQYEXFBS4mXnLli1X7ksl5331lfvVV7sXFpb8dy7dv3tlnb/SaVuUKTOBpsUeNwG+KemF7j7I3QvdvbBRo0ZZCU5EVt4ll0TD3YcfjsKyLVpEkdgim28eLUgkfSXtAKtXL45XhJkzZ/LHH38A8PPPP/PGG2/Qpk0bAAYPHsxzzz3HiBEjqFYt+/98nHdetKl5+eVY3n755Xh83nkV8/mbb745P//8Mz+k+ny99NJLtG3blj322IPvvvuOadOmMW3aNOrVq8cU/Y9b6TVpAqefHrP8n39e+utmzFjx70hyOfIJ4EQzux/YEpjj5eSDiUj+MYsWS3/9Fe1F1l9/8XMvvRTtlCR9Rcsey5uXkq5PPvmE008/HTPD3TnjjDPYZJNNAOjfvz8FBQVstdVWAOy3335ceOGFFfPFaTj44Ph50knwySeRt3PZZYuPr6zq1atz9dVXs+OOOxbNWnL00UdXzIdLXmvVKvJjp09f9rlmzVb8czOWmG9mI4DuwFrA98AAoCaAu99uZgbcDPQA5gH93L3cjHsl5ovkpwED4OmnozVSq1bRauSCC6Iaf3n9KatSYr6I5KbhwyMHrHitxHr1ovxFWRdBiSTmu3uZ1yapddITynqNiFQeF10US5LHHBPtkLbZJhL51SBcRPJBJmahk1yOFJEqxCzKDBRV4xcRyTe9e1fc0j+UXTFfRERERDJEgzARERGRBGgQJiIiIpIADcJEREREEqBBmIiIiEgCNAgTERERSYAGYSIiIiIJ0CBMREREJAEZa1uUKWb2A1BC96YlrAXMzkI4maDYsy9f44b8jX154y5w90aZCiabKvk5LF/jBsWehHyNG5Yv9lLPX3k3CEuHmY3N1z5zij378jVuyN/Y8zXubMnXP598jRsUexLyNW6ouNi1HCkiIiKSAA3CRERERBJQWQdhg5IOYCUo9uzL17ghf2PP17izJV//fPI1blDsScjXuKGCYq+UOWEiIiIiua6yzoSJiIiI5LS8HoSZWQ8z+8zMppjZ2SU8b2Z2Y+r5CWa2WRJxliSN2HunYp5gZm+aWcck4lxaeXEXe93mZrbQzHplM76ypBO7mXU3sw/NbJKZvZrtGEuSxv8rDc3sSTMbn4q7XxJxLs3MhpjZLDP7qJTnc/bvZzbo/JWMfD2H5ev5C3QOK5O75+UNqA58AWwA1ALGA22Xes3uwLOAAV2Ad5KOezli3xpYPXV/t1yIPZ24i73uJeAZoFfScS/Hn/lqwMdAs9TjtfMk7nOB/6XuNwJ+AmrlQOzdgM2Aj0p5Pif/fubQf9ec/PPJ1/NXurEXe13OnMPy9fy1HLFX2XNYPs+EbQFMcfcv3f1v4H5g76VeszcwzMPbwGpm1jjbgZag3Njd/U13/zn18G2gSZZjLEk6f+YAJwEPA7OyGVw50on9EOARd58B4O65EH86cTvQwMwMqE+cwBZkN8xluftrqVhKk6t/P7NB569k5Os5LF/PX6BzWJnyeRC2PvBVscczU8eW9zVJWN64jiRG20krN24zWx/YF7g9i3GlI50/89bA6mb2ipmNM7M+WYuudOnEfTOwMfANMBH4l7svyk54KyVX/35mg85fycjXc1i+nr9A57Ay1ajQcLLLSji29FbPdF6ThLTjMrPtiZPYthmNKD3pxH098G93XxgXNTkjndhrAJ2BHYG6wFtm9ra7f57p4MqQTty7Ah8COwAtgRfM7HV3/zXDsa2sXP37mQ06fyUjX89h+Xr+Ap3DypTPg7CZQNNij5sQo+jlfU0S0orLzDoAg4Hd3P3HLMVWlnTiLgTuT5281gJ2N7MF7v5YViIsXbr/v8x297nAXDN7DegIJHkSSyfufsAVHkkKU8xsKrAR8G52Qlxhufr3Mxt0/kpGvp7D8vX8BTqHlS3pxLcVvREDyC+BFixO9mu31Gv2YMmkuXeTjns5Ym8GTAG2Tjre5Yl7qdcPJQeSWpfjz3xjYHTqtfWAj4D2eRD3bcBFqfvrAF8DayX9Z56KpzmlJ7Xm5N/PHPrvmpN/Pvl6/ko39qVenxPnsHw9fy1H7FX2HJa3M2HuvsDMTgSeI3ZfDHH3SWbWP/X87cTOlt2Jk8E8YrSduDRjvxBYE7g1dUW2wBNudJpm3Dkpndjd/RMzGwVMABYBg929xK3J2ZLmn/klwFAzm0icDP7t7rMTCzrFzEYA3YG1zGwmMACoCbn99zMbdP5KRr6ew/L1/AU6h5X7HanRnIiIiIhkUT7vjhQRERHJWxqEiYiIiCRAgzARERGRBGgQJiIiIpIADcJEREREEqBBmKTFzNzM7in2uIaZ/WBmT5Xzvk5mtnsan/97Kcf7r0z7DTObZmYTUx3uXzWzgnJe39zMDlnR7xOR3KPzl+QqDcIkXXOB9mZWN/V4Z6KgXnk6EXVUVkiq/s2wFX1/yvbu3gF4BTi/nNc2JxrhikjlofOX5CQNwmR5PEtUCAY4GBhR9ISZbWFmb5rZB6mfbcysFvAf4EAz+9DMDjSz+mZ2V7Gru/2LfcZlZjbezN42s3VSxy4yszNS918xs/+Z2btm9rmZdU0dr2dmD6Y+7wEze8fMSioM+Rap5qqpK8bXzez91G3r1GuuALqm4j3VzKqb2VVm9l7q84+t0D9REckWnb90/so5GoTJ8rgfOMjM6gAdgHeKPfcp0M3dNyWqZf/X3f9O3X/A3Tu5+wPABcAcd98kdXX3Uur9qwBvu3tH4DXg6FJiqOHuWwCnENWLAY4Hfk593iVEE9uS9AAeS92fBezs7psBBwI3po6fDbyeivc6ovnwHHffHNgcONrMWpT5pyQiuUjnL52/ck7eti2S7HP3CWbWnLiKfGappxsCd5tZK6KLfM1SPmYn4KBin/lz6u7fQFF+xjhiuaAkjxR7TfPU/W2BG1Kf95GZTVjqPS+nrkxnsXg6vyZws5l1AhYCrUv5vl2ADmbWK/W4IdAKmFrK60UkB+n8Bej8lXM0EybL6wngaopN5adcArzs7u2BvYA6pbzfiJPc0ub74h5aCyn9AuGvEl5j5cS8PVAATCKWFwBOBb4HOgKFRGPZ0uI9KXVl2cndW7j78+V8n4jkJp2/dP7KKRqEyfIaAvzH3ScudbwhixNdDy92/DegQbHHzwMnFj0ws9UrIKYxwAGpz2sLbLL0C9z9D2IJoI+ZrZGK91t3XwQcRjSWLSne54DjzKxm6vNbm9kqFRCziGSfzl86f+UUDcJkubj7THe/oYSnrgQuN7M3WHxCAHgZaFuU2ApcCqxuZh+Z2XjiKm9l3Qo0Sk3j/xuYAMwpIfZviSvgE1Lv6WtmbxNT+XNTL5sALEgl2J4KDAY+Bt43s4+AgWgZXyQv6fyl81euscUzqCL5ycyqAzXd/U8zawmMBlqnEmtFRHKWzl9Vm0bEUhnUI5JXaxI5EMfpBCYieULnrypMM2EiIiIiCVBOmIiIiEgCNAgTERERSYAGYSIiIiIJ0CBMREREJAEahImIiIgkQIMwERERkQT8P4mBYkGsJV1zAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -359,7 +360,7 @@ " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", " unique_labels = tmpdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_RANDOM\", tmpdf, \"MatchingRate\", unique_labels, flag)" + " plot_perf(bm, tmpdf, \"MatchingRate\", unique_labels, flag)" ] }, { @@ -369,6 +370,7 @@ "### count by varying num_reps\n", "
    \n", "
  • Fixed matching rate: 0.5
  • \n", + "
  • Random non-unique input keys
  • \n", "
" ] }, @@ -379,7 +381,7 @@ "outputs": [ { "data": { - "image/png": "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PrNFv6+4whrLlSsTH4NzrmLYYgtLms4/38bKduxYdI2x4nz7LYwebYP2r7kGxo6FH36Agw9OzdJAqSZMiYrLgDuDrTNwA3BYguNyLmmqVLFG6MUXbe21446DnXe2wac//wwNG9qVXbJLW1StaiU1broJnn7aap8tWJDcGJxzmatSJbjhBpuk9Pnn1rv19tulO8Yff9jY1exsOPts2HJLK62zbh289FJi4s4kYXrCjgAOABap6iCgNVA1oVE5F4Hu3a03qkkTeP11WLbMylvcdpslP2UZxFpeInDuuZYgfved9dB9+GHy43DOZa4jjoCPPoL69eGAA+DWW8NfdH78MfTuDa++aoP199nHevEPOcRec8ULk4T9o6rrgbUiUgdYDOyQ2LCci8bixTb+6uOPNywIPnaslbSYOze6uLp1s3Uwq1e32waPPRZdLM65zLPzzpaIHXaYzXrs398KXJckJwdmz4a99rLB+rVrWy/+7Nn2mite2AW86wH3YzMjZwIfJTIo56Kyxx52Rbfttvb8mWdsXNakSdawRKllS2sk99zTeuwuuWTTAq/OOVdWderYMm/XXWe3KPfay3rgi9Ozp73nlltgl11swP/bb9tFY7Vq3kaVJMzakaeq6p+qeh/QBRgY3JZ0LuOccII1HhdcAN98YwP2W7SwsRO9e8OFF0a72Pbmm1uxxJNOsrIWRxwR7mrVOefCEIH//c8uRhctsnpixS13VK2atUmTJtn42diYsCuvhGOPtaWOli1LWvhpJ+zsyFYichjQBthRRPokNiznolG/vtXQWb7cljcaOtSqTM+dC8ccY1eIRx8dbYxVqlh9nttug+eegw4dvLK+cy6+DjzQerWaNi15uaMdd7T1b3/80XrF3nnH2s277rLB+e3bw/ffJzf+dCFawug7EXkIaAV8AcQ6FlVVT0hwbIXKy8vT6dO9VqyLxptvWpd9Xp5d3a1da2PHovLqq9C3r90qnTjRGrtMJCIzVDUv6jjiwdswl05idcAefNDKTowbZ7ULw5oyBY480hK4J5+ELl0SF2uqKq79CtMTtpeq5qnqQFUdFGyRJGDORW3//S0BAxg2zAazPvFE8stXxBx8MEybZolhp05W48w55+KlvMsdde5sE51ycmyik9tYmCTsAxFpkfBInEszgwdbfZx+/Wx5oahuCTZvbmUrOnSwGmfDhkW/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nEcftc+J2OOjj4b7HDBdU6D9iceWqm1YzZo1VVV17ty52qZNG23durW2aNFC77333v/ec/TRR2uzZs20ZcuWOmjQIP3333+jCjeuYt9dVXXevHnapUsXbd68ue688846Z86cjd572mmnbfR+l55++UX1/PNVa9VSBdUePVQ/+KDo9599tmpWlupZZ6n+9Zfte/BB1bZtSz5Xce1XcUnYzOKeR7WlagPmXEXy9tuqBx9syRSoduigev/9qmvWJOZ8noRtrKzJbHFiicXq1at11apVqqq6fPlyzcnJ0Z+D7HvSpEm6fv16Xb9+vfbr10/vueee8p+4lB57TLVlS/sPsWVLe15e+ZOqjh076uTJk1XVvv+KFSv+e+3jjz/WY445xpOwDPLHH6pXXKHaoIG1ZZ06qU6ebBee+bVpo9qtm/2ba9XKXl+7VnXLLVXnzi3+HMW1X8XdjmwtIsuCbTnQKvaziCwrZweccy6N7bcfvPKKzSC67jr4/XerAZadba9//bXdsizMunU2K9KVzbhxNts0UaU+qlSpQtWqVQFYvXo16/Pdd+7WrRsigojQrl07FixYEJ+ThjR+vM2mvfNOGzB95532fPz4+Bz/yy+/ZO3atXTp0gWAWrVqUSO4h75u3TrOP/98brjhhviczKWEBg1g+HD7d3TLLVY/7KCDbOHwZ57ZMOwiVqn/o4/gmmts8L+IvablKNolWp5PRyAvL0+nT58edRjOuXxUYfFiK32xapXVIKtRA447zpZE2mknK39x2WVWM2zFCth5Z0vgDj645OOLyAxVzUv8N0m8ktqws84qfjmVadMKL0JZteqGtfEK2m03WzGhOLVq1eLvYObF/Pnz6d69O99//z033ngjQ4cO3ei9a9asYc899+T2229n3333Lf7ApdSp06b7jjrKKpu3aGGrQOQvd7J0qVU8X7DALgaOOGLjz771VsnnjH33iRMn8sADD1ClShXmzJnDgQceyHXXXUd2dja3334769ev5+yzz97od+Uyy+rV8Mgj1jb98IO1U//7n82ofP99+7t46aU2q7tBAxsv9sMPGxKywhTXfoUpUeGcc8USsQQMrDds5EhbS/L6622qd/v2to7lzJkwY4b1hF19tSVpH30UbezpprAErLj9ZbHddtvx2Wef8f333zNmzBh+/fXXjV4/9dRT2W+//eKegJXkm29s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\n", + "image/png": "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WQUXoaxcedPaePntsYetmFCUGjVq8Hcw82Lx4sV0796db7/9lhtuuIHhw4f/573r1q1jr7324tZbb2W//fYr+sAl1KnT5vuOPtoqmzdvbqtA5C13sny5VTxfssQuBo488r+ffeON4s8Z++5Tp07lvvvuo1KlSixYsICDDjqIa6+9luzsbG699VY2btzIWWed9Z/flcssa9fCww9b2/Tdd9ZOXXCBzah89137u3jppTaru149yxf77rtNHbKCFNV+hSlR4ZxzRRKxDhjYaNjYsbaW5HXX2VTv9u1tHcu5c2HOHBsJu+oq66R98EG0saebgjpgRe0vjR122IFPPvmEb7/9lvHjx/PLL7/85/VTTjmF/fffP+4dsOJ89ZUtGJ9X7dqFlxwoqfXr1/P2229z44038uGHH/L999/z0EMP8dNPPzF58mROO+20+JzIpazKla2i/pdf2ghrxYpWzPXuu63tOv74TaPQv/9uyyc9+mgZTljYfcpU3TwnzLn08dNPqjfcoNqsmWr16qq//ab6+eeqs2fb67ffrtqvX/HHwXPC/icnx3JX8m85OWU6bKF5TieccIJOnjz5f88vv/xy7dmzp27YsKFsJyyFFi1UX3/9v/tef932l0Xsu7/33nvasWPH/+2fMGGCnnLKKfr888/r1ltvrTk5OZqTk6Mioo0bNy7bSV1a2LhR9fnnVffZp+B/d2H+7RXVfvlImHMuYRo0sOKIjz1mVau32MJGyWIDK23bWj0yF16iS30sWbKEf/75B4Dly5fzzjvvsMsuuwBw33338fLLLzNp0iSyspL/38fFF8PgwTBjht3enjHDnsdr1YW2bduyfPlyfv31VwBef/11mjdvTvfu3fn5559ZuHAhCxcupFq1anzrf3HLBRHo3r3oJd3KUnC6Quk/6pxz4ey0k90y+vFHWzg8lsD/+uvQsmW0saWbWFXwiy+2xr9hQ+uAxfaX1RdffME555yDiKCqnHvuuey+++4ADBs2jJycHNq3bw9Anz59GDlyZHxOHEL//vZ42mlWUHPXXe27x/aXVXZ2NjfeeCMHHnhgbNSSIUOGxOfgLq3FlkZatGjz18pScNoT851zSXHZZTBtmi2a26SJzTy69FJ4801LuC5KeUrMd86lptjM5Lyzu6tVszUsi7oIKqr98pEw51xSXH65Je8PHWrJrPvuCy+/XHwHzDnnUkEiRqG9E+acSwoRKzNwyilRR+Kcc6UzYED8bv2Dl6hwzjnnnIuEd8Kcc8455yLgnTDnnHPOuQh4J8w555xzLgLeCXPOOeeci4B3wpxzzjnnIuCdMOecc865CHgnzDnnnHMuAmm3bJGI/AosAmoDf+V7uaB9OwILkhBaPM9Z0PeIx/mKOm5JXyvonCWNu6TCfM94xJD3GPE6Z3HvKeychX0u7N//MOL5byRsDEWds6Bj5Khq/bIElipK2IalY/sFiWnDSvJvKMz+/OdMhfYrXnHEjhHPNjPs/xFhfq/xbL8KOmdplSSGws5ZsvZLVdNyA8aF3LcqgtjKdM6Cvkc8zlfUcUv6WkHnLGncifi9xiOGvMeI1zmLe09h5yzsc2H//sfz709Jf3elPWei/x6lyhbmzzAd26/S/BnG499ZSf6tFHTOVGi/4hVH7BjxbDPD/h8R5vcaz/arJL/beP7uCztnSb9HOt+OfC7kvnSUqO9R1HFL+1pp3pdI8YihpMcI8/7i3lPY6yXZX15//+kqVf8M4yER3yPe/4ZK+75ES/a/oXj8fkr6Wqr+3U96+5V2tyNLSkRWqWr1TD5nefiOfs7MOV9U50xH5eXPpjycszx8Rz9nyaXzSFhYT5WDc5aH7+jnzJzzRXXOdFRe/mzKwznLw3f0c5ZQxo+EOeecc86lovIwEuacc845l3IythMmIl+LyEYRWZOk87UTkeUislZE1ojIlGScNzh3RRFZLSK/JOl8U4PvuEZEFolI7QSco8A/PxGZLCL/Bud+P47nqy0if4vIP8Gx3wj2fxD8mf4jIj+JSE68zhkcP0dElgTnWCsiQ/K89pyIqIg0LeM5NvtdFva9RKSqiHwb/A7WishLpThfgf8WROQNEdkQnPMfERmZ5zNHiMjKPH+v4v53Kp14+5XQ82Vc+xUcO+ltWCa2X8FxktaGZWwnDLgNODaJ51sLDFfVylj9kB4i0iNJ534SWJaME4nInkB3oIGqVsH+Dt2UgFNt9ucnImcBBwBbBOceFMfzrQAaq2pVoC6QKyKDsfv+tYL9PwCPx/GcAK8BrwZ/b+oB08EaAaA9sCEO5yjo30Jh3+sGoGLw+90WOEhEOpTwfEX9W3hBVasG2xUAIlIZeAQ4MTjvbsDqEp4z03j7lQAZ3H5BNG1YJrZfkMQ2LGM7Yap6B/aHk6zzfayqjwY/LwV+B5on+rwikgvsh/1FTRYB6gZ/8SoB38b7BIX8+Z0NXKuqK4P3fB7H86mqxq7Eq2H/NlRVr1XVtcH+N4Ct43VOEdkOyCFojFV1laouCl5+Cvi/eJynoN9lEd9LgcrBn21dYCPwUwnPV9J/CxcAS1V1cvCZb1V1XUnOmWm8/Ursacmw9is4XlLbsExtv4LjJ60Ny9hOWJSCnnd9rGecaFOB07C/bAmnqnOAZ4DvgH+A1ap6bTLODWwJdA+G3P8UkYHxPHhwW+Qf4DfgE1V9IN9bTgBejOMpO2BXXN8Et2O+FJH6InIV8GvsH3QSnMCm73V+ENM/wDfA46r6fWkPXMC/hUODYfyvRaRRsK918N7fgt/DtNKez5Wdt18Jk9D2C5LehmV8+wWJb8O8ExZnIrI18DJwk6r+mOBzjQL+VNWJiTxPvnM2AjoDuwLVgSoicleyTg/UAWoCZwL3iYjE6+Cqui4Y3m4E7CIivf53YpHp2H8Uw+N1PuwqvDpwtapWwxqOadh3OzyO5ylUAd9rYPC8OtAC6CsiHUt57Pz/FoYDVYEa2O2n6cFbKwA7APsEj/uLyLml+kKuTLz9SuzpSWD7BUlvwzK6/QqOn/g2rLiS+um8YT31NUk8X1XsCuSZJJ3vXWB9sG3AhmK/T/A5bwK+yvN8LPBpMv78gF+BM/M8Xwc0S9C5XweeC34eB6zEcjnieY7dgfV5ng8H/sAakdifqwaPu8fzd1nY9wLmA/fkef41cHMpzlfkv4W88QC3At/mee1V4PlE/Lmm0+btV0LOWS7ar+D4CW3DMrn9Cj6blDbMR8LiJLii+RRYrKo9k3FOVd1HVSuoagXgHGCZqu6U4NN+BuSIyBbBdz4Q+CLB54yZDvQGEJGDsSvLr+JxYBFplmeGTV1gT2CuiFyMXV21VdXf43GuGFWdD6wSka7BrqOwf8hZef5cNwDNg/fGTRHfazFwoJj6WM7HzBIeu8B/CyLSKs/bzgVi+Ss3A9sGf6cqY0P7s0v6nVzpefuVFAlrv4JjJrUNy9T2Kzh+8tqwRPXCo96ARWy6uloPPJjg8/1fcK5/8mwjk/h9zwR+SdK53sDuu68BvgdqJuPPDxti/j4472rg7Die74jgmP8Ex38t2P9vcP7Yn+lncf6efYFVwbGXAo3yvb4eaJqA32WB3wtLcF0c/A7WUooRqcL+LeT5s/sH+BloleczdwWvrQHeT8bf41TevP1K6Lkyrv0Kzpn0NiwT26/gOElrw7xivnPOOedcBPx2pHPOOedcBLwT5pxzzjkXAe+EOeecc85FwDthzjnnnHMR8E6Yc84551wEvBPm4kpEVERuyvP8XBG5PE7HvlxEfhSReSLyuYj0j8dxnXMuxtswl0zeCXPxthboIyJbJuj4N6vqHkBPYKyIVEzQeZxz5ZO3YS5pvBPm4m09tpzEWflfEJGHROTIPM//Dh47icibIvJEsCjqtSIyQEQ+EJH5ItI4/7FU9RusMGHd4BjniciHIvJJsCYdItIoWFR2fLD/SRGpFrx2bXAl+omI3JiIX4RzLi15G+aSxjthLhHuBAaISO0SfKYVcAa2HtlxWJXldsB9wGn53ywibYBvVHVZsARIE6AdsAewp4jsH7x1F2CcqrYEVgCniEg9bPmQFsH+q0rxHZ1zmcvbMJcU3glzcaeqK4AJwOkl+NiHqrpUVdcC37Fpdfr5QKM87ztLRL4C3gcuD/YdHGwfAXOBZliDBrb21zvBz49gi66uwJaWuE9E+mBXo845B3gb5pLHO2EuUW4BBmPrpcWsJ/g7FyyQWinPa2vz/Lwxz/ONQIU8r92sqrtga5ZNEJEq2EK416jqHsG2s6reH7w//7pcqqrrsSvOKUAv4KVSfUPnXCa7BW/DXIJ5J8wlhKr+ATyBNWIxC4E9g597AqVOSFXVp7BV6gcCLwMnikgNABHZTkS2Ct7aUETaBz/3B2YG76utqi9gCwfvUdo4nHOZydswlwwVin+Lc6V2E3Bqnuf3As+IyAfAa8CqMh7/CuBRYNdge88uTvkbOBbYAHwBDBSRscA3wN1A7SCO2BXoZgm4zjmHt2EuwUQ1/0inc5lBRBoBz6vqblHH4pxzJeVtWObz25HOOeeccxHwkTDnnHPOuQj4SJhzzjnnXAS8E+acc845FwHvhDnnnHPORcA7Yc4555xzEfBOmHPOOedcBLwT5pxzzjkXgf8HZw7Ob6BefaAAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -398,7 +400,7 @@ " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", " unique_labels = tmpdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_RANDOM\", tmpdf, \"NumReps\", unique_labels, flag)" + " plot_perf(bm, tmpdf, \"NumReps\", unique_labels, flag)" ] } ], From 7e89eff9b12637faec877dc8232e64bda42d6306 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 6 May 2021 13:44:19 -0400 Subject: [PATCH 085/267] Per-block shared memory buffer with CG-level parallel retrieval --- include/cuco/detail/static_multimap.inl | 2 +- .../cuco/detail/static_multimap_kernels.cuh | 50 ++++++++++--------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 52664a3e4..540143a33 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -144,7 +144,7 @@ OutputIt static_multimap::find_all(InputIt { auto num_keys = std::distance(first, last); auto const block_size = 128; - auto const buffer_size = CGSize * 2; + auto const buffer_size = block_size * 2; auto const stride = 1; auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 18c44c25f..285e468a1 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -595,14 +595,12 @@ __global__ void find_all(InputIt first, auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - constexpr uint32_t num_cgs = block_size / tile_size; - const uint32_t cg_id = threadIdx.x / tile_size; - const uint32_t lane_id = tile.thread_rank(); + const uint32_t lane_id = tile.thread_rank(); - __shared__ cuco::pair_type output_buffer[num_cgs][buffer_size]; - __shared__ uint32_t cg_counter[num_cgs]; + __shared__ uint32_t block_counter; + __shared__ cuco::pair_type output_buffer[buffer_size]; - if (lane_id == 0) { cg_counter[cg_id] = 0; } + if (0 == threadIdx.x) { block_counter = 0; } while (first + key_idx < last) { auto key = *(first + key_idx); @@ -611,7 +609,7 @@ __global__ void find_all(InputIt first, bool running = true; bool found_match = false; - while (running) { + while (__syncthreads_or(running)) { pair arr[2]; if constexpr (sizeof(Key) == 4) { auto const tmp = *reinterpret_cast(current_slot); @@ -634,48 +632,52 @@ __global__ void find_all(InputIt first, auto num_first_matches = __popc(first_exists); auto num_second_matches = __popc(second_exists); - uint32_t output_idx = cg_counter[cg_id]; + uint32_t output_idx; + if (0 == lane_id) { + output_idx = atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + } + output_idx = tile.shfl(output_idx, 0); if (first_equals) { auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); Key k = key; - output_buffer[cg_id][output_idx + lane_offset] = + output_buffer[output_idx + lane_offset] = cuco::make_pair(std::move(k), std::move(arr[0].second)); } if (second_equals) { auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); Key k = key; - output_buffer[cg_id][output_idx + num_first_matches + lane_offset] = + output_buffer[output_idx + num_first_matches + lane_offset] = cuco::make_pair(std::move(k), std::move(arr[1].second)); } - if (0 == lane_id) { cg_counter[cg_id] += (num_first_matches + num_second_matches); } } if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; if ((not found_match) && (lane_id == 0)) { - auto output_idx = cg_counter[cg_id]++; - output_buffer[cg_id][output_idx] = + auto output_idx = atomicAdd_block(&block_counter, 1); + output_buffer[output_idx] = cuco::make_pair(key, view.get_empty_key_sentinel()); } } - tile.sync(); + __syncthreads(); + __shared__ uint32_t block_offset; + if (0 == threadIdx.x) { + block_offset = num_items->fetch_add(block_counter, cuda::std::memory_order_relaxed); + } + __syncthreads(); + + if (threadIdx.x < block_counter) { + *(output_begin + block_offset) = output_buffer[threadIdx.x]; + } + __syncthreads(); - flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { cg_counter[cg_id] = 0; } + if (0 == threadIdx.x) { block_counter = 0; } current_slot = view.next_slot(tile, current_slot); } // while running key_idx += (gridDim.x * blockDim.x) / tile_size; } - - // Final flush of output buffer - if (cg_counter[cg_id] > 0) { - flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); - } } /** From 6dbf36f93a689d77832e61132729a8bed2db5cfb Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 7 May 2021 13:26:14 -0400 Subject: [PATCH 086/267] Flush when next iteration won't fit into cache --- include/cuco/detail/static_multimap.inl | 2 +- .../cuco/detail/static_multimap_kernels.cuh | 193 +++++++----------- 2 files changed, 77 insertions(+), 118 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 540143a33..f11130fe3 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -144,7 +144,7 @@ OutputIt static_multimap::find_all(InputIt { auto num_keys = std::distance(first, last); auto const block_size = 128; - auto const buffer_size = block_size * 2; + auto const buffer_size = block_size * 3; auto const stride = 1; auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 285e468a1..62a662dc2 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -37,63 +37,19 @@ namespace cg = cooperative_groups; * @param num_items Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ -template -__inline__ __device__ std::enable_if_t::value, void> -flush_output_buffer(CG const& g, - uint32_t const num_outputs, - cuco::pair_type* output_buffer, - atomicT* num_items, - OutputIt output_begin) +template +__inline__ __device__ void flush_output_buffer(uint32_t const num_outputs, + cuco::pair_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) { - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } - offset = g.shfl(offset, 0); - - cg::memcpy_async(g, - output_begin + offset, - output_buffer, - cuda::aligned_size_t)>( - sizeof(cuco::pair_type) * num_outputs)); -} - -/** - * @brief Flushes shared memory buffer into the output sequence. - * - * @tparam Key key type - * @tparam Value value type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param output_size Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_items Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ -template -__inline__ __device__ std::enable_if_t::value, void> -flush_output_buffer(CG const& g, - uint32_t const num_outputs, - cuco::pair_type* output_buffer, - atomicT* num_items, - OutputIt output_begin) -{ - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } - offset = g.shfl(offset, 0); + __shared__ std::size_t offset; + if (0 == threadIdx.x) { + offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + __syncthreads(); - for (auto index = lane_id; index < num_outputs; index += cg_size) { + for (auto index = threadIdx.x; index < num_outputs; index += block_size) { *(output_begin + offset + index) = output_buffer[index]; } } @@ -592,7 +548,7 @@ __global__ void find_all(InputIt first, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; const uint32_t lane_id = tile.thread_rank(); @@ -610,73 +566,74 @@ __global__ void find_all(InputIt first, bool found_match = false; while (__syncthreads_or(running)) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - auto const first_exists = tile.ballot(first_equals); - auto const second_exists = tile.ballot(second_equals); - - if (first_exists or second_exists) { - found_match = true; + if (running) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + auto const first_exists = tile.ballot(first_equals); + auto const second_exists = tile.ballot(second_equals); - uint32_t output_idx; - if (0 == lane_id) { - output_idx = atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); - } - output_idx = tile.shfl(output_idx, 0); + if (first_exists or second_exists) { + found_match = true; - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); - Key k = key; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[0].second)); - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); - Key k = key; - output_buffer[output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[1].second)); + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == lane_id) { + output_idx = atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + } + output_idx = tile.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[0].second)); + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[1].second)); + } } - } - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - running = false; - if ((not found_match) && (lane_id == 0)) { - auto output_idx = atomicAdd_block(&block_counter, 1); - output_buffer[output_idx] = - cuco::make_pair(key, view.get_empty_key_sentinel()); + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if ((not found_match) && (lane_id == 0)) { + auto output_idx = atomicAdd_block(&block_counter, 1); + output_buffer[output_idx] = + cuco::make_pair(key, view.get_empty_key_sentinel()); + } } - } + } // if running - __syncthreads(); - __shared__ uint32_t block_offset; - if (0 == threadIdx.x) { - block_offset = num_items->fetch_add(block_counter, cuda::std::memory_order_relaxed); - } __syncthreads(); - if (threadIdx.x < block_counter) { - *(output_begin + block_offset) = output_buffer[threadIdx.x]; - } - __syncthreads(); + if ((block_counter + 2 * block_size) > buffer_size) { + flush_output_buffer(block_counter, output_buffer, num_items, output_begin); - if (0 == threadIdx.x) { block_counter = 0; } + if (0 == threadIdx.x) { block_counter = 0; } + } current_slot = view.next_slot(tile, current_slot); } // while running - key_idx += (gridDim.x * blockDim.x) / tile_size; + key_idx += (gridDim.x * block_size) / tile_size; + } + + // Final remainder flush + if (block_counter > 0) { + flush_output_buffer(block_counter, output_buffer, num_items, output_begin); } } @@ -761,10 +718,9 @@ __global__ void count( auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - using BlockReduce = cub::BlockReduce; + typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; - - int thread_counter{0}; + std::size_t thread_num_items = 0; while (first + key_idx < last) { auto key = *(first + key_idx); @@ -784,7 +740,7 @@ __global__ void count( auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - thread_counter += (first_equals + second_equals); + thread_num_items += (first_equals + second_equals); if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } @@ -792,8 +748,11 @@ __global__ void count( } key_idx += (gridDim.x * block_size) / tile_size; } - auto const block_count = BlockReduce(temp_storage).Sum(thread_counter); - if (threadIdx.x == 0) { num_items->fetch_add(block_count, cuda::std::memory_order_relaxed); } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { *num_items += block_num_items; } } } // namespace detail From 07091b84c0a075b2b613d31cd8710e31ca188db0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 10 May 2021 16:15:31 -0400 Subject: [PATCH 087/267] Add key_generator header file --- benchmarks/key_generator.hpp | 97 ++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 benchmarks/key_generator.hpp diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp new file mode 100644 index 000000000..98753a97c --- /dev/null +++ b/benchmarks/key_generator.hpp @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +enum class dist_type { GEOMETRIC, GAUSSIAN, UNIFORM }; + +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) +{ + auto const num_keys = std::distance(output_begin, output_end); + + std::random_device rd; + std::mt19937 gen{rd()}; + + switch (Dist) { + case dist_type::GAUSSIAN: { + auto const max = std::numeric_limits::max(); + auto const mean = max / Multiplicity / 2; + auto const dev = max / Multiplicity / 5; + + std::normal_distribution<> distribution(mean, dev); + + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = std::abs(distribution(gen)); + } + break; + } + case dist_type::GEOMETRIC: { + std::geometric_distribution distribution{1e-9}; + + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = distribution(gen) / Multiplicity; + } + break; + } + case dist_type::UNIFORM: { + std::uniform_int_distribution distribution{1, static_cast(num_keys / Multiplicity)}; + + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = distribution(gen); + } + break; + } + } +} + +template +static void generate_prob_keys(InputIt input_begin, + InputIt input_end, + OutputIt output_begin, + double const matching_rate) +{ + auto const num_keys = std::distance(input_begin, input_end); + + std::random_device rd; + std::mt19937 gen{rd()}; + + auto const max = std::numeric_limits::max(); + + std::uniform_real_distribution rate_dist(0.0, 1.0); + std::uniform_int_distribution idx_dist{0, num_keys - 1}; + std::uniform_int_distribution non_match_dist{max / Multiplicity, max}; + + for (auto i = 0; i < num_keys; ++i) { + auto const tmp_rate = rate_dist(gen); + + // If match, randomly sample from the input keys + if (tmp_rate <= matching_rate) { + output_begin[i] = input_begin[idx_dist(gen)]; + } + // Otherwise, randomly draw from [Max/Multiplicity, Max] + else { + output_begin[i] = non_match_dist(gen); + } + } +} From 57b4f92278c0813080a923592813294e6558781e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 10 May 2021 17:03:42 -0400 Subject: [PATCH 088/267] Add distribution map: mapping string to enum --- benchmarks/key_generator.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 98753a97c..749ce69cf 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -18,9 +18,15 @@ #include #include +#include enum class dist_type { GEOMETRIC, GAUSSIAN, UNIFORM }; +static std::unordered_map const dist_map = { + {"GAUSSIAN", dist_type::GAUSSIAN}, + {"GEOMETRIC", dist_type::GEOMETRIC}, + {"UNIFORM", dist_type::UNIFORM}}; + template static void generate_keys(OutputIt output_begin, OutputIt output_end) { From 7b0727ae652a763fec978384eed925a8b8d7fdff Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 10 May 2021 20:46:55 -0400 Subject: [PATCH 089/267] A comprehensive multimap benchmark --- .../static_multimap/static_multimap_bench.cu | 442 ++++++++---------- benchmarks/key_generator.hpp | 30 +- 2 files changed, 205 insertions(+), 267 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 2b174fe7e..813ca57d5 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -14,54 +14,59 @@ * limitations under the License. */ -#include - -#include #include -#include "cuco/static_multimap.cuh" +#include +#include -/** - * @brief Generates input keys with a specific distribution. - * - */ -template -static void generate_keys(OutputIt output_begin, - OutputIt output_end, - size_t const num_reps, - const std::string& dist) -{ - auto num_keys = std::distance(output_begin, output_end); - - if (dist == "RANDOM") { - std::random_device rd; - std::mt19937 gen{rd()}; - std::uniform_int_distribution distribution{1, static_cast(num_keys / num_reps)}; - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = distribution(gen); - } - } else if (dist == "CYCLE") { - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = (i % (num_keys / num_reps)) + 1; +#include +#include + +NVBENCH_DECLARE_ENUM_TYPE_STRINGS( + // Enum type: + dist_type, + // Callable to generate input strings: + // Short identifier used for tables, command-line args, etc. + // Used when context is available to figure out the enum type. + [](dist_type d) { + switch (d) { + case dist_type::GAUSSIAN: return "GAUSSIAN"; + case dist_type::GEOMETRIC: return "GEOMETRIC"; + case dist_type::UNIFORM: return "UNIFORM"; + default: return "ERROR"; } - } -} + }, + // Callable to generate descriptions: + // If non-empty, these are used in `--list` to describe values. + // Used when context may not be available to figure out the type from the + // input string. + // Just use `[](auto) { return std::string{}; }` if you don't want these. + [](auto) { return std::string{}; }) /** - * @brief Helper function to launch insertion benchmark. - * + * @brief A benchmark evaluating multi-value `insert` performance: + * - Total number of insertions: 100'000'000 + * - CG size: 8 */ -template -void launch_nvbench_insert(nvbench::state& state, - std::vector const& h_keys, - std::size_t const num_keys, - std::size_t const size) +template +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_insert( + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { + auto const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + + std::size_t const size = num_keys / occupancy; + auto const cg_size = 8; + + std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); + generate_keys(h_keys.begin(), h_keys.end()); + for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; - Value val = i; + Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; } @@ -69,357 +74,308 @@ void launch_nvbench_insert(nvbench::state& state, thrust::device_vector> d_pairs(h_pairs); state.add_element_count(num_keys, "NumKeys"); - state.add_global_memory_writes(num_keys * 2); state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { cuco::static_multimap map{size, -1, -1}; - auto m_view = map.get_device_mutable_view(); + // Use timers to explicitly mark the target region timer.start(); map.insert(d_pairs.begin(), d_pairs.end(), launch.get_stream()); timer.stop(); }); } -/** - * @brief A benchmark evaluating multi-value insertion performance by varing number of repetitions - * per key: - * - Total number of insertions: 100'000'000 - * - Map occupancy: 0.8 - * - CG size: 8 - * - Number of repetitions per key: 1, ... , 128, 256 - * - */ -template -std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_insert( - nvbench::state& state, nvbench::type_list) -{ - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const num_reps = state.get_int64("NumReps"); - auto const dist = state.get_string("Distribution"); - - std::size_t const size = num_keys / occupancy; - std::size_t const cg_size = 8; - - std::vector h_keys(num_keys); - - generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); - - launch_nvbench_insert(state, h_keys, num_keys, size); -} - -template +template std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_insert( - nvbench::state& state, nvbench::type_list) + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { state.skip("Key should be the same type as Value."); } /** - * @brief A benchmark evaluating multi-value count performance by varing number of repetitions - * per key: - * - 100'000'000 keys are inserted - * - Map occupancy: 0.8 + * @brief A benchmark evaluating multi-value `count` performance: + * - Total number of insertions: 100'000'000 * - CG size: 8 - * - Number of repetitions per key: 1, ... , 128, 256 - * */ -template +template std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_count( - nvbench::state& state, nvbench::type_list) + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const num_reps = state.get_int64("NumReps"); - auto const dist = state.get_string("Distribution"); + auto const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + auto const matching_rate = state.get_float64("MatchingRate"); std::size_t const size = num_keys / occupancy; + auto const cg_size = 8; std::vector h_keys(num_keys); - generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); - std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end()); + for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; - - if (dist == "RANDOM") { h_keys[i] = i; } } - // Get an array of unique keys - std::set key_set(h_keys.begin(), h_keys.end()); - std::vector h_unique_keys(key_set.begin(), key_set.end()); - thrust::device_vector d_unique_keys(h_unique_keys); - - thrust::device_vector> d_pairs(h_pairs); - - state.add_element_count(num_keys, "NumKeys"); - state.add_global_memory_writes(num_keys * 2); - - state.exec( - nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - auto const cg_size = 8; - cuco::static_multimap map{size, -1, -1}; - map.insert(d_pairs.begin(), d_pairs.end()); - - // Use timers to explicitly mark the target region - timer.start(); - auto count = map.count(d_unique_keys.begin(), d_unique_keys.end(), launch.get_stream()); - timer.stop(); - }); -} - -template -std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_count( - nvbench::state& state, nvbench::type_list) -{ - state.skip("Key should be the same type as Value."); -} - -template -std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_count_analysis( - nvbench::state& state, nvbench::type_list) -{ - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const num_reps = state.get_int64("NumReps"); - auto const matching_rate = state.get_float64("MatchingRate"); - - std::size_t const size = num_keys / occupancy; - - std::vector h_keys(num_keys); - generate_keys(h_keys.begin(), h_keys.end(), num_reps, "RANDOM"); - - std::vector> h_pairs(num_keys); - - std::random_device rd; - std::mt19937 gen{rd()}; - auto tmp_max = static_cast(num_keys / num_reps) / matching_rate; - std::uniform_int_distribution distribution{1, static_cast(tmp_max)}; - - for (auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - h_pairs[i].first = key; - h_pairs[i].second = i; - - h_keys[i] = distribution(gen); - } + generate_prob_keys(h_keys.begin(), h_keys.end(), matching_rate); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); state.add_element_count(num_keys, "NumKeys"); - state.add_global_memory_writes(num_keys * 2); + + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - auto const cg_size = 8; - cuco::static_multimap map{size, -1, -1}; - map.insert(d_pairs.begin(), d_pairs.end()); - - // Use timers to explicitly mark the target region timer.start(); auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); timer.stop(); }); } -template -std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_count_analysis( - nvbench::state& state, nvbench::type_list) +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_count( + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { state.skip("Key should be the same type as Value."); } /** - * @brief A benchmark evaluating multi-value retrieval performance by varing number of repetitions - * per key: - * - 100'000'000 keys are inserted - * - Map occupancy: 0.8 + * @brief A benchmark evaluating multi-value `find_all` performance: + * - Total number of insertions: 100'000'000 * - CG size: 8 - * - Number of repetitions per key: 1, ... , 128, 256 - * */ -template +template std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_find_all( - nvbench::state& state, nvbench::type_list) + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const num_reps = state.get_int64("NumReps"); - auto const dist = state.get_string("Distribution"); + auto const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + auto const matching_rate = state.get_float64("MatchingRate"); std::size_t const size = num_keys / occupancy; + auto const cg_size = 8; std::vector h_keys(num_keys); - generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); - std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end()); + for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; - - if (dist == "RANDOM") { h_keys[i] = i; } } - // Get an array of unique keys - std::set key_set(h_keys.begin(), h_keys.end()); - std::vector h_unique_keys(key_set.begin(), key_set.end()); - thrust::device_vector d_unique_keys(h_unique_keys); + generate_prob_keys(h_keys.begin(), h_keys.end(), matching_rate); - thrust::device_vector> d_results(2 * num_keys); + thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); + std::size_t output_size = num_keys * matching_rate * Multiplicity + num_keys; + thrust::device_vector> d_results(output_size); + state.add_element_count(num_keys, "NumKeys"); - state.add_global_memory_writes(num_keys * 2); + + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - auto const cg_size = 8; - cuco::static_multimap map{size, -1, -1}; - map.insert(d_pairs.begin(), d_pairs.end()); - - // Use timers to explicitly mark the target region timer.start(); - map.find_all( - d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), launch.get_stream()); + map.find_all(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); timer.stop(); }); } -template +template std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_find_all( - nvbench::state& state, nvbench::type_list) + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { state.skip("Key should be the same type as Value."); } -/** - * @brief A benchmark evaluating multi-value retrieval performance (`count` + `find_all`) by varing - * number of repetitions per key: - * - 100'000'000 keys are inserted - * - Map occupancy: 0.8 - * - CG size: 8 - * - Number of repetitions per key: 1, ... , 128, 256 - * - */ -template +template std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_retrieve( - nvbench::state& state, nvbench::type_list) + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const num_reps = state.get_int64("NumReps"); - auto const dist = state.get_string("Distribution"); + auto const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + auto const matching_rate = state.get_float64("MatchingRate"); std::size_t const size = num_keys / occupancy; + auto const cg_size = 8; std::vector h_keys(num_keys); - generate_keys(h_keys.begin(), h_keys.end(), num_reps, dist); - std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end()); + for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; h_pairs[i].first = key; h_pairs[i].second = val; - - if (dist == "RANDOM") { h_keys[i] = i; } } - // Get an array of unique keys - std::set key_set(h_keys.begin(), h_keys.end()); - std::vector h_unique_keys(key_set.begin(), key_set.end()); - thrust::device_vector d_unique_keys(h_unique_keys); + generate_prob_keys(h_keys.begin(), h_keys.end(), matching_rate); - thrust::device_vector> d_results(2 * num_keys); + thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); + std::size_t output_size = num_keys * matching_rate * Multiplicity + num_keys; + thrust::device_vector> d_results(output_size); + state.add_element_count(num_keys, "NumKeys"); - state.add_global_memory_writes(num_keys * 2); + + cuco::static_multimap map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - auto const cg_size = 8; - cuco::static_multimap map{size, -1, -1}; - map.insert(d_pairs.begin(), d_pairs.end()); - - // Use timers to explicitly mark the target region timer.start(); - auto count = map.count(d_unique_keys.begin(), d_unique_keys.end(), launch.get_stream()); - map.find_all( - d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), launch.get_stream()); + auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); + map.find_all(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); timer.stop(); }); } -template +template std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_retrieve( - nvbench::state& state, nvbench::type_list) + nvbench::state& state, + nvbench::type_list, nvbench::enum_type>) { state.skip("Key should be the same type as Value."); } +/** + * @brief A benchmark evaluating multi-value retrieve (`count` + `find_all`) performance: + * - Total number of insertions: 100'000'000 + * - CG size: 8 + */ + using key_type = nvbench::type_list; using value_type = nvbench::type_list; +using d_type = + nvbench::enum_type_list; + +using multiplicity = nvbench::enum_type_list<1, 2, 4, 8, 16, 32, 64, 128, 256>; -NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_type_axes_names({"Key", "Value"}) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) + .set_name("staic_multimap_insert_multiplicity") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", {0.8}); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) + .set_name("staic_multimap_insert_occupancy") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) + .set_name("staic_multimap_count_multiplicity") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) - .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) - .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + .add_float64_axis("MatchingRate", {0.5}); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) + .set_name("staic_multimap_count_occupancy") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)) + .add_float64_axis("MatchingRate", {0.5}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_type_axes_names({"Key", "Value"}) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) + .set_name("staic_multimap_count_matching_rate") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) - .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) - .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_type_axes_names({"Key", "Value"}) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) + .set_name("staic_multimap_find_all_multiplicity") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) - .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) - .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + .add_float64_axis("MatchingRate", {0.5}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_type_axes_names({"Key", "Value"}) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) + .set_name("staic_multimap_find_all_occupancy") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)) + .add_float64_axis("MatchingRate", {0.5}); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) + .set_name("staic_multimap_find_all_matching_rate") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) - .add_string_axis("Distribution", {"CYCLE", "RANDOM"}) - .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_count_analysis, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_name("count_varying_matching_rate") - .set_type_axes_names({"Key", "Value"}) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) + .set_name("staic_multimap_retrieve_multiplicity") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) - .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}) - .add_int64_power_of_two_axis("NumReps", {3}); + .add_float64_axis("MatchingRate", {0.5}); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) + .set_name("staic_multimap_retrieve_occupancy") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 + .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)) + .add_float64_axis("MatchingRate", {0.5}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_count_analysis, NVBENCH_TYPE_AXES(key_type, value_type)) - .set_name("count_varying_num_reps") - .set_type_axes_names({"Key", "Value"}) +NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, + NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) + .set_name("staic_multimap_retrieve_matching_rate") + .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) - .add_float64_axis("MatchingRate", {0.5}) - .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 749ce69cf..6606b4983 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -18,15 +18,9 @@ #include #include -#include enum class dist_type { GEOMETRIC, GAUSSIAN, UNIFORM }; -static std::unordered_map const dist_map = { - {"GAUSSIAN", dist_type::GAUSSIAN}, - {"GEOMETRIC", dist_type::GEOMETRIC}, - {"UNIFORM", dist_type::UNIFORM}}; - template static void generate_keys(OutputIt output_begin, OutputIt output_end) { @@ -64,20 +58,15 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } break; } - } + } // switch } -template -static void generate_prob_keys(InputIt input_begin, - InputIt input_end, +template +static void generate_prob_keys(OutputIt output_end, OutputIt output_begin, double const matching_rate) { - auto const num_keys = std::distance(input_begin, input_end); + auto const num_keys = std::distance(output_begin, output_end); std::random_device rd; std::mt19937 gen{rd()}; @@ -85,19 +74,12 @@ static void generate_prob_keys(InputIt input_begin, auto const max = std::numeric_limits::max(); std::uniform_real_distribution rate_dist(0.0, 1.0); - std::uniform_int_distribution idx_dist{0, num_keys - 1}; std::uniform_int_distribution non_match_dist{max / Multiplicity, max}; for (auto i = 0; i < num_keys; ++i) { auto const tmp_rate = rate_dist(gen); - // If match, randomly sample from the input keys - if (tmp_rate <= matching_rate) { - output_begin[i] = input_begin[idx_dist(gen)]; - } - // Otherwise, randomly draw from [Max/Multiplicity, Max] - else { - output_begin[i] = non_match_dist(gen); - } + // If non-match, randomly sample from [Max/Multiplicity, Max] + if (tmp_rate > matching_rate) { output_begin[i] = non_match_dist(gen); } } } From 542cb3cb173a6244cb22bc2fa16a3238decb2b52 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 11 May 2021 11:34:16 -0400 Subject: [PATCH 090/267] Fix a silly bug in key generator: from begin to end, not the opposite! --- benchmarks/key_generator.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 6606b4983..5c862261d 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -62,8 +62,8 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } template -static void generate_prob_keys(OutputIt output_end, - OutputIt output_begin, +static void generate_prob_keys(OutputIt output_begin, + OutputIt output_end, double const matching_rate) { auto const num_keys = std::distance(output_begin, output_end); From e7bf44b05667aa47a597b32bb2ec5d496c6d849b Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 11 May 2021 16:06:01 -0400 Subject: [PATCH 091/267] Update benchmark: solid control of key multiplicities; binomial instead of normal --- .../static_multimap/static_multimap_bench.cu | 22 ++++--- benchmarks/key_generator.hpp | 65 ++++++++++++------- 2 files changed, 56 insertions(+), 31 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 813ca57d5..a516d2a0b 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -30,7 +30,7 @@ NVBENCH_DECLARE_ENUM_TYPE_STRINGS( // Used when context is available to figure out the enum type. [](dist_type d) { switch (d) { - case dist_type::GAUSSIAN: return "GAUSSIAN"; + case dist_type::BINOMIAL: return "BINOMIAL"; case dist_type::GEOMETRIC: return "GEOMETRIC"; case dist_type::UNIFORM: return "UNIFORM"; default: return "ERROR"; @@ -60,9 +60,10 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_i auto const cg_size = 8; std::vector h_keys(num_keys); + std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(h_keys.begin(), h_keys.end()); + generate_keys(unique_keys, h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -112,9 +113,10 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c auto const cg_size = 8; std::vector h_keys(num_keys); + std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(h_keys.begin(), h_keys.end()); + generate_keys(unique_keys, h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -123,7 +125,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c h_pairs[i].second = val; } - generate_prob_keys(h_keys.begin(), h_keys.end(), matching_rate); + generate_prob_keys(unique_keys, matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -167,9 +169,10 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f auto const cg_size = 8; std::vector h_keys(num_keys); + std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(h_keys.begin(), h_keys.end()); + generate_keys(unique_keys, h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -178,7 +181,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f h_pairs[i].second = val; } - generate_prob_keys(h_keys.begin(), h_keys.end(), matching_rate); + generate_prob_keys(unique_keys, matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -220,9 +223,10 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r auto const cg_size = 8; std::vector h_keys(num_keys); + std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(h_keys.begin(), h_keys.end()); + generate_keys(unique_keys, h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -231,7 +235,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r h_pairs[i].second = val; } - generate_prob_keys(h_keys.begin(), h_keys.end(), matching_rate); + generate_prob_keys(unique_keys, matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -270,7 +274,7 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_r using key_type = nvbench::type_list; using value_type = nvbench::type_list; using d_type = - nvbench::enum_type_list; + nvbench::enum_type_list; using multiplicity = nvbench::enum_type_list<1, 2, 4, 8, 16, 32, 64, 128, 256>; diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 5c862261d..15ca0eda6 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -18,68 +18,89 @@ #include #include +#include +#include -enum class dist_type { GEOMETRIC, GAUSSIAN, UNIFORM }; +enum class dist_type { BINOMIAL, GEOMETRIC, UNIFORM }; template -static void generate_keys(OutputIt output_begin, OutputIt output_end) +static void generate_keys(std::vector& unique_keys, OutputIt output_begin, OutputIt output_end) { auto const num_keys = std::distance(output_begin, output_end); + auto const size = num_keys * 2; std::random_device rd; std::mt19937 gen{rd()}; + auto const max = std::numeric_limits::max(); + + std::unordered_set set; + switch (Dist) { - case dist_type::GAUSSIAN: { - auto const max = std::numeric_limits::max(); - auto const mean = max / Multiplicity / 2; - auto const dev = max / Multiplicity / 5; + case dist_type::BINOMIAL: { + auto const t = max; + auto const p = 0.5; - std::normal_distribution<> distribution(mean, dev); + std::binomial_distribution distribution{t, p}; - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = std::abs(distribution(gen)); + while (set.size() < size) { + set.insert(distribution(gen)); } break; } case dist_type::GEOMETRIC: { std::geometric_distribution distribution{1e-9}; - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = distribution(gen) / Multiplicity; + while (set.size() < size) { + set.insert(distribution(gen)); } break; } case dist_type::UNIFORM: { - std::uniform_int_distribution distribution{1, static_cast(num_keys / Multiplicity)}; + std::uniform_int_distribution distribution{0, max}; - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = distribution(gen); + while (set.size() < size) { + set.insert(distribution(gen)); } break; } } // switch + + unique_keys.resize(set.size()); + std::copy(set.begin(), set.end(), unique_keys.begin()); + std::random_shuffle(unique_keys.begin(), unique_keys.end()); + auto it = unique_keys.begin(); + + for (auto i = 0; i < num_keys / Multiplicity; ++i) { + for (auto j = 0; j < Multiplicity; ++j) { + output_begin[i * Multiplicity + j] = *it; + } + ++it; + } + + std::random_shuffle(output_begin, output_end); } template -static void generate_prob_keys(OutputIt output_begin, - OutputIt output_end, - double const matching_rate) +static void generate_prob_keys(std::vector const& unique_keys, + double const matching_rate, + OutputIt output_begin, + OutputIt output_end) { auto const num_keys = std::distance(output_begin, output_end); std::random_device rd; std::mt19937 gen{rd()}; - auto const max = std::numeric_limits::max(); - std::uniform_real_distribution rate_dist(0.0, 1.0); - std::uniform_int_distribution non_match_dist{max / Multiplicity, max}; + std::uniform_int_distribution idx_dist{num_keys / Multiplicity, + static_cast(num_keys * 2 - 1)}; for (auto i = 0; i < num_keys; ++i) { auto const tmp_rate = rate_dist(gen); - // If non-match, randomly sample from [Max/Multiplicity, Max] - if (tmp_rate > matching_rate) { output_begin[i] = non_match_dist(gen); } + if (tmp_rate > matching_rate) { output_begin[i] = unique_keys[idx_dist(gen)]; } } + + std::random_shuffle(output_begin, output_end); } From d67b14560a3fd66fcd6dc36f77d52fe4ccd52e82 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 12 May 2021 11:22:16 -0400 Subject: [PATCH 092/267] Fix sync bug in the very last block in find_all --- include/cuco/detail/static_multimap_kernels.cuh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 62a662dc2..94f82e807 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -558,15 +558,15 @@ __global__ void find_all(InputIt first, if (0 == threadIdx.x) { block_counter = 0; } - while (first + key_idx < last) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key, hash); - - bool running = true; + while (__syncthreads_or(first + key_idx < last)) { + bool running = ((first + key_idx) < last); bool found_match = false; while (__syncthreads_or(running)) { if (running) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key, hash); + pair arr[2]; if constexpr (sizeof(Key) == 4) { auto const tmp = *reinterpret_cast(current_slot); From e806f2698040b92caa0470dac734fb0b5be9bc5b Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 12 May 2021 16:29:54 -0400 Subject: [PATCH 093/267] Fix the last block sync bug in find_all --- include/cuco/detail/static_multimap_kernels.cuh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 94f82e807..7e36f7e02 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -559,14 +559,16 @@ __global__ void find_all(InputIt first, if (0 == threadIdx.x) { block_counter = 0; } while (__syncthreads_or(first + key_idx < last)) { + auto key = *(first + key_idx); + typename viewT::iterator current_slot; + bool running = ((first + key_idx) < last); bool found_match = false; + if (running) { current_slot = view.initial_slot(tile, key, hash); } + while (__syncthreads_or(running)) { if (running) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key, hash); - pair arr[2]; if constexpr (sizeof(Key) == 4) { auto const tmp = *reinterpret_cast(current_slot); @@ -626,7 +628,7 @@ __global__ void find_all(InputIt first, if (0 == threadIdx.x) { block_counter = 0; } } - current_slot = view.next_slot(tile, current_slot); + if (running) { current_slot = view.next_slot(tile, current_slot); } } // while running key_idx += (gridDim.x * block_size) / tile_size; } From 02126977a12ef0ab3fdbec1dde19e082364b956c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 12 May 2021 16:32:07 -0400 Subject: [PATCH 094/267] Update benchmarks: revert back to gaussian due to the incredibly high overhead with binomial sampling --- .../static_multimap/static_multimap_bench.cu | 50 ++++++++------ benchmarks/key_generator.hpp | 67 +++++++------------ 2 files changed, 55 insertions(+), 62 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index a516d2a0b..64593aafc 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -30,7 +30,7 @@ NVBENCH_DECLARE_ENUM_TYPE_STRINGS( // Used when context is available to figure out the enum type. [](dist_type d) { switch (d) { - case dist_type::BINOMIAL: return "BINOMIAL"; + case dist_type::GAUSSIAN: return "GAUSSIAN"; case dist_type::GEOMETRIC: return "GEOMETRIC"; case dist_type::UNIFORM: return "UNIFORM"; default: return "ERROR"; @@ -60,10 +60,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_i auto const cg_size = 8; std::vector h_keys(num_keys); - std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(unique_keys, h_keys.begin(), h_keys.end()); + generate_keys(h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -113,10 +112,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c auto const cg_size = 8; std::vector h_keys(num_keys); - std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(unique_keys, h_keys.begin(), h_keys.end()); + generate_keys(h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -125,7 +123,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c h_pairs[i].second = val; } - generate_prob_keys(unique_keys, matching_rate, h_keys.begin(), h_keys.end()); + generate_prob_keys(matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -169,10 +167,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f auto const cg_size = 8; std::vector h_keys(num_keys); - std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(unique_keys, h_keys.begin(), h_keys.end()); + generate_keys(h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -181,7 +178,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f h_pairs[i].second = val; } - generate_prob_keys(unique_keys, matching_rate, h_keys.begin(), h_keys.end()); + generate_prob_keys(matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -223,10 +220,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r auto const cg_size = 8; std::vector h_keys(num_keys); - std::vector unique_keys; std::vector> h_pairs(num_keys); - generate_keys(unique_keys, h_keys.begin(), h_keys.end()); + generate_keys(h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; @@ -235,7 +231,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r h_pairs[i].second = val; } - generate_prob_keys(unique_keys, matching_rate, h_keys.begin(), h_keys.end()); + generate_prob_keys(matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -274,13 +270,16 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_r using key_type = nvbench::type_list; using value_type = nvbench::type_list; using d_type = - nvbench::enum_type_list; + nvbench::enum_type_list; using multiplicity = nvbench::enum_type_list<1, 2, 4, 8, 16, 32, 64, 128, 256>; NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, - NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) - .set_name("staic_multimap_insert_multiplicity") + NVBENCH_TYPE_AXES(key_type, + value_type, + nvbench::enum_type_list, + multiplicity)) + .set_name("staic_multimap_insert_uniform_multiplicity") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 @@ -295,8 +294,11 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)); NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, - NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) - .set_name("staic_multimap_count_multiplicity") + NVBENCH_TYPE_AXES(key_type, + value_type, + nvbench::enum_type_list, + multiplicity)) + .set_name("staic_multimap_count_uniform_multiplicity") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -325,8 +327,11 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, - NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) - .set_name("staic_multimap_find_all_multiplicity") + NVBENCH_TYPE_AXES(key_type, + value_type, + nvbench::enum_type_list, + multiplicity)) + .set_name("staic_multimap_find_all_uniform_multiplicity") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -355,8 +360,11 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, - NVBENCH_TYPE_AXES(key_type, value_type, d_type, multiplicity)) - .set_name("staic_multimap_retrieve_multiplicity") + NVBENCH_TYPE_AXES(key_type, + value_type, + nvbench::enum_type_list, + multiplicity)) + .set_name("staic_multimap_retrieve_uniform_multiplicity") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 15ca0eda6..0ab3a7478 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -19,87 +19,72 @@ #include #include #include -#include -enum class dist_type { BINOMIAL, GEOMETRIC, UNIFORM }; +enum class dist_type { GAUSSIAN, GEOMETRIC, UNIFORM }; template -static void generate_keys(std::vector& unique_keys, OutputIt output_begin, OutputIt output_end) +static void generate_keys(OutputIt output_begin, OutputIt output_end) { auto const num_keys = std::distance(output_begin, output_end); - auto const size = num_keys * 2; std::random_device rd; std::mt19937 gen{rd()}; - auto const max = std::numeric_limits::max(); - - std::unordered_set set; - switch (Dist) { - case dist_type::BINOMIAL: { - auto const t = max; - auto const p = 0.5; - - std::binomial_distribution distribution{t, p}; - - while (set.size() < size) { - set.insert(distribution(gen)); + case dist_type::GAUSSIAN: { + auto const mean = static_cast(num_keys / 2); + auto const dev = static_cast(num_keys / 5); + + std::normal_distribution<> distribution{mean, dev}; + + for (auto i = 0; i < num_keys; ++i) { + auto k = distribution(gen); + while (k >= num_keys) { + k = distribution(gen); + } + output_begin[i] = k; } break; } case dist_type::GEOMETRIC: { + auto const max = std::numeric_limits::max(); + auto const coeff = static_cast(num_keys) / static_cast(max); std::geometric_distribution distribution{1e-9}; - while (set.size() < size) { - set.insert(distribution(gen)); + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = distribution(gen) * coeff; } break; } case dist_type::UNIFORM: { - std::uniform_int_distribution distribution{0, max}; + std::uniform_int_distribution distribution{1, static_cast(num_keys / Multiplicity)}; - while (set.size() < size) { - set.insert(distribution(gen)); + for (auto i = 0; i < num_keys; ++i) { + output_begin[i] = distribution(gen); } break; } } // switch - - unique_keys.resize(set.size()); - std::copy(set.begin(), set.end(), unique_keys.begin()); - std::random_shuffle(unique_keys.begin(), unique_keys.end()); - auto it = unique_keys.begin(); - - for (auto i = 0; i < num_keys / Multiplicity; ++i) { - for (auto j = 0; j < Multiplicity; ++j) { - output_begin[i * Multiplicity + j] = *it; - } - ++it; - } - - std::random_shuffle(output_begin, output_end); } -template -static void generate_prob_keys(std::vector const& unique_keys, - double const matching_rate, +template +static void generate_prob_keys(double const matching_rate, OutputIt output_begin, OutputIt output_end) { auto const num_keys = std::distance(output_begin, output_end); + auto const max = std::numeric_limits::max(); std::random_device rd; std::mt19937 gen{rd()}; std::uniform_real_distribution rate_dist(0.0, 1.0); - std::uniform_int_distribution idx_dist{num_keys / Multiplicity, - static_cast(num_keys * 2 - 1)}; + std::uniform_int_distribution non_match_dist{static_cast(num_keys), max}; for (auto i = 0; i < num_keys; ++i) { auto const tmp_rate = rate_dist(gen); - if (tmp_rate > matching_rate) { output_begin[i] = unique_keys[idx_dist(gen)]; } + if (tmp_rate > matching_rate) { output_begin[i] = non_match_dist(gen); } } std::random_shuffle(output_begin, output_end); From 1f88244e65cf03bf5604ec2305eb68c686eb4f58 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 13 May 2021 13:40:41 -0400 Subject: [PATCH 095/267] Minor cleanups --- include/cuco/static_multimap.cuh | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 73fef6bac..774dad7ee 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -398,12 +398,11 @@ class static_multimap { template __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept { - auto const cg_size = g.size(); - step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; - auto const h = hash(k); - auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; - auto const p = begin_slot() + slot_index; - return p; + auto const cg_size = g.size(); + step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; + auto const slot_index = + hash(k) % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; + return begin_slot() + slot_index; } /** @@ -421,12 +420,11 @@ class static_multimap { template __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept { - auto const cg_size = g.size(); - step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; - auto const h = hash(k); - auto const slot_index = h % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; - auto const p = begin_slot() + slot_index; - return p; + auto const cg_size = g.size(); + step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; + auto const slot_index = + hash(k) % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; + return begin_slot() + slot_index; } /** From 26c0effcee2d5b42b23cde101297450aa9b6c7b4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 13 May 2021 13:42:26 -0400 Subject: [PATCH 096/267] Use relaxed atomic add --- include/cuco/detail/static_multimap_kernels.cuh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 7e36f7e02..51d75cd74 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -717,7 +717,7 @@ __global__ void count( InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; typedef cub::BlockReduce BlockReduce; @@ -742,6 +742,7 @@ __global__ void count( auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + thread_num_items += (first_equals + second_equals); if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } @@ -754,7 +755,7 @@ __global__ void count( // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { *num_items += block_num_items; } + if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } } } // namespace detail From e1dc700e1703974778afecc52a126512760c8893 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 13 May 2021 13:47:10 -0400 Subject: [PATCH 097/267] Update benchmark: use count to determine output size --- .../static_multimap/static_multimap_bench.cu | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 64593aafc..e53efcee6 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -183,14 +183,15 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - std::size_t output_size = num_keys * matching_rate * Multiplicity + num_keys; - thrust::device_vector> d_results(output_size); - state.add_element_count(num_keys, "NumKeys"); cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); + auto num_matches = map.count(d_keys.begin(), d_keys.end()); + std::size_t output_size = num_matches + num_keys; + thrust::device_vector> d_results(output_size); + state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { timer.start(); @@ -236,14 +237,15 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - std::size_t output_size = num_keys * matching_rate * Multiplicity + num_keys; - thrust::device_vector> d_results(output_size); - state.add_element_count(num_keys, "NumKeys"); cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); + auto num_matches = map.count(d_keys.begin(), d_keys.end()); + std::size_t output_size = num_matches + num_keys; + thrust::device_vector> d_results(output_size); + state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { timer.start(); @@ -291,7 +293,7 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_insert, .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)); + .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)); NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, NVBENCH_TYPE_AXES(key_type, @@ -313,7 +315,7 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)) + .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_float64_axis("MatchingRate", {0.5}); NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, @@ -346,7 +348,7 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)) + .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_float64_axis("MatchingRate", {0.5}); NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, @@ -379,7 +381,7 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 - .add_float64_axis("Occupancy", nvbench::range(0.1, 1., 0.1)) + .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_float64_axis("MatchingRate", {0.5}); NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, From 827e8fc79147a4c04e124715344b914e00c6e99a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 13 May 2021 15:42:02 -0400 Subject: [PATCH 098/267] Set geometric sampling range to [0, INT32_MAX] to avoid the left biased issue with INT64 variables --- benchmarks/key_generator.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 0ab3a7478..3dca16d64 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -47,8 +47,9 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) break; } case dist_type::GEOMETRIC: { - auto const max = std::numeric_limits::max(); + auto const max = std::numeric_limits::max(); auto const coeff = static_cast(num_keys) / static_cast(max); + // Random sampling in range [0, INT32_MAX] std::geometric_distribution distribution{1e-9}; for (auto i = 0; i < num_keys; ++i) { From 8c58ac786312af6ddc81d9506cd9a1062b7021f6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 14 May 2021 18:06:31 -0400 Subject: [PATCH 099/267] Update notebooks for the comprehensive benchmark --- .../analysis/notebooks/StaticMultimap.ipynb | 334 +++++++++++++----- benchmarks/analysis/notebooks/Utils.py | 105 +++--- 2 files changed, 315 insertions(+), 124 deletions(-) diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index 6d0aaa5f2..8e3b6c05c 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -38,8 +38,8 @@ "# Specify the data path\n", "datafile = '../data/static-multimap-data.csv'\n", "\n", - "output_keys = ['Benchmark', 'Label', 'Distribution', 'MatchingRate', 'NumReps', 'NumInputs', \\\n", - " 'Occupancy', 'GPU Time (sec)', 'Elem/s (elem/sec)', 'Bandwidth (GB/s)']" + "output_keys = ['Benchmark', 'Label', 'Distribution', 'MatchingRate', 'Multiplicity', \\\n", + " 'NumInputs', 'Occupancy', 'GPU Time (sec)', 'Elem/s (elem/sec)']" ] }, { @@ -66,8 +66,6 @@ "perfdf['Label'] = perfdf[\"Key\"]\n", "perfdf.loc[perfdf['Distribution'].notnull(), 'Label'] += \"_\" + perfdf['Distribution']\n", "\n", - "perfdf[\"Bandwidth (GB/s)\"] = perfdf[\"GlobalMem BW (bytes/sec)\"] / (1000 * 1000 * 1000)\n", - "\n", "# Trim data frame for visualization\n", "perfdf = perfdf[output_keys]" ] @@ -95,12 +93,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "nvbench_static_multimap_insert\n", - "nvbench_static_multimap_count\n", - "nvbench_static_multimap_find_all\n", - "nvbench_static_multimap_retrieve\n", - "count_varying_matching_rate\n", - "count_varying_num_reps\n" + "staic_multimap_insert_uniform_multiplicity\n", + "staic_multimap_insert_occupancy\n", + "staic_multimap_count_uniform_multiplicity\n", + "staic_multimap_count_occupancy\n", + "staic_multimap_count_matching_rate\n", + "staic_multimap_find_all_uniform_multiplicity\n", + "staic_multimap_find_all_occupancy\n", + "staic_multimap_find_all_matching_rate\n", + "staic_multimap_retrieve_uniform_multiplicity\n", + "staic_multimap_retrieve_occupancy\n", + "staic_multimap_retrieve_matching_rate\n" ] } ], @@ -115,7 +118,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### insert " + "### `insert` performance by varying key muliplicities\n", + "
    \n", + "
  • 100'000'000 insertions
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
  • Fixed occupancy: 0.8
  • \n", + "
  • UNIFORM distribution
  • \n", + "
" ] }, { @@ -125,21 +134,49 @@ "outputs": [ { "data": { - "image/png": "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bXMEsGWLLU4qXTr/sWTbCBORciJyIXALsBDorKp7qupVqro+/0U659JNqSDZzYsv2pXl7bcXrIveOeeSrXVr+PxzOO882ztyn33sgjIrffvCjTdu31B74AHLo9iwYf5jyKkn7HGgE/At0B24LYfXOuccRx0FvXvbfIuLLrIrReecK6zKlYN77oHXXoNFi6BjRxg3bseLyMGDLX9YixZ2v0sXuOMOy0dWEDk1wlqp6smq+hDQGziwYEU559JduXLw7LPWALvrLujTB9atizqq9DNhgmUAL1HCfk6YUPBzVqpUCYAFCxbQsWNH2rdvT+vWrXnwwQf/e02/fv1o2bIlu+++O6effjqbNm3K9nyPPfYYtWrVon379uy6667ccccd2z3/1VdfISK8++672x0XES655JL/Ht92222MHDkSgJEjR1K/fn3at29P8+bNOf744/nuu+/+e+3GjRu58MILadq0Kc2bN6dnz54sXrx4u3Ofcsop/z3evHkztWrV4uijj87DbyoxJk6E3XeHkiXt58SJBT9n7DsEWLhwIYcddhi77bYbrVq1Yv78+du9dsiQIdu9PivF6Ts85hibStG5M5x5JpxwAqxcue350qVtTthLL0GbNpai54cfoHnzAhWbYyPsv78uVc3D7kvOueKsRAnLoTNmDLz8su3F5hJnwgRbkbVggV2tL1hgjxPREAOoW7cu06ZN4+uvv+azzz7jpptuYkmQg6Rfv3788MMPfPvtt6xbt45x48bleK4+ffrw9ddf88knnzB69GgWLVr033MTJ05k//33Z2Km1kfZsmV56aWXWLFiRZbnvOiii/j666/5+eef6dOnDwcffDDLg4RNV155JatXr+ann37i559/5thjj+X4449Hg26NihUrMnv2bNYFVwbvvfce9evXz98vqgAmTrS8VffcA+vX28/hwxPTEIs59dRTGTZsGN9//z2ff/45tWvX/u+5GTNmsGrVqlDnKU7fYb16NgH/ppvglVegfXv4+OPtX9OxI5x7ruUNK1Om4GXm1AhrJyL/BLfVQNvYfRHx9IzOuRxddBF8/71NeoVtcym2bPGVlDm58EIb6sjuNnDgjr+/tWvteHbvufDC8OWXKVOGsmXLArBhwwa2xiVTOvLIIxERRIS99tprux6KnNSoUYNmzZqxdOlSAFSVF154gccee4xJkyaxfv22acalSpVi0KBBO/S6ZKVPnz4cdthhPP3006xdu5bx48dzxx13ULJkSQAGDBhA2bJlmTJlyn/v6d69O28GO9FPnDiRvn37hvoMeZXV93D//fbcqFFQuTJcey0ceqj9rFwZhg2z51es2PG9efHdd9+xefNmDj30UMB6yCpUqADAli1bGDZsGLfcckuezllcvsMSJSwFxSefWO/XQQfZ95OXjcDzVF52T6hqSVWtEtwqq2qpuPtVkhOOcy6dtGhhPz/4wO4PGGDzKqpXhz32sMz7Lm+yW8GV08quvFq0aBFt27alYcOGXHbZZdSrV2+75zdt2sSTTz7JEUccEep8CxcuZP369bRt2xaATz75hCZNmtC0aVO6dOnCW2+9td3rzz33XCZMmMDff2dOUbmjDh068MMPPzB37lwaNWpElSrb//fUqVMn5sQlsTvxxBN55plnWL9+PbNmzWLvvfcO9RkS6ccfoWrV7Y9VrZq4pMc//fQT1apV4/jjj2ePPfZg2LBhbAkmaN5777306NGDunXr5umcxe073Gsv+Oor2+t25Ejo2hUWLkz8VIAwG3g751yB7Lyzza948knbf7J/f8vNc+qp8PrrVuE5c+edOT+fkWFDkJk1bmybrCdCw4YNmTVrFkuWLOHYY4+ld+/e7Lzzzv89f84553DggQdywAEH5HieZ599lqlTp/Ljjz/y8MMPU65cOcB6L04MdlM+8cQTefLJJzn++OP/e1+VKlU49dRTufvuuylfvnyOZcSGqVQVic8fEPd8/PG2bdsyf/58Jk6cyJGxbtokyOm72G03613p2nXbsalTYcgQu1+zZsG+y82bN/PRRx/x1Vdf0ahRI/r06cNjjz1G9+7def7553k/Dycvzt9h5crwxBOWD/Hss+1727x52565sakAYI21/AiTJyzfROQIEflRROaKyOVZPN9PRGYFt2ki0i6Z8TjnohH7/7tVK5v0+sQTtpLy6qtthZELb/RoCEaW/lOhgh1PtHr16tG6dWs++uij/45de+21LF++nDFjxuT6/j59+jBnzhw++ugjLrnkEn7//Xe2bNnCiy++yHXXXUdGRgZDhgzh7bffZvXq1du998ILL+SRRx5hzZo1OZbx1Vdfsdtuu9GsWTMWLFiww3m+/PJLWrVqtd2xHj16MHTo0KQNReZm+HAbPp46FTZtsp8DB9rxRGjQ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\n", + "image/png": "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E0+019+tmyVK51DVjLodeeSRmimmTlUdNkz13XdVt29PTszCQtW2bVVfeql42ZYtql26qF5/veqoUapDhxavO+MMVasTFt86dy5eP3So6lNPqU6erLpkie0/lh9+UO3aVbV+fbuddJLqzJkJe4lxGTlStUULVRG7HznSPoPPPlO9/XbVvLzi19ukiervf6/6yiuqGzYkt5wufQBTtZS8k9XjKNevtwlaa9e2syOSda7vli3w298Wzyf45ZcW+8037cySylC1GmDdunYoPXOmnS+8Zo3dZs2yWXPWrbP1N95op/StjzgptFGj4mEsQ4faxLWtW9tg6Nat7ayWRCiKEXk4ngzROlRycuw9K3pfjjnGDqe7dbPmgHQdm+mSZ7ccR/n00/CXv9hF6Nets2EnY8ZY72TY7rvPEtqPP0K1avb33/4G11wDL7xQ3KYnYod/M2YUJ7qi24032uQOw4fbrDerV9vytWvtvOV162y6sGHDYEDE/PBVggFf27bZYWS7dta7vHmznaHy/PN2GF6kaHB3GJKZIFevLm5D7dt35yQJNmxp2zabXeiMM0ofxuNcNFmZKL/91hLTJ5/YVFZgY/R69LC2uFgN8oWFlsxycizBLF5sF3rKz7fH+flWC9lnH+voGDeueHl+viW2p56yJPn++3DvvVZr+/JL6+ldu9auy5KbCy+/DFddtXP8KlXgssssUVarZvctW9rFr4puRVcF7NvXOkmKltetC4cfbvu98EK4/HLrWPjVr6xTIpUTQ1RGYSH89FNxMix5W7s29j7y823qNefKKysT5fDhVlNq2xZWrIBbbrEfydat1rlQv75dze7cc602163bzklw61bbx6WXWkLr0mXXGGPGWE/ujBm2ryJVqliSXbfOHhcUWG2nUSNbd/bZlmCLalu//rWVs2FDO+Rt2NA6U4pqhhddZLfStGhht5Kvv3t3qz22bm1nv7Rvbz3VyRI5MUS8Q2Q2b4Z58yzxzZ27cyKcN8+aNIpUrWqvu3VruzhY69bFt+7do58Jk+7jNV36yspEuX69HXKCJb2xY+1sj61bLXFWr158HZX69S0R1qxp29SqZX8XjfVr29YO1yLX1aoFBx9s67t2tcPnouXVqlni/PJLO+Q95RTrhR42zH7oTzyxc1mbNUv8jNYdO1pb5Zgx1uTw5JM2RCdZ7XAl2wgXLCg+xO/W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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" - }, + } + ], + "source": [ + "for bm in unique_bms:\n", + " flag = \"staic_multimap_insert_uniform_multiplicity\" == bm\n", + " \n", + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_single_perf(bm, tmpdf, \"Multiplicity\", unique_labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `insert` performance by varying occupancies\n", + "
    \n", + "
  • 100'000'000 insertions
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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y4e4xBs5Eho3tvEpjRvb46KqUqUKAEuWLKFDhw60bduW1q1b8+ijj/67T8+ePWnevDm777475557Lps2bcrzmGPHjiUzM5OWLVvSokULBgwYwIgRIzj11FP/3WflypU0bdqURYsWsWDBAo455hh23XVXWrZsySmnnMJvv/3GpEmTOPbYY7c7/iGHHELz5s1p27Ytbdu25aSTTir6D6KAXnrJlrspXdpuX3qp6MfM+i4AfvzxR4488khatmxJq1atWLx48X/27du373/2z01J+C4KS8TqrJkz7e/p+OPtRHLNmm37lC9vSaqHDbPcYSedBAsW2HdeJKqa4wbMzOtxVFuHDh3UOZfatm5V/fTTbY+3bCna8YDpmgL1TyK2otZhL7ygWqlS1mgU2ypVsueLonLlyqqqumHDBl2/fr2qqq5atUozMjL0p59+UlXVMWPG6NatW3Xr1q162mmn6fDhw3M93pw5c3SXXXbRefPmqarqpk2bdNiwYbp161bdb7/99IMPPlBV1X79+ultt92m69at01133VXfeeedf48xceJEnTNnjn700UfapUuX7co4+OCDddq0aUX74EXw4ouqTZqoTpyounGj3TZpYs8XRdZ3oWqfcfz48apq38eaNWv+fW3atGl6xhln/Gf/nJSE7yJRNmxQveoqVRHV5s1VZ8wo+jHzqr/K5NE+21NEslKRCVAxeCzWdtNqRWz/OefSlAgccIDdnzwZ+veHN96w8RNbtlienezrSDrTv3/eC6VPnbp9gty1ay2J7uOP5/yetm1hyJD4yi9Xrty/9zds2MDWmNHKxxxzzL/3O3bsyLJly3I9zt13382gQYNo0aIFAGXKlOHiiy8G4JFHHuH000/nmWeeYcKECcyYMYMXXniBfffdl+OOO+7fYxx66KEATJo0Kb7gQ3DIIds/d8opcPHFcOutULWqzZrLUrWqjS/q0QN+/916TGIV5KN88803bN68mSOOOAL4bw/Zli1bGDhwIC+++CJvvvlmnsdJl+8iGcqVs9QTRx0FZ54J++xjKSmuvNJ6nhMt10OqamlVrRZsVVW1TMx9b4A55+KyaRN8951VZueea9mna9WCdu3g/fejjq74yW2FgkSuXLB06VLatGlDw4YNufrqq6lfv/5/Xt+0aRPPP/88nTt3zvUYc+fOpUOHDjm+1qZNG4466ig6derE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\n", + "image/png": "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kPfnWBHYa609aozpBlzlx3tI9yLwT2NMc19M7Ywx1QGstVuA33E1gB+cRLNZERHJh5JAEZHgUAaYDOzGNZ+rhRsZNP1me48xZoG19iBwMy4ZSMTddH+S2wl9zSgvxPXf2wRswfUpK0r/xvUR3IlrwvdWPvu+hOtDt88Y89GpXNTPz2GHb9s2X1xjrLUrT+W6OfwF2GCMOYBrBjncF9s8XL/Ap33XXwNcU8C5Hgb+7vtsJuS1k7V2le86T+H+rVyIG1DmeH7ft7V2BvAQrubuIK5mrZrvtLf4jtuHG8H1oxyXze9zvBF4wBhzELiXzNpQfzzu2/9LXBL9Eq5/Y7rXgLaoKaiISJHTZPEiIlLqGGPOAt601tb3OJQSzcvP0RjTG9cstJGv76OIiBQR1QSKiIhIUPE1db0FeFEJoIhI0VMSKCISYowx04yblDznMs3r2IqDcROt5/b+C5xMvjj4+hrmFt8yr2MrDr55BPcBMcB/PA1GRKSUUnNQERERERGREKKaQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSERHgdQFGqUaOGbdSokddhiEgRmj9//m5rbU2v4zgVKptESh+VTSISrPwpn0pVEtioUSPmzZvndRgiUoSMMRu9juFUqWwSKX1UNolIsPKnfFJzUBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSElKopIvyRlgabNkHlylC1qtfRiIiIiASnhMMJ7Du674T10ZHR1KtUr/gDEpEiE1JJ4Mcfw223wbFjcPAgDBgA06ZBlSpeRyYiIa1aNUhMPHF91aqwd2/xxyMiAvR/qz8b922karnMp+ZJyUnsPbKXg3cdJCIspG4jRUqVkGkOumABjB4NL78MmzfDli3u/mr4cK8jE5GQl5gI1p645JYYiogU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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -150,49 +187,80 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"nvbench_static_multimap_insert\" == bm\n", + " flag = \"staic_multimap_insert_occupancy\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", - " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", - " unique_labels = randomdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", - " \n", - " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", - " unique_labels = cycledf[\"Label\"].unique()\n", - " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_dual_perf(bm, tmpdf, \"Occupancy\", unique_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### count" + "### `count` performance by varying key muliplicities\n", + "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
  • Fixed occupancy: 0.8
  • \n", + "
  • UNIFORM distribution
  • \n", + "
" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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29tzEVE98kjVRx9VXbjQjnvlFdXatW1/5Fa7tm13mQ3I1xLiTqhjvVV1DDCm2LbBUf8vwS7JXSWgaq27555r93NybO1rEat3/N3vrPM3WKky06laaTFScvzhB3suRx0FTzwBZ55pU7VFi8wsHmn1btnShlT6jOPZzSfFcOW2YYNN5DB+/LZb06ZwyCFQt651or7gArvdfjt06ZK5yytEqFpwjwTHmTNhl13gmGOsCuHMM62LUml8KYbKxwOlS9jSpVBQYEPuAI44woYSgvVzPOEEa6m+4w648kp47TXbN2GCjZ55+OH05DseVQv4b7xht4ICG2t97LE2xLBnT59JfGfngdKVqKDAZgCPlBZnz4bddrNZeKpUsXHVu+xiwTG6lNW8uTXedOy4rYT24ouZFWwi48UjJccff4SqVeH44+HWWy047r57unPpMoUHykpq3Tob47xkiU3X1blz6cf/+quV/MaPt1LUrrtacIssXtWtm7Vid+26rZvP2WfHPtfpp1v93Cef2LHHHZf6S+7o0TGResILLrDnGCk5zptnwbF7d/jb32xyjUaNUptPlx3EGnuyR25uruZHrvdcTFOnwskn2+w0bdrYZW+3btapO3r6runTrS/j+PH2GFULbOPHW8PLokXWUXqffbJjVExE8dExYAGxXj1YudJmETrxROvfefrp1qXHORGZpKq5Mfd5oKxcVK21+cYbbfkDsHWgjz7a5j3cssXmOzzlFPjqKytN/e53VlLs2hUOO8wur7OVqrWwL1q0475ateDppy041quX+ry5zFZaoPRL70pk40a73F22zDpxr11rgXDSJNv37bfQtq0FTrDO35H6xmxVWGh1jV9+Cf/7n/1dsiT2sevX2+viXFl5oMwyW7ZYfWJkerFbb7XL5lmzrEGiqMjqF0Vsgom6dW2kTM2a2xpmInbJsmmbVW1VxUhA/N//rKGoqMj2t2tnPwx5ebGXffDRMa68PFCGZO5cePRR+OYbq+O75pryrcU8apSVmGbOtNusWXap/Nlntn/sWCstdupk6z+3bQt33mn1kqedZmOui4rs/0hH8Gzx22+2dkwkMH75JSxfbvt23dWqCW67zVrdDztsWyt1rDrK2rWtQce58vBAGYIffrAOypdcYkHr66+tu8xLL+04l+LMmRZMI4Fw5kwrNU6caPufftrmZmzTxqbqOvHE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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" - }, + } + ], + "source": [ + "for bm in unique_bms:\n", + " flag = \"staic_multimap_count_uniform_multiplicity\" == bm\n", + " \n", + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_single_perf(bm, tmpdf, \"Multiplicity\", unique_labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `count` performance by varying occupancies\n", + "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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PPNMK0EBVnjVAzDnio/337fcrnPPzX85osGDrRbgscfa+3wJMpdOwvzXdQuwAfgAK9K6DrgpAef2dddSZNkyGzX6+2+rA3bEEfm+pUiYPt1uK4wdazkhRx5pM58mT7YO+oorom6hcy4ZVqywiTZ9++YdVP34o42OH3ggfPaZ54K69BNmduRqVb03CIKaqup9qhriDn2+BgBXBLMkDweWq6rfikywVats1GjSJPj4YzjuuKhbFN6AAVbrZ889LeH2rLNgjz3gssugWjW/4nWuuNmwwb5ee63lrOa1csekSda3Va9efGocupIn3//GRGRf4G6gduz+qnpCPu/rCxwH7CIic7Bk/jLBe18HvgTOAKYDa4C2hfkALndr18I551jBwn79rCZYOildGtasse9PPNHKTjz0ENx5Z/FZ19K5kmzsWFuAe9ddoWFDu/345ps2ezuvFIMZM2x0v0IF+Ppre79z6SjMWMKHwOtAdyD04rR5rMGW/bqSmNuaLo4NG+DCC229tLffhvPPj7pFBfPLL9Czp60Td999divyyCOtYOMHH8DPP0fdQudcYW3aBO3awfDhNsL95ZfWV1WubJNs8rJggQVg69ZZAJff/s4VZWGCsExV9RpeaSQz027ZDRxo6yVefnnULQrv33/h/vut9tfuu8NVV1kO2xln2JXxwIGWrL/PPlG31DlXWO++a2s6/v47rF9vSfXbb29BWN26ub9v+XJbumjuXLtdecABqWuzc8kQJjH/cxG5UUT2EJGdsh9Jb5krlKwsqxL94Ye2hM/110fdovCGDoX69a0u0G23WQf96qv2tXlzOPpoS8r3KtjOpbcPPrCCqmAjYb//bjmgpUtbSZp41q61EhSTJ8Mnn6TPBCPn8hJmJKxN8LV9zDYFfCyiiFG1Wjm9e8Mjj1juVDrIyrJRrn32gcaN4bnn4KCDNr++226WqOucKx42bbKJNeXKWb3CW2+1PLAyZey1nDIz4eKLYcQIeO89K1vjXHGQbxCmqnunoiFu26jaMh1du0L79lZFvqhbscIS7f/+26aX77OPLSTunCveDjkEnn4aWrSwRbbBZjiuW7flBRhsHt3//HPr3y65JPXtdS5ZQk3yF5EDgAbAfxOGVfXtZDXKhdOnD3ToALNmQaVKli9x443WuRXlitGqVv/nrrssyfa662DjRssJcc4Vb0OGWDX8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Pn1szdhSpWyiUcOGcPzx8PfflnD/55/WFxXkInCHYHp4RkYGTZs2pXHjxjRs2JDXX/9vkRNat25N/fr1OeCAA2jXrh0bN27M85iDBg2iWbNm7L///uy3337cfffddOvWjYsvvvi/fVasWEGdOnWYMWMGf/zxB2eccQZ169Zl//3356KLLmLBggUMHz6cFi1abHX84447jvr169O4cWMaN27MBRdcEP4DJ0jfvrYiQenS9rVv320/5g4xU/VnzZrFKaecwv7770+DBg2YOXPmFvvecsstW+yfm5Lwu0hLqhr3AYzL63lUj6ZNm2oY776rWquWqoh9fffdUG/T9evt6+zZqmXLqoJqpUqqF16o2ru36uLF8d+XlaU6apRqt26qw4bZc+dcYgBjtAj0P4l45NWHLV2qWrWq6tixm7fNm6e6116qY8bY83ffVa1Qwfqm2Efr1qpr1hTkp7qlihUrqqrq+vXrdd26daqqunLlSq1Vq5b+888/qqo6cOBAzcrK0qysLL3kkku0a9euuR5v4sSJus8+++jUqVNVVXXjxo366quvalZWlh555JE6ZMgQVVW97bbb9PHHH9e1a9dq3bp1dcCAAf8d49tvv9WJEyfqsGHD9Mwzz9zqHM2bN9dffvml8B96G733nuree6t++63qhg32de+9bfu2yP5dqNpn/Prrr1XVfh+rV6/+77VffvlFL7vssi32j6ck/C6Ksrz6r7xmRx4kIiuC7wUoHzwXi900yQv6bJvWrW36dtmyeQ/FZ2bakkVffGGPxo3h3XftKvT+++0249FH2yzHvIjYrYPDDkvox3DOlSBVqtjSZYcdZrO5S5eGxYutBMVdd9k+P/1kdcJy+ugjmDMn/nEbN7b6hWFsH9PZrV+/nqysrP+en3HGGf99f+ihhzIntxMCzzzzDB06dGC//fYDYLvttuPGG28E4LXXXuPSSy+lV69efPPNN4wdO5Z3332XI444grPOOuu/Yxx//PEADB8+PFzjk+C447bedtFFcOON8Nhjlgv8yCObX9txR2jf3mbFL15saSmxCvJRpkyZQmZmJieffDKw5QjZpk2baN++Pe+99x79+/fP8zjF5XdRHOV6O1JVS6tqpeCxo6puF/N9kQ7Avv3WZiPutJOtydi+vU31zuneey1x/phj4Pnn7fvmze01EUtuPeGE/AMw55xLlLp1Ye+9rbjz/Pl2y7FsWZvxPWVK/AAM4vdxhTV79mwaNWpEjRo1uOeee9hzzz23eH3jxo288847nHbaabkeY9KkSTRt2jTua40aNeLUU0/lxBNPpHPnzmy//fZ57p+X1q1b/3cLrH379gV+/7aYNs2WmotVubLVjkyEP/74gypVqtCyZUuaNGlC+/bt2bRpEwBdunTh7LPPZo899sj3OCXhd5GuwtQJSyu//WbrMHbrZst5/POPXbG0bm1Xl999B59+avkVFSpAixb2OOWUrf8xOedcqh1yCLz55ubcsA0bLMcrK8tyTytXhuXLt35frVoFG2XJS40aNZgwYQJz587l3HPP5YILLmC3mKneN954I8ceeyzHHHNMoc9x0003MWjQoP9GWAqrT58+NGvWbJuOkZe8fqb772+jYLEfYdgwW78TbBBgW34nmZmZjBgxgl9//ZWaNWty8cUX06tXL04//XQ+/PDDhI1KpcvvojgKUycsrbz8Mtx9t9XCmTbNliWaNAk+/tiWJpozB+bNs30feshmOV54oQdgzrmiIV6dw02b7DbXjBm2RmSqlhjac889adiwISNGjPhv2yOPPMKiRYt44YUX8nxvw4YNGTt2bK6vlypVilKlSoXevyjq0MEmQAwbBhs32terrrLtiVC9enWaNGnCPvvsw3bbbce5557LuHHj+PXXX5k+fTp169aldu3arFmzhrp16+Z6nJLwu0hXxS4Imz7d1mYEC7a6dbMZKzVr2kzH8ePzX+LDOeeikludw5UrbWSldWvr12rVsrSJWrXseaKq3c+ZM4e1a9cCsHTpUn744Qfq168PQPfu3fnqq6/o27fvFv9px9O+fXueeOIJ/vjjDwCysrLyDNwuvfRSfvzxRwYOHPjftsGDBzNx4sRt/UhJ06qVBb+33ALlytnXTp1seyIccsghLF26lEWLFgHw7bff0qBBA84880zmz5/PzJkzmTlzJhUqVGD69Om5Hqck/C7SVbG7HXnggZYTdtxxVjNnyRIrNVGvniXYO+dcUVazJmRkxN+eLZlLDE2dOpW77roLEUFVufvuuznwwAMBuP7666lVqxZHHHEEAC1btuShhx6Ke5xGjRrx0ksv0apVK9asWYOIcOaZZ+Z63vLly/PFF19w++23c/vtt1OmTBkaNWrEyy+/zJIlS/jmm2+oXr36f/t/+OGHgOUh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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -203,49 +271,80 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"nvbench_static_multimap_count\" == bm\n", + " flag = \"staic_multimap_count_occupancy\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", - " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", - " unique_labels = randomdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", - " \n", - " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", - " unique_labels = cycledf[\"Label\"].unique()\n", - " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_dual_perf(bm, tmpdf, \"Occupancy\", unique_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### find_all" + "### `count` performance by varying matching rates\n", + "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { - "image/png": "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Tj0cz7lyLv/YsMGS36dM2bv2IdiEnNNOs3yttWttaHHLlr2vS+TyDxmew1Q13RswL833BYHZGT03UrfmzZurcy62Jk9WbddOtUABVVBt2lT10UdV9+yJ/rGBmRrl80qsbpE4f40erVq9uqqIfR09Ote71BIlSqiq6vLly7VZs2batGlTbdiwoT711FP/Puf888/XunXraqNGjbRv3766Y8eODPf3wgsvaPny5bVp06Zar149ffTRR/d5fPbs2Qro5MmT99kO6HXXXffv/YceekjvuusuVVW96667tHLlytq0aVOtU6eOnnPOObpgwYJ/n7t9+3a9+uqrtVatWlqnTh3t0KGDrlq1ap999+zZ89/7O3fu1PLly+uZZ56ZjZ9U5Iwdq9qokWpKin0dOzb3+0z9HFVVV6xYoaeccorWr19fGzRooMuWLdvnuf3799/n+elJhM+xTZsOeu+9q7RDB9WSJW3f0FPtElEVdiqUVzhTq1fPxg8rhjI6h2WWc/XvqKiq7opQI885l2BOOw0mTrS8rMcfhyJFrDhp6kyfyZNh48b4xpgfjBljwynRKmdRqVIlvvjiC+bOncvXX3/Ngw8+yOrVqwHo0aMHP/zwA/PmzWPr1q08++yzme6ra9euzJ07lxkzZjB48GBWrVr172Pjxo3juOOOY9y4cfu8pkiRIrz55pusW7cu3X1ee+21zJ07lyVLltC1a1dat25N6pJot956K5s2bWLx4sUsWbKEjh070qlTp9SLf0qUKMH8+fPZunUrAB9++CGHHHJIzn5QuTRunPXgDhtmeY3Dhtn9/X4cudK7d29uuOEGFi1axDfffEPFNAWpZs6cyYYNG0LtJ96fY48eHZkwoRNvv62sXw/FipUA5gNbg719CNjnuGKFpTm8/LIt27N1a3pHTxwFM3msqYiknlIFKBbcF2xd5tJRj845FzMVK1pO1oABe09cv/1mFd6LFLECpT17Wtd9oUL/fb2qva5IEShQILax5wXXXANz52b8+Fdf/bdW0JYtNjFh5Mj0X3P44fDYY+GOX7hw4X+/3759O3vSJNq1a9fu3+9btmzJL7/8Emqf5cqVo06dOqxZs4aqVauiqrzxxht8+OGHHH/88Wzbto2iwZTVggUL0q9fP4YMGcLgLJLxunbtysSJExk7diyXXHIJL7zwAsuWLaNA8IvVt29fnn/+eaZOnUqbNm0AOOOMM5g4cSJdunRh3LhxdO/enc8//zzcDyebTjrpv9vOO8/W7Lv3XkvyHjRo72OlStm6oN27Wx5Sly77vjY7RX4XLlzIrl27OOWUUwAomWb5hd27d3PDDTcwduxY3nrrrdD7TJTPMSUFSpc+g40bJwJdgHFAd+BzChWy3/UdO2zfKSlQu7alMaS9HXpo+uenWMuw50pVC6hq6eBWSlULpvneG1bOJbFixezrQQfZ7J6+fa1A6VlnWf2sjz/e9/nvv29V4Q880Bppt9+eP2YERVJGRRgjWZxx1apVNGnShKpVq3LTTTdRuXLlfR7fuXMnL7/8Mqeffnqo/a1cuZJt27bRpImVPZwxYwY1a9akdu3anHTSSUyaNGmf51955ZWMGTOGv0OsON6sWTN++OEHfvrpJ6pVq0bp0vv+22nRogULFiz49363bt145ZVX2LZtG99//z1HHXVUqPcQaT/+CGXK7LutTBnrGY6ExYsXc8ABB9CpUyeOOOIIbrjhBnbv3g3A8OHD6dChA5UqVcrWPhPpc7z55m4UKPAKsA34HjiKlBRbjmfzZli0CF5/3WYeNmliq1MMHmyzEhs1ghIlbPv551sC/YQJsHRp1pN2Ip1En1nPlXMunxOBVq3sNmSIJaGOHm2lHsCGE996C95+G156CU4/3brvL73UrtTD9qrkB1n9LDIq2Fi9es6WL0pP1apV+f7771m9ejUdO3akS5cuHHTQQf8+fsUVV3DCCSdw/PHHZ7qfV199lWnTpvHjjz8ycuTIf3s1xo0bR7du3QBr7Lz88st06tTp39eVLl2a3r178/jjj1MstQWfgdQhP1VF0qlGuf/2Jk2asHz5csaNG7dPT1w0ZPZ5NGhgvVYnn7x327Rp1iMMVpYgN5/nrl27+Pzzz5kzZw7VqlWja9eujBo1ijPOOIPXX3+dT7Kx80T8HG+5pQkjRy5n48ZxrF/fjoMO2rsSBNi5p379fXv/tm2zRtf8+XtvM2bsOxRbogQ0bPjfnq5KlWz1iX799ibRpw7JQ86T6MPUuXLOOQoXtno2r74KqeksM2ZYXa3162045PnnbS3DsWNtXcOQqR+O2JazqFy5Mo0aNdpn2GzQoEGsXbuWRx99NMvXd+3alQULFvD5558zcOBAfvvtN3bv3s348eO55557qFGjBgMGDOD9999n06ZN+7z2mmuu4bnnnmPz5s2ZHmPOnDk0aNCAOnXqsGLFiv/sZ/bs2TRs2HCfbR06dOD666+ne/fuWb6HaLntNhvKnTbNem+nTbP7t90Wmf1XqVKFI444glq1alGwYEE6duzI7NmzmTNnDj/99BN16tShRo0abNmyhTp16mS6r0T9HC+4oAOq1/P999155ZW955uMFC1qPee9esH//Z9d9K1YYStHfPGFzTS86CIbnp040VarOO0022+5cvZY2tmJYPdz85l548o5l2P3329d8VddZSejKVNse/nyVrD011/jG19eEqZgY2788ssv/yZ8//XXX8yYMYN69eoB8Oyzz/LBBx8wbtw4UlLC/1to1aoVvXr1YujQoXz00Uc0bdqUVatWsXz5clasWEHnzp15++2393nNgQceyHnnncdzzz2X4X7Hjx/PlClT6N69OyVKlKBPnz5cd911/w5/vfTSS2zZsoXWrVvv87oLL7yQO++8k8MOOyz0e4i07t2tQTxggP3THzDA7keqvXfkkUfy119//ZskPnXqVBo2bMiZZ57Jb7/9xvLly1m+fDnFixfnp59+CrXPZP0cS5e2XvdLLoGhQy2d4fff7TZ1qk3gOffcjIfec7PChA8LOudypUULuwL87ru9V3+rVtkJrEaNuIaW5/ToEb1aPosWLWLgwIGICKrK9ddf/+8/r8suu4zq1avTqlUrADp16sSdd94Zar833XQTzZo1Y/HixZxzzjn7PNa5c2eeeuopevXqtc/2gQMHMnz48H22DRkyhNGjR7N582YaN27M1KlTqVChAgAPPPAA119/PXXr1iUlJYX69evz1ltv/WeYqUqVKlx99dXhfyhR0r175BpT+ytQoAAPP/wwbdq0SS0BwiWXXJLr/eanz7FiRbulDt1+8EH6Q/K5WWEiy4WbY8mL8DmX98yfbyep++6DTp0soffqq212YVb/n72IqHMu3lLLoOSkcGluFm52zrkMNW5sswXffRfq1YPLLrNu+DvuiHdkzjmXtWgMyfuwoHMu11q0gPfei3cULpJeeOEFhg4dus+2Y489lieeeCJOEbmc8M8xnEgPyfuwoHMubhJ1WFBEqgIvAQcDe4ARqjo0s9f4+cu5/Cejc5j3XDnn3H/tAgaq6mwRKQXMEpEPVXVhvANzziU+z7lyzrn9qOoaVZ0dfL8JWETqImfOOZcF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\n", + "image/png": "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5QbG4a9e7cIX2LiXU8nMX2a2xDl3EF9w5F1gH/7qSaJjtgLdMS/Hjw/cAmzDj51LTU/jxyDuxo8tm5rMtpPxYyr/MbOPzuVNg/wedgXW7QjEdbNzbk0Ku74TWA4sBP7GX70Nc86txRfjeQ7/G10OXO6cOxF43W2BZf/gq2R+dAYfJ9W+lwTexHeF3Q6sAuYn977p9PcC/vtphU/qHsWPaz1+Fvs5288XAfyB/x1fxV91FBGRJJhzadXDRUREJO2ZWQfgbedchRCHIikws3eANc65B0Mdi4iInE5XDkVERCRNmFlzM6tuZmGBLrg9OLMrrSIiko6UHIqIZGFmNjEwMXjC28RQx5YezE9kn9jn75cBYquURGyHAtNAZAVlgLn46TyeBf7tnFtqZv2S+NwrQxqtiEg2p26lIiIiIiIioiuHIiIiIiIiouRQREREREREUHIoIiIiIiIiKDkUERERERERlByKiIiIiIgISg5FREREREQEJYciIiIiIiKCkkMRERERERFByaGIiIiIiIig5FBERERERERQcigiIiIiIiIoORQRERERERGUHIqIiIiIiAhKDkVERERERAQlhyIiIiIiIoKSQxEREREREUHJoYiIiIiIiKDkUERERERERFByKCIiIiIiIig5FBEREREREZQcioiIiIiICEoORUREREREBMgR6gDSQ4kSJVyVKlVCHYaIpKLFixfvdc6VDHUc50Jtk0jWpPZJRDKiYNqmbJEcVqlShUWLFoU6DBFJRWa2OdQxnCu1TSJZk9onEcmIgmmb1K1URERERERElByKiIiIiIiIkkMRERERERFByaGIiIiIiIig5FBERERERERQcigiIiIiIiJkk6ksRCRjcw62b4ecOaF06VBHIyIiIpIxHTh+gN2Hdp+2PEdYDqoUqYKZndP+lRyKSEgtWgRDhsCWLRAVBRER8OqrUK1aqCMTkWytWDHYt+/05UWLwt9/p388IiLA8M+HM3P1TEoXOHU2PTI6kk3/bGLtsLXUKl7rnPavbqUiEjJ790K3bnD77bB7N+za5Z9fcgmcPBnq6EQkW9u3z3drSHhLLGGUdFOgQAEANm/eTNOmTYmIiKB+/fpMnDgxdpt+/fpRu3ZtGjRowMCBAzmZwn8oX3zxBS1atKBOnTpERERwzTXXsGXLltj1kZGRlChRgnvuuSfe66pUqcLe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KADA5s2badq0KREREdSvX5+JEyfGbtOvXz9q165NgwYNGDhwICdPnkx2n1988QUtWrSgTp06REREcM0117BlyxYAbrjhBqpWrUpERAQRERG0bt069nUfffQR5513HnXq1KFhw4Z89NFHsetuuOEG8uXLx8GDB2OX3XbbbZgZe/fuBfxE7jH7jYiIYNy4cVxxxRVERERQo0YNChcuHLtu3rx5dOjQgdq1a9OoUSOaN2/OsmXLYvddpUqV2P3u2rWLPn36UL16derVq0fXrl1Zt27d2X3hZ6tKlcR//3OsYhfz+wNs2bKFzp07U7duXerVq8emTZvibTt8+PB42yclrX7/65pexx+7/+COOXew/9h+vn3xW/4c+Selw/wUFRn293fOpckNXxFrA1ANyAX8CtRLsE1X4HP8Wa3zgQVx1r0B3Bh4nAsoEnj8JHB34PHdwBMpxdK0aVMnktUdPercRRc517Klc08+6dzNNztXvLhzs2c798MPp7a74ALnevd27ssvnYuKCl285wpY5NKo/Uqvm9omyTbg1OOTJ5377DPn+vb1y8G5zZv9ukOHQhNfKkvt9gnf02sjUDXOMVX9JLYdA9x5Nq+Nezvn9inmt03sdg7y58/vnHPu+PHj7tixY8455w4ePOgqV67stm/f7pxz7tNPP3XR0dEuOjra9enTx7344otJ7m/58uWuRo0abtWqVbHLPv74Y/f9998755y7/vrr3XvvvXfa65YtW+aqV6/uNm7c6JxzbuPGja569eru119/jX1dw4YN3VtvveWccy4qKso1bNjQlS9f3u3ZsyfeZ0nMd99957p16xZvWfv27d3ChQudc8699tpr7uKLL45dV7lyZbdnzx4XHR3tzj//fPfSSy/Frlu6dKn7Ie6BQHpI6ndOpd/fOf99zJkzxznn/wYOHz4cu27hwoXuuuuuS/Y7di5tfv/o6GjXrns7l6NsDscVuDLjy7gHv33QFalcJOS/fzBtU1peIwhmAHQP4M1AsPMDVwvLAoeBdsANAM65E8CJOK/pEHj8BjAXuCsNP4dIpjBxor/y99VXfuqJpUv9lcPLL4fcuf180EWKwPff+2E6IiLp7rvvfDGZPXtOjQn8/nuoUME/zp8/dLFlYM65SDMbBnyJP/n+mnNupZndHFg/0czKAIuAQkC0mY3An5Q/kNhrzzmoESMgzpWL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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" - }, + } + ], + "source": [ + "for bm in unique_bms:\n", + " flag = \"staic_multimap_count_matching_rate\" == bm\n", + " \n", + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_dual_perf(bm, tmpdf, \"MatchingRate\", unique_labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `find_all` performance by varying key muliplicities\n", + "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
  • Fixed occupancy: 0.8
  • \n", + "
  • UNIFORM distribution
  • \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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7L333nTo0IGcnJwS4/z0009p0aIFTZo0YY899qBjx4706tWL884777/XLFu2jF133ZVp06bxxx9/cNJJJ9GoUSOaNGnCueeey/z58xk1ahSnnHLKRttv1aoVjRs3plmzZjRr1oyzzz67/D/UchowAPbe22Z67r233a+ozTff/L/vZ86cyXHHHUeTJk3Yc889mT59+gavvf766zd4fXGy4XeRllS1yBswoaT7ibjtv//+Wpq+fVUbNFAVsa+vv67as6fqtttaJ5kLLlD94gvVDh1UK1dW3Wwz1ZtuUp07t9RNO+eSDBinCT6uJOsW5vhVkr59VatXL+iIZbfq1VVfeUX1zTdVzzpLtVo1e3y77VT/7/9UR4xQzc0tebs1atRQVdW1a9fqmjVrVFV1+fLl2qBBA50zZ46qqn788cean5+v+fn5ev755+vzzz9f7PYmTZqku+yyi06ePFlVVXNycvS5557T/Px8PfTQQ3XYsGGqqnrjjTfqAw88oKtXr9ZGjRrpBx988N82RowYoZMmTdKRI0fqySefvNE+jjzySP3+++/D//DirH9/1Z13tp/vunX2deed7fGKKPhdqNpnHDp0qKra72PlypX/Pff999/rhRdeuMHri5INv4tUV9wxrKSC9n1FZFnwvQDVgvtiOZnWSmDOV6SiphVfcokdhg4/3Nol7Lsv7LSTdR2+7jrr6bL99smO1DnnNnTTTfDjj8U//803tixOrFWrbL1BgE02Wb8c1xZbWEPj99+3RshhVI2Zlrh27Vry8/P/u3/SSSf99/2BBx7I7Nmzi93OI488QteuXdljjz0AqFKlCtdccw0AL7zwAhdccAG9e/dm+PDhjB8/nr59+3LIIYdwakzn5aOCoEeNGhUu+ARo1Wrjx84911pV3H8/1Kxpy6EVqFlz/QodixZB4QGcsnyUX3/9ldzcXFq3bg1sOKKVl5dHp06d6N+/P++++26J28mU30UmKja5UtWUW+Clc+eNpxWrwtZbwxFHWJ1VpUrQp48N4+6wQzRxOudcUebPt3rPtWttpvLOO68vUSicWMVq1sxmOVd0jb9Zs2Zx8sknM2XKFB599FF2KHSQzMnJoU+fPvTo0aPYbfz888/ceuutRT7XtGlTjj/+eI455hjee+89qlatys8//8z+++9f5ljbtWtHtWrVAGjdujWPPvpombdRXr//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\n", + "image/png": "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waJFoGq/e/UqfhL1BJpHIr6lch1xxBF8+eWXzJgxg6+//pqBAweyfPlywBLoL7/8wsyZM9m2bRvDhw+P+zzly5dnwoQJe/4JC/Poo48yY8YMZsyYwY033ghAjx49OProo5k3bx7z5s2jXr16XHPNNXseU79+fWbMmMHMmTNZunQpr7766p77mjVrxiuvvLLn9rhx42jRokXcz6U4xo6FP/wBypa132PHluzxu3XrRt++ffn555/55ptvOPTQQ/fcN23aNDZs2FDsc/h7WTLuugu2bt1329attr04PIGGSdS3VK5y5cpRvnx5AHbs2EFOTs6e+84//3xEBBGhdevWLF26NO7z7LfffvTq1YvHH3+8yI+dO3cu06dP55577tmz7d5772XatGnMmzdvn33Lli1L69atWbZs2Z5ttWvXZvv27axcuRJV5b333uO8886L+7nEa+xY++d4+mnYvt1+33VXySXRn376iezsbNq3bw9YybRixYoA7N69m759+/LII48U+zz+XpaMxYuLtj1WaTUWPpqbb4YZMwq+f8oU2LFj321bt0KPHvD885Ef07IlPPFE7DEsWbKEDh06MHfuXB599FFq1qy5z/27du1i1KhRPPnkk7EfNILrrruO5s2b8/e//73Q/fr27Uv//v0BGDVqFAsWLKBly5aULVt2zz5ly5alZcuWzJo1i+bNm+/Zvn37dr7++ut8sV588cWMHz+e4447jlatWu350ihpp5+ef9sll0CfPvDgg1CpEjzwwN77KlWCvn3hsstgzRq4+OJ9H/vpp7Gfe86cOVStWpULL7yQBQsWcPbZZzNw4EDKli3Lv/71Lzp16sQRRxwRz9PKJxPey0SrXdsKRJG2F4eXQMPkTZ7RtsfjqKOO4ocffmDu3Lm89NJLrFy5cp/7+/Tpw6mnnkq7du0KPIaIRN1euXJlunXrtqcurCDhl33NmjVDVSMeP3z7vHnzaNmyJdWqVaN27dr7/CMCXHLJJYwfP56xY8dy2WWXFXr+RJk9G6pU2XdblSoQqjEptuzsbCZPnszgwYOZOnUq8+fP58UXX2T58uWMHz+eG264Iabj+HtZOvr3h7wvRcWKMGBA8Y6bUSXQaCXFunUjf0vVqVO00kksatasSdOmTZk8eTIXh4pCDzzwAKtXr+a5554r9LHVqlVjxYoV+2zbtGkTVatW3Wfb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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -256,49 +355,78 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"nvbench_static_multimap_find_all\" == bm\n", + " flag = \"staic_multimap_find_all_uniform_multiplicity\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", - " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", - " unique_labels = randomdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", - " \n", - " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", - " unique_labels = cycledf[\"Label\"].unique()\n", - " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_single_perf(bm, tmpdf, \"Multiplicity\", unique_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### retrieve" + "### `find_all` performance by varying occupancies\n", + "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" - }, + } + ], + "source": [ + "for bm in unique_bms:\n", + " flag = \"staic_multimap_find_all_occupancy\" == bm\n", + " \n", + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", + " \n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_dual_perf(bm, tmpdf, \"Occupancy\", unique_labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `find_all` performance by varying matching rates\n", + "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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S7Vr29nZQQfZdOaHHrJLfddcszmxWrHCDjZjx9r99u0t+Zozx17viZVzLlnkPb7Vq2f38/rjD2vu2aiRtXV47DEbERswwC4BfvghdOhgiRVAx46Qnb0DdesCzKJixRbstlszHn74QPrlFoABHTt2pEGDBjRu3JjLLruMTZs2FRrnZ599RsuWLTnggANo2LAhXbt2pX///lxwwQX/vmbVqlXsu+++zJgxg6lTp9KmTRvq16/PAQccwPnnn8/ChQsZPXo0Z5xxxjbbP/7442nQoAHNmjWjWbNmtG/fvkTfz9J4802bzVm+vH18883Sb3OH3B8MMHv2bE455RQOOOAAGjVqxMyZM7d4bZcuXbZ4fUHKws8iJalqvjdgQmH343Fr0aKFFmbgQNUqVVTtvG3zrXVr1cWLt3ztX3+p/ve/qlWr2mvuvbfQTTvnIgCM0zgfVxJ1K+r4VZT8jm9Vqqg+8YTq//6n2rSpPSaievzxqv36qS5aVPR2q1atqqqqmZmZumHDBlVVXb16tdatW1f/+ecfVVX95JNPNCcnR3NycvTCCy/U5557rsDtTZ48WffZZx+dMmWKqqpu2rRJn332Wc3JydEjjzxSR4wYoaqqN954oz700EO6fv16rV+/vn700Uf/buPLL7/UyZMn66hRo/T000/fZh/HHXec/vTTT2G+bXExaJDq3nurfvml6saN9nHvve3x0sj9Waja1zh8+HBVtZ/H2rVr/33up59+0k6dOm3x+vyUhZ9FsivoGFbYZcGmIrIq+FyAysF9sZxME16B1L17/jNffv/duqznuvpqaxJavrydxd18Mxx8cOLidM65rd10E/z8c8HP//CDtXvJa906O36B1XzWr291VKo2kjJliq0uEUbFihX//TwzM5OcPD0g2rRp8+/nhx56KHPnzi1wO48++ijdu3enYcOGAGy33XZcd911ADz//PNcdNFFvPrqq4wcOZLx48czcOBAjjjiCNrmmRZ5wgknADB69OhwwcdBfi0ozj/fljh78EGoVs1GCXNVqwbdutn/lCVL7CpIXsX5Un7//XeysrI4+eSTgS1HtLKzs+nWrRuDBg3i/fffL3Q76fKzSEcFXhZU1fKqumNwq6aq2+X5PJLS7lmzCn78/fet/QLYMPkdd1jDvtdf98TKOZccFi60JOqrr+zjwoWbn9s6scrrsMPsOLbnnrb8VknNmTOHJk2asNdee3H77bdTq1atLZ7ftGkTb7zxBqeddlqB2/j1119p0aJFvs81adKEU089lVatWvH0009TsWLFQl9fmI4dO/57Kapbt27Ffn9p/Pkn7LTTlo/ttJM1fI2FqVOnsvPOO3POOedw8MEH061bN7KDf2B9+/alXbt21AxRs1IWfhapKkwrhqSgageVjRu3fa58eeuYPnQonH66zZpxzrlkcsghNqKem0RlZtqJ4dFH24lgQerWtUQsFvbaay8mTZrEvHnzOOuss2jfvj175OmmfN1113HsscdyzDHHlHgf119/PZ999tm/IyIllZGRQcuWLUu1jcIUNlBzwAE2apX3Sxg1Crp0sc932614I1Vby8rK4ptvvmHixInUqVOHCy64gFdffZXWrVszePDgmI0ipcrPIh2FaSKaFL75xobDK1fe9rldd7VCztatEx+Xc86FkV9Zw/r1tsbfzJlw1lm23mle8ZrZV6tWLQ488EC++eabfx974IEHWLx4MX369Cn0vQceeCDjx48v8Ply5cpRLk8/m6Jen4y6d7cZ56NGWWf9UaPsfvfusdl+7dq1Ofjgg9lnn33YbrvtOOuss5gwYQITJ05k+vTp1K9fn3r16rFu3TrqF9T1mrLxs0hVKZNcTZ9uHYVffHFzj5aqVW2V+XPOsWVt8utP5ZxzyWD27IKfmzrVShteeslGqkTsY//+NuMvFubOncv69esBWL58Od999x0NGjQA4KWXXuLzzz/nzTff3OKfcX66devGww8/zNSpUwHIyckpNCG76KKL+P777/nkk0/+fWzYsGFMnjy5tF9S3HToYEltly6W8HbpYvc7dIjN9g855BCWL1/O4sWLAfjyyy9p1KgRp59+OgsWLGDmzJnMnDmTKlWqMH369AK3UxZ+FqkqZdKRgw6yOoULLrCh9MxMWLPGLhU2aRJ1dM45V7iCGnfmJlNgidTMmdZpfebM2CVWAFOmTOGwww6jadOmHHfccXTt2pWDDjoIgGuuuYaFCxdyxBFH0KxZM3r06FHgdpo0acKTTz5Jhw4dOOCAA2jcuDHz588v8PWVK1dm6NChPPPMM+y33340atSIV199ld133x2AkSNHUrt27X9vY8aMAbas8znppJNi940IqUMHW+UjO9s+xiqxAihfvjyPP/44rVq14qCDDkJVufLKK4u9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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -309,41 +437,80 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"retrieve\" in bm\n", + " flag = \"staic_multimap_find_all_matching_rate\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", - " randomdf = tmpdf[tmpdf[\"Distribution\"] == \"RANDOM\"].reset_index(drop=True)\n", - " unique_labels = randomdf[\"Label\"].unique()\n", - " plot_perf(bm + \"_RANDOM\", randomdf, \"NumReps\", unique_labels, flag)\n", + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_dual_perf(bm, tmpdf, \"MatchingRate\", unique_labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `retrieve` (`find_all` + `count`) performance by varying key muliplicities\n", + "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", + "
  • Fixed occupancy: 0.8
  • \n", + "
  • UNIFORM distribution
  • \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for bm in unique_bms:\n", + " flag = \"staic_multimap_retrieve_uniform_multiplicity\" == bm\n", + " \n", + " if flag:\n", + " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", - " cycledf = tmpdf[tmpdf[\"Distribution\"] == \"CYCLE\"].reset_index(drop=True)\n", - " unique_labels = cycledf[\"Label\"].unique()\n", - " plot_perf(bm + \"_CYCLE\", cycledf, \"NumReps\", unique_labels, flag)" + " unique_labels = tmpdf[\"Label\"].unique()\n", + " plot_single_perf(bm, tmpdf, \"Multiplicity\", unique_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### count by varying matching rate\n", + "### `retrieve` (`find_all` + `count`) performance by varying occupancies\n", "
    \n", - "
  • Fixed num_reps: 8
  • \n", - "
  • Random non-unique input keys
  • \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", + "
  • Fixed matching rate: 0.5
  • \n", "
" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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+45LS0le2csvv0y7du3466+/2Lx5M8OHDwdgypQpHDp0iL///psNGzYwffp0ihQpkmIZkyZNonnz5kyePDnJ9lKlSvHRRx9x8eJFj2JxyqRJULcuBAfbn5Mmebf83r17M3jwYLZs2cKff/5JqVKlEvetXr2aU6dOpVlGVv3+zy89z7jV4wCIN/HM3DaTV1q94lFsadHkUCnlmP37oU6dy7fXqQMHDvg/HqWUUt4xcSL06wd799oG17177XtvJYihoaHkzp0bgOjoaOLj4xP3derUCRFBRGjSpAkHrvA/lHfeeYcXXniBWrVqJW7r0qULLVteWu1j0qRJPPnkk4SFhbFy5UqP4vv333+pUKFC4vv69esnbi9btixBQfYWvEKFChQtWvSy88+ePcuyZcv44osvLksOSpYsSZs2bfjqq688isUJkybBiy/CJ5/AhQv254svei9B3Lx5M7GxsbRr1w6wLYr58uUDIC4ujsGDB/Puu++mWU5W/f7btW3HC//3Ajd9cxN/HvyTYnmL0bpya49iS4smh0opx1x7LcyaZYfvrFkDsbFw8SLMnQtNUpxoXSmlVCAYOBBat0791bcvREUlPScqym5P7ZyBA9MXw/79+6lfvz4VK1bk2WefpVy5ckn2x8TEMGHCBDp06JBqGZs2beKaa65Jdf/58+eZP38+nTt35u6772aSh9nNY489Rt++fbnhhhsYNmxYYqvmnXfeyU8//UR4eDiDBg1i3bp1KZ4/Y8YMOnTowNVXX02xYsVYu3Ztkv3PPfcc//d//0dcXJxH8fhCSt/h55/bfW+8AQULwmuvQbt29mfBgjB4sN1//Pjl56bH9u3bKVKkCLfddhsNGzZk8ODBiX+LTz/9lC5dulC2bNk0y8mq3/+Hb35I1OIofv3nV7Yc30K3mt08issTmhwqpRzTrRtER0PnzhARAePHQ5cu0LAhNG7sTEwi0kFEtonIDhF5LoX9vUTkb9druYg08PRcpVQWExcH/fvDsmVOR5LlREenb3tGVKxYkb///psdO3bw1VdfceRI0hkcH330UVq2bEmLFi08Ku/EiROEh4dz9dVXM2LECABmzZrFDTfcQL58+bj99tuZPn16YhKS0qyQCdtuuukmdu3axUMPPcTWrVtp2LAhx44do0KFCmzbto23336boKAg2rRpw/z58y8rZ9KkSfTo0QOA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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -354,36 +521,37 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"count_varying_matching_rate\" == bm\n", + " flag = \"staic_multimap_retrieve_occupancy\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", " unique_labels = tmpdf[\"Label\"].unique()\n", - " plot_perf(bm, tmpdf, \"MatchingRate\", unique_labels, flag)" + " plot_dual_perf(bm, tmpdf, \"Occupancy\", unique_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### count by varying num_reps\n", + "### `retrevie` (`find_all` + `count`) performance by varying matching rates\n", "
    \n", + "
  • 100'000'000 key/value pairs inserted
  • \n", + "
  • 100'000'000 probing keys
  • \n", "
  • Fixed matching rate: 0.5
  • \n", - "
  • Random non-unique input keys
  • \n", "
" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { - "image/png": "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WQUXoaxcedPaePntsYetmFCUGjVq8Hcw82Lx4sV0796db7/9lhtuuIHhw4f/573r1q1jr7324tZbb2W//fYr+sAl1KnT5vuOPtoqmzdvbqtA5C13sny5VTxfssQuBo488r+ffeON4s8Z++5Tp07lvvvuo1KlSixYsICDDjqIa6+9luzsbG699VY2btzIWWed9Z/flcssa9fCww9b2/Tdd9ZOXXCBzah89137u3jppTaru149yxf77rtNHbKCFNV+hSlR4ZxzRRKxDhjYaNjYsbaW5HXX2VTv9u1tHcu5c2HOHBsJu+oq66R98EG0saebgjpgRe0vjR122IFPPvmEb7/9lvHjx/PLL7/85/VTTjmF/fffP+4dsOJ89ZUtGJ9X7dqFlxwoqfXr1/P2229z44038uGHH/L999/z0EMP8dNPPzF58mROO+20+JzIpazKla2i/pdf2ghrxYpWzPXuu63tOv74TaPQv/9uyyc9+mgZTljYfcpU3TwnzLn08dNPqjfcoNqsmWr16qq//ab6+eeqs2fb67ffrtqvX/HHwXPC/icnx3JX8m85OWU6bKF5TieccIJOnjz5f88vv/xy7dmzp27YsKFsJyyFFi1UX3/9v/tef932l0Xsu7/33nvasWPH/+2fMGGCnnLKKfr888/r1ltvrTk5OZqTk6Mioo0bNy7bSV1a2LhR9fnnVffZp+B/d2H+7RXVfvlImHMuYRo0sOKIjz1mVau32MJGyWIDK23bWj0yF16iS30sWbKEf/75B4Dly5fzzjvvsMsuuwBw33338fLLLzNp0iSyspL/38fFF8PgwTBjht3enjHDnsdr1YW2bduyfPlyfv31VwBef/11mjdvTvfu3fn5559ZuHAhCxcupFq1anzrf3HLBRHo3r3oJd3KUnC6Quk/6pxz4ey0k90y+vFHWzg8lsD/+uvQsmW0saWbWFXwiy+2xr9hQ+uAxfaX1RdffME555yDiKCqnHvuuey+++4ADBs2jJycHNq3bw9Anz59GDlyZHxOHEL//vZ42mlWUHPXXe27x/aXVXZ2NjfeeCMHHnhgbNSSIUOGxOfgLq3FlkZatGjz18pScNoT851zSXHZZTBtmi2a26SJzTy69FJ4801LuC5KeUrMd86lptjM5Lyzu6tVszUsi7oIKqr98pEw51xSXH65Je8PHWrJrPvuCy+/XHwH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\n", + "image/png": "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r6mZlc3CmADeB24zsypxw1bvOcXrnMr7Gw+MsuPFe8qb2UWn+PoiInmKkkARkcwphJ/ntAs/JO50/FC/+KRlt5ktds7txxeqeB9foKI/8ElKF4wb7nchfv7e30AkcEUWx/08fo7gduB1jg9dTMlk/JzHf8xsRmZeNJ1/h21x+7bExTXUObcqg68T/zcMB9bjP59JQHySkOTzSec1p+N7ed81s33AH/iCJIlNA7rjC8WkN5ZMS+vvGvf3mwasi/scKwPPxR3/JbAP/zkXyaqY4rwad/1l+MI2s4Bo/Bcl6XaK729s3DFfmtl+4Bd8D62ISL6nxeJFRCTHMC36nafF9eCNd87VCHYsIiL5mXoCRUREJCDihr+eb2YFzKwK8BAwPdhxiYjkd0oCRURyCfMLkh9I4TE+2LFlBzNbnsr7T3Mx+ZzKzD5P5T3dH+zYsogBj+CHcC7BV+gcCZDK+z4QNw9UREQCSMNBRURERERE8hH1BIqIiIiIiOQjSgJFRERERETyESWBIiIiIiIi+YiSQBERERERkXxESaCIiIiIiEg+oiRQREREREQkH1ESKCIiIiIiko8oCRQREREREclHlASKiIiIiIjkI0oCRURERERE8hElgSIiIiIiIvmIkkAREREREZF8REmgiIiIiIhIPqIkUEREREREJB9REigiIiIiIpKPKAkUERERERHJR5QEioiIiIiI5CNKAkVERERERPIRJYEiIiIiIiL5iJJAERERERGRfERJoIiIiIiISD6iJFBERERERCQfKRDsALJSuXLlXM2aNYMdhohkoUWLFu1yzpUPdhyZobZJJO9R2yQiOVV62qc8lQTWrFmThQsXBjsMEclCZrYx2DFkltomkbxHbZOI5FTpaZ80HFRERERERCQfURIoIiIiIiKSjygJFBERERERyUeUBIqIiIiIiOQjSgJFRERERETyESWBIiIiIiIi+UieWiJCRHK2o0dh82aoUAGKFQt2NCIiIiI5U+S+SA5HHT5he+kipSlXtFymrx/QJNDMegJjgVBgknNudLL9DYCpQAvgAefcmET7NgD7gRgg2jkXEchYRSRwnINnn4WnnvLJ37//wpAh8MQTEBoa7OhEJF8rUwb27j1xe+nSsGdP9scjIvnekegj1B5bm9OLnU6RgkUStu85vIf6Zesz77p5mX6NgA0HNbNQYBxwHtAQuNLMGiY7bA8wDBhDyro658KVAIrkbq+9Bq+/DvPmwYYNsHw5/PorPPZYsCMTkXxv717/TVXyR0qJoWSL4sWLA7Bx40ZatmxJeHg4jRo1Yvz48QnHDBgwgPr169O4cWMGDx5MVFTUSa/5xRdf0Lp1axo0aEB4eDhXXHEFf//9d8L+6OhoypUrx3333ZfkvJo1a7Jr166E53PmzOGCCy4AYPv27VxwwQU0a9aMhg0bcv755wMQGxvLsGHDaNy4MU2aNKFVq1asX78+xetNnz4dM2PVqlUJ2zZs2ICZ8eKLLyZsu+WWW3jttdfS9ffL7eI/f4C///6bc845hzPPPJOGDRuyYcOGJMfeeuutSY5PTW77/IsULEJEZATXhl/LX7f+xbmrz+WBEg/Q5PQm3NjyxjTfb3oEck5ga2CNc26dc+4Y8C5wUeIDnHM7nHMLgJP/nysiudrYsfDCC1Cvnn9euTJMmgTjxkFMTHBjExHBuWBHkGu9/TbUrAkhIf7n229n3bUrVarEvHnzWLp0KfPnz2f06NFs2bIF8EngqlWr+P333zl8+DCTJk1K9Tp//PEHt956K6+//jqrVq1i6dKlDBgwIElC8eWXX1K/fn3ef/99XDr/exg5ciQ9evTgt99+Y8WKFYwe7Qe8vffee2zZsoVly5bx+++/M336dEqVKpXiNaZNm0aHDh149913k2w//fTTGTt2LMeOHUtXLMEybRo0buxH9TRu7J9npWuuuYbhw4ezcuVKfv31V04//fSEfQsXLuSff/5J8xq59fPf8tUWXv7lZXYf2g3Aql2riNwXyYCmA9IVX1oCmQRWATYleh4Zty29HPClmS0ysyFZGpmIZKsNG6BKsv/7a9eGAwfgyJGghCQiAitW+J8NGsD+/cGNJRd6+20/tH/jRp9Hb9zon2dVIhgWFkahQoUAOHr0KLGxsQn7zj//fMwMM6N169ZERkamep2nnnqK+++/nzPPPDNhW+/evenUqVPC82nTpnHbbbdRvXp1fvnll3TFt3XrVqpWrZrwvGnTpgnbK1WqREiIv82uWrUqpUuXPuH8AwcOMHfuXCZPnnxCElC+fHm6devG66+/nq5YgmHaNHjgAXjxRf9v+Ysv+udZlQiuWLGC6OhoevToAfgewqJFiwIQExPD8OHDefrpp9O8Tm79/M/tcS6NtjTi+V+eB2DGqhmM6DSCAiFZM5svkEmgpbAtI1+1tXfOtcAPJ73ZzDqldJCZDTGzhWa2cOfOnacSp4gEgHPwzTfQu7efA5hshAXffusTwbj2XEQke+zd6+9WIyKgUSO/7YwzYPfu4MaVA91+O3Tpkvrjuuvg0KGk5xw65Lends7tt2cshk2bNtG0aVOqVavGPffcQ+XKlZPsj4qK4s0336Rnz56pXmP58uW0aNEi1f2HDx/mm2++4YILLuDKK69kWjqzmJtvvpnrrruOrl27MmrUqIReyssvv5z/+7//Izw8nDvvvJMlS5akeP6MGTPo2bMnZ5xxBmXKlGHx4sVJ9t977708++yzxARxyExKn+HLL/t9jz0GJUrAI49Ajx7+Z4kSMHy4379r14nnZsSff/5JqVKluOSSS2jevDnDhw9P+Fu89NJL9O7dm0qVKqV5ndz4+TsctIclHy9h3PxxrN27lj2H92RZLyAENgmMBKolel4V2JLek51zW+J+7gCm44eXpnTcROdchHMuonz58pkIV0SygnMweTI0bQrdu8Mvv8DgwTBnjh8Suny5nx949dUwahRYSl8XiYhkpWPHIP6L4k2bYNgwPxb9ef8NO//3f34so2TI0aMZ234qqlWrxrJly1izZg2vv/4627dvT7L/pptuolOnTnTs2DFd19u9ezfh4eGcccYZjBnjS1J8+umndO3alaJFi3LppZcyffr0hGTDUvhHKn7bueeey7p167jhhhtYtWoVzZs3Z+fOnVStWpXVq1fz5JNPEhISQrdu3fjmm29OuM60adPo168fAP369Tsh+ahVqxatW7fmnXfeSdd7y26rV8NppyXddtppsCXdd/snFx0dzY8//siYMWNYsGAB69at47XXXmPLli188MEH3HrrrRm+Zm74/NfsXsO6veuYuH4ilRpUoumOpny59kt61++dZb2AENjqoAuAemZWC9gM9AP6p+dEMysGhDjn9sf9fg7waMAiFZFM++cfKFXKJ3UffODnB0ydCv36QeHCcPPNvjroK69A3bp+uFDXrsGJNTOVi+P2hwILgc3OuQuyJ2oRyRDnYOFCeOMNPz7t/PP9702bwsqVfggowKOPpvxtVArDt/Kb//3v5Ptr1vRDQJOrUcN/8ZeVKleuTKNGjfjxxx/p27cvAI888gg7d+5kwoQJJz23UaNGLF68mGbNmlG2bFmWLl3KmDFjOHDgAOBvxufOnUvNuC8Cdu/ezXfffUf37t0pW7Yse/fupVw5X5J/z549Cb8DlClThv79+9O/f38uuOACfvjhBy699FIKFSrEeeedx3nnnUeFChWYMWMG3bp1Szhv9+7dfPvtt/zxxx+YGTExMZjZCcMb77//fvr27Ztk6GJ2OtnneOaZvvcv8b/l330H8blZuXKZ+++gatWqNG/enNq1awPQp08ffvnlFypWrMiaNWuoW7cuAIcOHaJu3bqsWbMmxevkps+/Rt8a3PnBncTExDDjihnUv6I+F118ETWq1aBd1Xan/sdMQcB6Ap1z0cAtwGxgJfC+c265mQ01s6EAZlbRzCKBO4AHzSzSzEoCFYCfzOw34FfgM+fcF4GKVURO3a+/Qv/+UKnS8ZuB996DJUvg2mt9AgjQooXfvnKl/9I9iAlgVlQuvg3frolITjRxoh/q2bo1vPqqH5Zw9dXH98cngOCXgUipOqiWh0jTqFEnDukvWtRvzwqRkZEcPuzXSdu7dy9z586lfv36AEyaNInZs2czbdq0hLlXqbn77rsZNWoUK1ceb7YPxY1j3bdvHz/99BN///03GzZsYMOGDYwbNy6hV6ZLly68+eabgJ+H9tZbb9E17h+wb7/9NuE6+/fvZ+3atVSvXp3FixcnDA2MjY1l2bJl1KhRI0lMH374Iddccw0bN25kw4YNbNq0iVq1avHTTz8lOa5BgwY0bNiQTz/9NON/wAB74AE/9Pe77yAqyv+87jq/PSu0atWKvXv3Ej/d69tvv6Vhw4b06tWLbdu2JXxeRYsWTTUBhNzz+VetUZUHX3+QtlXbUrdMXS5qcBENGjSgWZNmRK+KJjQki9fUcs7lmUfLli2diATesWPOvfuuc23b+rulkiWd++9/ndu6NetfC1josrCdANoBsxM9vw+4L5VjHwbuSratKvANcDbwaXpeU22TSIAdPOgbpeho//yuu5xr3965CROc27s3IC+Z1W1TMB5Z0Ta99ZZzNWo4Z+Z/vvVWpi/pihUr5pxz7ssvv3RNmjRxTZs2dU2aNHETJkxIOCY0NNTVrl3bNWvWzDVr1sw98sgjJ73mp59+6iIiIlz9+vXdWWed5fr16+dWr17tpk6d6q644ookx+7evduVK1fOHTlyxP3zzz/uyiuvTIhh+PDhLiYmxjnn3NNPP+3OPPNM16RJE9eoUSM3ZswY55xzn3/+uWvRooVr1KiRa9SokRs0aJA7fPiwc865GjVquJ07d7rOnTu7zz//PMnrjh071g0dOtStX7/eNWrUKGH70qVLnZm5qVOnntofNIDeece5Ro2cCwnxP995J/PXjP/8nTv+30Djxo3dwIED3dGjR096fGpy8uf//YbvXXRMtBs7dqzrP6i/W7duXaY///S0T+aPyxsiIiLcwoULgx2GSK529CjMnQsFCsBZZ/mf8Zzzo6a2bPHDfWrUgNtu8z1+JUoEJh4zW+SycK1QM+sL9HTOXR/3/GqgjXPulhSOfRg44BINBzWzD4EngRL4BDHF4aBxVY2HAFSvXr3lxpTGTIlI+qS2oHvx4nDZZX4M+oEDvuJU165+vl9oFn9rnkxWt02JrpvWcPUBwD1xTw8A/3HO/Ra3rxQwCWiML8Y32Dn3c2qvpfsmkeA5FHWIO2ffyfhF45lwwQSGtMy6xRDS0z4Fck6giOQyn33mi7jUru2Hdmzf7qfSlC7ti7ps2eKHclauDPPnQ3i4XxsqlznlysVmdgGwwzm3yMy6nOxY59xEYCL4G60MxigiicUv6B5v3Tro1s2vP/Phh3D55XDNNRBfHCTACWCgJBqu3gNfYG+BmX3inFuR6LD1QGfn3F4zOw/fzrSJ2zcW+MI519fMwgDVXxbJgRZtWcSAjwfw5+4/GX7WcAY2G5jtMSgJFBEANm/291Cffgrt2kFsLDz+OJx9tk8ICxf2U2qio33v4EmqLed0malc3B7obWbnA4WBkmb2lnPuqiyOUUSS++ADOHzYN1Q1akCbNj4J3LYtL6010xpY45xbB2Bm7wIXAQlJoHNuXqLjf8G3YcTVVOgEXBt33DEgZ680nsWmTp3K2LFjk2xr374948aNC1JEkp1yy+f/6qJXuWnWTVQsXpFvrvmGrrWCUyRBSaCIAPDOO9C3r08AASZNgoce8snfRRf5qp6JCmLlZqdcudg5dx9+DiFxPYF3KQEUCaBNm3xhF/C9fW3b+iQwNBTefddXm8o7CSBAFWBToueRHO/lS8l1wOdxv9cGdgJTzawZsAi4zTl3MBCB5kSDBg1i0KBBwQ5DgiS3fP6NTm/EZQ0vY9z54yhdJHhViJUEiggAf/3lK3pOmwZXXglXXOHn+X33nS+yl0cSQJxz0WYWX7k4FJji4ioXx+0fb2YV8UtAlARizex2oKFzbl+w4hbJd555Bu699/gw0E8/hZMsCJ5HpHu4upl1xSeBHeI2FcAva3Orc26+mY0F7gVGJDsv8XzlLApbRFLjnOOd399h1a5VPHb2Y5xV7SzOqnZWsMMK6GLxIpLDRUfDxx/7qTWvvgqLFvnFX8Ev+Nqrl7/v6t49uHFmNefcLOfcGc65Os65UXHbxjvnxsf9vs05V9U5V9I5Vyru933JrjEntaIwInIKdu+GMWP8N1LghyXcfTesXeuf9+qVa+f6ZUC6hqubWVN8AZiLnHO7E50b6ZybH/f8Q3xSmIRzbqJzLsI5F1G+fPksDV5Ektp7eC/9P+7PVdOv4vuN33MsJueM0FZPoEg+dvHFPsmrXh2eeMIXe/n8c6hVy88DHDvWDxFt1CjYkYpInuScX2z05Zf90M6jR/2k49tvhw4d/AN8dar8saB7msPVzaw68DFwtXPuz/jtzrltZrbJzOo751YD3Ug0l1BEst6uQ7v4+9+/T9geaqHsPryba2dcy9YDWxl19ijuaX9P1q/1lwlKAkXyCed8kjd+PPzvf1CqFNxyC1x/PVxwgf+CPSYG3n8fpk/392GPPw69ewc7chHJk2JjoVMnvyZN8eK+NPF//gNNmpx4bD5ZuD09w9WBkUBZ4GXziXF0olLwtwJvx1UGXQfk/AlSIrnYfV/fx0crP6JmqZoJ26Jio/hjxx8UKVCEaqdVY97gebSq0ip4QaZCw0FF8rjDh2HqVGjVyo+u+vhjWLrU7zv3XF/0JX6EVWionw/4/vu+UMxFF6X85buIyClZudLP9QO/vsy55/qqU1u2+N7AlBLAfCYdw9Wvd86Vds6Fxz0iEp27NG6oZ1PnXB/nXAqLK2ahihX9PxLJHxUrZuqyxYsXB2Djxo20bNmS8PBwGjVqxPjx4xOOGTBgAPXr16dx48YMHjyYqKiok17ziy++oHXr1jRo0IDw8HCuuOIK/v7b9+Bce+211KpVi/DwcMLDwznrrOPztWbMmEHTpk1p0KABTZo0YcaMGQn7rr32WooWLcr+/fsTtt12222YGbt27QIgNDQ04brh4eGMHj2aiy++mPDwcOrWrctpp52WsG/evHl06dKF+vXr06xZM1q1asXS+H+wgZo1ayZcd9u2bfTr1486derQsGFDzj//fP78M6FjOHvUrJny51+zZqYuG//5A/z999+cc845nHnmmTRs2JANGzYkOfbWW29NcnxqAvX5v3XFW4RFhzF38FwW37iY5kub88dNf9C+bHtmDZjFmtvWcEOvG3Lm55/WavK56dGyZUsnIsft2uVc2bLOgXONGjn38svO7dsX7KgyBljockD7kpmH2ibJN0qX9g1O8kexYs516eJ/Dwtzbv36YEeaaWqbXMqfdfwjE4oVK+acc+7o0aPuyJEjzjnn9u/f72rUqOE2b97snHPus88+c7GxsS42Ntb169fPvfzyy6le7/fff3d169Z1K1asSNg2c+ZM9/333zvnnBs4cKD74IMPTjhv6dKlrk6dOm7dunXOOefWrVvn6tSp43777beE85o0aeLefPNN55xzMTExrkmTJq5KlSpu586dSd5LSr777jvXq1evJNs6d+7sFixY4JxzbsqUKa579+4J+2rUqOF27tzpYmNjXdu2bd0rr7ySsG/JkiXuhx9+SPW1AiK1zzmLPn/n/N/jyy+/dM75/wYOHjyYsG/BggXuqquuOunf2LnAf/4tb27pnpv3nHvh5xecVTAXclqIm7FoxgnvJblAfv7paZ80HFQkF/rhB3jpJYiMhNat4Y47/Ly+2Fj4+mv4/Xe4804oW9YP+ezSBTp3Vq+eiARY8kXdFy3yBV22b/dr+o0eDYMGwemnBy1EyYDbbz8+dCSjunRJeXt4uJ+TkA5hYWEJvx89epTY2NiE5+eff37C761btyYyMjLV6zz11FPcf//9nHnmmQnbeqdjrsOYMWO4//77qVWrFgC1atXivvvu45lnnuHNN98E4Morr+S9997jqquuYs6cObRv357PP//8ZJdNt3bt2vFMfM95It999x0FCxZk6NChCdvCw8Oz5DVPkNLnePnlcNNNqe+Pt2uXLyyQ2Jw56X7pFStWEB0dTY8ePYCkPYQxMTEMHz6cd955h+nTp5/0OoH+/Gd+NZP7vrmPo38dpcwZZTi44iDtq7dP9/tMTaA/fw0HFcllpk2D/v19xc6nn4ZChXwiOHIkNGjgR1c9/zwcOeKPf/hh30YrARSRbPHFF/DZZ/73Bg38vD+ANWvgnnuUAEqGbNq0iaZNm1KtWjXuueceKleunGR/VFQUb775Jj1PsnzI8uXLadHihEKpSQwfPjxhWN6AAQMSzmvZsmWS4yIiIli+fHnC83r16rFz50727t3L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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -394,13 +562,13 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"count_varying_num_reps\" == bm\n", + " flag = \"staic_multimap_retrieve_matching_rate\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", " \n", " unique_labels = tmpdf[\"Label\"].unique()\n", - " plot_perf(bm, tmpdf, \"NumReps\", unique_labels, flag)" + " plot_dual_perf(bm, tmpdf, \"MatchingRate\", unique_labels)" ] } ], diff --git a/benchmarks/analysis/notebooks/Utils.py b/benchmarks/analysis/notebooks/Utils.py index 68045a8a4..3e6a001e8 100644 --- a/benchmarks/analysis/notebooks/Utils.py +++ b/benchmarks/analysis/notebooks/Utils.py @@ -7,70 +7,93 @@ colors = ['b','r','g','m','y','c'] styles = ['o','s','v','^','D',">"] -def plot_perf(bm, df, xaxis, unique_labels, is_multivalue = False, is_singletype = False): - fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) +def plot_single_perf(bm, df, xaxis, unique_labels): + fig = fig = plt.figure(1,figsize=(5, 5)) fig.suptitle(bm) - marker_handles = [] + ax = fig.gca() + ax.set_xlabel(xaxis) + ax.set_ylabel('GPU Time (sec)') - # Frist sub-figure shows performance (#ops/s) - ax1.set_xlabel(xaxis) - ax1.set_ylabel('Performance (number of operations per second)') - - # Second sub-figure shows bandwidth - ax2.set_xlabel(xaxis) - ax2.set_ylabel('Bandwidth (GB/s)') + ax.set_xscale('log') + ax.set_xticks(list(df[xaxis])) + ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter()) - # Custom x-axis for multi-value test cases: - # - power-of-two ticks - # - log-scale - lax = [ax1, ax2] - if is_multivalue: - lnum = list(df[xaxis]) - - if xaxis == 'NumReps': - for item in lax: - item.set_xscale('log') - item.set_xticks(lnum) - item.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter()) + marker_handles = [] - if not is_singletype: - num_style = len(df["Distribution"].unique()) - else: - num_style = len(df["CGSize"].unique()) + num_style = len(df["Distribution"].unique()) # Iterate over labels and label indices for lindex, lbl in enumerate(unique_labels): tmpdf = df.loc[df['Label'] == lbl] x = tmpdf[xaxis] - perf = tmpdf["Elem/s (elem/sec)"] - bw = tmpdf['Bandwidth (GB/s)'] + perf = tmpdf["GPU Time (sec)"] # Get style & type index sid = lindex % num_style tid = int(lindex / num_style) - if (not tid) or is_singletype: - ax1.plot(x, perf, color=colors[sid]) - ax1.scatter(x, perf, color=colors[sid], marker=styles[sid]) + if not tid: + ax.plot(x, perf, color=colors[sid]) + ax.scatter(x, perf, color=colors[sid], marker=styles[sid]) + + # Add legend + marker_handles.append(ax.plot([], [], c=colors[sid], marker=styles[sid], \ + label=lbl)[0]) + else: + ax.plot(x, perf, color=colors[sid], linestyle="--") + ax.scatter(x, perf, color=colors[sid], marker=styles[sid], facecolors='none') + + # Add legend + marker_handles.append(ax.plot([], [], c=colors[sid], marker=styles[sid], \ + mfc='none', linestyle="--", label=lbl)[0]) + + leg = plt.legend(handles = marker_handles, loc="upper left", ncol=2, frameon=False) + plt.savefig(bm + '.eps') + +def plot_dual_perf(bm, df, xaxis, unique_labels): + fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15, 5)) + fig.suptitle(bm) + + marker_handles = [] + + lax = [ax1, ax2, ax3] + + for item in lax: + item.set_xlabel(xaxis) + item.set_ylabel("GPU Time (sec)") + + num_style = len(df["Distribution"].unique()) + + # Iterate over labels and label indices + for lindex, lbl in enumerate(unique_labels): + tmpdf = df.loc[df['Label'] == lbl] + + x = tmpdf[xaxis] + perf = tmpdf["GPU Time (sec)"] + + # Get style & type index + sid = lindex % num_style + tid = int(lindex / num_style) - ax2.plot(x, bw, color=colors[sid]) - ax2.scatter(x, bw, color=colors[sid], marker=styles[sid]) + # INT32 + if not tid: + lax[sid].plot(x, perf, color=colors[sid]) + lax[sid].scatter(x, perf, color=colors[sid], marker=styles[sid]) # Add legend - marker_handles.append(ax1.plot([], [], c=colors[sid], marker=styles[sid], \ + marker_handles.append(lax[sid].plot([], [], c=colors[sid], marker=styles[sid], \ label=lbl)[0]) + # INT64 else: - ax1.plot(x, perf, color=colors[sid], linestyle="--") - ax1.scatter(x, perf, color=colors[sid], marker=styles[sid], facecolors='none') - ax2.plot(x, bw, color=colors[sid], linestyle="--") - ax2.scatter(x, bw, color=colors[sid], marker=styles[sid], facecolors='none') + lax[sid].plot(x, perf, color=colors[sid], linestyle="--") + lax[sid].scatter(x, perf, color=colors[sid], marker=styles[sid], facecolors='none') # Add legend - marker_handles.append(ax1.plot([], [], c=colors[sid], marker=styles[sid], \ + marker_handles.append(lax[sid].plot([], [], c=colors[sid], marker=styles[sid], \ mfc='none', linestyle="--", label=lbl)[0]) - leg = plt.legend(handles = marker_handles, loc="lower left", ncol=2, frameon=False) - plt.savefig(bm+'.eps') \ No newline at end of file + leg = plt.legend(handles = marker_handles, loc="upper left", ncol=2, frameon=False) + plt.savefig(bm + '.eps') \ No newline at end of file From 67a98809fb774ddd8b8848349fe8232b45fdf346 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 21 May 2021 11:52:30 -0400 Subject: [PATCH 100/267] Minor code cleanups: remove debugging code path --- include/cuco/detail/static_multimap_kernels.cuh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 51d75cd74..3eb3ea69f 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -157,11 +157,6 @@ __global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEq view.insert(tile, insert_pair, hash, key_equal); it += (gridDim.x * blockDim.x) / tile_size; } - if (threadIdx.x == 0 && blockIdx.x == 0) { - for (auto i = 0; i < view.get_capacity(); i++) { - auto slot = view.get_slots() + i; - } - } } /** From 7577d3be639e2e1701e0549a7cc9e0c2f73f2e5f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 21 May 2021 12:02:10 -0400 Subject: [PATCH 101/267] Use template integer block size --- .../cuco/detail/static_multimap_kernels.cuh | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 3eb3ea69f..388c6f5a2 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -77,11 +77,11 @@ template __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) { - auto tid = threadIdx.x + blockIdx.x * blockDim.x; + auto tid = threadIdx.x + blockIdx.x * block_size; while (tid < size) { new (&slots[tid].first) atomic_key_type{k}; new (&slots[tid].second) atomic_mapped_type{v}; - tid += gridDim.x * blockDim.x; + tid += gridDim.x * block_size; } } @@ -106,13 +106,13 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s template __global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEqual key_equal) { - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto it = first + tid; while (it < last) { typename viewT::value_type const insert_pair{*it}; view.insert(insert_pair, hash, key_equal); - it += gridDim.x * blockDim.x; + it += gridDim.x * block_size; } } @@ -155,7 +155,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEq // force conversion to value_type typename viewT::value_type const insert_pair{*it}; view.insert(tile, insert_pair, hash, key_equal); - it += (gridDim.x * blockDim.x) / tile_size; + it += (gridDim.x * block_size) / tile_size; } } @@ -190,7 +190,7 @@ template second.load(cuda::std::memory_order_relaxed); __syncthreads(); *(output_begin + key_idx) = writeBuffer[threadIdx.x]; - key_idx += gridDim.x * blockDim.x; + key_idx += gridDim.x * block_size; } } @@ -250,7 +250,7 @@ __global__ void find( InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ Value writeBuffer[block_size]; @@ -272,7 +272,7 @@ __global__ void find( if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } - key_idx += (gridDim.x * blockDim.x) / tile_size; + key_idx += (gridDim.x * block_size) / tile_size; } } @@ -305,7 +305,7 @@ template (cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; @@ -382,7 +382,7 @@ __global__ void contains( if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } - key_idx += (gridDim.x * blockDim.x) / tile_size; + key_idx += (gridDim.x * block_size) / tile_size; } } @@ -434,7 +434,7 @@ __global__ void find_all(InputIt first, Hash hash, KeyEqual key_equal) { - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; constexpr uint32_t step = 1; @@ -666,12 +666,12 @@ __global__ void count( __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_items = 0; - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto tid = block_size * blockIdx.x + threadIdx.x; auto it = first + tid; while (it < last) { thread_num_items += view.count(*it, hash, key_equal); - it += gridDim.x * blockDim.x; + it += gridDim.x * block_size; } // compute number of successfully inserted elements for each block From 94697b05402972486583102277e2482e7a3cdd3d Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 21 May 2021 12:19:59 -0400 Subject: [PATCH 102/267] Remove view::count functions --- include/cuco/detail/static_multimap.inl | 72 ------------------- .../cuco/detail/static_multimap_kernels.cuh | 4 +- include/cuco/static_multimap.cuh | 70 ------------------ 3 files changed, 2 insertions(+), 144 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index f11130fe3..e559934cf 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -502,76 +502,4 @@ __device__ bool static_multimap::device_vi } } -template -template -__device__ size_t static_multimap::device_view::count( - Key const& k, Hash hash, KeyEqual key_equal) noexcept -{ - auto found = this->find_all(k, hash, key_equal); - size_t count = 0; - while (found != this->end()) { - ++found; - ++count; - } - return count; -} - -template -template -__device__ size_t static_multimap::device_view::count( - Key const& k, Hash hash, KeyEqual key_equal) const noexcept -{ - auto found = this->find_all(k, hash, key_equal); - size_t count = 0; - while (found != this->end()) { - ++found; - ++count; - } - return count; -} - -template -template -__device__ size_t static_multimap::device_view::count( - CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept -{ - auto found = this->find_all(g, k, hash, key_equal); - size_t count = 0; - while (found != this->end()) { - ++found; - ++count; - } - return count; -} - -template -template -__device__ size_t static_multimap::device_view::count( - CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept -{ - auto found = this->find_all(g, k, hash, key_equal); - size_t count = 0; - while (found != this->end()) { - ++found; - ++count; - } - return count; -} - } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 388c6f5a2..48c40eb0b 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -77,11 +77,11 @@ template __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) { - auto tid = threadIdx.x + blockIdx.x * block_size; + auto tid = threadIdx.x + blockIdx.x * blockDim.x; while (tid < size) { new (&slots[tid].first) atomic_key_type{k}; new (&slots[tid].second) atomic_mapped_type{v}; - tid += gridDim.x * block_size; + tid += gridDim.x * blockDim.x; } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 774dad7ee..35ce7a345 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -914,76 +914,6 @@ class static_multimap { Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Counts the number of matching key/value pairs contained in the multimap. - * - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to count for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * @return The total number of the matching key/value pairs - * in the multimap - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ size_t count(Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Counts the number of matching key/value pairs contained in the multimap. - * - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to count for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * @return The total number of the matching key/value pairs - * in the multimap - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ size_t count(Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) const noexcept; - - /** - * @brief Counts the number of matching key/value pairs contained in the multimap. - * - * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to count for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * @return The total number of the matching key/value pairs - * in the multimap - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ size_t - count(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Counts the number of matching key/value pairs contained in the multimap. - * - * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to count for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * @return The total number of the matching key/value pairs - * in the multimap - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ size_t - count(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; }; // class device_view /** From 22e6b5e5e5fd0c0f48f2d24ad47ae2c4702768ad Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 21 May 2021 15:45:18 -0400 Subject: [PATCH 103/267] Cleanups: remove unused stuff --- benchmarks/key_generator.hpp | 1 - include/cuco/detail/static_multimap.inl | 2 +- .../cuco/detail/static_multimap_kernels.cuh | 200 ------------------ 3 files changed, 1 insertion(+), 202 deletions(-) diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 3dca16d64..29b7a5d5d 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -18,7 +18,6 @@ #include #include -#include enum class dist_type { GAUSSIAN, GEOMETRIC, UNIFORM }; diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index e559934cf..5d1bb4324 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -276,7 +276,7 @@ __device__ void static_multimap::device_mu using cuda::std::memory_order_relaxed; auto expected_key = this->get_empty_key_sentinel(); auto expected_value = this->get_empty_value_sentinel(); - auto insert_location = current_slot + !(first_slot_is_empty); + auto insert_location = first_slot_is_empty ? current_slot : current_slot + 1; auto& slot_key = insert_location->first; auto& slot_value = insert_location->second; bool key_success = diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 48c40eb0b..8a2560c5a 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -276,56 +276,6 @@ __global__ void find( } } -/** - * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * - * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * - * @tparam block_size The size of the thread block - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param first Beginning of the sequence of keys - * @param last End of the sequence of keys - * @param output_begin Beginning of the sequence of booleans for the presence of each key - * @param view Device view used to access the hash map's slot storage - * @param hash The unary function to apply to hash each key - * @param key_equal The binary function to compare two keys for equality - */ -template -__global__ void contains( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid; - __shared__ bool writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to - * flush more frequently, causing increased sector stores from L2 to global memory. - * By writing results to shared memory and then synchronizing before writing back - * to global, we no longer rely on L1, preventing the increase in sector stores from - * L2 to global and improving performance. - */ - writeBuffer[threadIdx.x] = view.contains(key, hash, key_equal); - __syncthreads(); - *(output_begin + key_idx) = writeBuffer[threadIdx.x]; - key_idx += gridDim.x * block_size; - } -} - /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. * @@ -386,110 +336,6 @@ __global__ void contains( } } -/** - * @brief Finds all the values corresponding to all keys in the range `[first, last)`. - * - * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and - * the empty value sentinel. - * - * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. - * - * @tparam block_size The size of the thread block - * @tparam buffer_size Size of the output buffer - * @tparam Key key type - * @tparam Value The type of the mapped value for the map - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @tparam atomicT Type of atomic storage - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param first Beginning of the sequence of keys - * @param last End of the sequence of keys - * @param output_begin Beginning of the sequence of values retrieved for each key - * @param num_items Size of the output sequence - * @param view Device view used to access the hash map's slot storage - * @param hash The unary function to apply to hash each key - * @param key_equal The binary function to compare two keys for equality - */ -template -__global__ void find_all(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_items, - viewT view, - Hash hash, - KeyEqual key_equal) -{ - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid; - - constexpr uint32_t step = 1; - auto const end = view.end(); - - __shared__ cuco::pair_type output_buffer[buffer_size]; - __shared__ uint32_t block_counter; // TODO: do we really need uint32_t? - - if (0 == threadIdx.x) { block_counter = 0; } - - if (first + key_idx < last) { - auto key = *(first + key_idx); - auto found = view.find_all(key, hash, key_equal); - - bool running = true; - bool found_match = false; - - while (__syncthreads_or(running)) { - if (running) { - if (found == end) { - running = false; - } else { - found_match = true; - - auto index = atomicAdd_block(&block_counter, step); - output_buffer[index] = cuco::make_pair(key, (*found).second); - - ++found; - } - - if ((not running) && (not found_match)) { - auto index = atomicAdd_block(&block_counter, step); - output_buffer[index] = cuco::make_pair(key, view.get_empty_value_sentinel()); - } - } // if (running) - - __syncthreads(); - - if ((block_counter + block_size) > buffer_size) { - flush_output_buffer( - block_counter, output_buffer, num_items, output_begin); - __syncthreads(); - if (0 == threadIdx.x) { block_counter = 0; } - __syncthreads(); - } - } // while syncthreads_or - } - - // Final flush of output cache - if (block_counter > 0) { - flush_output_buffer( - block_counter, output_buffer, num_items, output_begin); - } -} - /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * @@ -634,52 +480,6 @@ __global__ void find_all(InputIt first, } } -/** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. - * - * @tparam block_size The size of the thread block - * @tparam Value The type of the mapped value for the map - * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's - * `key_type` - * @tparam atomicT Type of atomic storage - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable - * @tparam KeyEqual Binary callable - * @param first Beginning of the sequence of keys to count - * @param last End of the sequence of keys to count - * @param num_items The number of all the matches for a sequence of keys - * @param view Device view used to access the hash map's slot storage - * @param hash Unary function to apply to hash each key - * @param key_equal Binary function to compare two keys for equality - */ -template -__global__ void count( - InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) -{ - typedef cub::BlockReduce BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; - - auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid; - - while (it < last) { - thread_num_items += view.count(*it, hash, key_equal); - it += gridDim.x * block_size; - } - - // compute number of successfully inserted elements for each block - // and atomically add to the grand total - std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { *num_items += block_num_items; } -} - /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. * From 28fb29d64bae8aebba1c51930525f41e2b3c5383 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 25 May 2021 12:47:49 -0400 Subject: [PATCH 104/267] Remove multimap find functions --- include/cuco/detail/static_multimap.inl | 160 ------------------ .../cuco/detail/static_multimap_kernels.cuh | 117 ------------- include/cuco/static_multimap.cuh | 122 ------------- 3 files changed, 399 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 5d1bb4324..3526faca1 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -81,30 +81,6 @@ void static_multimap::insert( CUCO_CUDA_TRY(cudaDeviceSynchronize()); } -template -template -void static_multimap::find(InputIt first, - InputIt last, - OutputIt output_begin, - cudaStream_t stream, - Hash hash, - KeyEqual key_equal) -{ - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); - - detail::find - <<>>(first, last, output_begin, view, hash, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); -} - template ::device_mu } } -template -template -__device__ typename static_multimap::device_view::iterator -static_multimap::device_view::find( - Key const& k, Hash hash, KeyEqual key_equal) noexcept -{ - auto current_slot = initial_slot(k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - // Key doesn't exist, return end() - if (detail::bitwise_compare(existing_key, this->get_empty_key_sentinel())) { - return this->end(); - } - - // Key exists, return iterator to location - if (key_equal(existing_key, k)) { return current_slot; } - - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ - typename static_multimap::device_view::const_iterator - static_multimap::device_view::find( - Key const& k, Hash hash, KeyEqual key_equal) const noexcept -{ - auto current_slot = initial_slot(k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - // Key doesn't exist, return end() - if (detail::bitwise_compare(existing_key, this->get_empty_key_sentinel())) { - return this->end(); - } - - // Key exists, return iterator to location - if (key_equal(existing_key, k)) { return current_slot; } - - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ typename static_multimap::device_view::iterator -static_multimap::device_view::find( - CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept -{ - auto current_slot = initial_slot(g, k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = - detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); - - // the key we were searching for was found by one of the threads, - // so we return an iterator to the entry - auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); - if (exists) { - uint32_t src_lane = __ffs(exists) - 1; - // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the - // current_slot and shuffle that instead. - intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return reinterpret_cast(res_slot); - } - - // we found an empty slot, meaning that the key we're searching for isn't present - if (g.ballot(slot_is_empty)) { return this->end(); } - - // otherwise, all slots in the current window are full with other keys, so we move onto the - // next window - current_slot = next_slot(g, current_slot); - } -} - -template -template -__device__ - typename static_multimap::device_view::const_iterator - static_multimap::device_view::find( - CG g, Key const& k, Hash hash, KeyEqual key_equal) const noexcept -{ - auto current_slot = initial_slot(g, k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = - detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); - - // the key we were searching for was found by one of the threads, so we return an iterator to - // the entry - auto const exists = g.ballot(not slot_is_empty and key_equal(existing_key, k)); - if (exists) { - uint32_t src_lane = __ffs(exists) - 1; - // TODO: This shouldn't cast an iterator to an int to shuffle. Instead, get the index of the - // current_slot and shuffle that instead. - intptr_t res_slot = g.shfl(reinterpret_cast(current_slot), src_lane); - return reinterpret_cast(res_slot); - } - - // we found an empty slot, meaning that the key we're searching - // for isn't in this submap, so we should move onto the next one - if (g.ballot(slot_is_empty)) { return this->end(); } - - // otherwise, all slots in the current window are full with other keys, - // so we move onto the next window in the current submap - - current_slot = next_slot(g, current_slot); - } -} - template -__global__ void find( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid; - __shared__ Value writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); - auto found = view.find(key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to - * flush more frequently, causing increased sector stores from L2 to global memory. - * By writing results to shared memory and then synchronizing before writing back - * to global, we no longer rely on L1, preventing the increase in sector stores from - * L2 to global and improving performance. - */ - writeBuffer[threadIdx.x] = found->second.load(cuda::std::memory_order_relaxed); - __syncthreads(); - *(output_begin + key_idx) = writeBuffer[threadIdx.x]; - key_idx += gridDim.x * block_size; - } -} - -/** - * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared - * to the non Cooperative Group `find` at moderate to high load factors. - * - * @tparam block_size The size of the thread block - * @tparam tile_size The number of threads in the Cooperative Groups used to perform - * inserts - * @tparam Value The type of the mapped value for the map - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param first Beginning of the sequence of keys - * @param last End of the sequence of keys - * @param output_begin Beginning of the sequence of values retrieved for each key - * @param view Device view used to access the hash map's slot storage - * @param hash The unary function to apply to hash each key - * @param key_equal The binary function to compare two keys for equality - */ -template -__global__ void find( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; - __shared__ Value writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); - auto found = view.find(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to - * flush more frequently, causing increased sector stores from L2 to global memory. - * By writing results to shared memory and then synchronizing before writing back - * to global, we no longer rely on L1, preventing the increase in sector stores from - * L2 to global and improving performance. - */ - if (tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found->second.load(cuda::std::memory_order_relaxed); - } - __syncthreads(); - if (tile.thread_rank() == 0) { - *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; - } - key_idx += (gridDim.x * block_size) / tile_size; - } -} - /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. * diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 35ce7a345..5591c7403 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -200,35 +200,6 @@ class static_multimap { Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}); - /** - * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + - * i)`. Else, copies the empty value sentinel. - * - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param first Beginning of the sequence of keys - * @param last End of the sequence of keys - * @param output_begin Beginning of the sequence of values retrieved for each key - * @param hash The unary function to apply to hash each key - * @param key_equal The binary function to compare two keys for equality - */ - template , - typename KeyEqual = thrust::equal_to> - void find(InputIt first, - InputIt last, - OutputIt output_begin, - cudaStream_t stream = 0, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}); - /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. * @@ -772,99 +743,6 @@ class static_multimap { source_device_view.get_empty_value_sentinel()); } - /** - * @brief Finds the value corresponding to the key `k`. - * - * Returns an iterator to the pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. - * - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return An iterator to the position at which the key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ iterator find(Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; - - /** @brief Finds the value corresponding to the key `k`. - * - * Returns a const_iterator to the pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. - * - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return An iterator to the position at which the key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ const_iterator find(Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) const noexcept; - - /** - * @brief Finds the value corresponding to the key `k`. - * - * Returns an iterator to the pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single find. This provides a - * significant boost in throughput compared to the non Cooperative Group - * `find` at moderate to high load factors. - * - * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the find - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return An iterator to the position at which the key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ iterator - find(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Finds the value corresponding to the key `k`. - * - * Returns a const_iterator to the pair whose key is equivalent to `k`. - * If no such pair exists, returns `end()`. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single find. This provides a - * significant boost in throughput compared to the non Cooperative Group - * `find` at moderate to high load factors. - * - * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the find - * @param k The key to search for - * @param hash The unary callable used to hash the key - * @param key_equal The binary callable used to compare two keys - * for equality - * @return An iterator to the position at which the key/value pair - * containing `k` was inserted - */ - template , - typename KeyEqual = thrust::equal_to> - __device__ const_iterator - find(CG g, Key const& k, Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) const noexcept; - /** * @brief Indicates whether the key `k` was inserted into the map. * From f6c38378974505565ed7f4a159d94759ba7a593a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 26 May 2021 11:44:28 -0400 Subject: [PATCH 105/267] Update multimap example: replace find with count and find_all --- examples/static_multimap/static_multimap_example.cu | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/static_multimap/static_multimap_example.cu b/examples/static_multimap/static_multimap_example.cu index 00ab44f89..4b0292e06 100644 --- a/examples/static_multimap/static_multimap_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -47,11 +47,16 @@ int main(void) // Sequence of keys {0, 1, 2, ...} thrust::device_vector keys_to_find(50'000); thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); - thrust::device_vector found_values(50'000); - // Finds all keys {0, 1, 2, ...} and stores associated values into `found_values` - // If a key `keys_to_find[i]` doesn't exist, `found_values[i] == empty_value_sentinel` - map.find(keys_to_find.begin(), keys_to_find.end(), found_values.begin()); + // Counts number of matches for all keys {0, 1, 2, ... 50'000} + auto num_matches = map.count(keys_to_find.begin(), keys_to_find.end()); + + std::size_t output_size = num_matches + 25'000; + thrust::device_vector> d_results(output_size); + + // Finds all keys {0, 1, 2, ...} and stores associated key/value pairs into `d_results` + // If a key `keys_to_find[i]` doesn't exist, `d_results[i].second == empty_value_sentinel` + map.find_all(keys_to_find.begin(), keys_to_find.end(), d_results.data().get()); return 0; } From 0518095bda86165ef82d7ca8edf8972c38050e0f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 26 May 2021 11:46:45 -0400 Subject: [PATCH 106/267] Remove naive insert global function --- .../cuco/detail/static_multimap_kernels.cuh | 31 ------------------- 1 file changed, 31 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 0083347d6..c2c16a8d3 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -85,37 +85,6 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s } } -/** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * - * If multiple keys in `[first, last)` compare equal, it is unspecified which - * element is inserted. - * - * @tparam block_size - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type - * @param first Beginning of the sequence of key/value pairs - * @param last End of the sequence of key/value pairs - * @param view Mutable device view used to access the hash map's slot storage - * @param hash The unary function to apply to hash each key - * @param key_equal The binary function used to compare two keys for equality - */ -template -__global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid; - - while (it < last) { - typename viewT::value_type const insert_pair{*it}; - view.insert(insert_pair, hash, key_equal); - it += gridDim.x * block_size; - } -} - /** * @brief Inserts all key/value pairs in the range `[first, last)`. * From 7bdad3bca60b233e6de82ddf2a83676c5efb46fa Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 26 May 2021 11:47:11 -0400 Subject: [PATCH 107/267] Update contains to use vector load --- include/cuco/detail/static_multimap.inl | 46 ++++++++----------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 3526faca1..2bde5a90c 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -288,28 +288,6 @@ __device__ void static_multimap::device_mu } } -template -template -__device__ bool static_multimap::device_view::contains( - Key const& k, Hash hash, KeyEqual key_equal) noexcept -{ - auto current_slot = initial_slot(k, hash); - - while (true) { - auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - - if (detail::bitwise_compare(existing_key, empty_key_sentinel_)) { return false; } - - if (key_equal(existing_key, k)) { return true; } - - current_slot = next_slot(current_slot); - } -} - template ::device_vi auto current_slot = initial_slot(g, k, hash); while (true) { - key_type const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = - detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); + auto const first_slot_is_empty = (arr[0].first == get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - // the key we were searching for was found by one of the threads, so we return an iterator to - // the entry - if (g.ballot(not slot_is_empty and key_equal(existing_key, k))) { return true; } + // the key we were searching for was found by one of the threads, so we return true + if (g.any(first_equals or second_equals)) { return true; } // we found an empty slot, meaning that the key we're searching for isn't present - if (g.ballot(slot_is_empty)) { return false; } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { return false; } // otherwise, all slots in the current window are full with other keys, so we move onto the next // window From 0f90d541e16ce2e881872bb6950d0a074e559a62 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 26 May 2021 14:26:58 -0400 Subject: [PATCH 108/267] prime.hpp instead of prime.cuh --- include/cuco/detail/{prime.cuh => prime.hpp} | 0 include/cuco/static_multimap.cuh | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename include/cuco/detail/{prime.cuh => prime.hpp} (100%) diff --git a/include/cuco/detail/prime.cuh b/include/cuco/detail/prime.hpp similarity index 100% rename from include/cuco/detail/prime.cuh rename to include/cuco/detail/prime.hpp diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 5591c7403..1512ebbdd 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include namespace cuco { From 0148769dea574c8514fae509c006baf139b36725 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 27 May 2021 18:39:37 -0400 Subject: [PATCH 109/267] Add probe sequence header: DoubleHashing class --- include/cuco/detail/probe_sequences.cuh | 79 +++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 include/cuco/detail/probe_sequences.cuh diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh new file mode 100644 index 000000000..a7c9414c5 --- /dev/null +++ b/include/cuco/detail/probe_sequences.cuh @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2020, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +#include +#include + +namespace cuco { + +template , + typename Hash2 = cuco::detail::MurmurHash3_32, + cuda::thread_scope Scope = cuda::thread_scope_device> +class DoubleHashing { + public: + using value_type = cuco::pair_type; + using key_type = Key; + using mapped_type = Value; + using atomic_key_type = cuda::atomic; + using atomic_mapped_type = cuda::atomic; + using pair_atomic_type = cuco::pair_type; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + + __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } + + __host__ __device__ explicit DoubleHashing(iterator slots, std::size_t capacity) + : slots_{slots}, capacity_{capacity} + { + } + + __host__ __device__ std::size_t get_capacity() const noexcept { return capacity_; } + + __device__ iterator get_slots() noexcept { return slots_; } + __device__ const_iterator get_slots() const noexcept { return slots_; } + + template + __device__ iterator initial_slot(CG const& g, Key const k) noexcept + { + step_size_ = (hash2(k + 1) % (capacity_ / (cg_size() * 2) - 1) + 1) * cg_size() * 2; + std::size_t index = + hash1(k) % (capacity_ / (cg_size() * 2)) * cg_size() * 2 + g.thread_rank() * 2; + return slots_ + index; + } + + template + __device__ iterator next_slot(CG const& g, iterator s) noexcept + { + std::size_t index = s - slots_; + return &slots_[(index + step_size_) % capacity_]; + } + + private: + iterator slots_; + const std::size_t capacity_; + std::size_t step_size_; + Hash1 hash1{}; + Hash2 hash2{}; +}; // class DoubleHashing + +} // namespace cuco From ea7fe7879cd1bdd353b37951ca96ebcd734aa969 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 27 May 2021 18:41:51 -0400 Subject: [PATCH 110/267] Passing ProbeSequence as template parameter instead of CGSize --- .../static_multimap/find_all_bench.cu | 5 +- .../static_multimap/static_multimap_bench.cu | 12 +- include/cuco/detail/static_multimap.inl | 115 ++++----- .../cuco/detail/static_multimap_kernels.cuh | 27 +- include/cuco/static_multimap.cuh | 238 +++--------------- 5 files changed, 101 insertions(+), 296 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 21de4a26d..40582eb38 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -78,7 +78,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap map{size, -1, -1}; + cuco::static_multimap> map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); timer.start(); @@ -89,10 +89,8 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( auto const stride = 1; auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); - using Hash = cuco::detail::MurmurHash3_32; using KeyEqual = thrust::equal_to; - Hash hash; KeyEqual key_equal; using atomic_ctr_type = typename cuco::static_multimap::atomic_ctr_type; @@ -110,7 +108,6 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( d_results.data().get(), num_items, view, - hash, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); timer.stop(); diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index e53efcee6..a4a6a0a55 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -57,7 +57,6 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_i auto const occupancy = state.get_float64("Occupancy"); std::size_t const size = num_keys / occupancy; - auto const cg_size = 8; std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -77,7 +76,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_i state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap map{size, -1, -1}; + cuco::static_multimap map{size, -1, -1}; // Use timers to explicitly mark the target region timer.start(); @@ -109,7 +108,6 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c auto const matching_rate = state.get_float64("MatchingRate"); std::size_t const size = num_keys / occupancy; - auto const cg_size = 8; std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -130,7 +128,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c state.add_element_count(num_keys, "NumKeys"); - cuco::static_multimap map{size, -1, -1}; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, @@ -164,7 +162,6 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f auto const matching_rate = state.get_float64("MatchingRate"); std::size_t const size = num_keys / occupancy; - auto const cg_size = 8; std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -185,7 +182,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f state.add_element_count(num_keys, "NumKeys"); - cuco::static_multimap map{size, -1, -1}; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); auto num_matches = map.count(d_keys.begin(), d_keys.end()); @@ -218,7 +215,6 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r auto const matching_rate = state.get_float64("MatchingRate"); std::size_t const size = num_keys / occupancy; - auto const cg_size = 8; std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -239,7 +235,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r state.add_element_count(num_keys, "NumKeys"); - cuco::static_multimap map{size, -1, -1}; + cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); auto num_matches = map.count(d_keys.begin(), d_keys.end()); diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 2bde5a90c..594d93793 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -30,14 +30,12 @@ enum class insert_result { template -static_multimap::static_multimap(std::size_t capacity, - Key empty_key_sentinel, - Value empty_value_sentinel, - Allocator const& alloc) - : capacity_{cuco::detail::get_valid_capacity(capacity)}, +static_multimap::static_multimap( + std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel, Allocator const& alloc) + : capacity_{cuco::detail::get_valid_capacity(capacity)}, empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, slot_allocator_{alloc} @@ -53,76 +51,70 @@ static_multimap::static_multimap(std::size template -static_multimap::~static_multimap() +static_multimap::~static_multimap() { std::allocator_traits::deallocate(slot_allocator_, slots_, capacity_); } template -template -void static_multimap::insert( - InputIt first, InputIt last, cudaStream_t stream, Hash hash, KeyEqual key_equal) +template +void static_multimap::insert(InputIt first, + InputIt last, + cudaStream_t stream, + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const stride = 1; - auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_mutable_view(); - detail::insert - <<>>(first, first + num_keys, view, hash, key_equal); + detail::insert + <<>>(first, first + num_keys, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } template -template -void static_multimap::contains(InputIt first, - InputIt last, - OutputIt output_begin, - cudaStream_t stream, - Hash hash, - KeyEqual key_equal) +template +void static_multimap::contains( + InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const stride = 1; - auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::contains - <<>>(first, last, output_begin, view, hash, key_equal); + detail::contains + <<>>(first, last, output_begin, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } template -template -OutputIt static_multimap::find_all(InputIt first, - InputIt last, - OutputIt output_begin, - cudaStream_t stream, - Hash hash, - KeyEqual key_equal) +template +OutputIt static_multimap::find_all( + InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const buffer_size = block_size * 3; auto const stride = 1; - auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); atomic_ctr_type* num_items; @@ -132,9 +124,8 @@ OutputIt static_multimap::find_all(InputIt CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::find_all - <<>>( - first, last, output_begin, num_items, view, hash, key_equal); + detail::find_all + <<>>(first, last, output_begin, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); auto output_end = output_begin + *num_items; @@ -145,17 +136,19 @@ OutputIt static_multimap::find_all(InputIt template -template -std::size_t static_multimap::count( - InputIt first, InputIt last, cudaStream_t stream, Hash hash, KeyEqual key_equal) +template +std::size_t static_multimap::count(InputIt first, + InputIt last, + cudaStream_t stream, + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; auto const stride = 1; - auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); atomic_ctr_type* num_items; @@ -165,8 +158,8 @@ std::size_t static_multimap::count( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::count - <<>>(first, last, num_items, view, hash, key_equal); + detail::count + <<>>(first, last, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); size_t result = *num_items; @@ -177,14 +170,15 @@ std::size_t static_multimap::count( template -template -__device__ void static_multimap::device_mutable_view::insert( - value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept +template +__device__ void +static_multimap::device_mutable_view::insert( + value_type const& insert_pair, KeyEqual key_equal) noexcept { - auto current_slot{initial_slot(insert_pair.first, hash)}; + auto current_slot{initial_slot(insert_pair.first)}; while (true) { using cuda::std::memory_order_relaxed; @@ -218,14 +212,15 @@ __device__ void static_multimap::device_mu template -template -__device__ void static_multimap::device_mutable_view::insert( - CG g, value_type const& insert_pair, Hash hash, KeyEqual key_equal) noexcept +template +__device__ void +static_multimap::device_mutable_view::insert( + CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, insert_pair.first, hash); + auto current_slot = initial_slot(g, insert_pair.first); while (true) { // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); pair arr[2]; @@ -290,14 +285,14 @@ __device__ void static_multimap::device_mu template -template -__device__ bool static_multimap::device_view::contains( - CG g, Key const& k, Hash hash, KeyEqual key_equal) noexcept +template +__device__ bool static_multimap::device_view::contains( + CG g, Key const& k, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k, hash); + auto current_slot = initial_slot(g, k); while (true) { pair arr[2]; diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index c2c16a8d3..70a182254 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -100,21 +100,18 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs * @param view Mutable device view used to access the hash map's slot storage - * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ template -__global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEqual key_equal) +__global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -123,7 +120,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEq while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - view.insert(tile, insert_pair, hash, key_equal); + view.insert(tile, insert_pair, key_equal); it += (gridDim.x * block_size) / tile_size; } } @@ -144,13 +141,11 @@ __global__ void insert(InputIt first, InputIt last, viewT view, Hash hash, KeyEq * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key * @param view Device view used to access the hash map's slot storage - * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ template __global__ void contains( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) + InputIt first, InputIt last, OutputIt output_begin, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -170,7 +164,7 @@ __global__ void contains( while (first + key_idx < last) { auto key = *(first + key_idx); - auto found = view.contains(tile, key, hash, key_equal); + auto found = view.contains(tile, key, key_equal); /* * The ld.relaxed.gpu instruction used in view.find causes L1 to @@ -210,14 +204,12 @@ __global__ void contains( * convertible to the map's `mapped_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of values retrieved for each key * @param num_items Size of the output sequence * @param view Device view used to access the hash map's slot storage - * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ @@ -230,14 +222,12 @@ template __global__ void find_all(InputIt first, InputIt last, OutputIt output_begin, atomicT* num_items, viewT view, - Hash hash, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); @@ -258,7 +248,7 @@ __global__ void find_all(InputIt first, bool running = ((first + key_idx) < last); bool found_match = false; - if (running) { current_slot = view.initial_slot(tile, key, hash); } + if (running) { current_slot = view.initial_slot(tile, key); } while (__syncthreads_or(running)) { if (running) { @@ -342,13 +332,11 @@ __global__ void find_all(InputIt first, * `key_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Hash Unary callable * @tparam KeyEqual Binary callable * @param first Beginning of the sequence of keys to count * @param last End of the sequence of keys to count * @param num_items The number of all the matches for a sequence of keys * @param view Device view used to access the hash map's slot storage - * @param hash Unary function to apply to hash each key * @param key_equal Binary function to compare two keys for equality */ template __global__ void count( - InputIt first, InputIt last, atomicT* num_items, viewT view, Hash hash, KeyEqual key_equal) + InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -373,7 +360,7 @@ __global__ void count( while (first + key_idx < last) { auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key, hash); + auto current_slot = view.initial_slot(tile, key); while (true) { pair arr[2]; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 1512ebbdd..3455bb248 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -20,7 +20,6 @@ #include #include #include -#include #include #include @@ -35,9 +34,8 @@ #endif #include -#include -#include #include +#include #include namespace cuco { @@ -112,7 +110,7 @@ namespace cuco { */ template , cuda::thread_scope Scope = cuda::thread_scope_device, typename Allocator = cuco::cuda_allocator> class static_multimap { @@ -142,6 +140,8 @@ class static_multimap { static_multimap& operator=(static_multimap const&) = delete; static_multimap& operator=(static_multimap&&) = delete; + static constexpr uint32_t cg_size() noexcept { return ProbeSequence::cg_size(); } + /** * @brief Construct a fixed-size map with the specified capacity and sentinel values. * @brief Construct a statically sized map with the specified number of slots @@ -184,20 +184,15 @@ class static_multimap { * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs - * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ - template , - typename KeyEqual = thrust::equal_to> + template > void insert(InputIt first, InputIt last, cudaStream_t stream = 0, - Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}); /** @@ -209,23 +204,17 @@ class static_multimap { * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key - * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ - template , - typename KeyEqual = thrust::equal_to> + template > void contains(InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream = 0, - Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}); /** @@ -242,45 +231,34 @@ class static_multimap { * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `value_type` - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of key/value pairs retrieved for each key - * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality * @return The iterator indicating the last valid key/value pairs in the output */ - template , - typename KeyEqual = thrust::equal_to> + template > OutputIt find_all(InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream = 0, - Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}); /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. * * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` - * @tparam Hash Unary callable * @tparam KeyEqual Binary callable * @param first Beginning of the sequence of keys to count * @param last End of the sequence of keys to count - * @param hash Unary function to apply to hash each key * @param key_equal Binary function to compare two keys for equality * @return The sum of total occurrences of all keys in `[first,last)` */ - template , - typename KeyEqual = thrust::equal_to> + template > std::size_t count(InputIt first, InputIt last, cudaStream_t stream = 0, - Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}); private: @@ -294,19 +272,16 @@ class static_multimap { using const_iterator = pair_atomic_type const*; private: - pair_atomic_type* slots_{}; ///< Pointer to flat slots storage - std::size_t capacity_{}; ///< Total number of slots + ProbeSequence probe_sequence_; Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial Value of empty slot - std::size_t step_size_{}; public: __host__ __device__ device_view_base(pair_atomic_type* slots, std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel) noexcept - : slots_{slots}, - capacity_{capacity}, + : probe_sequence_{slots, capacity}, empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel} { @@ -317,41 +292,16 @@ class static_multimap { * * @return Slots array */ - __device__ pair_atomic_type* get_slots() noexcept { return slots_; } + __device__ pair_atomic_type* get_slots() noexcept { return probe_sequence_.get_slots(); } /** * @brief Gets slots array. * * @return Slots array */ - __device__ pair_atomic_type const* get_slots() const noexcept { return slots_; } - - /** - * @brief Returns the initial slot for a given key `k` - * - * @tparam Hash Unary callable type - * @param k The key to get the slot for - * @param hash The unary callable used to hash the key - * @return Pointer to the initial slot for `k` - */ - template - __device__ iterator initial_slot(Key const& k, Hash hash) noexcept - { - return &slots_[hash(k) % capacity_]; - } - - /** - * @brief Returns the initial slot for a given key `k` - * - * @tparam Hash Unary callable type - * @param k The key to get the slot for - * @param hash The unary callable used to hash the key - * @return Pointer to the initial slot for `k` - */ - template - __device__ const_iterator initial_slot(Key const& k, Hash hash) const noexcept + __device__ pair_atomic_type const* get_slots() const noexcept { - return &slots_[hash(k) % capacity_]; + return probe_sequence_.get_slots(); } /** @@ -360,20 +310,14 @@ class static_multimap { * To be used for Cooperative Group based probing. * * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type * @param g the Cooperative Group for which the initial slot is needed * @param k The key to get the slot for - * @param hash The unary callable used to hash the key * @return Pointer to the initial slot for `k` */ - template - __device__ iterator initial_slot(CG g, Key const& k, Hash hash) noexcept + template + __device__ iterator initial_slot(CG const& g, Key const& k) noexcept { - auto const cg_size = g.size(); - step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; - auto const slot_index = - hash(k) % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; - return begin_slot() + slot_index; + return probe_sequence_.initial_slot(g, k); } /** @@ -382,43 +326,14 @@ class static_multimap { * To be used for Cooperative Group based probing. * * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type * @param g the Cooperative Group for which the initial slot is needed * @param k The key to get the slot for - * @param hash The unary callable used to hash the key * @return Pointer to the initial slot for `k` */ - template - __device__ const_iterator initial_slot(CG g, Key const& k, Hash hash) const noexcept - { - auto const cg_size = g.size(); - step_size_ = (hash(k + 1) % (capacity_ / (cg_size * 2) - 1) + 1) * cg_size * 2; - auto const slot_index = - hash(k) % (capacity_ / (cg_size * 2)) * cg_size * 2 + g.thread_rank() * 2; - return begin_slot() + slot_index; - } - - /** - * @brief Given a slot `s`, returns the next slot. - * - * If `s` is the last slot, wraps back around to the first slot. - * - * @param s The slot to advance - * @return The next slot after `s` - */ - __device__ iterator next_slot(iterator s) noexcept { return (++s < end()) ? s : begin_slot(); } - - /** - * @brief Given a slot `s`, returns the next slot. - * - * If `s` is the last slot, wraps back around to the first slot. - * - * @param s The slot to advance - * @return The next slot after `s` - */ - __device__ const_iterator next_slot(const_iterator s) const noexcept + template + __device__ const_iterator initial_slot(CG g, Key const& k) const noexcept { - return (++s < end()) ? s : begin_slot(); + return probe_sequence_.initial_slot(g, k); } /** @@ -433,10 +348,9 @@ class static_multimap { * @return The next slot after `s` */ template - __device__ iterator next_slot(CG g, iterator s) noexcept + __device__ iterator next_slot(CG const& g, iterator s) noexcept { - uint32_t index = s - slots_; - return &slots_[(index + step_size_) % capacity_]; + return probe_sequence_.next_slot(g, s); } /** @@ -451,10 +365,9 @@ class static_multimap { * @return The next slot after `s` */ template - __device__ const_iterator next_slot(CG g, const_iterator s) const noexcept + __device__ const_iterator next_slot(CG const& g, const_iterator s) const noexcept { - uint32_t index = s - slots_; - return &slots_[(index + step_size_) % capacity_]; + return probe_sequence_.next_slot(g, s); } public: @@ -463,7 +376,10 @@ class static_multimap { * * @return The maximum number of elements the hash map can hold */ - __host__ __device__ std::size_t get_capacity() const noexcept { return capacity_; } + __host__ __device__ std::size_t get_capacity() const noexcept + { + return probe_sequence_.get_capacity(); + } /** * @brief Gets the sentinel value used to represent an empty key slot. @@ -481,70 +397,6 @@ class static_multimap { { return empty_value_sentinel_; } - - /** - * @brief Returns iterator to the first slot. - * - * @note Unlike `std::map::begin()`, the `begin_slot()` iterator does _not_ point to the first - * occupied slot. Instead, it refers to the first slot in the array of contiguous slot storage. - * Iterating from `begin_slot()` to `end_slot()` will iterate over all slots, including those - * both empty and filled. - * - * There is no `begin()` iterator to avoid confusion as it is not possible to provide an - * iterator over only the filled slots. - * - * @return Iterator to the first slot - */ - __device__ iterator begin_slot() noexcept { return slots_; } - - /** - * @brief Returns iterator to the first slot. - * - * @note Unlike `std::map::begin()`, the `begin_slot()` iterator does _not_ point to the first - * occupied slot. Instead, it refers to the first slot in the array of contiguous slot storage. - * Iterating from `begin_slot()` to `end_slot()` will iterate over all slots, including those - * both empty and filled. - * - * There is no `begin()` iterator to avoid confusion as it is not possible to provide an - * iterator over only the filled slots. - * - * @return Iterator to the first slot - */ - __device__ const_iterator begin_slot() const noexcept { return slots_; } - - /** - * @brief Returns a const_iterator to one past the last slot. - * - * @return A const_iterator to one past the last slot - */ - __host__ __device__ const_iterator end_slot() const noexcept { return slots_ + capacity_; } - - /** - * @brief Returns an iterator to one past the last slot. - * - * @return An iterator to one past the last slot - */ - __host__ __device__ iterator end_slot() noexcept { return slots_ + capacity_; } - - /** - * @brief Returns a const_iterator to one past the last slot. - * - * `end()` calls `end_slot()` and is provided for convenience for those familiar with checking - * an iterator returned from `find()` against the `end()` iterator. - * - * @return A const_iterator to one past the last slot - */ - __host__ __device__ const_iterator end() const noexcept { return end_slot(); } - - /** - * @brief Returns an iterator to one past the last slot. - * - * `end()` calls `end_slot()` and is provided for convenience for those familiar with checking - * an iterator returned from `find()` against the `end()` iterator. - * - * @return An iterator to one past the last slot - */ - __host__ __device__ iterator end() noexcept { return end_slot(); } }; public: @@ -598,39 +450,29 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map. * - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param insert_pair The pair to insert - * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys for * equality * @return void. */ - template , - typename KeyEqual = thrust::equal_to> - __device__ void insert(value_type const& insert_pair, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ void insert(value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Inserts the specified key/value pair into the map. * * @tparam Cooperative Group type - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert - * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys for * equality * @return void. */ - template , - typename KeyEqual = thrust::equal_to> + template > __device__ void insert(CG g, value_type const& insert_pair, - Hash hash = Hash{}, KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device mutable view @@ -749,21 +591,16 @@ class static_multimap { * If the key `k` was inserted into the map, find returns * true. Otherwise, it returns false. * - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param k The key to search for - * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ - template , - typename KeyEqual = thrust::equal_to> - __device__ bool contains(Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ bool contains(Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map. @@ -775,23 +612,16 @@ class static_multimap { * `contains` at moderate to high load factors. * * @tparam CG Cooperative Group type - * @tparam Hash Unary callable type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for - * @param hash The unary callable used to hash the key * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ - template , - typename KeyEqual = thrust::equal_to> - __device__ bool contains(CG g, - Key const& k, - Hash hash = Hash{}, - KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ bool contains(CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device_view /** From 14ca3fd24f251c5e0a6596f64010cd4361ffcc56 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 27 May 2021 18:57:38 -0400 Subject: [PATCH 111/267] Minor corrections: follow naming convention --- include/cuco/detail/probe_sequences.cuh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index a7c9414c5..0eb35bb46 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -55,9 +55,9 @@ class DoubleHashing { template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { - step_size_ = (hash2(k + 1) % (capacity_ / (cg_size() * 2) - 1) + 1) * cg_size() * 2; + step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * 2) - 1) + 1) * cg_size() * 2; std::size_t index = - hash1(k) % (capacity_ / (cg_size() * 2)) * cg_size() * 2 + g.thread_rank() * 2; + hash1_(k) % (capacity_ / (cg_size() * 2)) * cg_size() * 2 + g.thread_rank() * 2; return slots_ + index; } @@ -72,8 +72,8 @@ class DoubleHashing { iterator slots_; const std::size_t capacity_; std::size_t step_size_; - Hash1 hash1{}; - Hash2 hash2{}; + Hash1 hash1_{}; + Hash2 hash2_{}; }; // class DoubleHashing } // namespace cuco From f16c15399766f440e5401ed37f1395dba6a18fb0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 31 May 2021 12:05:21 -0400 Subject: [PATCH 112/267] Add inner/outer functions for count and retrieve --- include/cuco/detail/static_multimap.inl | 95 ++++- .../cuco/detail/static_multimap_kernels.cuh | 332 ++++++++++++++---- include/cuco/static_multimap.cuh | 82 ++++- 3 files changed, 412 insertions(+), 97 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 594d93793..455f8f158 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -101,13 +101,77 @@ void static_multimap::contains( CUCO_CUDA_TRY(cudaDeviceSynchronize()); } +template +template +std::size_t static_multimap::count_inner( + InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + detail::count_inner + <<>>(first, last, num_items, view, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + + size_t result = *num_items; + CUCO_CUDA_TRY(cudaFree(num_items)); + + return result; +} + +template +template +std::size_t static_multimap::count_outer( + InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + detail::count_outer + <<>>(first, last, num_items, view, key_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + + size_t result = *num_items; + CUCO_CUDA_TRY(cudaFree(num_items)); + + return result; +} + template template -OutputIt static_multimap::find_all( +OutputIt static_multimap::retrieve_inner( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) { auto num_keys = std::distance(first, last); @@ -124,7 +188,7 @@ OutputIt static_multimap::find_all( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::find_all + detail::retrieve_inner <<>>(first, last, output_begin, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -139,17 +203,16 @@ template -template -std::size_t static_multimap::count(InputIt first, - InputIt last, - cudaStream_t stream, - KeyEqual key_equal) +template +OutputIt static_multimap::retrieve_outer( + InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const buffer_size = block_size * 3; + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); atomic_ctr_type* num_items; CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); @@ -158,14 +221,14 @@ std::size_t static_multimap::count( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::count - <<>>(first, last, num_items, view, key_equal); + detail::retrieve_outer + <<>>(first, last, output_begin, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - size_t result = *num_items; + auto output_end = output_begin + *num_items; CUCO_CUDA_TRY(cudaFree(num_items)); - return result; + return output_end; } template +__global__ void count_inner( + InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; + + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_items = 0; + + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key); + + while (true) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + + thread_num_items += (first_equals + second_equals); + + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } + + current_slot = view.next_slot(tile, current_slot); + } + key_idx += (gridDim.x * block_size) / tile_size; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } +} + +/** + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If no matches + * can be found for a given key, the corresponding occurrence is 1. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts + * @tparam Key key type + * @tparam Value The type of the mapped value for the map + * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's + * `key_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam KeyEqual Binary callable + * @param first Beginning of the sequence of keys to count + * @param last End of the sequence of keys to count + * @param num_items The number of all the matches for a sequence of keys + * @param view Device view used to access the hash map's slot storage + * @param key_equal Binary function to compare two keys for equality + */ +template +__global__ void count_outer( + InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; + + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_items = 0; + + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key); + + bool found_match = false; + + while (true) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + auto const first_exists = tile.any(first_equals); + auto const second_exists = tile.any(second_equals); + + if (first_exists or second_exists) { found_match = true; } + + thread_num_items += (first_equals + second_equals); + + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + break; + } + + current_slot = view.next_slot(tile, current_slot); + } + key_idx += (gridDim.x * block_size) / tile_size; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } +} + /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and - * the empty value sentinel. + * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, does nothing. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block - * @tparam tile_size The number of threads in the Cooperative Groups used to perform - * inserts + * @tparam tile_size The number of threads in the Cooperative Groups * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map @@ -223,12 +372,12 @@ template -__global__ void find_all(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_items, - viewT view, - KeyEqual key_equal) +__global__ void retrieve_inner(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_items, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -245,8 +394,7 @@ __global__ void find_all(InputIt first, auto key = *(first + key_idx); typename viewT::iterator current_slot; - bool running = ((first + key_idx) < last); - bool found_match = false; + bool running = ((first + key_idx) < last); if (running) { current_slot = view.initial_slot(tile, key); } @@ -269,8 +417,6 @@ __global__ void find_all(InputIt first, auto const second_exists = tile.ballot(second_equals); if (first_exists or second_exists) { - found_match = true; - auto num_first_matches = __popc(first_exists); auto num_second_matches = __popc(second_exists); @@ -293,14 +439,7 @@ __global__ void find_all(InputIt first, cuco::make_pair(std::move(k), std::move(arr[1].second)); } } - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - running = false; - if ((not found_match) && (lane_id == 0)) { - auto output_idx = atomicAdd_block(&block_counter, 1); - output_buffer[output_idx] = - cuco::make_pair(key, view.get_empty_key_sentinel()); - } - } + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; } } // if running __syncthreads(); @@ -323,73 +462,142 @@ __global__ void find_all(InputIt first, } /** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * + * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and + * the empty value sentinel. + * + * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, + * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block - * @tparam tile_size The number of threads in the Cooperative Groups used to perform inserts + * @tparam tile_size The number of threads in the Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's - * `key_type` + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage - * @tparam KeyEqual Binary callable - * @param first Beginning of the sequence of keys to count - * @param last End of the sequence of keys to count - * @param num_items The number of all the matches for a sequence of keys + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of values retrieved for each key + * @param num_items Size of the output sequence * @param view Device view used to access the hash map's slot storage - * @param key_equal Binary function to compare two keys for equality + * @param key_equal The binary function to compare two keys for equality */ + template -__global__ void count( - InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) +__global__ void retrieve_outer(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_items, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - typedef cub::BlockReduce BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; + const uint32_t lane_id = tile.thread_rank(); - while (first + key_idx < last) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key); + __shared__ uint32_t block_counter; + __shared__ cuco::pair_type output_buffer[buffer_size]; - while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } + if (0 == threadIdx.x) { block_counter = 0; } - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + while (__syncthreads_or(first + key_idx < last)) { + auto key = *(first + key_idx); + typename viewT::iterator current_slot; - thread_num_items += (first_equals + second_equals); + bool running = ((first + key_idx) < last); + bool found_match = false; - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } + if (running) { current_slot = view.initial_slot(tile, key); } - current_slot = view.next_slot(tile, current_slot); - } + while (__syncthreads_or(running)) { + if (running) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + auto const first_exists = tile.ballot(first_equals); + auto const second_exists = tile.ballot(second_equals); + + if (first_exists or second_exists) { + found_match = true; + + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == lane_id) { + output_idx = atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + } + output_idx = tile.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[0].second)); + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[1].second)); + } + } + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if ((not found_match) && (lane_id == 0)) { + auto output_idx = atomicAdd_block(&block_counter, 1); + output_buffer[output_idx] = + cuco::make_pair(key, view.get_empty_key_sentinel()); + } + } + } // if running + + __syncthreads(); + + if ((block_counter + 2 * block_size) > buffer_size) { + flush_output_buffer(block_counter, output_buffer, num_items, output_begin); + + if (0 == threadIdx.x) { block_counter = 0; } + } + + if (running) { current_slot = view.next_slot(tile, current_slot); } + } // while running key_idx += (gridDim.x * block_size) / tile_size; } - // compute number of successfully inserted elements for each block - // and atomically add to the grand total - std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } + // Final remainder flush + if (block_counter > 0) { + flush_output_buffer(block_counter, output_buffer, num_items, output_begin); + } } } // namespace detail diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 3455bb248..943406e1f 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -217,12 +217,44 @@ class static_multimap { cudaStream_t stream = 0, KeyEqual key_equal = KeyEqual{}); + /** + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * + * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` + * @tparam KeyEqual Binary callable + * @param first Beginning of the sequence of keys to count + * @param last End of the sequence of keys to count + * @param key_equal Binary function to compare two keys for equality + * @return The sum of total occurrences of all keys in `[first,last)` + */ + template > + std::size_t count_inner(InputIt first, + InputIt last, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}); + + /** + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If no + * matches can be found for a given key, the corresponding occurrence is 1. + * + * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` + * @tparam KeyEqual Binary callable + * @param first Beginning of the sequence of keys to count + * @param last End of the sequence of keys to count + * @param key_equal Binary function to compare two keys for equality + * @return The sum of total occurrences of all keys in `[first,last)` + */ + template > + std::size_t count_outer(InputIt first, + InputIt last, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}); + /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value - * sentinel. + * unspecified locations in `[output_begin, output_end)`. Else, does nothing. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, * output_end)`. Use `count()` to determine the number of matching keys. @@ -239,27 +271,39 @@ class static_multimap { * @return The iterator indicating the last valid key/value pairs in the output */ template > - OutputIt find_all(InputIt first, - InputIt last, - OutputIt output_begin, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + OutputIt retrieve_inner(InputIt first, + InputIt last, + OutputIt output_begin, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}); /** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * - * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` - * @tparam KeyEqual Binary callable - * @param first Beginning of the sequence of keys to count - * @param last End of the sequence of keys to count - * @param key_equal Binary function to compare two keys for equality - * @return The sum of total occurrences of all keys in `[first,last)` + * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value + * sentinel. + * + * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, + * output_end)`. Use `count()` to determine the number of matching keys. + * + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `key_type` + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param output_begin Beginning of the sequence of key/value pairs retrieved for each key + * @param key_equal The binary function to compare two keys for equality + * @return The iterator indicating the last valid key/value pairs in the output */ - template > - std::size_t count(InputIt first, - InputIt last, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + template > + OutputIt retrieve_outer(InputIt first, + InputIt last, + OutputIt output_begin, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}); private: class device_view_base { From 08a9d005dad2c5c0453b987f388a947cf1bf2e12 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 31 May 2021 12:06:31 -0400 Subject: [PATCH 113/267] Update benchmarks, examples and tests for inner/outer functions --- .../hash_table/static_multimap/find_all_bench.cu | 2 +- .../static_multimap/static_multimap_bench.cu | 14 ++++++-------- .../static_multimap/static_multimap_example.cu | 5 ++--- tests/static_multimap/static_multimap_test.cu | 6 +++--- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 40582eb38..496a4adb2 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -102,7 +102,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); // Use timers to explicitly mark the target region - cuco::detail::find_all + cuco::detail::retrieve_outer <<>>(d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index a4a6a0a55..a22ce4fb7 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -134,7 +134,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { timer.start(); - auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); + auto count = map.count_inner(d_keys.begin(), d_keys.end(), launch.get_stream()); timer.stop(); }); } @@ -185,14 +185,13 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); - auto num_matches = map.count(d_keys.begin(), d_keys.end()); - std::size_t output_size = num_matches + num_keys; + auto const output_size = map.count_outer(d_keys.begin(), d_keys.end()); thrust::device_vector> d_results(output_size); state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { timer.start(); - map.find_all(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); + map.retrieve_outer(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); timer.stop(); }); } @@ -238,15 +237,14 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); - auto num_matches = map.count(d_keys.begin(), d_keys.end()); - std::size_t output_size = num_matches + num_keys; + auto const output_size = map.count_outer(d_keys.begin(), d_keys.end()); thrust::device_vector> d_results(output_size); state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { timer.start(); - auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); - map.find_all(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); + auto count = map.count_outer(d_keys.begin(), d_keys.end(), launch.get_stream()); + map.retrieve_outer(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); timer.stop(); }); } diff --git a/examples/static_multimap/static_multimap_example.cu b/examples/static_multimap/static_multimap_example.cu index 4b0292e06..5c4b5af05 100644 --- a/examples/static_multimap/static_multimap_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -49,14 +49,13 @@ int main(void) thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); // Counts number of matches for all keys {0, 1, 2, ... 50'000} - auto num_matches = map.count(keys_to_find.begin(), keys_to_find.end()); + auto const output_size = map.count_outer(keys_to_find.begin(), keys_to_find.end()); - std::size_t output_size = num_matches + 25'000; thrust::device_vector> d_results(output_size); // Finds all keys {0, 1, 2, ...} and stores associated key/value pairs into `d_results` // If a key `keys_to_find[i]` doesn't exist, `d_results[i].second == empty_value_sentinel` - map.find_all(keys_to_find.begin(), keys_to_find.end(), d_results.data().get()); + map.retrieve_outer(keys_to_find.begin(), keys_to_find.end(), d_results.data().get()); return 0; } diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index bdf75b88d..aa6f9ed76 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -126,13 +126,13 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", { map.insert(d_pairs.begin(), d_pairs.end()); // Count matching keys - size_t num = map.count(d_unique_keys.begin(), d_unique_keys.end()); + size_t num = map.count_inner(d_unique_keys.begin(), d_unique_keys.end()); REQUIRE(num == num_items); auto output_begin = d_results.data().get(); - auto output_end = map.find_all(d_unique_keys.begin(), d_unique_keys.end(), output_begin); - auto size = thrust::distance(output_begin, output_end); + auto output_end = map.retrieve_inner(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); REQUIRE(size == num_items); } From be4bf73db16eb2252fe1cb500369b4c637499861 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 31 May 2021 13:46:24 -0400 Subject: [PATCH 114/267] Add pair_count_inner/outer functions --- include/cuco/detail/static_multimap.inl | 64 ++++++ .../cuco/detail/static_multimap_kernels.cuh | 190 +++++++++++++++++- include/cuco/static_multimap.cuh | 43 ++++ 3 files changed, 292 insertions(+), 5 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 455f8f158..141461f00 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -165,6 +165,70 @@ std::size_t static_multimap::count_ return result; } +template +template +std::size_t static_multimap::pair_count_inner( + InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal, ValEqual val_equal) +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + detail::pair_count_inner + <<>>(first, last, num_items, view, key_equal, val_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + + size_t result = *num_items; + CUCO_CUDA_TRY(cudaFree(num_items)); + + return result; +} + +template +template +std::size_t static_multimap::pair_count_outer( + InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal, ValEqual val_equal) +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + atomic_ctr_type* num_items; + CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); + *num_items = 0; + int device_id; + CUCO_CUDA_TRY(cudaGetDevice(&device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + + detail::pair_count_outer + <<>>(first, last, num_items, view, key_equal, val_equal); + CUCO_CUDA_TRY(cudaDeviceSynchronize()); + + size_t result = *num_items; + CUCO_CUDA_TRY(cudaFree(num_items)); + + return result; +} + template fetch_add(block_num_items, cuda::std::memory_order_relaxed); } } +/** + * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts + * @tparam Key key type + * @tparam Value The type of the mapped value for the map + * @tparam Input Device accesible input iterator of key/value pairs + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam KeyEqual Binary callable + * @tparam ValEqual Binary callable + * @param first Beginning of the sequence of pairs to count + * @param last End of the sequence of pairs to count + * @param num_items The number of all the matches for a sequence of pairs + * @param view Device view used to access the hash map's slot storage + * @param key_equal Binary function to compare two keys for equality + * @param val_equal Binary function to compare two values for equality + */ +template +__global__ void pair_count_inner(InputIt first, + InputIt last, + atomicT* num_items, + viewT view, + KeyEqual key_equal, + ValEqual val_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto pair_idx = tid / tile_size; + + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_items = 0; + + while (first + pair_idx < last) { + auto pair = *(first + pair_idx); + auto key = pair.first; + auto value = pair.second; + auto current_slot = view.initial_slot(tile, key); + + while (true) { + cuco::pair_type arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } + + auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); + auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); + + auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); + auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); + auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); + auto const second_val_equals = (not second_val_is_empty and key_equal(arr[1].second, value)); + + auto const first_equals = first_key_equals and first_val_equals; + auto const second_equals = second_key_equals and second_val_equals; + + thread_num_items += (first_equals + second_equals); + + if (tile.any(first_key_is_empty or second_key_is_empty)) { break; } + + current_slot = view.next_slot(tile, current_slot); + } + pair_idx += (gridDim.x * block_size) / tile_size; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } +} + +/** + * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. + * If no matches can be found for a given key/value pair, the corresponding occurrence is 1. + * + * @tparam block_size The size of the thread block + * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts + * @tparam Key key type + * @tparam Value The type of the mapped value for the map + * @tparam Input Device accesible input iterator of key/value pairs + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam KeyEqual Binary callable + * @tparam ValEqual Binary callable + * @param first Beginning of the sequence of pairs to count + * @param last End of the sequence of pairs to count + * @param num_items The number of all the matches for a sequence of pairs + * @param view Device view used to access the hash map's slot storage + * @param key_equal Binary function to compare two keys for equality + * @param val_equal Binary function to compare two values for equality + */ +template +__global__ void pair_count_outer(InputIt first, + InputIt last, + atomicT* num_items, + viewT view, + KeyEqual key_equal, + ValEqual val_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto pair_idx = tid / tile_size; + + typedef cub::BlockReduce BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + std::size_t thread_num_items = 0; + + while (first + pair_idx < last) { + auto pair = *(first + pair_idx); + auto key = pair.first; + auto value = pair.second; + auto current_slot = view.initial_slot(tile, key); + + bool found_match = false; + + while (true) { + cuco::pair_type arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } + + auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); + auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); + + auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); + auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); + auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); + auto const second_val_equals = (not second_val_is_empty and key_equal(arr[1].second, value)); + + auto const first_equals = first_key_equals and first_val_equals; + auto const second_equals = second_key_equals and second_val_equals; + auto const exists = tile.any(first_equals or second_equals); + + if (exists) { found_match = true; } + + thread_num_items += (first_equals + second_equals); + + if (tile.any(first_key_is_empty or second_key_is_empty)) { + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + break; + } + + current_slot = view.next_slot(tile, current_slot); + } + pair_idx += (gridDim.x * block_size) / tile_size; + } + + // compute number of successfully inserted elements for each block + // and atomically add to the grand total + std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } +} + /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * @@ -361,7 +543,6 @@ __global__ void count_outer( * @param view Device view used to access the hash map's slot storage * @param key_equal The binary function to compare two keys for equality */ - template , + typename ValEqual = thrust::equal_to> + std::size_t pair_count_inner(InputIt first, + InputIt last, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}, + ValEqual val_equal = ValEqual{}); + + /** + * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. + * If no matches can be found for a given key/value pair, the corresponding occurrence is 1. + * + * @tparam Input Device accesible input iterator of key/value pairs + * @tparam KeyEqual Binary callable + * @tparam ValEqual Binary callable + * @param first Beginning of the sequence of pairs to count + * @param last End of the sequence of pairs to count + * @param key_equal Binary function to compare two keys for equality + * @param val_equal Binary function to compare two values for equality + * @return The sum of total occurrences of all pairs in `[first,last)` + */ + template , + typename ValEqual = thrust::equal_to> + std::size_t pair_count_outer(InputIt first, + InputIt last, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}, + ValEqual val_equal = ValEqual{}); + /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * From e6c98ebb9c60b498cb6eaa77c699aa8662a94ea7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 31 May 2021 15:05:39 -0400 Subject: [PATCH 115/267] Add linear probing class + next_slot cleanups --- include/cuco/detail/probe_sequences.cuh | 49 ++++++++++++++++++- include/cuco/detail/static_multimap.inl | 46 +---------------- .../cuco/detail/static_multimap_kernels.cuh | 12 ++--- include/cuco/static_multimap.cuh | 42 ++-------------- 4 files changed, 58 insertions(+), 91 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 0eb35bb46..80c8f7b62 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -61,8 +61,7 @@ class DoubleHashing { return slots_ + index; } - template - __device__ iterator next_slot(CG const& g, iterator s) noexcept + __device__ iterator next_slot(iterator s) noexcept { std::size_t index = s - slots_; return &slots_[(index + step_size_) % capacity_]; @@ -76,4 +75,50 @@ class DoubleHashing { Hash2 hash2_{}; }; // class DoubleHashing +template , + cuda::thread_scope Scope = cuda::thread_scope_device> +class LinearProbing { + public: + using value_type = cuco::pair_type; + using key_type = Key; + using mapped_type = Value; + using atomic_key_type = cuda::atomic; + using atomic_mapped_type = cuda::atomic; + using pair_atomic_type = cuco::pair_type; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + + __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } + + __host__ __device__ explicit LinearProbing(iterator slots, std::size_t capacity) + : slots_{slots}, capacity_{capacity} + { + } + + __host__ __device__ std::size_t get_capacity() const noexcept { return capacity_; } + + __device__ iterator get_slots() noexcept { return slots_; } + __device__ const_iterator get_slots() const noexcept { return slots_; } + + template + __device__ iterator initial_slot(CG const& g, Key const k) noexcept + { + return &slots_[(hash_(k) + g.thread_rank() * 2) % capacity_]; + } + + __device__ iterator next_slot(iterator s) noexcept + { + std::size_t index = s - slots_; + return &slots_[(index + cg_size() * 2) % capacity_]; + } + + private: + iterator slots_; + const std::size_t capacity_; + Hash hash_{}; +}; // class LinearProbing + } // namespace cuco diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 141461f00..45a70bcd6 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -295,48 +295,6 @@ OutputIt static_multimap::retrieve_ return output_end; } -template -template -__device__ void -static_multimap::device_mutable_view::insert( - value_type const& insert_pair, KeyEqual key_equal) noexcept -{ - auto current_slot{initial_slot(insert_pair.first)}; - - while (true) { - using cuda::std::memory_order_relaxed; - auto expected_key = this->get_empty_key_sentinel(); - auto expected_value = this->get_empty_value_sentinel(); - auto& slot_key = current_slot->first; - auto& slot_value = current_slot->second; - - bool key_success = - slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); - bool value_success = - slot_value.compare_exchange_strong(expected_value, insert_pair.second, memory_order_relaxed); - - if (key_success) { - while (not value_success) { - value_success = - slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), - insert_pair.second, - memory_order_relaxed); - } - return; - } else if (value_success) { - slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); - } - - // If we couldn't insert the key, then there must have been some other key there. So we keep - // looking for a slot - current_slot = next_slot(current_slot); - } -} - template ::device_mutable_vie // if there are no empty slots in the current window, // we move onto the next window else { - current_slot = next_slot(g, current_slot); + current_slot = next_slot(current_slot); } } } @@ -444,7 +402,7 @@ __device__ bool static_multimap::de // otherwise, all slots in the current window are full with other keys, so we move onto the next // window - current_slot = next_slot(g, current_slot); + current_slot = next_slot(current_slot); } } diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 90f3e82e0..a088a70a6 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -241,7 +241,7 @@ __global__ void count_inner( if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } - current_slot = view.next_slot(tile, current_slot); + current_slot = view.next_slot(current_slot); } key_idx += (gridDim.x * block_size) / tile_size; } @@ -321,7 +321,7 @@ __global__ void count_outer( break; } - current_slot = view.next_slot(tile, current_slot); + current_slot = view.next_slot(current_slot); } key_idx += (gridDim.x * block_size) / tile_size; } @@ -408,7 +408,7 @@ __global__ void pair_count_inner(InputIt first, if (tile.any(first_key_is_empty or second_key_is_empty)) { break; } - current_slot = view.next_slot(tile, current_slot); + current_slot = view.next_slot(current_slot); } pair_idx += (gridDim.x * block_size) / tile_size; } @@ -504,7 +504,7 @@ __global__ void pair_count_outer(InputIt first, break; } - current_slot = view.next_slot(tile, current_slot); + current_slot = view.next_slot(current_slot); } pair_idx += (gridDim.x * block_size) / tile_size; } @@ -631,7 +631,7 @@ __global__ void retrieve_inner(InputIt first, if (0 == threadIdx.x) { block_counter = 0; } } - if (running) { current_slot = view.next_slot(tile, current_slot); } + if (running) { current_slot = view.next_slot(current_slot); } } // while running key_idx += (gridDim.x * block_size) / tile_size; } @@ -769,7 +769,7 @@ __global__ void retrieve_outer(InputIt first, if (0 == threadIdx.x) { block_counter = 0; } } - if (running) { current_slot = view.next_slot(tile, current_slot); } + if (running) { current_slot = view.next_slot(current_slot); } } // while running key_idx += (gridDim.x * block_size) / tile_size; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index ee1446022..fc77ebdb5 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -429,16 +429,10 @@ class static_multimap { * If `s` is the last slot, wraps back around to the first slot. To * be used for Cooperative Group based probing. * - * @tparam CG The Cooperative Group type - * @param g The Cooperative Group for which the next slot is needed * @param s The slot to advance * @return The next slot after `s` */ - template - __device__ iterator next_slot(CG const& g, iterator s) noexcept - { - return probe_sequence_.next_slot(g, s); - } + __device__ iterator next_slot(iterator s) noexcept { return probe_sequence_.next_slot(s); } /** * @brief Given a slot `s`, returns the next slot. @@ -446,15 +440,13 @@ class static_multimap { * If `s` is the last slot, wraps back around to the first slot. To * be used for Cooperative Group based probing. * - * @tparam CG The Cooperative Group type - * @param g The Cooperative Group for which the next slot is needed * @param s The slot to advance * @return The next slot after `s` */ template - __device__ const_iterator next_slot(CG const& g, const_iterator s) const noexcept + __device__ const_iterator next_slot(const_iterator s) const noexcept { - return probe_sequence_.next_slot(g, s); + return probe_sequence_.next_slot(s); } public: @@ -534,17 +526,6 @@ class static_multimap { { } - /** - * @brief Inserts the specified key/value pair into the map. - * - * @tparam KeyEqual Binary callable type - * @param insert_pair The pair to insert - * @param key_equal The binary callable used to compare two keys for - * equality - * @return void. - */ - template > - __device__ void insert(value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Inserts the specified key/value pair into the map. * @@ -672,23 +653,6 @@ class static_multimap { source_device_view.get_empty_value_sentinel()); } - /** - * @brief Indicates whether the key `k` was inserted into the map. - * - * If the key `k` was inserted into the map, find returns - * true. Otherwise, it returns false. - * - * @tparam KeyEqual Binary callable type - * @param k The key to search for - * @param key_equal The binary callable used to compare two keys - * for equality - * @return A boolean indicating whether the key/value pair - * containing `k` was inserted - */ - - template > - __device__ bool contains(Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; - /** * @brief Indicates whether the key `k` was inserted into the map. * From 3868b10e566434d1c6f98c003099435c966fc458 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 31 May 2021 16:35:52 -0400 Subject: [PATCH 116/267] Create & use probe_sequence_base class --- .../static_multimap/find_all_bench.cu | 2 +- include/cuco/detail/probe_sequences.cuh | 65 ++++++++++--------- include/cuco/static_multimap.cuh | 2 +- 3 files changed, 38 insertions(+), 31 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 496a4adb2..a7bb02cd8 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -78,7 +78,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( state.exec( nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap> map{size, -1, -1}; + cuco::static_multimap> map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); timer.start(); diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 80c8f7b62..b0b1009a6 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -26,11 +26,9 @@ namespace cuco { template , - typename Hash2 = cuco::detail::MurmurHash3_32, cuda::thread_scope Scope = cuda::thread_scope_device> -class DoubleHashing { - public: +class probe_sequence_base { + protected: using value_type = cuco::pair_type; using key_type = Key; using mapped_type = Value; @@ -40,9 +38,10 @@ class DoubleHashing { using iterator = pair_atomic_type*; using const_iterator = pair_atomic_type const*; + public: __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } - __host__ __device__ explicit DoubleHashing(iterator slots, std::size_t capacity) + __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) : slots_{slots}, capacity_{capacity} { } @@ -52,6 +51,29 @@ class DoubleHashing { __device__ iterator get_slots() noexcept { return slots_; } __device__ const_iterator get_slots() const noexcept { return slots_; } + protected: + iterator slots_; + const std::size_t capacity_; +}; // class probe_sequence_base + +template , + typename Hash2 = cuco::detail::MurmurHash3_32, + cuda::thread_scope Scope = cuda::thread_scope_device> +class double_hashing : public probe_sequence_base { + public: + using iterator = typename probe_sequence_base::iterator; + using probe_sequence_base::capacity_; + using probe_sequence_base::slots_; + using probe_sequence_base::cg_size; + + __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) noexcept + : probe_sequence_base{slots, capacity} + { + } + template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { @@ -68,41 +90,28 @@ class DoubleHashing { } private: - iterator slots_; - const std::size_t capacity_; std::size_t step_size_; Hash1 hash1_{}; Hash2 hash2_{}; -}; // class DoubleHashing +}; // class double_hashing template , cuda::thread_scope Scope = cuda::thread_scope_device> -class LinearProbing { +class linear_probing : public probe_sequence_base { public: - using value_type = cuco::pair_type; - using key_type = Key; - using mapped_type = Value; - using atomic_key_type = cuda::atomic; - using atomic_mapped_type = cuda::atomic; - using pair_atomic_type = cuco::pair_type; - using iterator = pair_atomic_type*; - using const_iterator = pair_atomic_type const*; + using iterator = typename probe_sequence_base::iterator; + using probe_sequence_base::capacity_; + using probe_sequence_base::slots_; + using probe_sequence_base::cg_size; - __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } - - __host__ __device__ explicit LinearProbing(iterator slots, std::size_t capacity) - : slots_{slots}, capacity_{capacity} + __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) + : probe_sequence_base{slots, capacity} { } - __host__ __device__ std::size_t get_capacity() const noexcept { return capacity_; } - - __device__ iterator get_slots() noexcept { return slots_; } - __device__ const_iterator get_slots() const noexcept { return slots_; } - template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { @@ -116,9 +125,7 @@ class LinearProbing { } private: - iterator slots_; - const std::size_t capacity_; Hash hash_{}; -}; // class LinearProbing +}; // class linear_probing } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index fc77ebdb5..693193103 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -110,7 +110,7 @@ namespace cuco { */ template , + class ProbeSequence = cuco::double_hashing, cuda::thread_scope Scope = cuda::thread_scope_device, typename Allocator = cuco::cuda_allocator> class static_multimap { From 414bd33f51ae50af5959db99952931cfdc9c13c8 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 1 Jun 2021 12:04:49 -0400 Subject: [PATCH 117/267] Renaming: remove _inner suffix --- .../static_multimap/static_multimap_bench.cu | 2 +- .../static_multimap_example.cu | 4 +-- include/cuco/detail/static_multimap.inl | 16 +++++----- .../cuco/detail/static_multimap_kernels.cuh | 26 ++++++++--------- include/cuco/static_multimap.cuh | 29 +++++++++---------- tests/static_multimap/static_multimap_test.cu | 6 ++-- 6 files changed, 42 insertions(+), 41 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index a22ce4fb7..87ff31d7e 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -134,7 +134,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { timer.start(); - auto count = map.count_inner(d_keys.begin(), d_keys.end(), launch.get_stream()); + auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); timer.stop(); }); } diff --git a/examples/static_multimap/static_multimap_example.cu b/examples/static_multimap/static_multimap_example.cu index 5c4b5af05..98d821462 100644 --- a/examples/static_multimap/static_multimap_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -49,13 +49,13 @@ int main(void) thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); // Counts number of matches for all keys {0, 1, 2, ... 50'000} - auto const output_size = map.count_outer(keys_to_find.begin(), keys_to_find.end()); + auto const output_size = map.count(keys_to_find.begin(), keys_to_find.end()); thrust::device_vector> d_results(output_size); // Finds all keys {0, 1, 2, ...} and stores associated key/value pairs into `d_results` // If a key `keys_to_find[i]` doesn't exist, `d_results[i].second == empty_value_sentinel` - map.retrieve_outer(keys_to_find.begin(), keys_to_find.end(), d_results.data().get()); + map.retrieve(keys_to_find.begin(), keys_to_find.end(), d_results.data().get()); return 0; } diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 45a70bcd6..0f27f0cd2 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -107,8 +107,10 @@ template template -std::size_t static_multimap::count_inner( - InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) +std::size_t static_multimap::count(InputIt first, + InputIt last, + cudaStream_t stream, + KeyEqual key_equal) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -123,7 +125,7 @@ std::size_t static_multimap::count_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::count_inner + detail::count <<>>(first, last, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -171,7 +173,7 @@ template template -std::size_t static_multimap::pair_count_inner( +std::size_t static_multimap::pair_count( InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal, ValEqual val_equal) { auto num_keys = std::distance(first, last); @@ -187,7 +189,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::pair_count_inner + detail::pair_count <<>>(first, last, num_items, view, key_equal, val_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -235,7 +237,7 @@ template template -OutputIt static_multimap::retrieve_inner( +OutputIt static_multimap::retrieve( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) { auto num_keys = std::distance(first, last); @@ -252,7 +254,7 @@ OutputIt static_multimap::retrieve_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::retrieve_inner + detail::retrieve <<>>(first, last, output_begin, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index a088a70a6..156358a8e 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -207,7 +207,7 @@ template -__global__ void count_inner( +__global__ void count( InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); @@ -360,12 +360,12 @@ template -__global__ void pair_count_inner(InputIt first, - InputIt last, - atomicT* num_items, - viewT view, - KeyEqual key_equal, - ValEqual val_equal) +__global__ void pair_count(InputIt first, + InputIt last, + atomicT* num_items, + viewT view, + KeyEqual key_equal, + ValEqual val_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -553,12 +553,12 @@ template -__global__ void retrieve_inner(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_items, - viewT view, - KeyEqual key_equal) +__global__ void retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_items, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 693193103..8d4d7b5bb 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -228,10 +228,10 @@ class static_multimap { * @return The sum of total occurrences of all keys in `[first,last)` */ template > - std::size_t count_inner(InputIt first, - InputIt last, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + std::size_t count(InputIt first, + InputIt last, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}); /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If no @@ -265,11 +265,11 @@ class static_multimap { template , typename ValEqual = thrust::equal_to> - std::size_t pair_count_inner(InputIt first, - InputIt last, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}, - ValEqual val_equal = ValEqual{}); + std::size_t pair_count(InputIt first, + InputIt last, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}, + ValEqual val_equal = ValEqual{}); /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. @@ -314,11 +314,11 @@ class static_multimap { * @return The iterator indicating the last valid key/value pairs in the output */ template > - OutputIt retrieve_inner(InputIt first, - InputIt last, - OutputIt output_begin, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + OutputIt retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}); /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. @@ -443,7 +443,6 @@ class static_multimap { * @param s The slot to advance * @return The next slot after `s` */ - template __device__ const_iterator next_slot(const_iterator s) const noexcept { return probe_sequence_.next_slot(s); diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index aa6f9ed76..5643084ab 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -126,13 +126,13 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", { map.insert(d_pairs.begin(), d_pairs.end()); // Count matching keys - size_t num = map.count_inner(d_unique_keys.begin(), d_unique_keys.end()); + size_t num = map.count(d_unique_keys.begin(), d_unique_keys.end()); REQUIRE(num == num_items); auto output_begin = d_results.data().get(); - auto output_end = map.retrieve_inner(d_unique_keys.begin(), d_unique_keys.end(), output_begin); - auto size = thrust::distance(output_begin, output_end); + auto output_end = map.retrieve(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); REQUIRE(size == num_items); } From 5344bdd33b1dcf710250c58ffa3f89d8fc1020ee Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 1 Jun 2021 13:28:19 -0400 Subject: [PATCH 118/267] Add static is_vector_load in probe sequence class --- include/cuco/detail/probe_sequences.cuh | 53 +++++++++++++++++-------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index b0b1009a6..7782e2c8a 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -26,6 +26,7 @@ namespace cuco { template class probe_sequence_base { protected: @@ -40,6 +41,7 @@ class probe_sequence_base { public: __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } + __host__ __device__ static constexpr bool is_vector_load() noexcept { return IsVectorLoad; } __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) : slots_{slots}, capacity_{capacity} @@ -59,27 +61,34 @@ class probe_sequence_base { template , typename Hash2 = cuco::detail::MurmurHash3_32, cuda::thread_scope Scope = cuda::thread_scope_device> -class double_hashing : public probe_sequence_base { +class double_hashing : public probe_sequence_base { public: - using iterator = typename probe_sequence_base::iterator; - using probe_sequence_base::capacity_; - using probe_sequence_base::slots_; - using probe_sequence_base::cg_size; + using iterator = typename probe_sequence_base::iterator; + using probe_sequence_base::capacity_; + using probe_sequence_base::slots_; + using probe_sequence_base::cg_size; + using probe_sequence_base::is_vector_load; __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) noexcept - : probe_sequence_base{slots, capacity} + : probe_sequence_base{slots, capacity} { } template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { - step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * 2) - 1) + 1) * cg_size() * 2; - std::size_t index = - hash1_(k) % (capacity_ / (cg_size() * 2)) * cg_size() * 2 + g.thread_rank() * 2; + std::size_t index; + if constexpr (IsVectorLoad) { + step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * 2) - 1) + 1) * cg_size() * 2; + index = hash1_(k) % (capacity_ / (cg_size() * 2)) * cg_size() * 2 + g.thread_rank() * 2; + } else { + step_size_ = (hash2_(k + 1) % (capacity_ / cg_size() - 1) + 1) * cg_size(); + index = (hash1_(k) + g.thread_rank()) % capacity_; + } return slots_ + index; } @@ -98,30 +107,40 @@ class double_hashing : public probe_sequence_base { template , cuda::thread_scope Scope = cuda::thread_scope_device> -class linear_probing : public probe_sequence_base { +class linear_probing : public probe_sequence_base { public: - using iterator = typename probe_sequence_base::iterator; - using probe_sequence_base::capacity_; - using probe_sequence_base::slots_; - using probe_sequence_base::cg_size; + using iterator = typename probe_sequence_base::iterator; + using probe_sequence_base::capacity_; + using probe_sequence_base::slots_; + using probe_sequence_base::cg_size; + using probe_sequence_base::is_vector_load; __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) - : probe_sequence_base{slots, capacity} + : probe_sequence_base{slots, capacity} { } template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { - return &slots_[(hash_(k) + g.thread_rank() * 2) % capacity_]; + if constexpr (IsVectorLoad) { + return &slots_[(hash_(k) + g.thread_rank() * 2) % capacity_]; + } else { + return &slots_[(hash_(k) + g.thread_rank()) % capacity_]; + } } __device__ iterator next_slot(iterator s) noexcept { std::size_t index = s - slots_; - return &slots_[(index + cg_size() * 2) % capacity_]; + if constexpr (IsVectorLoad) { + return &slots_[(index + cg_size() * 2) % capacity_]; + } else { + return &slots_[(index + cg_size()) % capacity_]; + } } private: From e568706781cb8510077389c92095495ee1266b2c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 1 Jun 2021 17:38:29 -0400 Subject: [PATCH 119/267] Use is_vector_load & is_outer template booleans to simplify probing method switching --- .../static_multimap/find_all_bench.cu | 5 +- include/cuco/detail/prime.hpp | 4 +- include/cuco/detail/static_multimap.inl | 172 +++- .../cuco/detail/static_multimap_kernels.cuh | 734 ++++++++++++------ include/cuco/static_multimap.cuh | 54 +- 5 files changed, 700 insertions(+), 269 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index a7bb02cd8..5a0ab0fa8 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -53,6 +53,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( std::size_t const size = num_keys / occupancy; std::size_t const num_reps = state.get_int64("NumReps"); + constexpr bool is_vector_load = true; + constexpr bool is_outer = true; + std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -102,7 +105,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); // Use timers to explicitly mark the target region - cuco::detail::retrieve_outer + cuco::detail::retrieve <<>>(d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), diff --git a/include/cuco/detail/prime.hpp b/include/cuco/detail/prime.hpp index 0c8365edf..6dd96fa71 100644 --- a/include/cuco/detail/prime.hpp +++ b/include/cuco/detail/prime.hpp @@ -69,8 +69,8 @@ constexpr std::size_t compute_prime(std::size_t num) noexcept template constexpr std::size_t get_valid_capacity(std::size_t capacity) noexcept { - auto const min_prime = compute_prime(SDIV(capacity, CGSize * 2)); - return min_prime * CGSize * 2; + auto const min_prime = compute_prime(SDIV(capacity, CGSize)); + return min_prime * CGSize; } } // namespace detail diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 0f27f0cd2..effc706c5 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -35,11 +35,16 @@ template static_multimap::static_multimap( std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel, Allocator const& alloc) - : capacity_{cuco::detail::get_valid_capacity(capacity)}, - empty_key_sentinel_{empty_key_sentinel}, + : empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, slot_allocator_{alloc} { + if constexpr (is_vector_load()) { + capacity_ = cuco::detail::get_valid_capacity(capacity); + } else { + capacity_ = cuco::detail::get_valid_capacity(capacity); + } + slots_ = std::allocator_traits::allocate(slot_allocator_, get_capacity()); auto constexpr block_size = 256; @@ -76,7 +81,7 @@ void static_multimap::insert(InputI auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_mutable_view(); - detail::insert + detail::insert <<>>(first, first + num_keys, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } @@ -96,7 +101,7 @@ void static_multimap::contains( auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::contains + detail::contains <<>>(first, last, output_begin, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); } @@ -125,7 +130,7 @@ std::size_t static_multimap::count( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::count + detail::count <<>>(first, last, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -150,6 +155,8 @@ std::size_t static_multimap::count_ auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); + constexpr bool is_outer = true; + atomic_ctr_type* num_items; CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); *num_items = 0; @@ -157,7 +164,7 @@ std::size_t static_multimap::count_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::count_outer + detail::count <<>>(first, last, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -189,7 +196,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::pair_count + detail::pair_count <<>>(first, last, num_items, view, key_equal, val_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -214,6 +221,8 @@ std::size_t static_multimap::pair_c auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); + constexpr bool is_outer = true; + atomic_ctr_type* num_items; CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); *num_items = 0; @@ -221,7 +230,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::pair_count_outer + detail::pair_count <<>>(first, last, num_items, view, key_equal, val_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -240,12 +249,16 @@ template OutputIt static_multimap::retrieve( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const buffer_size = block_size * 3; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto const block_size = 128; + // Using per-block buffer for vector loads and per-CG buffer for scalar loads + auto const buffer_size = [&]() { + if constexpr (is_vector_load()) { return block_size * 3u; } + return cg_size() * 3u; + }(); + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); atomic_ctr_type* num_items; CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); @@ -254,7 +267,7 @@ OutputIt static_multimap::retrieve( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -273,12 +286,18 @@ template OutputIt static_multimap::retrieve_outer( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const buffer_size = block_size * 3; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto const block_size = 128; + // Using per-block buffer for vector loads and per-CG buffer for scalar loads + auto const buffer_size = [&]() { + if constexpr (is_vector_load()) { return block_size * 3u; } + return cg_size() * 3u; + }(); + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + constexpr bool is_outer = true; atomic_ctr_type* num_items; CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); @@ -287,7 +306,7 @@ OutputIt static_multimap::retrieve_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - detail::retrieve_outer + detail::retrieve <<>>(first, last, output_begin, num_items, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); @@ -302,8 +321,8 @@ template -template -__device__ void +template +__device__ std::enable_if_t static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept { @@ -375,8 +394,76 @@ template -template -__device__ bool static_multimap::device_view::contains( +template +__device__ std::enable_if_t +static_multimap::device_mutable_view::insert( + CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, insert_pair.first); + + while (true) { + key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const window_contains_empty = g.ballot(slot_is_empty); + + if (window_contains_empty) { + // the first lane in the group with an empty slot will attempt the insert + insert_result status{insert_result::CONTINUE}; + uint32_t src_lane = __ffs(window_contains_empty) - 1; + + if (g.thread_rank() == src_lane) { + using cuda::std::memory_order_relaxed; + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + auto& slot_key = current_slot->first; + auto& slot_value = current_slot->second; + + bool key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = slot_value.compare_exchange_strong( + expected_value, insert_pair.second, memory_order_relaxed); + + if (key_success) { + while (not value_success) { + value_success = + slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + status = insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); + } + + // another key was inserted in the slot we wanted to try + // so we need to try the next empty slot in the window + } + + // successful insert + if (g.any(status == insert_result::SUCCESS)) { return; } + // if we've gotten this far, a different key took our spot + // before we could insert. We need to retry the insert on the + // same window + } + // if there are no empty slots in the current window, + // we move onto the next window + else { + current_slot = next_slot(current_slot); + } + } +} + +template +template +__device__ std::enable_if_t +static_multimap::device_view::contains( CG g, Key const& k, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -408,4 +495,37 @@ __device__ bool static_multimap::de } } +template +template +__device__ std::enable_if_t +static_multimap::device_view::contains( + CG g, Key const& k, KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, k); + + while (true) { + key_type const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the + // sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + + auto const equals = (not slot_is_empty and key_equal(existing_key, k)); + + // the key we were searching for was found by one of the threads, so we return true + if (g.any(equals)) { return true; } + + // we found an empty slot, meaning that the key we're searching for isn't present + if (g.any(slot_is_empty)) { return false; } + + // otherwise, all slots in the current window are full with other keys, so we move onto the next + // window + current_slot = next_slot(current_slot); + } +} + } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 156358a8e..bb09565f5 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -25,7 +25,81 @@ namespace detail { namespace cg = cooperative_groups; /** - * @brief Flushes shared memory buffer into the output sequence. + * @brief Flushes per-CG shared memory buffer into the output sequence. + * + * @tparam Key key type + * @tparam Value value type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param output_size Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_items Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ +template +__inline__ __device__ std::enable_if_t::value, void> +flush_output_buffer(CG const& g, + uint32_t const num_outputs, + cuco::pair_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + offset = g.shfl(offset, 0); + + cg::memcpy_async(g, + output_begin + offset, + output_buffer, + cuda::aligned_size_t)>( + sizeof(cuco::pair_type) * num_outputs)); +} + +/** + * @brief Flushes per-CG shared memory buffer into the output sequence. + * + * @tparam Key key type + * @tparam Value value type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param output_size Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_items Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ +template +__inline__ __device__ std::enable_if_t::value, void> +flush_output_buffer(CG const& g, + uint32_t const num_outputs, + cuco::pair_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + offset = g.shfl(offset, 0); + + for (auto index = lane_id; index < num_outputs; index += cg_size) { + *(output_begin + offset + index) = output_buffer[index]; + } +} + +/** + * @brief Flushes per-block shared memory buffer into the output sequence. * * @tparam Key key type * @tparam Value value type @@ -108,6 +182,7 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s */ template @@ -120,7 +195,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - view.insert(tile, insert_pair, key_equal); + view.insert(tile, insert_pair, key_equal); it += (gridDim.x * block_size) / tile_size; } } @@ -149,6 +224,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ */ template (tile, key, key_equal); /* * The ld.relaxed.gpu instruction used in view.find causes L1 to @@ -182,7 +258,8 @@ __global__ void contains( } /** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If is_outer + * is true, the corresponding occurrence for non-matches is 1. Otherwise, it's 0. * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts @@ -203,11 +280,13 @@ template -__global__ void count( +__global__ std::enable_if_t count( InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); @@ -222,26 +301,57 @@ __global__ void count( auto key = *(first + key_idx); auto current_slot = view.initial_slot(tile, key); - while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + if constexpr (is_outer) { + bool found_match = false; + + while (true) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + + found_match = tile.any(first_equals or second_equals); + + thread_num_items += (first_equals + second_equals); + + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + break; + } + + current_slot = view.next_slot(current_slot); } + } else { + while (true) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - thread_num_items += (first_equals + second_equals); + thread_num_items += (first_equals + second_equals); - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } - current_slot = view.next_slot(current_slot); + current_slot = view.next_slot(current_slot); + } } key_idx += (gridDim.x * block_size) / tile_size; } @@ -253,8 +363,8 @@ __global__ void count( } /** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If no matches - * can be found for a given key, the corresponding occurrence is 1. + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If is_outer + * is true, the corresponding occurrence for non-matches is 1. Otherwise, it's 0. * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts @@ -275,11 +385,13 @@ template -__global__ void count_outer( +__global__ std::enable_if_t count( InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); @@ -294,46 +406,53 @@ __global__ void count_outer( auto key = *(first + key_idx); auto current_slot = view.initial_slot(tile, key); - bool found_match = false; + if constexpr (is_outer) { + bool found_match = false; - while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } + while (true) { + pair slot_contents = + *reinterpret_cast const*>(current_slot); + auto const& current_key = slot_contents.first; + + auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, key); - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - auto const exists = tile.any(first_equals or second_equals); + found_match = tile.any(equals); - if (exists) { found_match = true; } + thread_num_items += equals; - thread_num_items += (first_equals + second_equals); + if (tile.any(slot_is_empty)) { + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + break; + } - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } - break; + current_slot = view.next_slot(current_slot); } + } else { + while (true) { + pair slot_contents = + *reinterpret_cast const*>(current_slot); + auto const& current_key = slot_contents.first; - current_slot = view.next_slot(current_slot); + auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, key); + + thread_num_items += equals; + + if (tile.any(slot_is_empty)) { break; } + + current_slot = view.next_slot(current_slot); + } } key_idx += (gridDim.x * block_size) / tile_size; } - - // compute number of successfully inserted elements for each block - // and atomically add to the grand total - std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); + auto const block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } } /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. + * If no matches can be found for a given key/value pair, the corresponding occurrence is 1. * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts @@ -355,17 +474,19 @@ template -__global__ void pair_count(InputIt first, - InputIt last, - atomicT* num_items, - viewT view, - KeyEqual key_equal, - ValEqual val_equal) +__global__ std::enable_if_t pair_count(InputIt first, + InputIt last, + atomicT* num_items, + viewT view, + KeyEqual key_equal, + ValEqual val_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -381,34 +502,75 @@ __global__ void pair_count(InputIt first, auto value = pair.second; auto current_slot = view.initial_slot(tile, key); - while (true) { - cuco::pair_type arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + if constexpr (is_outer) { + bool found_match = false; + + while (true) { + cuco::pair_type arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } + + auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); + auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); + + auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); + auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); + auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); + auto const second_val_equals = + (not second_val_is_empty and key_equal(arr[1].second, value)); + + auto const first_equals = first_key_equals and first_val_equals; + auto const second_equals = second_key_equals and second_val_equals; + + found_match = tile.any(first_equals or second_equals); + + thread_num_items += (first_equals + second_equals); + + if (tile.any(first_key_is_empty or second_key_is_empty)) { + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + break; + } + + current_slot = view.next_slot(current_slot); } + } else { + while (true) { + cuco::pair_type arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } - auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); - auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); + auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); + auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); - auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); - auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); - auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); - auto const second_val_equals = (not second_val_is_empty and key_equal(arr[1].second, value)); + auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); + auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); + auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); + auto const second_val_equals = + (not second_val_is_empty and key_equal(arr[1].second, value)); - auto const first_equals = first_key_equals and first_val_equals; - auto const second_equals = second_key_equals and second_val_equals; + auto const first_equals = first_key_equals and first_val_equals; + auto const second_equals = second_key_equals and second_val_equals; - thread_num_items += (first_equals + second_equals); + thread_num_items += (first_equals + second_equals); - if (tile.any(first_key_is_empty or second_key_is_empty)) { break; } + if (tile.any(first_key_is_empty or second_key_is_empty)) { break; } - current_slot = view.next_slot(current_slot); + current_slot = view.next_slot(current_slot); + } } pair_idx += (gridDim.x * block_size) / tile_size; } @@ -443,17 +605,19 @@ template -__global__ void pair_count_outer(InputIt first, - InputIt last, - atomicT* num_items, - viewT view, - KeyEqual key_equal, - ValEqual val_equal) +__global__ std::enable_if_t pair_count(InputIt first, + InputIt last, + atomicT* num_items, + viewT view, + KeyEqual key_equal, + ValEqual val_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -469,42 +633,49 @@ __global__ void pair_count_outer(InputIt first, auto value = pair.second; auto current_slot = view.initial_slot(tile, key); - bool found_match = false; + if constexpr (is_outer) { + bool found_match = false; - while (true) { - cuco::pair_type arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } + while (true) { + auto slot_contents = *reinterpret_cast const*>(current_slot); + + auto const key_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); + auto const val_is_empty = (slot_contents.second == view.get_empty_value_sentinel()); - auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); - auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); + auto const key_equals = (not key_is_empty and key_equal(slot_contents.first, key)); + auto const val_equals = (not val_is_empty and key_equal(slot_contents.second, value)); - auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); - auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); - auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); - auto const second_val_equals = (not second_val_is_empty and key_equal(arr[1].second, value)); + auto const equals = key_equals and val_equals; - auto const first_equals = first_key_equals and first_val_equals; - auto const second_equals = second_key_equals and second_val_equals; - auto const exists = tile.any(first_equals or second_equals); + found_match = tile.any(equals); - if (exists) { found_match = true; } + thread_num_items += equals; - thread_num_items += (first_equals + second_equals); + if (tile.any(key_is_empty)) { + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + break; + } - if (tile.any(first_key_is_empty or second_key_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } - break; + current_slot = view.next_slot(current_slot); } + } else { + while (true) { + auto slot_contents = *reinterpret_cast const*>(current_slot); + + auto const key_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); + auto const val_is_empty = (slot_contents.second == view.get_empty_value_sentinel()); + + auto const key_equals = (not key_is_empty and key_equal(slot_contents.first, key)); + auto const val_equals = (not val_is_empty and key_equal(slot_contents.second, value)); + + auto const equals = key_equals and val_equals; - current_slot = view.next_slot(current_slot); + thread_num_items += equals; + + if (tile.any(key_is_empty)) { break; } + + current_slot = view.next_slot(current_slot); + } } pair_idx += (gridDim.x * block_size) / tile_size; } @@ -519,7 +690,8 @@ __global__ void pair_count_outer(InputIt first, * @brief Finds all the values corresponding to all keys in the range `[first, last)`. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, does nothing. + * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and + * the empty value sentinel. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. @@ -548,17 +720,19 @@ template -__global__ void retrieve(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_items, - viewT view, - KeyEqual key_equal) +__global__ std::enable_if_t retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_items, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -577,62 +751,134 @@ __global__ void retrieve(InputIt first, bool running = ((first + key_idx) < last); - if (running) { current_slot = view.initial_slot(tile, key); } + if constexpr (is_outer) { + bool found_match = false; - while (__syncthreads_or(running)) { - if (running) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } + if (running) { current_slot = view.initial_slot(tile, key); } - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - auto const first_exists = tile.ballot(first_equals); - auto const second_exists = tile.ballot(second_equals); - - if (first_exists or second_exists) { - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); - - uint32_t output_idx; - if (0 == lane_id) { - output_idx = atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + while (__syncthreads_or(running)) { + if (running) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); } - output_idx = tile.shfl(output_idx, 0); - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); - Key k = key; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[0].second)); + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + auto const first_exists = tile.ballot(first_equals); + auto const second_exists = tile.ballot(second_equals); + + if (first_exists or second_exists) { + found_match = true; + + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == lane_id) { + output_idx = + atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + } + output_idx = tile.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[0].second)); + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[1].second)); + } } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); - Key k = key; - output_buffer[output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[1].second)); + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if ((not found_match) && (lane_id == 0)) { + auto output_idx = atomicAdd_block(&block_counter, 1); + output_buffer[output_idx] = + cuco::make_pair(key, view.get_empty_key_sentinel()); + } } + } // if running + + __syncthreads(); + + if ((block_counter + 2 * block_size) > buffer_size) { + flush_output_buffer(block_counter, output_buffer, num_items, output_begin); + + if (0 == threadIdx.x) { block_counter = 0; } } - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; } - } // if running - __syncthreads(); + if (running) { current_slot = view.next_slot(current_slot); } + } // while running + } else { + if (running) { current_slot = view.initial_slot(tile, key); } + + while (__syncthreads_or(running)) { + if (running) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } - if ((block_counter + 2 * block_size) > buffer_size) { - flush_output_buffer(block_counter, output_buffer, num_items, output_begin); + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); + auto const first_exists = tile.ballot(first_equals); + auto const second_exists = tile.ballot(second_equals); + + if (first_exists or second_exists) { + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == lane_id) { + output_idx = + atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + } + output_idx = tile.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[0].second)); + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(k), std::move(arr[1].second)); + } + } + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; } + } // if running - if (0 == threadIdx.x) { block_counter = 0; } - } + __syncthreads(); + + if ((block_counter + 2 * block_size) > buffer_size) { + flush_output_buffer(block_counter, output_buffer, num_items, output_begin); - if (running) { current_slot = view.next_slot(current_slot); } - } // while running + if (0 == threadIdx.x) { block_counter = 0; } + } + + if (running) { current_slot = view.next_slot(current_slot); } + } // while running + } key_idx += (gridDim.x * block_size) / tile_size; } @@ -676,107 +922,131 @@ template -__global__ void retrieve_outer(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_items, - viewT view, - KeyEqual key_equal) +__global__ std::enable_if_t retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_items, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - const uint32_t lane_id = tile.thread_rank(); - - __shared__ uint32_t block_counter; - __shared__ cuco::pair_type output_buffer[buffer_size]; - - if (0 == threadIdx.x) { block_counter = 0; } - - while (__syncthreads_or(first + key_idx < last)) { - auto key = *(first + key_idx); - typename viewT::iterator current_slot; - - bool running = ((first + key_idx) < last); - bool found_match = false; - - if (running) { current_slot = view.initial_slot(tile, key); } - - while (__syncthreads_or(running)) { - if (running) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - auto const first_exists = tile.ballot(first_equals); - auto const second_exists = tile.ballot(second_equals); + constexpr uint32_t num_cgs = block_size / tile_size; + const uint32_t cg_id = threadIdx.x / tile_size; + const uint32_t lane_id = tile.thread_rank(); - if (first_exists or second_exists) { - found_match = true; + __shared__ cuco::pair_type output_buffer[num_cgs][buffer_size]; + __shared__ uint32_t cg_counter[num_cgs]; - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); + if (lane_id == 0) { cg_counter[cg_id] = 0; } - uint32_t output_idx; - if (0 == lane_id) { - output_idx = atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); - } - output_idx = tile.shfl(output_idx, 0); + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key); - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); - Key k = key; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[0].second)); - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + bool running = true; + + if constexpr (is_outer) { + bool found_match = false; + + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + pair slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, key)); + auto const exists = tile.ballot(equals); + + if (exists) { + found_match = true; + auto num_matches = __popc(exists); + uint32_t output_idx = cg_counter[cg_id]; + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); Key k = key; - output_buffer[output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[1].second)); + output_buffer[cg_id][output_idx + lane_offset] = + cuco::make_pair(std::move(k), std::move(slot_contents.second)); } + if (0 == lane_id) { cg_counter[cg_id] += num_matches; } } - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { + if (tile.any(slot_is_empty)) { running = false; if ((not found_match) && (lane_id == 0)) { - auto output_idx = atomicAdd_block(&block_counter, 1); - output_buffer[output_idx] = + auto output_idx = cg_counter[cg_id]++; + output_buffer[cg_id][output_idx] = cuco::make_pair(key, view.get_empty_key_sentinel()); } } - } // if running - __syncthreads(); + tile.sync(); - if ((block_counter + 2 * block_size) > buffer_size) { - flush_output_buffer(block_counter, output_buffer, num_items, output_begin); + // Flush if the next iteration won't fit into buffer + if ((cg_counter[cg_id] + tile_size) > buffer_size) { + flush_output_buffer( + tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { cg_counter[cg_id] = 0; } + } + current_slot = view.next_slot(current_slot); + } // while running + } else { + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + pair slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, key)); + auto const exists = tile.ballot(equals); + + if (exists) { + auto num_matches = __popc(exists); + uint32_t output_idx = cg_counter[cg_id]; + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + Key k = key; + output_buffer[cg_id][output_idx + lane_offset] = + cuco::make_pair(std::move(k), std::move(slot_contents.second)); + } + if (0 == lane_id) { cg_counter[cg_id] += num_matches; } + } + if (tile.any(slot_is_empty)) { running = false; } - if (0 == threadIdx.x) { block_counter = 0; } - } + tile.sync(); - if (running) { current_slot = view.next_slot(current_slot); } - } // while running + // Flush if the next iteration won't fit into buffer + if ((cg_counter[cg_id] + tile_size) > buffer_size) { + flush_output_buffer( + tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { cg_counter[cg_id] = 0; } + } + current_slot = view.next_slot(current_slot); + } // while running + } key_idx += (gridDim.x * block_size) / tile_size; } - // Final remainder flush - if (block_counter > 0) { - flush_output_buffer(block_counter, output_buffer, num_items, output_begin); + // Final flush of output buffer + if (cg_counter[cg_id] > 0) { + flush_output_buffer( + tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 8d4d7b5bb..b0d1b4ec3 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -141,6 +141,7 @@ class static_multimap { static_multimap& operator=(static_multimap&&) = delete; static constexpr uint32_t cg_size() noexcept { return ProbeSequence::cg_size(); } + static constexpr bool is_vector_load() noexcept { return ProbeSequence::is_vector_load(); } /** * @brief Construct a fixed-size map with the specified capacity and sentinel values. @@ -526,7 +527,7 @@ class static_multimap { } /** - * @brief Inserts the specified key/value pair into the map. + * @brief Inserts the specified key/value pair into the map using vector loads. * * @tparam Cooperative Group type * @tparam KeyEqual Binary callable type @@ -537,11 +538,25 @@ class static_multimap { * equality * @return void. */ - template > - __device__ void insert(CG g, - value_type const& insert_pair, - KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ std::enable_if_t insert( + CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; + /** + * @brief Inserts the specified key/value pair into the map using scalar loads. + * + * @tparam Cooperative Group type + * @tparam KeyEqual Binary callable type + * + * @param g The Cooperative Group that performs the insert + * @param insert_pair The pair to insert + * @param key_equal The binary callable used to compare two keys for + * equality + * @return void. + */ + template > + __device__ std::enable_if_t insert( + CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device mutable view /** @@ -653,7 +668,29 @@ class static_multimap { } /** - * @brief Indicates whether the key `k` was inserted into the map. + * @brief Indicates whether the key `k` was inserted into the map using vector loads. + * + * If the key `k` was inserted into the map, find returns + * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single contains operation. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `contains` at moderate to high load factors. + * + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the contains operation + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A boolean indicating whether the key/value pair + * containing `k` was inserted + */ + template > + __device__ std::enable_if_t contains( + CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Indicates whether the key `k` was inserted into the map using scalar loads. * * If the key `k` was inserted into the map, find returns * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to @@ -670,8 +707,9 @@ class static_multimap { * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ - template > - __device__ bool contains(CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ std::enable_if_t contains( + CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device_view /** From cd6566ddbb513e5799ea55d21dcece03d397d17c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 2 Jun 2021 14:11:54 -0400 Subject: [PATCH 120/267] Fix bugs: wrong logic in count_outer + use this pointer --- include/cuco/detail/static_multimap.inl | 4 ++-- include/cuco/detail/static_multimap_kernels.cuh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index effc706c5..a07927597 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -478,8 +478,8 @@ static_multimap::device_view::conta memcpy(&arr[0], &tmp, 2 * sizeof(pair)); } - auto const first_slot_is_empty = (arr[0].first == get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == get_empty_key_sentinel()); + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index bb09565f5..ec73dcb7f 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -319,7 +319,7 @@ __global__ std::enable_if_t count( auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - found_match = tile.any(first_equals or second_equals); + if (tile.any(first_equals or second_equals)) { found_match = true; } thread_num_items += (first_equals + second_equals); @@ -417,7 +417,7 @@ __global__ std::enable_if_t count( auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); auto const equals = not slot_is_empty and key_equal(current_key, key); - found_match = tile.any(equals); + if (tile.any(equals)) { found_match = true; } thread_num_items += equals; From a5c83e3b87db66889cde0fccd69bbdbdca9266d2 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 2 Jun 2021 14:18:38 -0400 Subject: [PATCH 121/267] Update multimap unit tests --- tests/static_multimap/static_multimap_test.cu | 142 +++++++++++++++--- 1 file changed, 124 insertions(+), 18 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 5643084ab..dfafc3ef0 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -70,20 +70,6 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } break; } - case dist_type::UNIFORM: { - std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; - for (auto i = 0; i < num_items; ++i) { - output_begin[i] = distribution(gen); - } - break; - } - case dist_type::GAUSSIAN: { - std::normal_distribution<> dg{1e9, 1e7}; - for (auto i = 0; i < num_items; ++i) { - output_begin[i] = std::abs(static_cast(dg(gen))); - } - break; - } } } @@ -116,17 +102,35 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", thrust::device_vector> d_pairs(h_pairs); thrust::device_vector> d_results(num_items); - // Get array of unique keys + // Get unique keys std::set key_set(h_keys.begin(), h_keys.end()); std::vector h_unique_keys(key_set.begin(), key_set.end()); thrust::device_vector d_unique_keys(h_unique_keys); - // Bulk function test cases + thrust::device_vector d_contained(num_items / 2); + + SECTION("Non-inserted key/value pairs should not be contained.") + { + map.contains(d_unique_keys.begin(), d_unique_keys.end(), d_contained.begin()); + + REQUIRE( + none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); + } + + map.insert(d_pairs.begin(), d_pairs.end()); + + SECTION("All inserted key/value pairs should be contained.") + { + map.contains(d_unique_keys.begin(), d_unique_keys.end(), d_contained.begin()); + + REQUIRE( + all_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); + } + SECTION("Total count should be equal to the number of inserted pairs.") { - map.insert(d_pairs.begin(), d_pairs.end()); // Count matching keys - size_t num = map.count(d_unique_keys.begin(), d_unique_keys.end()); + auto num = map.count(d_unique_keys.begin(), d_unique_keys.end()); REQUIRE(num == num_items); @@ -136,4 +140,106 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", REQUIRE(size == num_items); } + + SECTION("count and count_outer should return the same value.") + { + auto num = map.count(d_unique_keys.begin(), d_unique_keys.end()); + auto num_outer = map.count_outer(d_unique_keys.begin(), d_unique_keys.end()); + + REQUIRE(num == num_outer); + } + + SECTION("Output size of retrieve and retrieve_outer should be the same.") + { + auto output_begin = d_results.data().get(); + auto output_end = map.retrieve(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); + + output_end = map.retrieve_outer(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + auto size_outer = thrust::distance(output_begin, output_end); + + REQUIRE(size == size_outer); + } +} + +TEMPLATE_TEST_CASE_SIG("Handling of non-matches", + "", + ((typename T, dist_type Dist), T, Dist), + (int32_t, dist_type::UNIQUE), + (int64_t, dist_type::UNIQUE)) +{ + using Key = T; + using Value = T; + + constexpr std::size_t num_keys{1'000'000}; + cuco::static_multimap map{2'000'000, -1, -1}; + + auto m_view = map.get_device_mutable_view(); + auto view = map.get_device_view(); + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end()); + + for (auto i = 0; i < num_keys; ++i) { + h_pairs[i].first = h_keys[i] / 2; + h_pairs[i].second = h_keys[i]; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_pairs(h_pairs); + + map.insert(d_pairs.begin(), d_pairs.end()); + + SECTION("Output of count and retrieve should be coherent.") + { + auto num = map.count(d_keys.begin(), d_keys.end()); + thrust::device_vector> d_results(num); + + REQUIRE(num == num_keys); + + auto output_begin = d_results.data().get(); + auto output_end = map.retrieve(d_keys.begin(), d_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); + + REQUIRE(num == size); + } + + SECTION("Output of count_outer and retrieve_outer should be coherent.") + { + auto num = map.count_outer(d_keys.begin(), d_keys.end()); + thrust::device_vector> d_results(num); + + REQUIRE(num == (num_keys + num_keys / 2)); + + auto output_begin = d_results.data().get(); + auto output_end = map.retrieve_outer(d_keys.begin(), d_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); + + REQUIRE(num == size); + } + + SECTION("count_outer handles non-matches wile count doesn't.") + { + auto num_outer = map.count_outer(d_keys.begin(), d_keys.end()); + auto num = map.count(d_keys.begin(), d_keys.end()); + + REQUIRE(num_outer == (num + num_keys / 2)); + } + + SECTION("retrieve_outer handles non-matches wile retrieve doesn't.") + { + auto num_outer = map.count_outer(d_keys.begin(), d_keys.end()); + thrust::device_vector> d_results(num_outer); + + auto output_begin = d_results.data().get(); + auto output_end = map.retrieve(d_keys.begin(), d_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); + + output_end = map.retrieve_outer(d_keys.begin(), d_keys.end(), output_begin); + auto size_outer = thrust::distance(output_begin, output_end); + + REQUIRE(size_outer == (size + num_keys / 2)); + } } From 451b0bb66e63b33983d51a31d408789e5262278e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 2 Jun 2021 18:39:54 -0400 Subject: [PATCH 122/267] Pass pair_equal callables to pair_count + update comments --- include/cuco/detail/static_multimap.inl | 12 +- .../cuco/detail/static_multimap_kernels.cuh | 141 ++++++++---------- include/cuco/static_multimap.cuh | 49 +++--- 3 files changed, 98 insertions(+), 104 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index a07927597..37d7ff18a 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -179,9 +179,9 @@ template -template +template std::size_t static_multimap::pair_count( - InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal, ValEqual val_equal) + InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -197,7 +197,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); detail::pair_count - <<>>(first, last, num_items, view, key_equal, val_equal); + <<>>(first, last, num_items, view, pair_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); size_t result = *num_items; @@ -211,9 +211,9 @@ template -template +template std::size_t static_multimap::pair_count_outer( - InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal, ValEqual val_equal) + InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -231,7 +231,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); detail::pair_count - <<>>(first, last, num_items, view, key_equal, val_equal); + <<>>(first, last, num_items, view, pair_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); size_t result = *num_items; diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index ec73dcb7f..956f3c15f 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -25,14 +25,17 @@ namespace detail { namespace cg = cooperative_groups; /** - * @brief Flushes per-CG shared memory buffer into the output sequence. + * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. * + * @tparam cg_size The number of threads in the Cooperative Groups + * @tparam CG Cooperative Group type * @tparam Key key type * @tparam Value value type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` - * @param output_size Number of valid output in the buffer + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_items Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs @@ -65,12 +68,15 @@ flush_output_buffer(CG const& g, /** * @brief Flushes per-CG shared memory buffer into the output sequence. * + * @tparam cg_size The number of threads in the Cooperative Groups + * @tparam CG Cooperative Group type * @tparam Key key type * @tparam Value value type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` - * @param output_size Number of valid output in the buffer + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_items Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs @@ -101,12 +107,13 @@ flush_output_buffer(CG const& g, /** * @brief Flushes per-block shared memory buffer into the output sequence. * + * @tparam block_size The size of the thread block * @tparam Key key type * @tparam Value value type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` - * @param output_size Number of valid output in the buffer + * @param num_outputs Number of valid output in the buffer * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_items Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs @@ -168,9 +175,10 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. * - * @tparam block_size + * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of device view allowing access of hash map storage @@ -210,6 +218,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -265,6 +274,9 @@ __global__ void contains( * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam Key key type * @tparam Value The type of the mapped value for the map + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join + * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's * `key_type` * @tparam atomicT Type of atomic storage @@ -370,6 +382,9 @@ __global__ std::enable_if_t count( * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam Key key type * @tparam Value The type of the mapped value for the map + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join + * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's * `key_type` * @tparam atomicT Type of atomic storage @@ -458,17 +473,18 @@ __global__ std::enable_if_t count( * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam Key key type * @tparam Value The type of the mapped value for the map + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join + * operations or not * @tparam Input Device accesible input iterator of key/value pairs * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage - * @tparam KeyEqual Binary callable - * @tparam ValEqual Binary callable + * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count * @param num_items The number of all the matches for a sequence of pairs * @param view Device view used to access the hash map's slot storage - * @param key_equal Binary function to compare two keys for equality - * @param val_equal Binary function to compare two values for equality + * @param pair_equal Binary function to compare two pairs for equality */ template -__global__ std::enable_if_t pair_count(InputIt first, - InputIt last, - atomicT* num_items, - viewT view, - KeyEqual key_equal, - ValEqual val_equal) + typename PairEqual> +__global__ std::enable_if_t pair_count( + InputIt first, InputIt last, atomicT* num_items, viewT view, PairEqual pair_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -515,25 +526,17 @@ __global__ std::enable_if_t pair_count(InputIt first, memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); } - auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); - auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); - - auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); - auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); - auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); - auto const second_val_equals = - (not second_val_is_empty and key_equal(arr[1].second, value)); + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = first_key_equals and first_val_equals; - auto const second_equals = second_key_equals and second_val_equals; + auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - found_match = tile.any(first_equals or second_equals); + if (tile.any(first_slot_equals or second_slot_equals)) { found_match = true; } - thread_num_items += (first_equals + second_equals); + thread_num_items += (first_slot_equals + second_slot_equals); - if (tile.any(first_key_is_empty or second_key_is_empty)) { + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } break; } @@ -551,23 +554,15 @@ __global__ std::enable_if_t pair_count(InputIt first, memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); } - auto const first_key_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_key_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_val_is_empty = (arr[0].second == view.get_empty_value_sentinel()); - auto const second_val_is_empty = (arr[1].second == view.get_empty_value_sentinel()); - - auto const first_key_equals = (not first_key_is_empty and key_equal(arr[0].first, key)); - auto const second_key_equals = (not second_key_is_empty and key_equal(arr[1].first, key)); - auto const first_val_equals = (not first_val_is_empty and key_equal(arr[0].second, value)); - auto const second_val_equals = - (not second_val_is_empty and key_equal(arr[1].second, value)); + auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = first_key_equals and first_val_equals; - auto const second_equals = second_key_equals and second_val_equals; + auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - thread_num_items += (first_equals + second_equals); + thread_num_items += (first_slot_equals + second_slot_equals); - if (tile.any(first_key_is_empty or second_key_is_empty)) { break; } + if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } current_slot = view.next_slot(current_slot); } @@ -589,17 +584,18 @@ __global__ std::enable_if_t pair_count(InputIt first, * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam Key key type * @tparam Value The type of the mapped value for the map + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join + * operations or not * @tparam Input Device accesible input iterator of key/value pairs * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage - * @tparam KeyEqual Binary callable - * @tparam ValEqual Binary callable + * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count * @param num_items The number of all the matches for a sequence of pairs * @param view Device view used to access the hash map's slot storage - * @param key_equal Binary function to compare two keys for equality - * @param val_equal Binary function to compare two values for equality + * @param pair_equal Binary function to compare two pairs for equality */ template -__global__ std::enable_if_t pair_count(InputIt first, - InputIt last, - atomicT* num_items, - viewT view, - KeyEqual key_equal, - ValEqual val_equal) + typename PairEqual> +__global__ std::enable_if_t pair_count( + InputIt first, InputIt last, atomicT* num_items, viewT view, PairEqual pair_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -639,19 +630,15 @@ __global__ std::enable_if_t pair_count(InputIt first, while (true) { auto slot_contents = *reinterpret_cast const*>(current_slot); - auto const key_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const val_is_empty = (slot_contents.second == view.get_empty_value_sentinel()); - - auto const key_equals = (not key_is_empty and key_equal(slot_contents.first, key)); - auto const val_equals = (not val_is_empty and key_equal(slot_contents.second, value)); + auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const equals = key_equals and val_equals; + auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); - found_match = tile.any(equals); + if (tile.any(equals)) { found_match = true; } thread_num_items += equals; - if (tile.any(key_is_empty)) { + if (tile.any(slot_is_empty)) { if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } break; } @@ -662,17 +649,13 @@ __global__ std::enable_if_t pair_count(InputIt first, while (true) { auto slot_contents = *reinterpret_cast const*>(current_slot); - auto const key_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const val_is_empty = (slot_contents.second == view.get_empty_value_sentinel()); - - auto const key_equals = (not key_is_empty and key_equal(slot_contents.first, key)); - auto const val_equals = (not val_is_empty and key_equal(slot_contents.second, value)); + auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const equals = key_equals and val_equals; + auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); thread_num_items += equals; - if (tile.any(key_is_empty)) { break; } + if (tile.any(slot_is_empty)) { break; } current_slot = view.next_slot(current_slot); } @@ -687,7 +670,8 @@ __global__ std::enable_if_t pair_count(InputIt first, } /** - * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * @brief Finds all the values corresponding to all keys in the range `[first, last)` using vector + * oads combined with per-block shared memory buffer. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and @@ -701,6 +685,9 @@ __global__ std::enable_if_t pair_count(InputIt first, * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join + * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -889,7 +876,8 @@ __global__ std::enable_if_t retrieve(InputIt first, } /** - * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * @brief Finds all the values corresponding to all keys in the range `[first, last)` using scalar + * loads combined with per-CG shared memory buffer. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and @@ -903,6 +891,9 @@ __global__ std::enable_if_t retrieve(InputIt first, * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join + * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index b0d1b4ec3..1a355e7bb 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -104,6 +104,7 @@ namespace cuco { * * @tparam Key Arithmetic type used for key * @tparam Value Type of the mapped values + * @tparam ProbeSequence Probe sequence used in multimap * @tparam Scope The scope in which insert/find operations will be performed by * individual threads. * @tparam Allocator Type of allocator used for device storage @@ -188,6 +189,7 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs + * @param stream CUDA stream used for insert * @param key_equal The binary function to compare two keys for equality */ template > @@ -209,6 +211,7 @@ class static_multimap { * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key + * @param stream CUDA stream used for contains * @param key_equal The binary function to compare two keys for equality */ template > @@ -225,6 +228,7 @@ class static_multimap { * @tparam KeyEqual Binary callable * @param first Beginning of the sequence of keys to count * @param last End of the sequence of keys to count + * @param stream CUDA stream used for count * @param key_equal Binary function to compare two keys for equality * @return The sum of total occurrences of all keys in `[first,last)` */ @@ -242,6 +246,7 @@ class static_multimap { * @tparam KeyEqual Binary callable * @param first Beginning of the sequence of keys to count * @param last End of the sequence of keys to count + * @param stream CUDA stream used for count_outer * @param key_equal Binary function to compare two keys for equality * @return The sum of total occurrences of all keys in `[first,last)` */ @@ -255,44 +260,36 @@ class static_multimap { * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. * * @tparam Input Device accesible input iterator of key/value pairs - * @tparam KeyEqual Binary callable - * @tparam ValEqual Binary callable + * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count - * @param key_equal Binary function to compare two keys for equality - * @param val_equal Binary function to compare two values for equality + * @param pair_equal Binary function to compare two pairs for equality + * @param stream CUDA stream used for pair_count * @return The sum of total occurrences of all pairs in `[first,last)` */ - template , - typename ValEqual = thrust::equal_to> + template std::size_t pair_count(InputIt first, InputIt last, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}, - ValEqual val_equal = ValEqual{}); + PairEqual pair_equal, + cudaStream_t stream = 0); /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. * If no matches can be found for a given key/value pair, the corresponding occurrence is 1. * * @tparam Input Device accesible input iterator of key/value pairs - * @tparam KeyEqual Binary callable - * @tparam ValEqual Binary callable + * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count - * @param key_equal Binary function to compare two keys for equality - * @param val_equal Binary function to compare two values for equality + * @param pair_equal Binary function to compare two pairs for equality + * @param stream CUDA stream used for pair_count_outer * @return The sum of total occurrences of all pairs in `[first,last)` */ - template , - typename ValEqual = thrust::equal_to> + template std::size_t pair_count_outer(InputIt first, InputIt last, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}, - ValEqual val_equal = ValEqual{}); + PairEqual pair_equal, + cudaStream_t stream = 0); /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. @@ -311,6 +308,7 @@ class static_multimap { * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of key/value pairs retrieved for each key + * @param stream CUDA stream used for retrieve * @param key_equal The binary function to compare two keys for equality * @return The iterator indicating the last valid key/value pairs in the output */ @@ -339,6 +337,7 @@ class static_multimap { * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of key/value pairs retrieved for each key + * @param stream CUDA stream used for retrieve_outer * @param key_equal The binary function to compare two keys for equality * @return The iterator indicating the last valid key/value pairs in the output */ @@ -529,7 +528,8 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map using vector loads. * - * @tparam Cooperative Group type + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * * @param g The Cooperative Group that performs the insert @@ -545,7 +545,8 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map using scalar loads. * - * @tparam Cooperative Group type + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * * @param g The Cooperative Group that performs the insert @@ -625,7 +626,7 @@ class static_multimap { * @endcode * * @tparam CG The type of the cooperative thread group - * @param g The ooperative thread group used to copy the slots + * @param g The cooperative thread group used to copy the slots * @param source_device_view `device_view` to copy from * @param memory_to_use Array large enough to support `capacity` elements. Object does not take * the ownership of the memory @@ -676,6 +677,7 @@ class static_multimap { * significant boost in throughput compared to the non Cooperative Group * `contains` at moderate to high load factors. * + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation @@ -698,6 +700,7 @@ class static_multimap { * significant boost in throughput compared to the non Cooperative Group * `contains` at moderate to high load factors. * + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation From 8e3d2ad15bc441e303311d1ae703d57ca12cca2f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 2 Jun 2021 19:39:14 -0400 Subject: [PATCH 123/267] Add pair_count unit tests --- .../cuco/detail/static_multimap_kernels.cuh | 14 ++--- tests/static_multimap/static_multimap_test.cu | 57 ++++++++++++++++++- 2 files changed, 61 insertions(+), 10 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 956f3c15f..bcc0a98a5 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -508,10 +508,9 @@ __global__ std::enable_if_t pair_count( std::size_t thread_num_items = 0; while (first + pair_idx < last) { - auto pair = *(first + pair_idx); - auto key = pair.first; - auto value = pair.second; - auto current_slot = view.initial_slot(tile, key); + cuco::pair_type pair = *(first + pair_idx); + auto key = pair.first; + auto current_slot = view.initial_slot(tile, key); if constexpr (is_outer) { bool found_match = false; @@ -619,10 +618,9 @@ __global__ std::enable_if_t pair_count( std::size_t thread_num_items = 0; while (first + pair_idx < last) { - auto pair = *(first + pair_idx); - auto key = pair.first; - auto value = pair.second; - auto current_slot = view.initial_slot(tile, key); + cuco::pair_type pair = *(first + pair_idx); + auto key = pair.first; + auto current_slot = view.initial_slot(tile, key); if constexpr (is_outer) { bool found_match = false; diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index dfafc3ef0..f0bc79398 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -45,6 +45,15 @@ bool none_of(Iterator begin, Iterator end, Predicate p) { return not all_of(begin, end, p); } + +template +struct pair_equal { + __host__ __device__ bool operator()(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) const + { + return lhs.first == rhs.first; + } +}; } // namespace enum class dist_type { UNIQUE, DUAL, UNIFORM, GAUSSIAN }; @@ -82,8 +91,8 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", using Key = T; using Value = T; - constexpr std::size_t num_items{50'000'000}; - cuco::static_multimap map{100'000'000, -1, -1}; + constexpr std::size_t num_items{400}; + cuco::static_multimap map{500, -1, -1}; auto m_view = map.get_device_mutable_view(); auto view = map.get_device_view(); @@ -243,3 +252,47 @@ TEMPLATE_TEST_CASE_SIG("Handling of non-matches", REQUIRE(size_outer == (size + num_keys / 2)); } } + +TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", + "", + ((typename T, dist_type Dist), T, Dist), + (int32_t, dist_type::UNIQUE), + (int64_t, dist_type::UNIQUE)) +{ + using Key = T; + using Value = T; + + constexpr std::size_t num_pairs{5'000'000}; + cuco::static_multimap map{10'000'000, -1, -1}; + + auto m_view = map.get_device_mutable_view(); + auto view = map.get_device_view(); + + std::vector h_keys(num_pairs); + std::vector> h_pairs(num_pairs); + + generate_keys(h_keys.begin(), h_keys.end()); + + for (auto i = 0; i < num_pairs; ++i) { + h_pairs[i].first = h_keys[i] / 2; + h_pairs[i].second = h_keys[i]; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_pairs(h_pairs); + + map.insert(d_pairs.begin(), d_pairs.end()); + + for (auto i = 0; i < num_pairs; ++i) { + h_pairs[i].first = h_keys[i]; + } + d_pairs = h_pairs; + + SECTION("pair_count_outer handles non-matches wile pair_count doesn't.") + { + auto num_outer = map.pair_count_outer(d_pairs.begin(), d_pairs.end(), pair_equal{}); + auto num = map.pair_count(d_pairs.begin(), d_pairs.end(), pair_equal{}); + + REQUIRE(num_outer == (num + num_pairs / 2)); + } +} From 87e0050044197c6aa70b40919ebbb7ae5bce9bf7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 2 Jun 2021 20:22:18 -0400 Subject: [PATCH 124/267] Change the default nvbench repo in CMake --- benchmarks/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 604d10ec7..2066ef9ac 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -16,7 +16,7 @@ CPMAddPackage( CPMAddPackage( NAME nvbench - GITHUB_REPOSITORY allisonvacanti/nvbench + GITHUB_REPOSITORY NVIDIA/nvbench GIT_TAG main GIT_SHALLOW TRUE ) From 476f8fe3a88737093371b2b5c4b9b567c6fdea85 Mon Sep 17 00:00:00 2001 From: Jake Hemstad Date: Wed, 2 Jun 2021 11:38:34 -0500 Subject: [PATCH 125/267] Add trait for is_bitwise_comparable. --- include/cuco/static_map.cuh | 52 +++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index cf7de0a7e..5abe40b19 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -44,6 +44,40 @@ namespace cuco { template class dynamic_map; +/** + * @brief Customization point that can be specialized to indicate that it is safe to perform bitwise + * equality comparisons on objects of type `T`. + * + * By default, only types where `std::has_unique_object_representations_v` is true are safe for + * bitwise equality. However, this can be too restrictive for some types, e.g., floating point + * types. + * + * User-defined specializations of `is_bitwise_comparable` are allowed, but it is the users + * responsibility to ensure values do not occur that would lead to unexpected behavior. For example, + * if a `NaN` bit pattern were used as the empty sentinel value, it may not compare bitwise equal to + * other `NaN` bit patterns. + * + */ +template +struct is_bitwise_comparable : std::false_type { +}; + +template + struct is_bitwise_comparable < T, + std::enable_if_t> : std::true_type { +}; + +/** + * @brief Declares that a type `Type` is bitwise comparable. + * + */ +#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ + namespace cuco { \ + template <> \ + struct is_bitwise_comparable : std::true_type { \ + }; \ + } + /** * @brief A GPU-accelerated, unordered, associative container of key-value * pairs with unique keys. @@ -118,14 +152,16 @@ template > class static_map { - template - static constexpr bool is_CAS_safe = - std::is_trivially_copyable_vand std::has_unique_object_representations_v; - - static_assert(is_CAS_safe, - "Key type must be trivially copyable and have unique object representation."); - static_assert(is_CAS_safe, - "Value type must be trivially copyable and have unique object representation."); + + static_assert( + is_bitwise_comparable::value, + "Key type must have unique object representations or have been explicitly declared as safe for " + "bitwise comparison via specialization of cuco::is_bitwise_comparable."); + + static_assert( + is_bitwise_comparable::value, + "Key type must have unique object representations or have been explicitly declared as safe for " + "bitwise comparison via specialization of cuco::is_bitwise_comparable."); friend class dynamic_map; From 228c1538f20857d82ee25ad1c549577d6ef3f768 Mon Sep 17 00:00:00 2001 From: Jake Hemstad Date: Wed, 2 Jun 2021 11:46:53 -0500 Subject: [PATCH 126/267] Update docs. --- include/cuco/static_map.cuh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 5abe40b19..3ae42b5a7 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -62,6 +62,7 @@ template struct is_bitwise_comparable : std::false_type { }; +/// By default, only types with unique object representations are allowed template struct is_bitwise_comparable < T, std::enable_if_t> : std::true_type { @@ -86,14 +87,12 @@ template * concurrent insert and find) from threads in device code. * * Current limitations: - * - Requires keys and values that are trivially copyable and have unique object representations + * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons. - * Therefore, the objects must have unique, bitwise object representations (e.g., no padding - * bits). * - Does not support erasing keys * - Capacity is fixed and will not grow automatically - * - Requires the user to specify sentinel values for both key and mapped value - * to indicate empty slots + * - Requires the user to specify sentinel values for both key and mapped value to indicate empty + * slots * - Does not support concurrent insert and find operations * * The `static_map` supports two types of operations: From cf966396bb9aea2a4a72da46b41bd28f8ea14af5 Mon Sep 17 00:00:00 2001 From: Jake Hemstad Date: Wed, 2 Jun 2021 11:51:41 -0500 Subject: [PATCH 127/267] fix typo. --- include/cuco/static_map.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 3ae42b5a7..5258a1894 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -159,7 +159,7 @@ class static_map { static_assert( is_bitwise_comparable::value, - "Key type must have unique object representations or have been explicitly declared as safe for " + "Value type must have unique object representations or have been explicitly declared as safe for " "bitwise comparison via specialization of cuco::is_bitwise_comparable."); friend class dynamic_map; From c619954990e13941ea04d5af1621727f5ad39bae Mon Sep 17 00:00:00 2001 From: Jake Hemstad Date: Wed, 2 Jun 2021 11:59:41 -0500 Subject: [PATCH 128/267] Missing angle bracket. --- include/cuco/static_map.cuh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 5258a1894..8a1f7acff 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -64,8 +64,8 @@ struct is_bitwise_comparable : std::false_type { /// By default, only types with unique object representations are allowed template - struct is_bitwise_comparable < T, - std::enable_if_t> : std::true_type { +struct is_bitwise_comparable>> + : std::true_type { }; /** From fb7660ff631b0afa2379c52bfc712295fc563240 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 7 Jun 2021 11:02:02 -0400 Subject: [PATCH 129/267] Revert dynamic map and static map implementations to their main dev version --- include/cuco/detail/dynamic_map.inl | 4 +- include/cuco/detail/dynamic_map_kernels.cuh | 301 ++++++++--------- include/cuco/detail/static_map.inl | 16 +- include/cuco/detail/static_map_kernels.cuh | 339 ++++++++++---------- include/cuco/dynamic_map.cuh | 4 +- include/cuco/static_map.cuh | 40 ++- 6 files changed, 347 insertions(+), 357 deletions(-) diff --git a/include/cuco/detail/dynamic_map.inl b/include/cuco/detail/dynamic_map.inl index e511489a4..57950ea45 100644 --- a/include/cuco/detail/dynamic_map.inl +++ b/include/cuco/detail/dynamic_map.inl @@ -35,7 +35,7 @@ dynamic_map::dynamic_map(std::size_t initial_capac submap_mutable_views_.push_back(submaps_[0]->get_device_mutable_view()); CUCO_CUDA_TRY(cudaMallocManaged(&num_successes_, sizeof(atomic_ctr_type))); -} +} // namespace cuco template dynamic_map::~dynamic_map() @@ -153,4 +153,4 @@ void dynamic_map::contains( CUCO_CUDA_TRY(cudaDeviceSynchronize()); } -} // namespace cuco +} // namespace cuco \ No newline at end of file diff --git a/include/cuco/detail/dynamic_map_kernels.cuh b/include/cuco/detail/dynamic_map_kernels.cuh index c1e21e863..28690b0dc 100644 --- a/include/cuco/detail/dynamic_map_kernels.cuh +++ b/include/cuco/detail/dynamic_map_kernels.cuh @@ -19,17 +19,17 @@ namespace detail { namespace cg = cooperative_groups; /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -38,7 +38,7 @@ namespace cg = cooperative_groups; * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -46,14 +46,14 @@ namespace cg = cooperative_groups; * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -62,55 +62,58 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = blockDim.x * blockIdx.x + threadIdx.x; - while (first + tid < last) { + while(first + tid < last) { pair_type insert_pair = *(first + tid); - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for (auto i = 0; i < num_submaps; ++i) { - if (i != insert_idx) { + for(auto i = 0; i < num_submaps; ++i) { + if(i != insert_idx) { exists = submap_views[i].contains(insert_pair.first, hash, key_equal); - if (exists) { break; } + if(exists) { + break; + } } } - if (!exists) { - if (submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { + if(!exists) { + if(submap_mutable_views[insert_idx].insert(insert_pair, hash, key_equal)) { thread_num_successes++; } } tid += gridDim.x * blockDim.x; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam pair_type Type of the pairs contained in the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of the `static_map` device views - * @tparam mutableViewT Type of the `static_map` device mutable views + * @tparam mutableViewT Type of the `static_map` device mutable views * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -119,7 +122,7 @@ __global__ void insert(InputIt first, * @param last End of the sequence of key/value pairs * @param submap_views Array of `static_map::device_view` objects used to * perform `contains` operations on each underlying `static_map` - * @param submap_mutable_views Array of `static_map::device_mutable_view` objects + * @param submap_mutable_views Array of `static_map::device_mutable_view` objects * used to perform an `insert` into the target `static_map` submap * @param num_successes The number of successfully inserted key/value pairs * @param insert_idx The index of the submap we are inserting into @@ -127,15 +130,14 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template +template __global__ void insert(InputIt first, InputIt last, viewT* submap_views, @@ -144,51 +146,54 @@ __global__ void insert(InputIt first, uint32_t insert_idx, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; - while (it < last) { + while(it < last) { pair_type insert_pair = *it; - auto exists = false; - + auto exists = false; + // manually check for duplicates in those submaps we are not inserting into - for (auto i = 0; i < num_submaps; ++i) { - if (i != insert_idx) { + for(auto i = 0; i < num_submaps; ++i) { + if(i != insert_idx) { exists = submap_views[i].contains(tile, insert_pair.first, hash, key_equal); - if (exists) { break; } + if(exists) { + break; + } } } - if (!exists) { - if (submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && - tile.thread_rank() == 0) { + if(!exists) { + if(submap_mutable_views[insert_idx].insert(tile, insert_pair, hash, key_equal) && + tile.thread_rank() == 0) { thread_num_successes++; } } it += (gridDim.x * blockDim.x) / tile_size; } - + std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The number of threads in the thread block - * @tparam Value The mapped value type for the map + * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -202,39 +207,37 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) { + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while (first + tid < last) { - auto key = *(first + tid); + while(first + tid < last) { + auto key = *(first + tid); auto found_value = empty_value_sentinel; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(key, hash, key_equal); - if (found != submap_view.end()) { + auto found = submap_view.find(key, hash, key_equal); + if(found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -249,10 +252,10 @@ __global__ void find(InputIt first, /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -261,7 +264,7 @@ __global__ void find(InputIt first, * @tparam Value The mapped value type for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -275,50 +278,49 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void find(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; + auto key_idx = tid / tile_size; auto empty_value_sentinel = submap_views[0].get_empty_value_sentinel(); __shared__ Value writeBuffer[block_size]; - while (first + key_idx < last) { - auto key = *(first + key_idx); + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found_value = empty_value_sentinel; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { auto submap_view = submap_views[i]; - auto found = submap_view.find(tile, key, hash, key_equal); - if (found != submap_view.end()) { + auto found = submap_view.find(tile, key, hash, key_equal); + if(found != submap_view.end()) { found_value = found->second; break; } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found_value; } + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found_value; + } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; @@ -327,13 +329,13 @@ __global__ void find(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The number of threads in the thread block * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -347,33 +349,33 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ + KeyEqual key_equal) { auto tid = blockDim.x * blockIdx.x + threadIdx.x; __shared__ bool writeBuffer[block_size]; - while (first + tid < last) { - auto key = *(first + tid); + while(first + tid < last) { + auto key = *(first + tid); auto found = false; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(key, hash, key_equal); - if (found) { break; } + if(found) { + break; + } } - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -388,10 +390,10 @@ __global__ void contains(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The number of threads in the thread block @@ -399,7 +401,7 @@ __global__ void contains(InputIt first, * perform find operations * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of `static_map` device view * @tparam Hash Unary callable type @@ -413,48 +415,49 @@ __global__ void contains(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template +template __global__ void contains(InputIt first, InputIt last, OutputIt output_begin, viewT* submap_views, uint32_t num_submaps, Hash hash, - KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = blockDim.x * blockIdx.x + threadIdx.x; + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = blockDim.x * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - while (first + key_idx < last) { - auto key = *(first + key_idx); + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = false; - for (auto i = 0; i < num_submaps; ++i) { + for(auto i = 0; i < num_submaps; ++i) { found = submap_views[i].contains(tile, key, hash, key_equal); - if (found) { break; } + if(found) { + break; + } } - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found; + } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * blockDim.x) / tile_size; } } -} // namespace detail -} // namespace cuco \ No newline at end of file +} // namespace detail +} // namespace cuco \ No newline at end of file diff --git a/include/cuco/detail/static_map.inl b/include/cuco/detail/static_map.inl index 2b72cfa32..b8f7ccdba 100644 --- a/include/cuco/detail/static_map.inl +++ b/include/cuco/detail/static_map.inl @@ -63,7 +63,7 @@ void static_map::insert(InputIt first, Hash hash, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); + auto num_keys = std::distance(first, last); if (num_keys == 0) { return; } auto const block_size = 128; @@ -87,9 +87,9 @@ void static_map::insert(InputIt first, template template void static_map::find( - InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) + InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); + auto num_keys = std::distance(first, last); if (num_keys == 0) { return; } auto const block_size = 128; @@ -108,7 +108,7 @@ template void static_map::contains( InputIt first, InputIt last, OutputIt output_begin, Hash hash, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); + auto num_keys = std::distance(first, last); if (num_keys == 0) { return; } auto const block_size = 128; @@ -175,8 +175,7 @@ __device__ bool static_map::device_mutable_view::i // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = - detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); + auto const slot_is_empty = detail::bitwise_compare(existing_key,this->get_empty_key_sentinel()); // the key we are trying to insert is already in the map, so we return with failure to insert if (g.ballot(not slot_is_empty and key_equal(existing_key, insert_pair.first))) { @@ -375,7 +374,7 @@ __device__ bool static_map::device_view::contains( while (true) { auto const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); - if (detail::bitwise_compare(existing_key, empty_key_sentinel_)) { return false; } + if (detail::bitwise_compare(existing_key,empty_key_sentinel_)) { return false; } if (key_equal(existing_key, k)) { return true; } @@ -395,8 +394,7 @@ __device__ bool static_map::device_view::contains( // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = - detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); + auto const slot_is_empty = detail::bitwise_compare(existing_key,this->get_empty_key_sentinel()); // the key we were searching for was found by one of the threads, so we return an iterator to // the entry diff --git a/include/cuco/detail/static_map_kernels.cuh b/include/cuco/detail/static_map_kernels.cuh index c243414e8..aa4606aa6 100644 --- a/include/cuco/detail/static_map_kernels.cuh +++ b/include/cuco/detail/static_map_kernels.cuh @@ -12,9 +12,9 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ -namespace cuco { +namespace cuco{ namespace detail { namespace cg = cooperative_groups; @@ -23,7 +23,7 @@ namespace cg = cooperative_groups; * * Each space in `slots` that can hold a key value pair is initialized to a * `pair_atomic_type` containing the key `k` and the value `v`. - * + * * @tparam atomic_key_type Type of the `Key` atomic container * @tparam atomic_mapped_type Type of the `Value` atomic container * @tparam Key key type @@ -34,14 +34,16 @@ namespace cg = cooperative_groups; * @param v Value to which all values in `slots` are initialized * @param size Size of the storage pointed to by `slots` */ -template -__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) -{ +template +__global__ void initialize( + pair_atomic_type* const slots, Key k, + Value v, std::size_t size) { + auto tid = block_size * blockIdx.x + threadIdx.x; while (tid < size) { new (&slots[tid].first) atomic_key_type{k}; @@ -51,45 +53,14 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s } /** - * @brief Initializes each slot in the flat `slots` storage to contain `k` and `v`. - * - * Each space in `slots` that can hold a key value pair is initialized to a - * `pair_atomic_type` containing the key `k` and the value `v`. - * - * @tparam atomic_key_type Type of the `Key` atomic container - * @tparam atomic_mapped_type Type of the `Value` atomic container - * @tparam Key key type - * @tparam Value value type - * @tparam pair_atomic_type key/value pair type - * @param slots Pointer to flat storage for the map's key/value pairs - * @param k Key to which all keys in `slots` are initialized - * @param v Value to which all values in `slots` are initialized - * @param size Size of the storage pointed to by `slots` - */ -template -__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) -{ - auto tid = threadIdx.x + blockIdx.x * blockDim.x; - while (tid < size) { - new (&slots[tid].first) atomic_key_type{k}; - new (&slots[tid].second) atomic_mapped_type{v}; - tid += gridDim.x * blockDim.x; - } -} - -/** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` +* convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -101,22 +72,25 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) -{ +template +__global__ void insert(InputIt first, + InputIt last, + atomicT* num_successes, + viewT view, + Hash hash, + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid; - + auto it = first + tid; + while (it < last) { typename viewT::value_type const insert_pair{*it}; if (view.insert(insert_pair, hash, key_equal)) { thread_num_successes++; } @@ -126,23 +100,25 @@ __global__ void insert( // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` +* convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -154,24 +130,27 @@ __global__ void insert( * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert( - InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) -{ +template +__global__ void insert(InputIt first, + InputIt last, + atomicT* num_successes, + viewT view, + Hash hash, + KeyEqual key_equal) { typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; - + auto tid = block_size * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; + while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; @@ -180,23 +159,25 @@ __global__ void insert( } it += (gridDim.x * block_size) / tile_size; } - + // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if (threadIdx.x == 0) { *num_successes += block_num_successes; } + if(threadIdx.x == 0) { + *num_successes += block_num_successes; + } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The size of the thread block * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -208,34 +189,37 @@ __global__ void insert( * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void find(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ Value writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); + + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(key, hash, key_equal); - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - writeBuffer[threadIdx.x] = found == view.end() - ? view.get_empty_value_sentinel() - : found->second.load(cuda::std::memory_order_relaxed); + writeBuffer[threadIdx.x] = + found == view.end() + ? view.get_empty_value_sentinel() + : found->second.load(cuda::std::memory_order_relaxed); __syncthreads(); *(output_begin + key_idx) = writeBuffer[threadIdx.x]; key_idx += gridDim.x * block_size; @@ -244,10 +228,10 @@ __global__ void find( /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -256,7 +240,7 @@ __global__ void find( * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -268,40 +252,42 @@ __global__ void find( * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void find(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ Value writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); + + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = - found == view.end() ? view.get_empty_value_sentinel() - : found->second.load(cuda::std::memory_order_relaxed); + found == view.end() + ? view.get_empty_value_sentinel() + : found->second.load(cuda::std::memory_order_relaxed); } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; @@ -310,7 +296,7 @@ __global__ void find( /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The size of the thread block @@ -320,7 +306,7 @@ __global__ void find( * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -328,24 +314,26 @@ __global__ void find( * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void contains(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ bool writeBuffer[block_size]; - - while (first + key_idx < last) { + + while(first + key_idx < last) { auto key = *(first + key_idx); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -360,10 +348,10 @@ __global__ void contains( /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -375,7 +363,7 @@ __global__ void contains( * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -383,40 +371,43 @@ __global__ void contains( * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains( - InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void contains(InputIt first, + InputIt last, + OutputIt output_begin, + viewT view, + Hash hash, + KeyEqual key_equal) { + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - - while (first + key_idx < last) { - auto key = *(first + key_idx); + + while(first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.contains(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } + if(tile.thread_rank() == 0) { + writeBuffer[threadIdx.x / tile_size] = found; + } __syncthreads(); - if (tile.thread_rank() == 0) { + if(tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; } } -} // namespace detail -} // namespace cuco +} // namespace detail +} // namespace cuco diff --git a/include/cuco/dynamic_map.cuh b/include/cuco/dynamic_map.cuh index 957d8dc33..c234a3579 100644 --- a/include/cuco/dynamic_map.cuh +++ b/include/cuco/dynamic_map.cuh @@ -51,7 +51,7 @@ namespace cuco { * Example: * \code{.cpp} * int empty_key_sentinel = -1; - * int empty_value_sentinel = -1; + * int empty_value_sentine = -1; * * // Constructs a map with 100,000 initial slots using -1 and -1 as the empty key/value * // sentinels. Performs one bulk insert of 50,000 keys and a second bulk insert of @@ -257,4 +257,4 @@ class dynamic_map { }; } // namespace cuco -#include +#include \ No newline at end of file diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 8a1f7acff..0fb74bed8 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -25,8 +25,7 @@ #include -#if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ - (__CUDA_ARCH__ >= 700) +#if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 700) #define CUCO_HAS_CUDA_BARRIER #endif @@ -116,7 +115,7 @@ struct is_bitwise_comparable @@ -721,7 +718,9 @@ class static_map { { #if defined(CUDA_HAS_CUDA_BARRIER) __shared__ cuda::barrier barrier; - if (g.thread_rank() == 0) { init(&barrier, g.size()); } + if (g.thread_rank() == 0) { + init(&barrier, g.size()); + } g.sync(); cuda::memcpy_async(g, @@ -733,11 +732,10 @@ class static_map { barrier.arrive_and_wait(); #else pair_atomic_type const* const slots_ptr = source_device_view.get_slots(); - for (std::size_t i = g.thread_rank(); i < source_device_view.get_capacity(); i += g.size()) { - new (&memory_to_use[i].first) - atomic_key_type{slots_ptr[i].first.load(cuda::memory_order_relaxed)}; - new (&memory_to_use[i].second) - atomic_mapped_type{slots_ptr[i].second.load(cuda::memory_order_relaxed)}; + for (std::size_t i = g.thread_rank(); i < source_device_view.get_capacity(); i += g.size()) + { + new (&memory_to_use[i].first) atomic_key_type{slots_ptr[i].first.load(cuda::memory_order_relaxed)}; + new (&memory_to_use[i].second) atomic_mapped_type{slots_ptr[i].second.load(cuda::memory_order_relaxed)}; } g.sync(); #endif From 32cb584302075b6d8911088aa3bd1e613ece3d34 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 7 Jun 2021 11:04:44 -0400 Subject: [PATCH 130/267] Revert dynamic map and static map benchmarks to their main dev version --- benchmarks/hash_table/dynamic_map_bench.cu | 100 ++++++++++--------- benchmarks/hash_table/static_map_bench.cu | 110 +++++++++++---------- 2 files changed, 111 insertions(+), 99 deletions(-) diff --git a/benchmarks/hash_table/dynamic_map_bench.cu b/benchmarks/hash_table/dynamic_map_bench.cu index 995e53903..cd6eadb47 100644 --- a/benchmarks/hash_table/dynamic_map_bench.cu +++ b/benchmarks/hash_table/dynamic_map_bench.cu @@ -15,118 +15,120 @@ */ #include +#include #include #include #include -#include -enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; +enum class dist_type { + UNIQUE, + UNIFORM, + GAUSSIAN +}; -template -static void generate_keys(OutputIt output_begin, OutputIt output_end) -{ +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) { auto num_keys = std::distance(output_begin, output_end); - + std::random_device rd; std::mt19937 gen{rd()}; - switch (Dist) { + switch(Dist) { case dist_type::UNIQUE: - for (auto i = 0; i < num_keys; ++i) { + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; case dist_type::UNIFORM: - for (auto i = 0; i < num_keys; ++i) { + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(gen())); } break; case dist_type::GAUSSIAN: std::normal_distribution<> dg{1e9, 1e7}; - for (auto i = 0; i < num_keys; ++i) { + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; } } -static void gen_final_size(benchmark::internal::Benchmark* b) -{ - for (auto size = 10'000'000; size <= 150'000'000; size += 20'000'000) { +static void gen_final_size(benchmark::internal::Benchmark* b) { + for(auto size = 10'000'000; size <= 150'000'000; size += 20'000'000) { b->Args({size}); } } template -static void BM_dynamic_insert(::benchmark::State& state) -{ +static void BM_dynamic_insert(::benchmark::State& state) { using map_type = cuco::dynamic_map; - - std::size_t num_keys = state.range(0); - std::size_t initial_size = 1 << 27; - - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); - + + std::size_t num_keys = state.range(0); + std::size_t initial_size = 1<<27; + + std::vector h_keys( num_keys ); + std::vector> h_pairs ( num_keys ); + generate_keys(h_keys.begin(), h_keys.end()); - for (auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + for(auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector> d_pairs(h_pairs); + thrust::device_vector> d_pairs( h_pairs ); std::size_t batch_size = 1E6; - for (auto _ : state) { + for(auto _ : state) { map_type map{initial_size, -1, -1}; { - cuda_event_timer raii{state}; - for (auto i = 0; i < num_keys; i += batch_size) { + cuda_event_timer raii{state}; + for(auto i = 0; i < num_keys; i += batch_size) { map.insert(d_pairs.begin() + i, d_pairs.begin() + i + batch_size); } } } - state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * int64_t(state.iterations()) * + state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * + int64_t(state.iterations()) * int64_t(state.range(0))); } template -static void BM_dynamic_search_all(::benchmark::State& state) -{ +static void BM_dynamic_search_all(::benchmark::State& state) { using map_type = cuco::dynamic_map; + + std::size_t num_keys = state.range(0); + std::size_t initial_size = 1<<27; - std::size_t num_keys = state.range(0); - std::size_t initial_size = 1 << 27; - - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); + std::vector h_keys( num_keys ); + std::vector> h_pairs ( num_keys ); generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + + for(auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector d_keys(h_keys); - thrust::device_vector> d_pairs(h_pairs); - thrust::device_vector d_results(num_keys); + thrust::device_vector d_keys( h_keys ); + thrust::device_vector> d_pairs( h_pairs ); + thrust::device_vector d_results( num_keys ); map_type map{initial_size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); - for (auto _ : state) { + for(auto _ : state) { cuda_event_timer raii{state}; map.find(d_keys.begin(), d_keys.end(), d_results.begin()); } - state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * int64_t(state.iterations()) * + state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * + int64_t(state.iterations()) * int64_t(state.range(0))); } @@ -159,7 +161,7 @@ BENCHMARK_TEMPLATE(BM_dynamic_search_all, int32_t, int32_t, dist_type::GAUSSIAN) ->Unit(benchmark::kMillisecond) ->Apply(gen_final_size) ->UseManualTime(); - + BENCHMARK_TEMPLATE(BM_dynamic_insert, int64_t, int64_t, dist_type::UNIQUE) ->Unit(benchmark::kMillisecond) ->Apply(gen_final_size) diff --git a/benchmarks/hash_table/static_map_bench.cu b/benchmarks/hash_table/static_map_bench.cu index 52e8eb140..165465518 100644 --- a/benchmarks/hash_table/static_map_bench.cu +++ b/benchmarks/hash_table/static_map_bench.cu @@ -15,37 +15,40 @@ */ #include -#include +#include "cuco/static_map.cuh" #include -#include +#include #include +#include #include -#include "cuco/static_map.cuh" -enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; +enum class dist_type { + UNIQUE, + UNIFORM, + GAUSSIAN +}; -template -static void generate_keys(OutputIt output_begin, OutputIt output_end) -{ +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) { auto num_keys = std::distance(output_begin, output_end); - + std::random_device rd; std::mt19937 gen{rd()}; - switch (Dist) { + switch(Dist) { case dist_type::UNIQUE: - for (auto i = 0; i < num_keys; ++i) { + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; case dist_type::UNIFORM: - for (auto i = 0; i < num_keys; ++i) { + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(gen())); } break; case dist_type::GAUSSIAN: std::normal_distribution<> dg{1e9, 1e7}; - for (auto i = 0; i < num_keys; ++i) { + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; @@ -56,8 +59,7 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) * @brief Generates input sizes and hash table occupancies * */ -static void generate_size_and_occupancy(benchmark::internal::Benchmark* b) -{ +static void generate_size_and_occupancy(benchmark::internal::Benchmark* b) { for (auto size = 100'000'000; size <= 100'000'000; size *= 10) { for (auto occupancy = 10; occupancy <= 90; occupancy += 10) { b->Args({size, occupancy}); @@ -65,74 +67,80 @@ static void generate_size_and_occupancy(benchmark::internal::Benchmark* b) } } + + template -static void BM_static_map_insert(::benchmark::State& state) -{ +static void BM_static_map_insert(::benchmark::State& state) { using map_type = cuco::static_map; - + std::size_t num_keys = state.range(0); - float occupancy = state.range(1) / float{100}; - std::size_t size = num_keys / occupancy; - - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); + float occupancy = state.range(1) / float{100}; + std::size_t size = num_keys / occupancy; + std::vector h_keys( num_keys ); + std::vector> h_pairs( num_keys ); + generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + + for(auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector> d_pairs(h_pairs); + thrust::device_vector> d_pairs( h_pairs ); - for (auto _ : state) { + for(auto _ : state) { + state.ResumeTiming(); state.PauseTiming(); map_type map{size, -1, -1}; state.ResumeTiming(); map.insert(d_pairs.begin(), d_pairs.end()); + + state.PauseTiming(); } - state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * int64_t(state.iterations()) * + state.SetBytesProcessed((sizeof(Key) + sizeof(Value)) * + int64_t(state.iterations()) * int64_t(state.range(0))); } + + template -static void BM_static_map_search_all(::benchmark::State& state) -{ +static void BM_static_map_search_all(::benchmark::State& state) { using map_type = cuco::static_map; - + std::size_t num_keys = state.range(0); - float occupancy = state.range(1) / float{100}; - std::size_t size = num_keys / occupancy; + float occupancy = state.range(1) / float{100}; + std::size_t size = num_keys / occupancy; map_type map{size, -1, -1}; auto view = map.get_device_mutable_view(); - std::vector h_keys(num_keys); - std::vector h_values(num_keys); - std::vector> h_pairs(num_keys); - std::vector h_results(num_keys); + std::vector h_keys( num_keys ); + std::vector h_values( num_keys ); + std::vector> h_pairs ( num_keys ); + std::vector h_results (num_keys); generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_pairs[i].first = key; + + for(auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector d_keys(h_keys); - thrust::device_vector d_results(num_keys); - thrust::device_vector> d_pairs(h_pairs); + thrust::device_vector d_keys( h_keys ); + thrust::device_vector d_results( num_keys); + thrust::device_vector> d_pairs( h_pairs ); map.insert(d_pairs.begin(), d_pairs.end()); - - for (auto _ : state) { + + for(auto _ : state) { map.find(d_keys.begin(), d_keys.end(), d_results.begin()); } @@ -140,6 +148,8 @@ static void BM_static_map_search_all(::benchmark::State& state) int64_t(state.range(0))); } + + BENCHMARK_TEMPLATE(BM_static_map_insert, int32_t, int32_t, dist_type::UNIQUE) ->Unit(benchmark::kMillisecond) ->Apply(generate_size_and_occupancy); @@ -186,4 +196,4 @@ BENCHMARK_TEMPLATE(BM_static_map_insert, int64_t, int64_t, dist_type::GAUSSIAN) BENCHMARK_TEMPLATE(BM_static_map_search_all, int64_t, int64_t, dist_type::GAUSSIAN) ->Unit(benchmark::kMillisecond) - ->Apply(generate_size_and_occupancy); + ->Apply(generate_size_and_occupancy); \ No newline at end of file From f65b61f8d95233f346bc4d37792ce4e78124e232 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 7 Jun 2021 11:06:31 -0400 Subject: [PATCH 131/267] Revert reduce_by_key to its main dev version --- benchmarks/reduce_by_key/reduce_by_key.cu | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/benchmarks/reduce_by_key/reduce_by_key.cu b/benchmarks/reduce_by_key/reduce_by_key.cu index 3e4776c6b..0ca08144f 100644 --- a/benchmarks/reduce_by_key/reduce_by_key.cu +++ b/benchmarks/reduce_by_key/reduce_by_key.cu @@ -16,13 +16,13 @@ #include -#include #include #include #include #include #include #include +#include /** * @brief Generates input sizes and number of unique keys @@ -76,11 +76,13 @@ static void BM_thrust(::benchmark::State& state) } } BENCHMARK_TEMPLATE(BM_thrust, int32_t, int32_t) - ->Unit(benchmark::kMillisecond) - ->Apply(generate_size_and_num_unique); + ->Unit(benchmark::kMillisecond) + ->Apply(generate_size_and_num_unique); BENCHMARK_TEMPLATE(BM_thrust, int64_t, int64_t) - ->Unit(benchmark::kMillisecond) - ->Apply(generate_size_and_num_unique); + ->Unit(benchmark::kMillisecond) + ->Apply(generate_size_and_num_unique); // TODO: Hash based reduce by key benchmark + + From 47c262467cec61840d97bbc833b72d04a0985b81 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 7 Jun 2021 11:09:08 -0400 Subject: [PATCH 132/267] Revert static map and dynamic map tests to their main dev version --- tests/dynamic_map/dynamic_map_test.cu | 86 +++++++++++++-------------- tests/static_map/static_map_test.cu | 32 +++++----- 2 files changed, 54 insertions(+), 64 deletions(-) diff --git a/tests/dynamic_map/dynamic_map_test.cu b/tests/dynamic_map/dynamic_map_test.cu index 0e52b4b64..3e4b94f02 100644 --- a/tests/dynamic_map/dynamic_map_test.cu +++ b/tests/dynamic_map/dynamic_map_test.cu @@ -22,37 +22,36 @@ #include #include -enum class dist_type { UNIQUE, UNIFORM, GAUSSIAN }; - -template -static void generate_keys(OutputIt output_begin, OutputIt output_end) -{ +enum class dist_type { + UNIQUE, + UNIFORM, + GAUSSIAN +}; + +template +static void generate_keys(OutputIt output_begin, OutputIt output_end) { auto num_keys = std::distance(output_begin, output_end); std::random_device rd; std::mt19937 gen{rd()}; - switch (Dist) { - case dist_type::UNIQUE: { - for (auto i = 0; i < num_keys; ++i) { + switch(Dist) { + case dist_type::UNIQUE: + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; - } - case dist_type::UNIFORM: { - std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; - for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = distribution(gen); + case dist_type::UNIFORM: + for(auto i = 0; i < num_keys; ++i) { + output_begin[i] = std::abs(static_cast(gen())); } break; - } - case dist_type::GAUSSIAN: { + case dist_type::GAUSSIAN: std::normal_distribution<> dg{1e9, 1e7}; - for (auto i = 0; i < num_keys; ++i) { + for(auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; - } } } @@ -79,15 +78,12 @@ bool none_of(Iterator begin, Iterator end, Predicate p) } } // namespace -TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", - "", + +TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", ((typename T, dist_type Dist), T, Dist), - (int32_t, dist_type::UNIQUE), - (int64_t, dist_type::UNIQUE), - (int32_t, dist_type::UNIFORM), - (int64_t, dist_type::UNIFORM), - (int32_t, dist_type::GAUSSIAN), - (int64_t, dist_type::GAUSSIAN)) + (int32_t, dist_type::UNIQUE), (int64_t, dist_type::UNIQUE), + (int32_t, dist_type::UNIFORM), (int64_t, dist_type::UNIFORM), + (int32_t, dist_type::GAUSSIAN), (int64_t, dist_type::GAUSSIAN)) { using Key = T; using Value = T; @@ -95,25 +91,25 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", constexpr std::size_t num_keys{50'000'000}; cuco::dynamic_map map{30'000'000, -1, -1}; - std::vector h_keys(num_keys); - std::vector h_values(num_keys); - std::vector> h_pairs(num_keys); + std::vector h_keys( num_keys ); + std::vector h_values( num_keys ); + std::vector> h_pairs ( num_keys ); generate_keys(h_keys.begin(), h_keys.end()); - for (auto i = 0; i < num_keys; ++i) { - Key key = h_keys[i]; - Value val = h_keys[i]; - h_values[i] = val; - h_pairs[i].first = key; + for(auto i = 0; i < num_keys; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_values[i] = val; + h_pairs[i].first = key; h_pairs[i].second = val; } - thrust::device_vector d_keys(h_keys); - thrust::device_vector d_values(h_values); - thrust::device_vector> d_pairs(h_pairs); - thrust::device_vector d_results(num_keys); - thrust::device_vector d_contained(num_keys); + thrust::device_vector d_keys( h_keys ); + thrust::device_vector d_values( h_values ); + thrust::device_vector> d_pairs( h_pairs ); + thrust::device_vector d_results( num_keys ); + thrust::device_vector d_contained( num_keys ); // bulk function test cases SECTION("All inserted keys-value pairs should be correctly recovered during find") @@ -122,7 +118,8 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", map.find(d_keys.begin(), d_keys.end(), d_results.begin()); auto zip = thrust::make_zip_iterator(thrust::make_tuple(d_results.begin(), d_values.begin())); - REQUIRE(all_of(zip, zip + num_keys, [] __device__(auto const& p) { + REQUIRE(all_of(zip, zip + num_keys, + [] __device__(auto const& p) { return thrust::get<0>(p) == thrust::get<1>(p); })); } @@ -131,8 +128,7 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", { map.find(d_keys.begin(), d_keys.end(), d_results.begin()); - REQUIRE( - all_of(d_results.begin(), d_results.end(), [] __device__(auto const& p) { return p == -1; })); + REQUIRE(all_of(d_results.begin(), d_results.end(), [] __device__(auto const& p) { return p == -1; })); } SECTION("All inserted keys-value pairs should be contained") @@ -140,15 +136,13 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", map.insert(d_pairs.begin(), d_pairs.end()); map.contains(d_keys.begin(), d_keys.end(), d_contained.begin()); - REQUIRE( - all_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); + REQUIRE(all_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } SECTION("Non-inserted keys-value pairs should not be contained") { map.contains(d_keys.begin(), d_keys.end(), d_contained.begin()); - REQUIRE( - none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); + REQUIRE(none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } -} +} \ No newline at end of file diff --git a/tests/static_map/static_map_test.cu b/tests/static_map/static_map_test.cu index a9d4a4520..f27ee77c9 100644 --- a/tests/static_map/static_map_test.cu +++ b/tests/static_map/static_map_test.cu @@ -59,26 +59,22 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) std::mt19937 gen{rd()}; switch (Dist) { - case dist_type::UNIQUE: { + case dist_type::UNIQUE: for (auto i = 0; i < num_keys; ++i) { output_begin[i] = i; } break; - } - case dist_type::UNIFORM: { - std::uniform_int_distribution distribution{0, std::numeric_limits::max()}; + case dist_type::UNIFORM: for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = distribution(gen); + output_begin[i] = std::abs(static_cast(gen())); } break; - } - case dist_type::GAUSSIAN: { + case dist_type::GAUSSIAN: std::normal_distribution<> dg{1e9, 1e7}; for (auto i = 0; i < num_keys; ++i) { output_begin[i] = std::abs(static_cast(dg(gen))); } break; - } } } @@ -221,6 +217,7 @@ TEST_CASE("User defined key and value type", "") } } + TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", "", ((typename T, dist_type Dist), T, Dist), @@ -286,10 +283,10 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", map.contains(d_keys.begin(), d_keys.end(), d_contained.begin()); REQUIRE( - none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); + none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; +})); } - // device funtion test cases SECTION("Inserting unique keys should return insert success.") { if (Dist == dist_type::UNIQUE) { @@ -314,8 +311,8 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", SECTION("const view") { REQUIRE(all_of( - d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { - return view.find(pair.first) == view.end(); + d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) +{ return view.find(pair.first) == view.end(); })); } } @@ -345,10 +342,9 @@ TEMPLATE_TEST_CASE_SIG("Unique sequence of keys", { // All keys should be found REQUIRE(all_of( - d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) { - auto const found = view.find(pair.first); - return (found != view.end()) and - (found->first.load() == pair.first and found->second.load() == pair.second); + d_pairs.begin(), d_pairs.end(), [view] __device__(cuco::pair_type const& pair) +{ auto const found = view.find(pair.first); return (found != view.end()) and (found->first.load() +== pair.first and found->second.load() == pair.second); })); } } @@ -493,8 +489,8 @@ TEMPLATE_TEST_CASE_SIG("Shared memory static map", d_keys_exist.data().get(), d_keys_and_values_correct.data().get()); - REQUIRE(none_of(d_keys_exist.begin(), d_keys_exist.end(), [] __device__(const bool key_found) { - return key_found; + REQUIRE(none_of(d_keys_exist.begin(), d_keys_exist.end(), [] __device__(const bool key_found) +{ return key_found; })); } } From dce099744cc0475858e2379ea88981b1e8fa1f1a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 7 Jun 2021 15:40:01 -0400 Subject: [PATCH 133/267] Move is_bitwise_comparable to traits.hpp and update map/multimap accordingly --- include/cuco/detail/traits.hpp | 54 ++++++++++++++++++++++++++++++++ include/cuco/static_map.cuh | 36 +-------------------- include/cuco/static_multimap.cuh | 20 ++++++------ 3 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 include/cuco/detail/traits.hpp diff --git a/include/cuco/detail/traits.hpp b/include/cuco/detail/traits.hpp new file mode 100644 index 000000000..3adfc227c --- /dev/null +++ b/include/cuco/detail/traits.hpp @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + */ + +#pragma once + +namespace cuco { +/** + * @brief Customization point that can be specialized to indicate that it is safe to perform bitwise + * equality comparisons on objects of type `T`. + * + * By default, only types where `std::has_unique_object_representations_v` is true are safe for + * bitwise equality. However, this can be too restrictive for some types, e.g., floating point + * types. + * + * User-defined specializations of `is_bitwise_comparable` are allowed, but it is the users + * responsibility to ensure values do not occur that would lead to unexpected behavior. For example, + * if a `NaN` bit pattern were used as the empty sentinel value, it may not compare bitwise equal to + * other `NaN` bit patterns. + * + */ +template +struct is_bitwise_comparable : std::false_type { +}; + +/// By default, only types with unique object representations are allowed +template +struct is_bitwise_comparable>> + : std::true_type { +}; + +/** + * @brief Declares that a type `Type` is bitwise comparable. + * + */ +#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ + namespace cuco { \ + template <> \ + struct is_bitwise_comparable : std::true_type { \ + }; \ + } + +} // namespace cuco diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 0fb74bed8..6952044c9 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -37,47 +37,13 @@ #include #include #include +#include namespace cuco { template class dynamic_map; -/** - * @brief Customization point that can be specialized to indicate that it is safe to perform bitwise - * equality comparisons on objects of type `T`. - * - * By default, only types where `std::has_unique_object_representations_v` is true are safe for - * bitwise equality. However, this can be too restrictive for some types, e.g., floating point - * types. - * - * User-defined specializations of `is_bitwise_comparable` are allowed, but it is the users - * responsibility to ensure values do not occur that would lead to unexpected behavior. For example, - * if a `NaN` bit pattern were used as the empty sentinel value, it may not compare bitwise equal to - * other `NaN` bit patterns. - * - */ -template -struct is_bitwise_comparable : std::false_type { -}; - -/// By default, only types with unique object representations are allowed -template -struct is_bitwise_comparable>> - : std::true_type { -}; - -/** - * @brief Declares that a type `Type` is bitwise comparable. - * - */ -#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ - namespace cuco { \ - template <> \ - struct is_bitwise_comparable : std::true_type { \ - }; \ - } - /** * @brief A GPU-accelerated, unordered, associative container of key-value * pairs with unique keys. diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 1a355e7bb..03a7f4765 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -37,6 +37,7 @@ #include #include #include +#include namespace cuco { @@ -48,7 +49,7 @@ namespace cuco { * concurrent insert and find) from threads in device code. * * Current limitations: - * - Requires keys and values that are trivially copyable and have unique object representations + * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons * Therefore, the objects must have unique, bitwise object representations (e.g., no padding bits). * - Does not support erasing keys @@ -115,14 +116,15 @@ template > class static_multimap { - template - static constexpr bool is_CAS_safe = - std::is_trivially_copyable_vand std::has_unique_object_representations_v; - - static_assert(is_CAS_safe, - "Key type must be trivially copyable and have unique object representation."); - static_assert(is_CAS_safe, - "Value type must be trivially copyable and have unique object representation."); + static_assert( + is_bitwise_comparable::value, + "Key type must have unique object representations or have been explicitly declared as safe for " + "bitwise comparison via specialization of cuco::is_bitwise_comparable."); + + static_assert(is_bitwise_comparable::value, + "Value type must have unique object representations or have been explicitly " + "declared as safe for " + "bitwise comparison via specialization of cuco::is_bitwise_comparable."); public: using value_type = cuco::pair_type; From 6229de57fd38ffb8abb10284fdb1facc32ca95aa Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 8 Jun 2021 13:40:32 -0400 Subject: [PATCH 134/267] Per-warp buffer by default for vector loads --- include/cuco/detail/static_multimap.inl | 26 ++-- .../cuco/detail/static_multimap_kernels.cuh | 115 +++++++++--------- 2 files changed, 69 insertions(+), 72 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 37d7ff18a..985a9932d 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -251,14 +251,11 @@ OutputIt static_multimap::retrieve( { auto num_keys = std::distance(first, last); auto const block_size = 128; - // Using per-block buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = [&]() { - if constexpr (is_vector_load()) { return block_size * 3u; } - return cg_size() * 3u; - }(); - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads + auto const buffer_size = is_vector_load() ? (32u * 3u) : (cg_size() * 3u); + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); atomic_ctr_type* num_items; CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); @@ -288,14 +285,11 @@ OutputIt static_multimap::retrieve_ { auto num_keys = std::distance(first, last); auto const block_size = 128; - // Using per-block buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = [&]() { - if constexpr (is_vector_load()) { return block_size * 3u; } - return cg_size() * 3u; - }(); - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads + auto const buffer_size = is_vector_load() ? (32u * 3u) : (cg_size() * 3u); + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); constexpr bool is_outer = true; diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index bcc0a98a5..60bd6ac13 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -105,32 +105,34 @@ flush_output_buffer(CG const& g, } /** - * @brief Flushes per-block shared memory buffer into the output sequence. + * @brief Flushes per-warp shared memory buffer into the output sequence. * - * @tparam block_size The size of the thread block * @tparam Key key type * @tparam Value value type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` + * @param activemask Mask of active threads in the warp * @param num_outputs Number of valid output in the buffer * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_items Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ -template -__inline__ __device__ void flush_output_buffer(uint32_t const num_outputs, +template +__inline__ __device__ void flush_output_buffer(const unsigned int activemask, + uint32_t const num_outputs, cuco::pair_type* output_buffer, atomicT* num_items, OutputIt output_begin) { - __shared__ std::size_t offset; - if (0 == threadIdx.x) { - offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - __syncthreads(); + int num_threads = __popc(activemask); + + std::size_t offset; + const auto lane_id = threadIdx.x % 32; + if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + offset = __shfl_sync(activemask, offset, 0); - for (auto index = threadIdx.x; index < num_outputs; index += block_size) { + for (auto index = lane_id; index < num_outputs; index += num_threads) { *(output_begin + offset + index) = output_buffer[index]; } } @@ -723,25 +725,27 @@ __global__ std::enable_if_t retrieve(InputIt first, auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - const uint32_t lane_id = tile.thread_rank(); + constexpr uint32_t num_warps = block_size / 32; + const uint32_t warp_id = threadIdx.x / 32; + const uint32_t warp_lane_id = threadIdx.x % 32; + const uint32_t tile_lane_id = tile.thread_rank(); - __shared__ uint32_t block_counter; - __shared__ cuco::pair_type output_buffer[buffer_size]; + __shared__ cuco::pair_type output_buffer[num_warps][buffer_size]; + __shared__ uint32_t warp_counter[num_warps]; - if (0 == threadIdx.x) { block_counter = 0; } + if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } - while (__syncthreads_or(first + key_idx < last)) { - auto key = *(first + key_idx); - typename viewT::iterator current_slot; + const unsigned int activemask = __ballot_sync(0xffffffff, first + key_idx < last); - bool running = ((first + key_idx) < last); + while (first + key_idx < last) { + auto key = *(first + key_idx); + auto current_slot = view.initial_slot(tile, key); + bool running = true; if constexpr (is_outer) { bool found_match = false; - if (running) { current_slot = view.initial_slot(tile, key); } - - while (__syncthreads_or(running)) { + while (__any_sync(activemask, running)) { if (running) { pair arr[2]; if constexpr (sizeof(Key) == 4) { @@ -766,49 +770,47 @@ __global__ std::enable_if_t retrieve(InputIt first, auto num_second_matches = __popc(second_exists); uint32_t output_idx; - if (0 == lane_id) { + if (0 == tile_lane_id) { output_idx = - atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + atomicAdd(&warp_counter[warp_id], (num_first_matches + num_second_matches)); } output_idx = tile.shfl(output_idx, 0); if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); + auto lane_offset = __popc(first_exists & ((1 << tile_lane_id) - 1)); Key k = key; - output_buffer[output_idx + lane_offset] = + output_buffer[warp_id][output_idx + lane_offset] = cuco::make_pair(std::move(k), std::move(arr[0].second)); } if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + auto lane_offset = __popc(second_exists & ((1 << tile_lane_id) - 1)); Key k = key; - output_buffer[output_idx + num_first_matches + lane_offset] = + output_buffer[warp_id][output_idx + num_first_matches + lane_offset] = cuco::make_pair(std::move(k), std::move(arr[1].second)); } } if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; - if ((not found_match) && (lane_id == 0)) { - auto output_idx = atomicAdd_block(&block_counter, 1); - output_buffer[output_idx] = + if ((not found_match) && (tile_lane_id == 0)) { + auto output_idx = atomicAdd(&warp_counter[warp_id], 1); + output_buffer[warp_id][output_idx] = cuco::make_pair(key, view.get_empty_key_sentinel()); } } } // if running - __syncthreads(); - - if ((block_counter + 2 * block_size) > buffer_size) { - flush_output_buffer(block_counter, output_buffer, num_items, output_begin); - - if (0 == threadIdx.x) { block_counter = 0; } + __syncwarp(activemask); + if (warp_counter[warp_id] + 32 * 2 > buffer_size) { + flush_output_buffer( + activemask, warp_counter[warp_id], output_buffer[warp_id], num_items, output_begin); + // First lane reset warp-level counter + if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } } - if (running) { current_slot = view.next_slot(current_slot); } + current_slot = view.next_slot(current_slot); } // while running } else { - if (running) { current_slot = view.initial_slot(tile, key); } - - while (__syncthreads_or(running)) { + while (__any_sync(activemask, running)) { if (running) { pair arr[2]; if constexpr (sizeof(Key) == 4) { @@ -831,45 +833,46 @@ __global__ std::enable_if_t retrieve(InputIt first, auto num_second_matches = __popc(second_exists); uint32_t output_idx; - if (0 == lane_id) { + if (0 == tile_lane_id) { output_idx = - atomicAdd_block(&block_counter, (num_first_matches + num_second_matches)); + atomicAdd(&warp_counter[warp_id], (num_first_matches + num_second_matches)); } output_idx = tile.shfl(output_idx, 0); if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << lane_id) - 1)); + auto lane_offset = __popc(first_exists & ((1 << tile_lane_id) - 1)); Key k = key; - output_buffer[output_idx + lane_offset] = + output_buffer[warp_id][output_idx + lane_offset] = cuco::make_pair(std::move(k), std::move(arr[0].second)); } if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << lane_id) - 1)); + auto lane_offset = __popc(second_exists & ((1 << tile_lane_id) - 1)); Key k = key; - output_buffer[output_idx + num_first_matches + lane_offset] = + output_buffer[warp_id][output_idx + num_first_matches + lane_offset] = cuco::make_pair(std::move(k), std::move(arr[1].second)); } } if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; } } // if running - __syncthreads(); - - if ((block_counter + 2 * block_size) > buffer_size) { - flush_output_buffer(block_counter, output_buffer, num_items, output_begin); - - if (0 == threadIdx.x) { block_counter = 0; } + __syncwarp(activemask); + if (warp_counter[warp_id] + 32 * 2 > buffer_size) { + flush_output_buffer( + activemask, warp_counter[warp_id], output_buffer[warp_id], num_items, output_begin); + // First lane reset warp-level counter + if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } } - if (running) { current_slot = view.next_slot(current_slot); } + current_slot = view.next_slot(current_slot); } // while running } key_idx += (gridDim.x * block_size) / tile_size; } - // Final remainder flush - if (block_counter > 0) { - flush_output_buffer(block_counter, output_buffer, num_items, output_begin); + // Final flush of output buffer + if (warp_counter[warp_id] > 0) { + flush_output_buffer( + activemask, warp_counter[warp_id], output_buffer[warp_id], num_items, output_begin); } } From 8af4d1d5f9cebe394bcdf4a5d9b564c73901f3d4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 8 Jun 2021 15:39:51 -0400 Subject: [PATCH 135/267] Use aggregate CAS for 32-bit integers during insertions --- include/cuco/detail/pair.cuh | 7 ++ include/cuco/detail/static_multimap.inl | 103 ++++++++++++++++-------- 2 files changed, 77 insertions(+), 33 deletions(-) diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index 1299ee16c..ac4d9f9c0 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -137,4 +137,11 @@ __host__ __device__ pair_type make_pair(F&& f, S&& s) noexcept { return pair_type{std::forward(f), std::forward(s)}; } + +template +union pair2uint64 { + uint64_t uint64; + pair_type pair; +}; + } // namespace cuco diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 985a9932d..3f7110c3d 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -348,22 +348,41 @@ static_multimap::device_mutable_vie auto expected_key = this->get_empty_key_sentinel(); auto expected_value = this->get_empty_value_sentinel(); auto insert_location = first_slot_is_empty ? current_slot : current_slot + 1; - auto& slot_key = insert_location->first; - auto& slot_value = insert_location->second; - bool key_success = - slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); - bool value_success = slot_value.compare_exchange_strong( - expected_value, insert_pair.second, memory_order_relaxed); - if (key_success) { - while (not value_success) { - value_success = - slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), - insert_pair.second, - memory_order_relaxed); + + if constexpr (sizeof(Key) == 4 and sizeof(Value) == 4) { + static_assert(sizeof(cuda::atomic) == + (sizeof(cuda::atomic) + sizeof(cuda::atomic))); + + cuco::pair2uint64 converter; + auto slot = reinterpret_cast*>(insert_location); + + converter.pair = + cuco::make_pair(std::move(expected_key), std::move(expected_value)); + auto empty_sentinel = converter.uint64; + converter.pair = insert_pair; + auto tmp_pair = converter.uint64; + + bool success = + slot->compare_exchange_strong(empty_sentinel, tmp_pair, memory_order_relaxed); + if (success) { status = insert_result::SUCCESS; } + } else { + auto& slot_key = insert_location->first; + auto& slot_value = insert_location->second; + bool key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = slot_value.compare_exchange_strong( + expected_value, insert_pair.second, memory_order_relaxed); + if (key_success) { + while (not value_success) { + value_success = slot_value.compare_exchange_strong( + expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + status = insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } - status = insert_result::SUCCESS; - } else if (value_success) { - slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } // another key was inserted in both slots we wanted to try // so we need to try the next empty slots in the window @@ -412,26 +431,44 @@ static_multimap::device_mutable_vie using cuda::std::memory_order_relaxed; auto expected_key = this->get_empty_key_sentinel(); auto expected_value = this->get_empty_value_sentinel(); - auto& slot_key = current_slot->first; - auto& slot_value = current_slot->second; - - bool key_success = - slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); - bool value_success = slot_value.compare_exchange_strong( - expected_value, insert_pair.second, memory_order_relaxed); - - if (key_success) { - while (not value_success) { - value_success = - slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), - insert_pair.second, - memory_order_relaxed); + + if constexpr (sizeof(Key) == 4 and sizeof(Value) == 4) { + static_assert(sizeof(cuda::atomic) == + (sizeof(cuda::atomic) + sizeof(cuda::atomic))); + + cuco::pair2uint64 converter; + auto slot = reinterpret_cast*>(current_slot); + + converter.pair = + cuco::make_pair(std::move(expected_key), std::move(expected_value)); + auto empty_sentinel = converter.uint64; + converter.pair = insert_pair; + auto tmp_pair = converter.uint64; + + bool success = + slot->compare_exchange_strong(empty_sentinel, tmp_pair, memory_order_relaxed); + if (success) { status = insert_result::SUCCESS; } + } else { + auto& slot_key = current_slot->first; + auto& slot_value = current_slot->second; + + bool key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = slot_value.compare_exchange_strong( + expected_value, insert_pair.second, memory_order_relaxed); + + if (key_success) { + while (not value_success) { + value_success = slot_value.compare_exchange_strong( + expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + status = insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } - status = insert_result::SUCCESS; - } else if (value_success) { - slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); } - // another key was inserted in the slot we wanted to try // so we need to try the next empty slot in the window } From b223ec9bd8149b781dd04eda3faddda1fe1d119c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 9 Jun 2021 10:49:00 -0400 Subject: [PATCH 136/267] Update performance analysis notebook --- .../analysis/notebooks/StaticMultimap.ipynb | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index 8e3b6c05c..9b6675a43 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -134,7 +134,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUoAAAFhCAYAAAAWQuPwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+VElEQVR4nO3dd5hU5fXA8e9h6U1AsSBVUBEFV1yxglijEBXFGMtPxJgQoxhNLCl21IiKUUQMEmwUsWFB0QAWFBuKilgQpIMU6SAsZdnz++PcZYdldmd2d+40zud55pmde+/c8047+973fe97RVVxzjlXuiqpLoBzzqU7T5TOOReDJ0rnnIvBE6VzzsXgidI552LwROmcczF4ooxCRDqLyMxUl6OIiKiItClj/Xci0jV5JSqbiAwRkVtTXY6wRL7fYp4SkTUi8llqS5YYItIy+M5VLWObX0TkgDj3t+P7G+93Q0TeEpHL4i91uGR3GEcpIncAbVT1/1JdlooQEQUOVNXZIvI0sFhVb0lxsdKOiMwHfq+qbycxZmdgNHCwqm5MVtwwiUhLYB5QTVULRGQSMFJVh1Vwfzu+vxV8fm/scz2hIs9PBK9RuoxXVs0nCVoA8yuSJFNcblceqppVN+BvwE/ABmAm0B3YCmwDfgG+Dra7HJgRbDcX+GPEPrpitbaix82Al4EVwCrg0Rhl6A18BDwErA32f1ywfBHwM3BZxPaTsP+Ykc//MOKxAm2APsHr2Bq8lteD9fOBU4O/7wBeBEYGr+0b4CDgH0HcRcDpEfuO+T4A/wRWBnEuieMzeBq4u8Q+rg/iLwUuj9i2G/B9EP8n4IaIdb8GpgXv4cdAh4h184PPejqwBavVFQL5wXtzUxnl2+nzLeU9fAEYHpTrOyCv5LbAFcBmYHsQ885g/R+A2cBqYCzQpMRneTXwI1ZrK3p/bop4f3oE78usYB//jOM9L+/nvuP1Rjx/ZPB3y6CcVYF7gte3OXiNj0Z+JyM+7yHAxCD2+0CLkt/fkt+N4PE5wWe8HpgDnBH5mwAOKfEerwWOApYDVSP20xOYFlpeSWYSC/sGHBx8IZpEfOCtI78EEdt2D9YJcCKwCehY8ocE5ABfY0mvDlATOCFGOXoDBVgSygHuBhYCg4EawOnBF6pu5JeixPN3SZTRvmil/Mg3A78KvujDsR/kzUA17Ec8rxzvQwHw76DcJwIbscPM8iTKAqBfEL9bEKNhsH4p0Dn4u2FE7I7YD/zo4D28LHidNSJe8zTsn1itaD/+Msq34/ON8R52C2LfC3xayrYlP6uTsX8qHYP3bBDwQYnPciLQCKgV8f7cFvH5rACeBeoBhwZlOSDGayrv577Te0UpiTLa97OU7+QGoEvwmgcSx/cX6ASsA07Djm73B9qWjFnyPQ6WfQ+cGfH4FeD6sHJLth16b8c+qHYiUk1V56vqnGgbquo4VZ2j5n1gAtA5yqadgCbAjaq6UVU3q+qHcZRlnqo+parbgeexH3Q/Vd2iqhOwWmGpHTSVNFlVx6tqAVbLaAz0V9VtwHNASxFpAHG/D7cG5X4fGAdcUM7ybMNe+zZVfROrGRwcsa6diNRX1TWq+mWw/A/A46o6RVW3q+ozWM3xmIj9PqKqi1Q1v5zliceHqvpm8PmNAA6P83mXAE+q6pequgWr0R0btPsVuVdVV0eUextwT8TnsxcwUFU3qOp3WI22Qxyx4/7cQzBOVT8IXvPN2GtuFuM5V2Dv1URVLVTVn1T1hzjjPQP8H4CINML+QTxb0cLHklWJUq2x+Drsv+PPIvKciDSJtq2InCkin4rIahFZi9Ue9oqyaTNgQfDlK4/lEX/nB+UruaxuOfdZ0dgrgx/8jrIUxY7jfVijO7e/LcD+cZTHqhLv3yaKX3vPIOYCEXlfRI4NlrcArheRtUU37LOIjL2onOUoj2UlylszzjbFJth7BICq/oI11+wfsU3Jcq+K8vlU5LsS9+cegh2vKXjNq4n9PWmGHW5XxEjgLBGpi/3jnqyqSyu4r5iyKlECqOqzar1jLbAq/33B/Q4iUgMYAwwA9lHVBsCb2OFnSYuA5iE3vG8Eakc83reMbRM2TCHO96GhiNSJeNwcWJKoMqjq56p6DrA38CrWNgj2vt+jqg0ibrVVdXTk00vuLs6wO73fIpKD1b4SYQn23Svadx1gT6z9tUg6DDVJ9HduR+0xSF6NiP09WYQ1+8SyS3xV/Qn4BDgXuBSr9YcmqxKliBwsIicHCWAz9l90O/aftqWIFL3e6tgh+gqgQETOxNoNo/kMa0frLyJ1RKSmiByf4KJPA84TkdrBeLMryth2ORDX+LU4xPs+3Cki1YOhML/GDusqLdjnJSKyR3B4uB77vAD+C1wpIkcHYxXriEh3EalXxi7jfW9mYTXE7iJSDbgFex8S4VngchHJDb6H/wKmqOr8BO0/UaYBF4pINRHJA84vY9t43tduInKCiFQH7sJec6wa/xPYe3WKiFQRkf1FpG0p8ZsG+440HOsEa4+1UYYmqxIl9mXvjzWmL8NqKf+k+Ie9SkS+VNUNwJ+x2ssa4GKsd3IXwaHLWVh74kKsh/K3CS73Q1ib5XKs7WVUGds+gbXprRWRVysTNM73YVmwbklQrivL0Y4Uj0uB+SKyHriSoN1JVadi7ZSPBvFnY436ZbkXuCV4b24obSNVXQdcBQzDanobsc+10lT1HeBWrKa+FKsxXZiIfSfYrVjZ1gB3Unb73kDg/GBQ/SOlbPMscDt2yH0k1lZbJlX9DOvwfAjr1HmfiNp4hHexdtplIrIyYvkrwfavaMhjWHeLAeeuYoKzT0aqatMUF8WlsVSeBCEic7AhbaGeZJBtNUrn3G5CRHpi7Zfvhh3LE2UFBees/hLlNiTVZUuG4HznaK8/5iFXMgRtn9HK912qy1ZRwfnP0V7TP1NdtmQLTqv8D3C1qhaGHs8PvZ1zrmxeo3TOuRg8UTrnXAyeKJ1zLgZPlM45F4MnSueci8ETpXPOxeCJ0jnnYvBE6ZxzMXiidM65GDxROudcDJ4onXMuBk+UzjkXgydK55yLwROlc87F4InSOedi8ETpnHMxeKJ0zrkYPFE651wMniidcy4GT5TOOReDJ0rnnIvBE6VzzsVQNdUFKK+99tpLW7ZsmepiOOeyzBdffLFSVRtHW5dxibJly5ZMnTo11cVwzmUZEVlQ2jo/9HbOuRg8UTrnXAyeKJ1zLgZPlM45F4MnSueci8ETpXPOxeCJ0jmXVTZvhrlzIT8/cfv0ROmcywqqcM890LQpnHwy7L8/3HYbFBZWft+eKBOkbt26ACxYsIAjjzyS3NxcDj30UIYMGbJjm0suuYSDDz6Yww47jN/97nds27at1P3dcccdDBgwYKdlLVu2ZOXKlQCICNdff/2OdQMGDOCOO+7Y5bm9e/emVatW5ObmkpubyyOPPALAunXr6NWrF61bt6Z169b06tWLdevWATB//nxq1apFbm4u7dq1o1evXjvKOmnSJESEJ554Ykfsr776ChHZpbyZrOjzBFi4cCGnn346hxxyCO3atWP+/Pk7bXvNNdfstH00/nmGb/BgeOUVmDoV5s+Hr7+Gt9+GBx+s/L53y0Q5ahS0bAlVqtj9qFGJ2/d+++3Hxx9/zLRp05gyZQr9+/dnyZIlgCXKH374gW+++Yb8/HyGDRtW4Tg1atTg5Zdf3vFDK8sDDzzAtGnTmDZtGn/+858BuOKKKzjggAOYM2cOc+bMoVWrVvz+97/f8ZzWrVszbdo0vvnmGxYvXswLL7ywY1379u15/vnndzx+7rnnOPzwwyv8Wipr9Gg47DDIybH70aMTu/9evXpx4403MmPGDD777DP23nvvHeumTp3K2rVrKx3DP8/KGzgQHnvMftMAzZrB44/b8sra7RLlqFHQpw8sWGBV9QUL7HGikmX16tWpUaMGAFu2bKEwot7frVs3RAQRoVOnTixevLjCcapWrUqfPn146KGHyv3c2bNn88UXX3DrrbfuWHbbbbcxdepU5syZs9O2OTk5dOrUiZ9++mnHsubNm7N582aWL1+OqvK///2PM888s8KvpTJGj4abb4ZBg6xtatAge5yoZPn9999TUFDAaaedBlhNs3bt2gBs376dG2+8kfvvv7/ScfzzrLxFi+DQQ60WedFFsHw5tGsHS5ZU/vA74871juW662DatNLXf/opbNmy87JNm+CKK+C//43+nNxcePjh+MuwaNEiunfvzuzZs3nggQdo0qTJTuu3bdvGiBEjGFjJf3VXX301HTp04KabbipzuxtvvJG7774bgBEjRjBv3jxyc3PJycnZsU1OTg65ubl89913dOjQYcfyzZs3M2XKlF3Kev755/Piiy9yxBFH0LFjxx3/HMLQteuuyy64AK66Cu66C+rVgzvvLF5Xrx7ceKP9WFauhPPP3/m5kybFH3vWrFk0aNCA8847j3nz5nHqqafSv39/cnJyePTRRzn77LPZb7/9KvKydrG7fJ5hOfpoeP11OOkka6Ns0ADGjYO8PDt6rIzdrkZZMknGWl4RzZo1Y/r06cyePZtnnnmG5cuX77T+qquuokuXLnTu3LnUfYhIzOX169enV69eO9qpShN5qNa+fXtUNer+I5fPmTOH3Nxc9txzT5o3b77Tjw3gggsu4MUXX2T06NFcdNFFZcYP08yZsMceOy/bYw+rRSRCQUEBkydPZsCAAXz++efMnTuXp59+miVLlvDiiy9yzTXXxLUf/zzDd+ed8Oc/WzvlccfBiBF2tHjXXZXfd9bVKGPV/Fq2tMPtklq0KF9NIx5NmjTh0EMPZfLkyZwfVGvuvPNOVqxYweOPP17mc/fcc0+WLl2607INGzbQoEGDnZZdd911dOzYkcsvvzzuch166KF89dVXFBYWUiX4V1tYWMjXX3/NIYccAhS3aS1dupSuXbsyduxYzj777B372HfffalWrRoTJ05k4MCBfPzxx3HHL6+yPpdDDrEfyEknFS977z0oyl977VW5z7Vp06YcccQRHHDAAQD06NGDTz/9lH333ZfZs2fTpk0bADZt2kSbNm2YPXt21P345xm+rl3hqaesp/vf/7bD8DFj4PjjK7/v3a5Gec89EDQx7VC7ti1PhMWLF5MfDOBas2YNH330EQcffDAAw4YNY/z48YwePXrHF7o0Xbp0YezYsWzYsAGAl19+mcMPP3ynwyuARo0accEFF+zUaxlLmzZtOOKII3YcvgHcfffddOzYcccPv8h+++1H//79uffee3fZT79+/bjvvvt2KVMy3XyzNZu89x5s22b3V1xhyxPhqKOOYs2aNaxYsQKAd999l3bt2tG9e3eWLVvG/PnzmT9/PrVr1y41SYJ/nsmybBl8+aXVKl95JTFJEnbDRHnJJTB0qNUgRex+6FBbnggzZszg6KOP5vDDD+fEE0/khhtuoH379gBceeWVLF++nGOPPZbc3Fz69etX6n46dOhA3759OeGEE8jNzWXIkCGl9pJff/31cfWWRnriiSeYNWsWbdq0oXXr1syaNavUH2ePHj3YtGkTkydP3mn5cccdR48ePcoVN9Euusj+yV1zDdSsaff33GPLEyEnJ4cBAwZwyimn7DjM/cMf/lDu/fjnmRwTJkCTJtaJk0iiqondY8jy8vLUJ+51zpW0fTvsvTecdRY8/XT5ny8iX6hqXrR1u12N0jmXnb76ClavhmAkV0JlXWdOpnnqqad2Gapx/PHHM3jw4BSVyFWGf56p88UX1px26qmJ37cfejvnssbKlTbSoSL80Ns5t1uoaJKMxROlcy7jvf22deJU4qzgMnmidM5lvDfesGTpNUrnnCvFxInQpYuNpQ2DJ0rnXEb76Sf4/vtwhgUV8UTpnMtoEyfa/emnhxfDE6VzLqPVrQtnngnBmcKh8ETpnMto558Pb75pg83D4onSOZex1q9P7NUWS+OJ0jmXsYYMgUaNYM2acON4onTOZawJE+DAA6Fhw3DjeKJ0zmWkTZvgww/DHRZUxBOlcy4jTZ5s17oKc1hQEU+UzrmMNGECVK8OZVyjL2F8PkrnXEbq3RuOOGLXa2CFwROlcy4jtW8f7iDzSH7o7ZzLOFOmwGuvQUFBcuJ5jdI5l3EefRTGj7fL0yaD1yidcxlF1SbCOOUUqJKkDOaJ0jmXUb75BpYvT86woCKeKJ1zGaVoWrVkDDQv4onSOZdRPv8cDjkEmjZNXkzvzHHOZZTRo2HFiuTG9Bqlcy6jiMDeeyc3pidK51zGGDAArrzSer6TyQ+9nXMZ49lnoX79cGczj8ZrlM65jPDzz/DVV8kdFlTEE6VzLiO8847dJ3NYUBFPlM65jDBhgl32oWPH5McONVGKyBkiMlNEZovI38vY7igR2S4i54dZHudc5mraFHr1gpyc5McOrTNHRHKAwcBpwGLgcxEZq6rfR9nuPmB8WGVxzmW+u+5KXewwa5SdgNmqOldVtwLPAedE2e4aYAzwc4hlcc5lsNWrobAwdfHDTJT7A4siHi8Olu0gIvsD5wJDytqRiPQRkakiMnVFsofkO+dS7tJLk3PJh9KEmSijjXQqOUz0YeBvqrq9rB2p6lBVzVPVvMaNGyeqfM65DLBlC0yaZJd9SJUwB5wvBppFPG4KLCmxTR7wnNjo0b2AbiJSoKqvhlgu51wG+eQTuzRtKsZPFgkzUX4OHCgirYCfgAuBiyM3UNVWRX+LyNPAG54knXORJkywnu6uXVNXhtASpaoWiEhfrDc7B3hSVb8TkSuD9WW2SzrnHNj8k8cea6cupkqo53qr6pvAmyWWRU2Qqto7zLI45zJTv37Ju+RDaXxSDOdcWjvzzFSXwE9hdM6lsbFjYerUVJfCE6VzLk2pQt++cO+9qS6JJ0rnXJqaNQsWLUrtsKAiniidc2lpwgS7T8W0aiV5onTOpaWJE6F1azjggFSXxBOlcy4NFRbCZ5+lR20SfHiQcy4NVakC8+fDL7+kuiTGE6VzLi3VrGm3dOCH3s65tPO738HQoakuRTFPlM65tLJmDTzzDPz0U6pLUswTpXMurbz7rnXmpMP4ySKeKJ1zaWXCBKhXDzp1SnVJinmidM6lDVVLlCefDNWqpbo0xbzX2zmXNjZtsks+nH12qkuyM0+Uzrm0UacOvPxyqkuxKz/0ds6ljbVrU12C6DxROufSQkEBtGgBt96a6pLsyhOlcy4tfPYZrF8PHTqkuiS78kTpnEsLEyaACJxySqpLsitPlM65tDBxIuTlQaNGqS7JrjxROudSbt06mDIlvc7GieTDg5xzKVe1KgwbBkcdleqSROeJ0jmXcnXqQO/eqS5F6fzQ2zmXcsOH24XE0pUnSudcSs2bB5ddBq+8kuqSlM4TpXMupSZOtPt0uT5ONJ4onXMpNXEiNG0KbdumuiSl80TpnEuZ7dvhnXdsWJBIqktTOk+UzrmU+f57mwgjnQ+7wYcHOedSqH17WL4catdOdUnK5onSOZdSjRunugSx+aG3cy4lNmyA7t3hww9TXZLYPFE651Li/ffhzTdh69ZUlyQ2T5TOuZSYMAFq1YLjj091SWLzROmcS4kJE+DEE6FGjVSXJDZPlM65pFu4EGbOTN9p1UryROmcS7pVq+yQO1MSpQ8Pcs4l3RFHZEZvd5G4EqWI5AGdgSZAPvAt8Laqrg6xbM65LFRYCJs2Qd26qS5J/Mo89BaR3iLyJfAPoBYwE/gZOAGYKCLPiEjz8IvpnMsWX35p18WZMCHVJYlfrBplHeB4Vc2PtlJEcoEDgYUJLpdzLktNnAjbtsHhh6e6JPErM1Gq6uAY66cltDTOuaw3YYIlyX32SXVJ4hdXr3dwiN0g4nFDEXkytFI557LSxo3w0UeZ09tdJN7hQR1UdW3RA1VdAxwRSomcc1nrgw/ssDvdp1UrKd5EWUVEGhY9EJFG+NAi51w5tWsH990HJ5yQ6pKUT7zJ7kHgYxF5CVDgAuCe0ErlnMtKLVrATTeluhTlF1eNUlWHAz2B5cAK4DxVHRFmwZxz2WXFCnjpJZteLdOU5xTGRsBGVR0ErBCRViGVyTmXhcaNg9/8BubODTfOqFHQsiVUqWL3o0ZVfp/xnplzO5AHHAw8BVQDRgIZMEGScy4dTJxoQ4Latw8vxqhR0KePnfkDsGCBPQa45JKK7zfeGuW5wNnARgBVXQLUq3hY59zupLDQEuWpp1pNLyw331ycJIts2mTLKyPeIm9VVcU6chCROvE8SUTOEJGZIjJbRP4eZf05IjJdRKaJyFQRybC+MOdcPKZPtzbKsMdPLizlHMHSlscr3kT5gog8DjQQkT8AbwP/LesJIpIDDAbOBNoBF4lIuxKbvQMcrqq5wO+AYeUou3MuQ0yebPennhpunKZNoy9vXskZKeLt9R4AvASMwdopbws6dcrSCZitqnNVdSvwHHBOif3+EtRUwc4rV5xzWadvX5g9G5o0CTdO1667LqtdG+6p5GDGeE9hrAO8q6o3YjXJWiJSLcbT9gcWRTxeHCwrue9zReQHYBxWq3TOZRkRaN063BiFhfDJJ9CmjY3XFLH7oUMr15ED8R96fwDUEJH9scPuy4GnYzxHoizbpcaoqq+oalugB3BX1B2J9AnaMKeuWLEiziI759LBBx9Ar16wdGm4ccaPt1prv34wf74lzvnzK58kIf5EKaq6CTgPGKSq52LtjmVZDDSLeNwUWFLaxqr6AdBaRPaKsm6oquapal7jTLhaunNuh7Fj4fnnYY89wo0zaBDsuy/07Jn4fcedKEXkWOAS7BAZYo/B/Bw4UERaiUh14EJgbImdthERCf7uCFQHVsVbeOdc+pswwc7trl07vBizZsFbb8Gf/gTVqyd+//Ge630tNsv5K6r6nYgcALxX1hNUtUBE+gLjgRzgyeC5Vwbrh2CnRfYSkW3YJSZ+G9G545zLcEuXwjffwL33hhtn8GCoVq14cHmiSablpby8PJ06dWqqi+Gci8OIEdY++cUX0LFjODE2bID994dzzrF4FSUiX6hqXrR1sa6ZM1REop5wJCJ1ROR3IpKAplLnXLY65hjIzQ1v/888Y8nymmvCi1FmjTK4Js4/gfbYlRdXADWx6+TUB54EhqjqlvCKuDOvUTrnihQWwiGHQMOG8OmnldtXWTXKWNfMmQZcICJ1sUkx9sPaEmeo6szKFcs5l83y861jJScnvBgTJ1pHzsiR4cWA+M/M+UVVJ6nqaFV91ZOkcy6Wxx6DvfeGNWvCi/HIIzYk6De/CS8GlG8+Sueci9vEiZYoGzaMvW1F/PgjvPkm/PGP4QwJiuSJ0jmXUAsW2GmD770HJ58cXpyiIUF//GN4MYqUK1HGO72ac273dPvtNgzohRdg61Z49ln47LPEx9mwAZ56yg6599sv8fsvKd5JMY4Tke+BGcHjw0XksVBL5pzLKBMnWmKcORPy8qy295//wPnnQ0FBYmMNHw7r18Of/5zY/ZYm3hrlQ8CvCE4vVNWvgS5hFco5l3mefRauvRb22gt69ICHHoILL7R2yg8/TFycwkJ49FE46ig4+ujE7bcscV+bW1UXBadlF9me+OI45zLV5s1QJ2icO+YYuwHUrWvrEuXtt+GHHyp3Fk55xVujXCQixwEqItVF5AaCw3DnnAP49a+tE+dvf4Nvv7Vl06fbud6dOycuzqBBVksNe0hQpHhrlFcCA7GJdxcDE4CrwyqUcy7z/Pa3dkh8//02L+QBB8DTT9uyOgnqBp4zxy57e+utUKNGYvYZj7gSpaquxKZYc865qKpUgS1b7JK0++4LNWvCRx/BQQclLsbgwXamTzKGBEWK97rerYBrgJaRz1HVs8MplnMu07z8Mnz1lU1S0atX4vf/yy/wxBPWix72tXdKivfQ+1XgCeB1oDC00jjnMtL27XDbbTZBRSIuvRDNiBHJHRIUKd5EuVlVHwm1JM65jLV1K5x9Nhx7bDiTYKhaJ86RRxb3pidTvIlyoIjcjnXi7JhSTVW/DKVUzrmMUqsW9O8f3v7feQdmzLDDeol22cKQxZso2wOXAidTfOitwWPn3G7slVesB/rMM8NLYoMGQePG1rOeCvEmynOBA1R1a5iFcc5llvx86NsXWrWyRBmGuXPh9dfh5puTOyQoUryJ8mugAfBzeEVxzmWaxx6DJUvs9MWwapOPPWbtnldeGc7+4xFvotwH+EFEPmfnNkofHuTcbmr9eru64mmnwYknhhNj40YbEtSzp11ALFXiTZS3h1oK51zGefhhWLUK7r47vBgjR8LateFeOCwe8Z6Z837YBXHOZZbmze0MmU6dwtl/0ZCgjh3huOPCiRGvMhOliHyoqieIyAasl3vHKkBVtX6opXPOpa3eve0Wlvfeg+++swl6UzEkKFKs2YNuBFDVeqpaP+JWz5Okc7unZctgyBDYti3cOI88YnNbXnhhuHHiEStRDk5KKZxzGeNf/7IhQQsWhBdj3jwbEtSnj02ukWqxEmWKK7zOuXSycCE8/jhcfjm0aRNenMces8PtP/0pvBjlEaszp5WIjC1tpQ8Pcm730q+f3d96a3gxNm6EYcPgvPOgadPw4pRHrES5AngwGQVxzqW3WbNsIt6+fa3HOyyjRtmQoFTMElSaWIlygw8Ncs6BDTA/5hj4xz/Ci1E0JCg3F44/Prw45RUrUc5PRiGcc+kvLy+xV1OMZtIku97Ok0+mfkhQpDI7c1T1vGQVxDmXvoYPhzVrwo8zaBDsuWd6DAmKFO9VGJ1zu6kpU+Cyy2zsZJgWLIDXXrMhQbVqhRurvDxROufKdMstNhdk2Odbp9uQoEixTmHsWGKRAitVdVF4RXLOpYtJk+Dtt+Hf/4a6dcOLs2mTDQk691xo1iy8OBUVqzMn2tCgRiJSHbhIVaclvkjOuXSgapPl7r9/+LW8Z5+F1atTP0tQacpMlKp6UrTlIpIHPAJ0CaNQzrnU++UXO9e6V69wTyMsGhLUoQN07hxenMqIdz7KnajqVBEJsSLunEu1evWsc0U19raV8cEHMH26HXqn05CgSBXqzBGRfdh52jXnXBb55BOYPdv+Djt5DRoEjRrBxReHG6cyYnXmDGLXhNgIOA64NqxCOedSp6DAJr2oUQOmTQs3US5caFdxvPHG9BsSFCnWoffUEo8VWAX8VVX9QmPOZaGRI2HmTBgzJvza5H/+Y/fpOCQokmiMBggROQJoDXynqjOSUqoy5OXl6dSpJfO3cy4Rtm6Fgw+2s2M+/zzcRJmfb7MDde1qSTnVROQLVc2Ltq7MNkoRuRV4HugJjBORP4RQPudcmhg2DObPtwuGhV2bHD06vYcERYp16H0hkKuqm0RkT+B/wH/DL5ZzLhVWroRTT4Vf/SrcOKp2qYf27cO71G0ixUqUm1V1E4CqrhIRP+XRuSx2221QWBh+bfLDD+Hrr2Ho0PQdEhQpVqJsHTHDuZR47DOcO5cl1q+3Hu4uXaBKEqpDjzwCDRvCJZeEHysRYiXKc0o8HhBWQZxzqfPQQ3DHHTBjBrRtG26sRYtsSNBf/wq1a4cbK1FincLos5s7l+VWrYIHH7QJKcJOkmBDglThqqvCj5UosXq9zxGRqyMeTxGRucHt/PCL55wL2/3323ndd90Vfqz8fGuXPPtsaNky/HiJEqs14iYg8iqMNYCjgK5Amg8Rdc7FsnSpnUJ48cVw6KHhx3vuOavBptOFw+IRq42yeom5Jz9U1VXAKhGpE2K5nHNJ8P33UL++tU+GrWiWoMMOs0HmmSRWjbJh5ANV7RvxsHGsnYvIGSIyU0Rmi8jfo6y/RESmB7ePReTw+IrtnEuEU06x863btAk/1scfw1df2QDzTBgSFClWopwS7WwcEfkj8FlZTxSRHGAwcCbQDrhIRNqV2GwecKKqdgDuAobGW3DnXOV8/DFs3w7Vqycn3iOPQIMGmTMkKFKsQ++/AK+KyMXAl8GyI7G2yh4xntsJmK2qcwFE5DlsuNH3RRuo6scR238KNI275M65Cps50ybJvesu+Oc/w4+3eLGdz/2Xv0CdDGy0izU86GfgOBE5GShq6h2nqu/Gse/9gcj2zcXA0WVsfwXwVhz7dc5V0u2327Rmv/99cuINGWJn/GTSkKBIcc1wHiTGeJJjpGitEFGnKhKRk7BEeUIp6/sAfQCaN29ezmI45yJ9/TU8/7zVJPfeO/x4mzcXDwlq1Sr8eGEI82SlxUDk9dSaAktKbiQiHYBhwDlBj/ouVHWoquapal7jxjH7kJxzZbj1VmsrvOGG5MR7/nlYsSIzZgkqTZiJ8nPgQBFpFVy18UJ2HpOJiDQHXgYuVdVZIZbFOYed0z1rls0o3rBh7O0rq2hIULt2cPLJ4ccLS4UuLhYPVS0Qkb7AeCAHeFJVvxORK4P1Q4DbgD2Bx8TGCxSUNnGmc67y6teHb7+13u5k+OQT+OILO20x04YERYo5w3m68RnOnauYOXNgn32gbhKvn3rRRfDWW9brncy4FVHhGc6dc9lBFf7v/2yS3GTVjZYsgZdegiuuSP8kGUtoh97OufTxxhvw6afJnSh3yBA7xL/66tjbpjuvUTqX5QoL4ZZboHVr6N07/HijRkGLFjaYvWZNa6fMdF6jdC7LvfgiTJ9ul6GtVi3cWKNGQZ8+sGmTPc7Pt8eQmacuFvEapXNZ7t13bQq1Cy8MP9bNNxcnySKbNtnyTOY1Suey3OOP22Vhc3LCj7VwYfmWZwpPlM5lmZUr7Zo0GzbAUUfZ5BeNGiUndsOGlpRLyvQzj/3Q27ksMnYsHHQQvPeezdbTpQtce21yYn/wAaxbt+tVHGvXhnvuSU4ZwuKJ0rkssX699WqPHw/DhsHcuXDssfDyyzY0KEzz50PPnjYB8H/+Y73eInY/dGhmd+SAH3o7lzXeeguOP94Ot++4A5Ytsx7v996DF16AY44JJ+4vv9jMQAUF8PrrcOCBxT3d2cJrlM5lie3boWpVGDwY7rzTerlPOMGGBBUUhBOzsBAuvRS++86S8YEHhhMn1TxROpclfvUrmDTJDrnPOQeeecbaDJ94As47L5yYd9wBr74K//43nHZaODHSgSdK57JEYaFdl+aZZ6BpU6tVHn44dOtm53gn2gsv2Nk3V1yReZefLS9PlM5lgUcftd7uvDz4/HPYf38bN/nCCzBwYOLP7/7yS+s4Ov54O9TP5CnU4uGdOc5luEcftdnDe/Sw87mrV4d//CO8eMuW2aH9XntZj3qNGuHFSheeKJ3LYJFJ8vnnw7/07JYt1t65ejV89FFyrrmTDjxROpehxo1LbpJUhSuvtNmAXnoJcnPDjZdOvI3SuQx12mnwwAPJSZIADz0ETz9tl7rt2TP8eOnEE6VzGWbkSLuqYfXqdiXFZCTJ//3PLkjWsyfcdlv48dKNJ0rnMsigQTbA+777khdz5kwbvN6+vQ09Knku9+5gN3zJzmWmQYNsvGKPHvCvfyUn5po1cNZZVmt97TWoUyc5cdONd+Y4lwEik2Sy2iQLCuC3v7UJL9591ya42F15onQuzeXn26DuZCZJsDbJiRNtJqITTkhOzHTlidK5NKYKtWrZXI8NGiQvST75JDz8sM1lecUVyYmZzryN0rk09cgjNo9jQYEN7E5WkvzoIxsvedppMGBAcmKmO0+UzqWhRx6x2tzmzVarTJaFC+3MmxYt7DC/qh9zAn7o7VzaKUqS555rySrsS8wW2bjRzuHevBnef9+uf+OMJ0rn0sjgwalJkoWFNhvQ9OnwxhvQtm1y4mYKP/R2Lo106GADypOZJAHuvtvO377/fjjzzOTFzRSeKJ1LA9On233nzjB8eHKT5Jgxdv52r17w178mL24m8UTpXIoNHGgzkb/5ZvJjf/21JchjjoHHH8/+CXgryhOlcyk0cCBcd531NCf7mjM//2xXT2zY0CbgrVkzufEziXfmOJcikUnyueeSe7i9davNBPTzz/Dhh7DffsmLnYk8UTqXAtOmpS5JqsLVV1uCfO45OPLI5MXOVJ4onUuB3FwYOxbOOCO5SRJsgo1hw+Dmm23SCxebt1E6l0SPPmqnCIJNX5bsJDlxIvzlLzawvF+/5MbOZJ4onUuShx+2a9z897+pif/jj3DBBdCuHYwYsXtOwFtR/lY5lwQPP2w1uZ49U5Mo162zHu6cHDvkr1cv+WXIZN5G6VyCff65na89bx507Ah77GFnvvTsCaNHJ/9we/t2uOgimD0b3n4bWrVKbvxs4DVK5xLojTes7TEvzy7XULeuXSnx9NNTkyQB/vEPeOstax898cTkx88GXqN0LkFUbVbwESNs8Hh+PnTpYoe5X3+dmiQ5fLgl6quugj/+Mfnxs4XXKJ1LkFWrYOlSaNrUht0ceSSsXGlXMCzq6U6GUaOgZUs7HfGyy6zz5uGHkxc/G3midC5BVq6ETZvgsMNg3Dhrk9xjD5g7F/bZJzllGDUK+vSBBQuKl82bBy+8kJz42coTpXMJ8NVXNkVaYSG0bg3ffAN33QUrVtjh+JVXJqcc//ynJetI+fk2uNxVnCdK5yro559tADfY7D+33QY//ADHHmuH3R07wqGH2rCcZFyg65tv7FIO0ZS23MXHO3OcK6c1a+yiWwMHQo0asHixXSnxllts/TPPwLJltvzAA+3wO0wbNsAdd1h5qlSxWm1JzZuHW4Zs5zVK5+K0YYONh2zVyob+nHUWfPyxJcmS9t3XhgiFmSRVbVKLtm3hoYes1jp4MNSuvfN2tWvDPfeEV47dgdconYvT99/DrbfaofRdd1mbZKr88AP07QvvvGOH+K+8Ap062bp69axNcuFCq0nec49d9tZVnGgyr4WZAHl5eTp16tRUF8PtBrZssVl2liwprpHNnAkHH5y6Mm3caLXaBx+EOnWsZtunj52a6CpHRL5Q1bxo67xG6VwJBQU2ULtfPxtmc/LJdhpgTk7qkqQqvPqqzWG5cKFdMfG++2DvvVNTnt2Nt1E6F2HKFOupvuIKS0Ljx9v50amssc2eDd272yS/DRrA5Mnw1FOeJJPJa5Rut6cKa9fatWP23Rfq17fa29lnp/ZiW/n50L+/1RyrV7eza66+Gqr6rzbpQq1RisgZIjJTRGaLyN+jrG8rIp+IyBYRuSHMsjhXkqrVGDt1stMMAVq0sNl/zjkntUnyjTesZtuvn53hM3MmXHutJ8lUCS1RikgOMBg4E2gHXCQi7Upsthr4MzAgrHI4F80HH9hMOmecYaceXnSRJc5Umz/fkvRZZ9lVEd99105L9It/pVaYNcpOwGxVnauqW4HngHMiN1DVn1X1c2BbiOVwu6E5c2DkSGtf3L5953XDh1uSnDMHHnvMamu9e6e2Brlli/Wst2tnQ37uv98uQHbSSakrkysWZkV+f2BRxOPFwNEV2ZGI9AH6ADT3UwxcGQoL7RD1uefg1FNh1iw79/nBB23w9/HHQ48eNkD7j3+MPlg82SZMsDGRP/4I558P//43NGuW6lK5SGHWKKP9f67QwY2qDlXVPFXNa9y4cSWL5bLZyJHw6adWWxw9Gp591g5hu3e3ySnAOmuuuy71SXLxYvjNb+BXv7LH48fDiy96kkxHYSbKxUDkR94UWBJiPOcYMcJm0JkxA/7v/+xQ9scfbXD2Y4+lunRm61abTLdtW5uO7e67bUKL009PdclcacJMlJ8DB4pIKxGpDlwIjA0xnttNbd5s7Xp//zusXm2H2DNnwuuv22H43LnWGZIOPcaTJtk1vW+6CU45xU6LvPlmm1zDpa/QvjqqWiAifYHxQA7wpKp+JyJXBuuHiMi+wFSgPlAoItcB7VR1fVjlctlhzRo7vXDiRBuAvXmzJcLzz4ehQ+Hpp+Hii23ZO+/Y2TaHHJK68i5dCjfcYE0BrVpZEv/1r1NXHlc+fq63ywgLF1pS3GcfSzCrV0Pjxpb8TjvNOm5OPNGG+Jx8sp3Bct55dlbL8OHWdlnUFhi2UaOKJ6Vo1syumzN2rPVs/+1vVvNNdfuo25Wf6+0y0uuvw//+Zwnyxx9t2QUXWKJs1AiWL4e99tr1eZMnW6/3Rx/ZmTZTpsABBySnzEWXYiiaZXzhQkvSHTrAmDHQpk1yyuESy2uULi1s3QqffGJti3362LITT4QvvoCuXYtrje3apXa8Y1m2b7cLiy1btuu65s13vo6NSz9eo3RJ9csvdn7ymDH2+De/sc6LOnV23m7OHDskfftteP99m0KsZk249FI7NB01yiZ+qF49+a8hXqtX27CeceOs9rtqVfTtFi2KvtxlBp89yCXU9u3QrZsdKg8fbrcZM2wc4+LF9nj1atv21Vfhr3+1dsTevW3y2WXLitvvmjZNvySpakN5+veHzp2tnfTiiy1ZdusWvSkA/FIMmc5rlC6hxo+39rlnn4Vt26x9cb/9rL2xaCD1iy9a73SvXlbbTPcksnGjnXM9bhy8+WZx7bBjR+u06dYNjjrKpmIr2UYJfimGbOCJ0lWYqs3+PXu2HUbPmQOvvWaXa61SxdYVTe6w335w0EFWEyu6hEI6n2Q1d64lxXHj4L33rMe6bl1rK739djjzTGjSZNfnFV1ywS/FkF08UWapNWvg+eetZ/iEE2zITEU6QbZutU6IyGR46KHw+9/bumbNimfdqVoV9tyz+LnNm1v74/HH21Cdiy+2wdbpaNs2+PBDS4zjxtk1acCuovinP1nTQefO8Q0Mv+QST4zZxhNlFvrsM6vJnXSS1e6uvdYGOY8ZE73N75dfrAZVlAzr1YMrr7R1rVtb22KR2rWtPREsaTz9tNUWW7e2xLhli41tHDTIJp3o3Bn+8x/47jubVzGdLF8Ob71liXHCBFi/3t6fE0+019+tmyVK51DVjLodeeSRmimmTlUdNkz13XdVt29PTszCQtW2bVVfeql42ZYtql26qF5/veqoUapDhxavO+MMVasTFt86dy5eP3So6lNPqU6erLpkie0/lh9+UO3aVbV+fbuddJLqzJkJe4lxGTlStUULVRG7HznSPoPPPlO9/XbVvLzi19ukiervf6/6yiuqGzYkt5wufQBTtZS8k9XjKNevtwlaa9e2syOSda7vli3w298Wzyf45ZcW+8037cySylC1GmDdunYoPXOmnS+8Zo3dZs2yWXPWrbP1N95op/StjzgptFGj4mEsQ4faxLWtW9tg6Nat7ayWRCiKEXk4ngzROlRycuw9K3pfjjnGDqe7dbPmgHQdm+mSZ7ccR/n00/CXv9hF6Nets2EnY8ZY72TY7rvPEtqPP0K1avb33/4G11wDL7xQ3KYnYod/M2YUJ7qi24032uQOw4fbrDerV9vytWvtvOV162y6sGHDYEDE/PBVggFf27bZYWS7dta7vHmznaHy/PN2GF6kaHB3GJKZIFevLm5D7dt35yQJNmxp2zabXeiMM0ofxuNcNFmZKL/91hLTJ5/YVFZgY/R69LC2uFgN8oWFlsxycizBLF5sF3rKz7fH+flWC9lnH+voGDeueHl+viW2p56yJPn++3DvvVZr+/JL6+ldu9auy5KbCy+/DFddtXP8KlXgssssUVarZvctW9rFr4puRVcF7NvXOkmKltetC4cfbvu98EK4/HLrWPjVr6xTIpUTQ1RGYSH89FNxMix5W7s29j7y823qNefKKysT5fDhVlNq2xZWrIBbbrEfydat1rlQv75dze7cc602163bzklw61bbx6WXWkLr0mXXGGPGWE/ujBm2ryJVqliSXbfOHhcUWG2nUSNbd/bZlmCLalu//rWVs2FDO+Rt2NA6U4pqhhddZLfStGhht5Kvv3t3qz22bm1nv7Rvbz3VyRI5MUS8Q2Q2b4Z58yzxzZ27cyKcN8+aNIpUrWqvu3VruzhY69bFt+7do58Jk+7jNV36yspEuX69HXKCJb2xY+1sj61bLXFWr158HZX69S0R1qxp29SqZX8XjfVr29YO1yLX1aoFBx9s67t2tcPnouXVqlni/PJLO+Q95RTrhR42zH7oTzyxc1mbNUv8jNYdO1pb5Zgx1uTw5JM2RCdZ7XAl2wgXLCg+xO/W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\n", + "image/png": "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Ax98APffX/V918hEOXw4tG4NW2xh98OHV9++mzVrxmeffcakSZMYP348ffv2Zd68eYAlyh9//JHvvvuO1atXM3To0EqXU7duXV599dUNP7Ty9OvXj0mTJjFp0iSuuuoqAC688EJ22WUXpk+fzvTp02nTpg0XXXTRhufsuuuuTJo0ie+++47CwkJeeumlDev23ntvXnzxxQ2PX3jhBfbZZ59Kv5aqGjEC9toL8vLsfsSI6t1/r1696NOnD1OmTOGLL75g++2337Bu4sSJLF26tMpl+OdZdQMGwKBB9psG2HlneOwxW15VNS5RDh8OvXvDrFlWVZ81yx5XV7KsU6cOdevWBWDt2rWUxNX7jzvuOEQEEaFLly4UFhZWupxatWrRu3dvHnzwwQo/t6CggC+//JKbb755w7JbbrmFiRMnMn369E22zcvLo0uXLsydO3fDspYtW7JmzRrmz5+PqvLOO+9w7LHHVvq1VMWIEXDTTfDII3Zu6pFH7HF1JcsffviB4uJijjrqKMBqmg0aNABg/fr19OnTh3//+99VLsc/z6qbMwf23BOKizcu69AB5s2r+uF31l3rnczVV8OkSWWvHzcO1q7ddNmqVXDhhfD444mf06kTPPRQ6jHMmTOH448/noKCAvr168dOO+20yfqioiKeffZZBlTxX93ll19Ox44duf7668vdrk+fPtx1110APPvss/z888906tSJvLy8Ddvk5eXRqVMnJk+eTMeOHTcsX7NmDePHj98s1tNOO42XX36Zzp07s++++2745xCGbt02X3bGGXDZZXDnndCoEdx++8Z1jRpBnz7QowcsXAinnbbpc8eMSb3sadOm0bhxY0455RR+/vlnjjzySPr27UteXh4DBw7kxBNPpFmzZpV5WZupKZ9nWA44AN58E8aPt8/4yy/hrbcgP9+OHquixtUoSyfJZMsrY+edd+bbb7+loKCAp59+mvnz52+y/rLLLuOQQw7h4IMPLnMfIpJ0+VZbbUWvXr02nKcqS/yh2t57742qJtx//PLp06fTqVMnmjRpQsuWLTf5sQGcccYZvPzyy4wYMYIePXqUW36Ypk6FrbfedNnWW1stojoUFxczduxY+vfvz4QJE5gxYwZPPfUU8+bN4+WXX+bKK69MaT/+eYbv9tvhqqvg5ZehXj0YNsyOFu+8s+r7zrkaZbKaX+vWdrhdWqtWFatppGKnnXZizz33ZOzYsZwWVGtuv/12FixYwGOPPVbuc5s0acIvv/yyybLly5fTuHHjTZZdffXV7Lvvvpx//vkpx7Xnnnvy9ddfU1JSwhbBv9qSkhK++eYb2rdvD2w8p/XLL7/QrVs3Ro4cyYknnrhhHzvuuCO1a9fm/fffZ8CAAXz22Wcpl19R5X0u7dvbD+SwwzYu+/BDiOWvpk2r9rm2aNGCzp07s8suuwDQvXt3xo0bx4477khBQQFt27YFYNWqVbRt25aCgoKE+/HPM3zdusHTT8Nxx8G6dVabfOUV+OMfq77vGlejvPtuCE4xbdCggS2vDoWFhawOOnAtWbKETz/9lHbt2gEwdOhQ3n33XUaMGLHhC12WQw45hJEjR7J8+XIAXn31VfbZZ59NDq8Att12W84444xNWi2Tadu2LZ07d95w+AZw1113se+++2744cc0a9aMvn37cu+99262nzvuuIP77rtvs5jS6aab7LTJhx9CUZHdX3ihLa8O+++/P0uWLGHBggUAjB49mg4dOnD88cfz66+/MnPmTGbOnEmDBg3KTJLgn2e6/P673b/5prWAV0eShBqYKHv2hCFDrAYpYvdDhtjy6jBlyhQOOOAA9tlnHw499FCuu+469t57bwAuueQS5s+fT9euXenUqRN33HFHmfvp2LEjV1xxBQcddBCdOnVi8ODBZbaSX3vttSm1lsZ74oknmDZtGm3btmXXXXdl2rRpZf44u3fvzqpVqxg7duwmyw888EC6d+9eoXKrW48e9k/uyivtcOvKK+1xdR095uXl0b9/f4444ogNh7kXX3xxhffjn2d6jB4NW20F++1XvfsVVa3ePYYsPz9ffeBe51wib7xhV+X8/e8Vf66IfKmq+YnW5dw5SudczXXSSeHs1xNlxJ588snNumr88Y9/5NFHH40oIlcV/nlG58cf7XTa7rvbfXXyQ2/nXE445xx4/3349dfKJcryDr1rXGOOcy73qFpDzuGHV39tEjxROudywI8/wi+/WKIMgydK51zWGzXK7o84Ipz9e6J0zmW90aOtT3SbNuHs31u9nXNZb8gQG4MyjPOT4InSOZcDmja1W1j80Ns5l9VeeQX697eW77B4onTOZbXHH4cnnwzvsBs8UTrnsti6dTB2bHit3TGeKJ1zWWvcOJuhwBOlc86VYfRom+bh0EPD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88/t9t131oAyezasW2edvT/80B736wfXXWc1xnvusRpjfn7V5r1evNhmOxw/3g7N16zZdP26dVbDrFVr08S2++5lJ73Y39tsk3on7379Nj9H6YNSZD9PlDlsyhTrfN25c3gtqj/+aNccFxbabeRIa+mtX9+Sxa672jnGunUtYfTrZ1eXgCWjf/yj4mWuW2cNOuPHb7z99JOtE7FabXnPDXM0oNjhvQ9KkVs8Ueag+fOtUWH6dEta339vCen66yu+rzFj7DB67tyNyXCXXWDwYFt/3HHWLSemUaON88Q0aADPPWfdcu65x+aY+etfK1a+qu0/Pil+/bWd8wO7lvuAA+D88+0+P9+6CCUawLZVq/QMmdazpyfGXJPziXLpUmtlTPfI1LNm2bm5r7+2xHLllTZbXzr06mWXwI0aZYeMc+bYdcN77GG1ucWLN7YCv/66JZ9YEiwstNrnhAm2/pZbrLFliy0sKbVosel4h489ZucXW7Sw7i4rVtggtx98YNO1nnkmvP++9ReMJdfyLF268RA6dou1ItevbwPUXnGFJcUDDoCdd948+d19tx/+uuqVs4nyq68sOX37rdVKjjsOBg60vnZhmzrVGiXOPRf+9S+L5eijrXZ19NFV33+su4yI1R4LC63FdsUKq3199pn1G8zLs/NyI4Nu/medZQ0WDRpYNxyAl1+2W/Pmluz222/T0byHDbNEuOOOia9sOeqoTR/XrWv7O/VUG3173TqL48Yb7VxfvHXr7PMZP35jcpw61daJbEzssaS4116pda3xw19X3XIyUf76q7Wm/vvf9uNYtcr65J1wgl3uFvbh1+23w9//bjPflZTA/vvDDjtY4h4+3BJI587WX3DyZKtxrVhht1jCu+8+S07PPmvn9WLrV6yw1txff7V9DhwId921eQzFxXY/daol6i23tNtFF1lCLCmxWuLjj1sZibrugF1FUlHz5lljyrp19nj9epsDu0kTOyyP1RS/+mrjIfQOO1gy7NULunSx92zrrStedowf/rrqlJOJctgwuyqjVi077J0zx679LSmxIatatoRu3SxZ/fqrHSIXFdlt3Tq7P/98GzV6yhRLePHriorsnNthh1nfv/PP33T9kiWWlIcPt9be+A7I++9v959/bofH48dbUgXrwtKokSW033+3RLnVVvYaYsu33NL+jo0o06OH7TO2vE4d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\n", "text/plain": [ "
" ] @@ -174,7 +174,7 @@ "outputs": [ { "data": { - "image/png": "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kPfnWBHYa609aozpBlzlx3tI9yLwT2NMc19M7Ywx1QGstVuA33E1gB+cRLNZERHJh5JAEZHgUAaYDOzGNZ+rhRsZNP1me48xZoG19iBwMy4ZSMTddH+S2wl9zSgvxPXf2wRswfUpK0r/xvUR3IlrwvdWPvu+hOtDt88Y89GpXNTPz2GHb9s2X1xjrLUrT+W6OfwF2GCMOYBrBjncF9s8XL/Ap33XXwNcU8C5Hgb+7vtsJuS1k7V2le86T+H+rVyIG1DmeH7ft7V2BvAQrubuIK5mrZrvtLf4jtuHG8H1oxyXze9zvBF4wBhzELiXzNpQfzzu2/9LXBL9Eq5/Y7rXgLaoKaiISJHTZPEiIlLqGGPOAt601tb3OJQSzcvP0RjTG9cstJGv76OIiBQR1QSKiIhIUPE1db0FeFEJoIhI0VMSKCISYowx04yblDznMs3r2IqDcROt5/b+C5xMvjj4+hrmFt8yr2MrDr55BPcBMcB/PA1GRKSUUnNQERERERGREKKaQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSERHgdQFGqUaOGbdSokddhiEgRmj9//m5rbU2v4zgVKptESh+VTSISrPwpn0pVEtioUSPmzZvndRgiUoSMMRu9juFUqWwSKX1UNolIsPKnfFJzUBERERERkRCiJFBERERERCSEKAkUEREREREJIUoCRUREREREQoiSQBERERERkRCiJFBERERERCSElKopIvyRlgabNkHlylC1qtfRiIiIiASnhMMJ7Du674T10ZHR1KtUr/gDEpEiE1JJ4Mcfw223wbFjcPAgDBgA06ZBlSpeRyYiIa1aNUhMPHF91aqwd2/xxyMiAvR/qz8b922karnMp+ZJyUnsPbKXg3cdJCIspG4jRUqVkGkOumABjB4NL78MmzfDli3u/mr4cK8jE5GQl5gI1p645JYYiogUkxs630CXul34c9yfGctVba7i+o7XBzQBrFChAgAbN26kc+fOdOjQgdatWzNt2rSMfYYNG0bLli1p06YN1157LcnJyfmec9asWXTr1o1WrVrRoUMHrrjiCjZt2pSxPSUlhRo1anDXXXdlO65Ro0bs3r074/WcOXO44IILANi5cycXXHAB7du3Jz4+noEDBwKQlpbGzTffTJs2bWjbti1du3Zl/fr1uZ5v5syZGGNYuXJlxroNGzZgjOGpp57KWDd27FheffVVvz6/ki79+wfYtGkT5557LnFxccTHx7Nhw4Zs+44bNy7b/nnR93+ikEkCn3kGJkyAM88EY6BiRXjiCZg3D9as8To6ERERkeByTYdrWLF7BT9v/hmAXYd38dLCl/hbz79l7PPWW9CoEYSFuZ9vvVV014+JieGnn35i0aJF/Prrr0yePJlt27YBLglcuXIlS5cu5ciRI7z44ot5nuePP/5g3LhxvPbaa6xcuZJFixYxbNiwbAnFl19+ScuWLXnvvfew1voV37333ku/fv1YvHgxy5cvZ/LkyQC8++67bNu2jSVLlrB06VJmzpxJlTyanU2fPp2ePXvyzjvvZFtfq1YtnnjiCY4fP+5XLF6ZPh3atIHwcPdz+vSiPf+IESOYOHEiK1as4LfffqNWrVoZ2+bNm8e+ffsKPIe+/9yFTBK4eTO0bu1+HzfOJYVRUdC8uasVFBHx3CefwCWXuM7LIiIeiwqP4p5e9/D3b/7OX2b+hTH/HcOwtsMy+gO+9ZZrZbVxo2u8sHGje11UiWBUVBRlypQB4NixY6RlKRsHDhyIMQZjDN26dWNLPjdzjzzyCHfffTdxcXEZ6wYNGkTv3r0zXk+fPp1bbrmF2NhYfvnlF7/i2759O/Xr18943a5du4z1MTExhIW52+z69etTNZeBKA4dOsSPP/7ISy+9dEISULNmTfr27ctrr73mVyxemD4d7rkHnnoKjh51P++5p+gSweXLl5OSkkK/fv0AV0MYHR0NQGpqKhMnTuTRRx8t8Dz6/nMXMo25u3eHTz+FgQPh++9h3Tp3r/XHH+D7zkREvLV9O8yc6Z5aNWzodTQiEuLGj4eFC6/n161tOZZ6HIOhe/3unOW77/7lFzfOQlZJSXDddfDCC7mfs0MH+M9//I9h8+bNnH/++axZs4bHHnuMunXrZtuenJzMG2+8wRNPPJHnOZYtW8aECRPy3H7kyBG+/vprnnvuOfbt28f06dPp0aNHgbHddNNNXHHFFTz99NOcc845jBw5krp163L55ZfTs2dP5s6dS9++fRk+fDgdO3Y84fiPPvqI/v3706JFC6pVq8aCBQvo1KlTxva//e1vDBgwgGuvvbbAWALlrLNOXHf55XDjjfDPf7qWdfffn7mtYkWYOBGuvBJ274YhQ7IfO2eO/9devXo1VapU4ZJLLmH9+vWcc845TJ48mfDwcJ5++mkGDRpETExMgefR95+7kKkJvOkm+OwzuOMOqFMH5s+H/v3h5pvdmAwiIp5Lf0q5YoW3cYiI+BgTRsPKDcFaosKjKBNeJmNbzgSwoPUno0GDBixZsoQ1a9bw2muvsXPnzmzbb7zxRnr37k2vXr38Ot+ePXvo0KEDLVq0YMqUKQD897//5eyzzyY6OppLL72UmTNnkpqaCoAx5oRzpK8777zzWLduHaNGjWLlypV07NiRhIQE6tevz6pVq3j44YcJCwujb9++fP311yecZ/r06QwdOhSAoUOHMj1HFVrjxo3p1q0bb7/9tl/vrbitWuVG28+qcmXwtdg9ZSkpKcydO5cpU6bw+++/s27dOl599VW2bdvGjBkzGDduXKHPqe8/U8jUBNauDT/9BJMnw8KFkJAADz0EHj5cERFxqlZ1nZXTDRiQuV5ExCPpNXbHU2vQ+ImuRIVHMeeW9RnbGzVyTUBzatiwcDU+/qhbty6tW7dm7ty5DPFVL91///0kJCTw3HPP5Xts69atWbBgAe3bt6d69eosWrSIKVOmcOjQIcDdjP/44480atQIcInCt99+yznnnEP16tVJTEykRo0aAOzduzfjd4Bq1apx1VVXcdVVV3HBBRfw/fffc+mll1KmTBkGDBjAgAEDqF27Nh999BF9+/bNOG7Pnj188803/PHHHxhjSE1NxRhzQvPGu+++myFDhmRrulic8vse4+JcLeDZZ2eu+/Zb1+0KoEaNU/t3UL9+fTp27EiTJk0AGDx4ML/88gt16tRhzZo1NGvWDICkpCSaNWvGmjwG+dD3n7uQqQkEqF8fnn7aLQCdO2e/7xIR8cTevZkjglavDqNGud81PYSIBIGo8Ciu73g9m/Zv4mjK0Yz1Dz0Evi5aGaKj3fqisGXLFo4cOQJAYmIiP/74Iy1btgTgxRdfZPbs2UyfPj2j71Ve7rjjDh566CFWZGllkZSUBMCBAwf44Ycf2LRpExs2bGDDhg1MnTo1o1bmrLPO4o033gBcP7Q333yTs31ZzzfffJNxnoMHD7J27VpiY2NZsGBBxgA2aWlpLFmyhIY5mvi///77jBgxgo0bN7JhwwY2b95M48aN+eGHH7Lt16pVK+Lj4/nvf/9b+A8wwO65xzX9/fZbSE52P6+7zq0vCl27diUxMZGEhATAfd7x8fGcf/757NixI+P7io6OzjMBBH3/eQmpJDBd69bQrBns3+91JCIiOfTs6UatEhEJIu1qtyOuRhy7Du/KWDdsGDz/vKv5M8b9fP55t74orFixgu7du9O+fXvOPPNMJkyYQNu2bQEYM2YMO3fupEePHnTo0IEHHnggz/O0bduWJ554ghEjRtCqVSvOOOMMVqxYwVVXXcWHH35Inz59MgagAbjooov45JNPOHbsGJMmTWLNmjW0b9+ejh070qxZM4b75hebP38+Xbp0oV27dvTo0YPrr7+erl27smvXLi688ELatGlDu3btiIiIYOzYsdlimj59OhdffHG2dZdeemmuTf/uueeefAe+8cqVV7qEf9w4KFvW/XzoIbe+KISHhzNlyhT69u1L27ZtsdYyatSoQp9H33/ujL/DoJYEXbp0sfPmzfM6DBEpQsaY+dbaLl7HcSpUNomUPiqbRCRY+VM+hWRNoIiIiIiISKgK2STwgQfgvPO8jkJEJIelS6FjR/jxR68jERHJ5uqPrmbMf8d4HUaeXnnlFTp06JBtuemmm7wOS4qJvv/CCZnRQXNKSnIdWFNSICJkPwURCTqVK8OiRS4ZPOMMr6MREcmQeCSReYnB23x05MiRjBw50uswxCP6/gsnZGsC4+LcSEZr13odiYhIFg0aQPnymitQRIJOfM14/tzzJylpKV6HIiKnKKSTQNB9logEGWNcAaXCSUSCTHzNeJLTklm7V0/QRUq6kE0CW7VyP3WfJSJBR0mgiAShuBruCfryhOUeRyIipypke8NVqgSXXgoxMV5HIiKSQ58+rr16aiqEh3sdjYgIAHE14zi36blUiKrgdSgicopCtiYQ4P334ZprvI5CRCSHa66B6dOVAIpIUKkQVYHZw2fTr2k/t6JOHdeEPedSp86pXaeCSzI3btxI586d6dChA61bt2batGkZ+wwbNoyWLVvSpk0brr32WpKTk/M956xZs+jWrRutWrWiQ4cOXHHFFWzatAmAa665hsaNG2eMKHn66adnHPfRRx/Rrl07WrVqRdu2bfnoo48ytl1zzTVER0dz8ODBjHW33HILxhh2794NuAnPs45WOXnyZC6++GI6dOhAs2bNqFy5csa2n376ibPOOouWLVvSvn17unbtyqJFizLO3ahRo4zz7tixg6FDh9K0aVPi4+MZOHAgq1evPrkP/GQ1apT799+o0SmdNv37B9i0aRPnnnsucXFxxMfHs2HDhmz7jhs3Ltv+edH3nwtrbalZOnfubAsrOdnatLRCHyYixQSYZ4OgfDmV5WTKJmutK6BEJCiFctmUnJqc/iHkvZyC8uXLW2utPXbsmD169Ki11tqDBw/ahg0b2q1bt1prrf3ss89sWlqaTUtLs0OHDrXPPPNMnudbunSpbdasmV2+fHnGuo8//th+99131lprr776ajtjxowTjlu0aJFt2rSpXbdunbXW2nXr1tmmTZvaxYsXZxzXtm1b+8Ybb1hrrU1NTbVt27a19erVswkJCdneS26+/fZbe/7552dbd+aZZ9rff//dWmvtyy+/bM8555yMbQ0bNrQJCQk2LS3NnnbaafbZZ5/N2LZw4UL7/fff53mtgMjrey6i799a93l8+eWX1lr3b+Dw4cMZ237//Xc7fPjwfD9ja0Pz+/enfApoTaAxpr8xZpUxZo0x5m+5bG9ljPnZGHPMGDOhMMcWhXfecYPwbdkSiLOLSLAK9rKJtDSoXx/+/veAnF5ExC/jx8NZZ2VbNnZszM/NymLPOiv/Y3Mcl7GMH+/35aOioihTpgwAx44dIy0tLWPbwIEDMcZgjKFbt25syedm7pFHHuHuu+8mLn1UQGDQoEH07t073+tPmTKFu+++m8aNGwPQuHFj7rrrLh577LGMfa688kreffddAObMmcMZZ5xBRBHNPdajRw+2bt16wvpvv/2WyMhIxozJnLOxQ4cO9OrVq0ium01u3+Ezz+S/Pd3u3Xlv88Py5ctJSUmhXz9X81yhQgWio6MBSE1NZeLEiTz66KMFnkfff+4ClgQaY8KBqcAAIB640hgTn2O3vcDNwJSTOPaUxcTA8eMaf0EklJSEsomwMKhSRYWTiASdyLAoUtNSOZZytFiut3nzZtq1a0eDBg248847qVu3brbtycnJvPHGG/Tv3z/PcyxbtoxOnTrle52JEydmNMsbNmxYxnGdO3fOtl+XLl1YtmxZxuvmzZuTkJBAYmIi06dPZ+jQodn2P3LkSLbmgOkJgz9mzZrF4MGDT1j/xx9/nBBXabR69WqqVKnCJZdcQseOHZk4cSKpqakAPP300wwaNIgYPwb30Pefu0AODNMNWGOtXQdgjHkHuAjIGFLKWrsL2GWMOb+wxxaFrNNEnHtuUZ5ZRIJY0JdNgCugFi8u8tOKiPjtP/85YdW6TT9w9iu9+PyqfzCgxcC8j50zp0hCaNCgAUuWLGHbtm0MHjyYIUOGULt27YztN954I7179/a7FmTPnj307duXpKQkRo8ezYQJrrHHY489xpAhQ7Lta63FGFPguksuuYR33nmHX3/9leeeey7btnLlymXr1+WPYcOGcfjwYVJTU1mwYEGhji1yBX2PuW1P/3xq1DilfwcpKSnMnTuXhQsXEhsbyxVXXMGrr77KgAEDmDFjBnNO4tz6/jMFsjloPWBzltdbfOsCfazfataEatX0sF0kxAR92QS4JHDtWjh2LCCnFxE5GV5NE1G3bl1at27N3LlzM9bdf//9JCQk8Pjjj+d7bOvWrTNupqtXr86iRYsYPXo0hw4dKvC4efPmZVu3YMEC4uOzNwAZOnQokyZNol+/foSFnfqt9VtvvcX69eu56qqruOmmm3KNa/78+ad8nWBXv359OnbsSJMmTYiIiGDw4MEsWLCAhQsXsmbNGpo1a0ajRo1ISkqiWbNmeZ5H33/uApkEmlzW2aI+1hgz2hgzzxgzLyEhwe/g3LGajkskBAV92QS4wiktDf78s/DHikiJFex9lqtHV6dW+Vqs2L0CstTIZZPX+kLasmULR44cASAxMZEff/yRli1bAvDiiy8ye/Zspk+fXuCN9x133MFDDz3Eiiw3fElJSQVef8KECTz88MMZI1Ju2LCB//u//+P222/Ptl9sbCwPPfQQN954Y2HeXr4iIyN58MEH+eWXX7LFDdCnTx+OHTvGCy+8kLHu999/57vvviuy6/ulYcPcRwdt2LBITt+1a1cSExNJ/xv6zTffEB8fz/nnn8+OHTvYsGEDGzZsIDo6mjVr1uR5Hn3/uQtkc9AtQIMsr+sD24r6WGvt88DzAF26dPH3Ri7DyJHgx78DESk9SkTZRLducPvtbvQqEQkJWfod98OVN78bYz6x1matdkvvszz4JI4tErf3uJ3YyrGw48WiPnU2K1as4Pbbb8cYg7WWCRMm0LZtWwDGjBlDw4YN6dGjB+Ca5N177725nqdt27Y88cQTjBgxgoMHD1K9enViY2O5//77M/aZOHEiDz74YMbr3377jQ4dOvDII49w4YUXkpycTGRkJI8++igdOnQ44Ro33HBDrtdO7xOWrn///kyePNmv91+uXDluv/12pkyZwksvvZSx3hjDzJkzGT9+PJMnT6Zs2bI0atSI/+TSfDegckzXUNTCw8OZMmUKffv2TR/NllGjRhX6PPr+c2fcKKJFzxgTAawG+gJbgd+Bq6y1y3LZ9z7gkLV2SmGPzapLly42Z7WtiJRsxpj51touRXg+lU0icsqKumzynbMHcJ+19jzf67sArLUP57LvfWQvn/w+Np3KJpHSyZ/yKWA1gdbaFGPMWGA2EA68bK1dZowZ49s+zRhTB5gHVALSjDHjgXhr7YHcjg1MnLBzJ5QrB5UrB+IKIhJMSkrZBMCRI5CQALGxAbuEiASV3Poddy+GYwslzaaxef9mapWvRbnIcoG4hIgEWCCbg2Kt/Rz4PMe6aVl+34FrTuXXsYGwcSM0bgzPPw8nUcMsIiVQSSibABgyxE1kqlFCRUJFwPssG2NGA6PB9WU6Gd+s/4Z+b/Tj6xFf06dxn5M6RyC88sorPPHEE9nWnXHGGUydOtWjiKQ46fsvnIAmgSVBbCxER8Py4h3kSkSkYHFx8PXXkJoK4eFeRyMigRfwPsun3F8ZiK/pRkdckbAiqJLAkSNHMnLkSK/DEI/o+y+cQI4OWiKEhUHLlhohVESCUFycmyIiwJ3vRSRo/A40N8Y0NsZEAUOBT4rh2EKJqRBDpTKVin2aCBEpOiFfEwjuPuuHH7yOQkQkh/S5iJYvh6ZNvY1FRAKupPRZNsYQVyPOTRMhIiWSkkBcEvj223DoEFSo4HU0IiI+cW5SZlasgAsv9DYWESkWJaXPcnzNeL5Y80VxXEpEAkBJIHDRRdCggZvfUkQkaFSpAs8+C2ec4XUkIiLZXNfxOs5tei7WWoxuoERKnJDvEwjQti1cfbXmZBaRIDRmjCukRESCyBmxZ/DIj48Q9kAY5n6Tben4XMdTOncFX7OsjRs30rlzZzp06EDr1q2ZNi2jQpRhw4bRsmVL2rRpw7XXXktycnKe57vvvvuYMmVKtnWNGjVi9+7dgGveevvtt2dsmzJlCvfdd98Jx15zzTU0btyYDh060KFDB5588kkA9u/fz4gRI2jatClNmzZlxIgR7N+/H4ANGzZQrlw5OnToQHx8PCNGjMiIdc6cORhjsk0EvnDhQowxJ8QbjHq+3POE797cb+j5cs9TOm+FLM3yNm3axLnnnktcXBzx8fFsyNFHfty4cdn2z42+/9wpCfRZuBAWLfI6ChGRHHbuhM8+c5OaiogEidS0VBpXaUxkWGS29VHhUZxe//QiuUZMTAw//fQTixYt4tdff2Xy5Mls2+YGPB02bBgrV65k6dKlHDlyhBdffPGkr1OmTBk+/PDDjKQgP4899hiLFi1i0aJF3HzzzQBcd911NGnShLVr17J27VoaN27M9ddfn3FM06ZNWbRoEUuXLmXLli289957Gdvatm3Lu+++m/H6nXfeoX379if9XopT17pdGd99PPYfNmMZ33083ep1K7JrjBgxgokTJ7JixQp+++03atWqlbFt3rx57Nu375SvEarfv5qD+lx1FbRqBTNneh2JiEgWM2bAuHFuvsB69byORkRCyPhZ41m0Y1Ge27/f+D02x1SEKWkpLNyxkLNePSvXYzrU6cB/+v/Hr+tHRUVl/H7s2DHS0tIyXg8cODDj927durFlyxa/zpmbiIgIRo8ezb///W8eeuihQh27Zs0a5s+fn+1G/t5776VZs2asXbuW8CzT+4SHh9OtWze2bt2asS42NpYDBw6wc+dOatWqxaxZs7K9N6/l9j1e3vpybux6I2O7j6XV0634ZcsvlIkow7GUY8zbPo8p/Vwt1u6k3Qx5b0i2Y+dcM8fvay9fvpyUlBT69esHZK8hTE1NZeLEibz99tvMPMWb91D9/lUT6BMXp2kiRCQIZR0cRkQkiJSPLE9UeBTGN0+9wVCnfB2iwqMKONJ/mzdvpl27djRo0IA777yTunXrZtuenJzMG2+8Qf/+/U/pOjfddBNvvfVWRjO+vEycODGjOeDSpUtZvnw5HTp0OOFmv0OHDixbln1w1qNHj/Lrr7+eEOuQIUOYMWMGP/30E506daJMmTKn9F6KS0yFGGqXr83mA5sB2HxgM7XL16Zy2cpFcv7Vq1dTpUoVLrnkEjp27MjEiRNJTU0F4Omnn2bQoEHExMQUybVC8ftXTaBPXBx88gkcPw5RRVd2iYicmvRpIlasgHPO8TYWEQkpBdXYDftwGN9t+I49R/ZwNOUoZSPKMv+G+dSpUKfIYmjQoAFLlixh27ZtDB48mCFDhlC7du2M7TfeeCO9e/emV69eeZ4jr4Frsq6vVKkSI0aM4Mknn6RcuXJ5nuuxxx5jyJDM2q1169blev6sA+asXbuWDh068OeffzJkyBDatWuXbd/LL7+cK664gpUrV3LllVfy008/5Xn94pZfzV10ZDS/j/qd1s+05t/n/Ztz3jiHZTcuy/j+a0TXKFTNX04pKSnMnTuXhQsXEhsbyxVXXMGrr77KgAEDmDFjBnPm+Hduff+5U02gT1wcpKbCmjVeRyIikkWdOlC5smoCRSToxNeIZ+vBrQxrO4wwE8bIDiOLNAHMqm7durRu3Zq5c+dmrLv//vtJSEjg8ccfz/fY6tWrk5iYmG3dwYMHqVKlSrZ148eP56WXXuLw4cN+x9W6dWsWLlyYralqWloaixcvJs7XkiO9T9iaNWv45Zdf+OSTT7Kdo06dOkRGRvLVV1/Rt29fv68dDGIqxnB1+6vp+3pfrm5/dZF+//Xr16djx440adKEiIgIBg8ezIIFC1i4cCFr1qyhWbNmNGrUiKSkJJo1a5bnefT9505JoI9aXIlIUDJG7dVFJCjF1XQ3T0Pih9AztieTzpxUpOffsmULR44cASAxMZEff/yRli1bAvDiiy8ye/Zspk+fTlhY/rezvXv35pNPPuHgwYMAfPjhh7Rv3z5bEz6AatWqcfnll2cbrbEgzZo1o2PHjjz44IMZ6x588EE6dep0QmISExPD5MmTefjhh084zwMPPMAjjzxyQkwlwR1n3EG3et2444w7ivS8Xbt2JTExkYSEBAC++eYb4uPjOf/889mxYwcbNmxgw4YNREdHsyafWhx9/7lTc1Cf1q3hf/+Dzp29jkREJIennoKKFb2OQkQkm7MancXckXPpFNOJ/s1OrU9eblasWMHtt9+OMQZrLRMmTKCtb8qcMWPG0LBhQ3r06AHAJZdcwr333pvredq1a8fYsWPp2bMnxhhq1aqV52iit99+O08//XSh4nzppZcYN24czZo1w1pLjx498kwkBg8ezH333ZetRhPg9NOLZkRVL8RUjGHW8FlFft7w8HCmTJlC3759sdbSuXNnRo0aVejz6PvPnbGlaNjxLl262Hnz5nkdhogUIWPMfGttF6/jOBUqm0RKH5VNIhKs/Cmf1Bw0i59/hkLUAIuIFI89e2DaNFi71utIRESymb1mNtOXTvc6DBEpJCWBWbz3npuOK0vfThER7+3bB3/9K/g5EpqISHF5YcEL3PfdfV6HAcArr7ySMXx/+nLTTTd5HZYUE33/haM+gVnExcGRI7BpEzRq5HU0IiI+jRpB2bIaHEZEgk5cjThmrpzJsZRjlInwdn67kSNHMnLkSE9jEO/o+y8c1QRmoRFCRSQohYdDy5YqnEQk6MTXjCfNpvHn3j+9DkVECkFJYBZKAkUkaMXFwfLlXkchIpJN+jQRyxNUPomUJEoCs6hRwy0rV3odiYhIDnFxsHEjJCV5HYmISIaW1VtiMKzcrZsnkZJEfQJzWLAA6tTxOgoRkRzGjoWbb4boaK8jERHJUC6yHBvHb6RepXpehyIihaAkMIcGDbyOQEQkF9WqeR2BiEiuGlTWzZNISaPmoDksXgw33QS7d3sdiYhIDvffD++843UUIiLZfL/xe0Z/OpqUtBSvQxERPykJzGHHDnjmGfjjD68jERHJ4a234P33vY5CRCSbtXvX8sKCF1ifuN7rUETET0oCc4iPdz81QqiIBJ34eBVOIhJ04mu6m6cVu1U+iZQUSgJzqF8fKlTQfZaIBKG4OFi9GpKTvY5ERCRDqxqtAFiRoJsnkZJCSWAOxkCrVkoCRSQIxcVBSgqsXet1JCIiGSqXrUzdinVZvltzBYqUFEoCcxEfDwcPeh2FiEgOcXGuqcK2bV5HIiKSTdtabTl0/JDXYYiInzRFRC5efhnCw72OQkQkh86d4cAB12RBRCSIfD7sc8KM6hZESgolgblQAigiQSlMN1giEpyUAIqULPofm4u9e2HwYPj4Y68jERHJ4fHH4ZprvI5CRCSb9YnrGfDWAL7f+L3XoYiIH5QE5qJSJfj8c/j5Z68jERHJYdMmN1dgWprXkYiIZKgQVYFZa2Yxf9t8r0MRET8oCcxFRAQ0b64RQkUkCMXFweHDsHmz15GIiGSoWb4mNaJraK5AkRJCSWAe4uKUBIpIEIqLcz9VQIlIkImrEcfyBE0TIVISKAnMQ1ycm4rr2DGvIxERyUJJoIgEqfia8SxPWI611utQRKQASgLz0KkTdOsGe/Z4HYmISBY1a0KPHlC2rNeRiIhk071ed9rXaU9ScpLXoYhIATRFRB4uvtgtIiJB56efvI5AROQEIzuOZGTHkV6HISJ+UE2giIiIiIhICFESmI/Bg+H6672OQkQkhw8+gPr1ISHB60hERLI54+UzmPDlBK/DEJECKAnMR3IyzJvndRQiIjlUqABbt2pwGBEJOilpKSzascjrMESkAEoC8xEXB6tWQWqq15GIiGSRPkLocg3FLiLBRdNEiJQMSgLzERcHR4/Cxo1eRyIikkWDBlC+vGoCRSToxNeMZ/uh7ew7us/rUEQkH0oC86HpuEQkKBnjCigVTiISZOJquJunFQkqn0SCmaaIyEdcHFx2GVSp4nUkIiI5XH45JGkuLhEJLu3rtGd4u+FER0Z7HYqI5ENJYD6qVoX33vM6ChGRXEyc6HUEIiIniK0cyxsXv+F1GCJSADUH9cOhQ15HICKSi+Rk13FZRCSIWGvZf3S/12GISD4CmgQaY/obY1YZY9YYY/6Wy3ZjjHnSt32JMaZTlm23GGP+MMYsM8aMD2Sc+bnzTjcdl7VeRSAiRa00lE2sXw/R0WquICJB57pPrqPjcx29DkNE8hGwJNAYEw5MBQYA8cCVxpj4HLsNAJr7ltHAs75j2wCjgG5Ae+ACY0zzQMWanwYNYP9+2LHDi6uLSFErLWUTDRq4AWI0TYSIBJlGVRqxYd8GkpLVb1kkWAWyJrAbsMZau85aexx4B7goxz4XAa9b5xegijEmBogDfrHWJllrU4DvgIsDGGueNEKoSKlTKsomIiKgeXMVTiISdOJqxGGxrNq9yutQRCQPgRwYph6wOcvrLUB3P/apB/wBPGSMqQ4cAQYC8wIXat6yJoF9+ngRgYgUsVJRNgEQHw+LF3t2eRGR3MTXdI0rlicsp2OMmoWKFFZqWipvLX0r19r0RlUa0b9Z/1O+RiCTQJPLupw963Ldx1q7whjzCPAVcAhYDKTkehFjRuOaaxEbG3vy0eYhJgYqVVKLK5FSpFSUTYB7SvXhh3DsGJQpE5hriEixMsb0B54AwoEXrbWTc2w3vu0DgSTgGmvtAt+2W3BN1g3wgrX2P8UYeobm1ZsTbsJZnqCbJ5GTkWpTuXX2rXSr142GlRtmrP9166/UqVAn6JPALUCDLK/rA9v83cda+xLwEoAx5v98+57AWvs88DxAly5dinz4FmPgvvugRYuiPrOIeKRUlE0ADBwI5cu7UUKVBIqUeFn6LPfDlS2/G2M+sdZmzaay9lnujuuz3D1Hn+XjwCxjzGfW2j+L8z0ARIVH8XDfh+lar2txX1qkVIgKj2JCjwks3bWUaRdMAyA5NZlWU1vxRP8niuQagewT+DvQ3BjT2BgTBQwFPsmxzyfACN9IfKcB+6212wGMMbV8P2OBS4DpAYw1X7feCuef79XVRaSIlZqyidNOc0MYV6jgWQgiUqRKR59lYOIZEzmr0VleXV6kxBvbbSz/W/c/ftz0IylpKby55E0aVWlE74a9i+T8AasJtNamGGPGArNxTRpettYuM8aM8W2fBnyOa86wBtekYWSWU3zg63eTDNxkrU0MVKwFOXYMVq+GZs2gXDmvohCRolCayiYAtmyB48ehSRNPwxCRIlFq+iwnJSexPGE57Wu3JzI80qswREqsimUqMr77eC5971JaVG/BlgNbeHXwq0V2/kA2B8Va+znuZirrumlZfrfATXkc2yuQsRXGl1/CoEHw00/Qo4fX0YjIqSotZRMAvXtDt27wzjteRyIipy7gfZaLpb8yMHPFTIbPHM6yG5dlDBQjIoVzeevLmTRnEm1qtaFx1cZFVgsIAZ4svrTQNBEiErTi4lQ4iZQep9xn2VrbyVrbG9gLnNAf0Fr7vLW2i7W2S82aNYs0+KziarqbJw0OI3LymlVvxj96/4Ov13/NP878R5GeW0mgHxo3dmMu6D5LRIJOfDysWgWpqV5HIiKnrtT0WW5VoxUGw4oE3TyJnIz/rfsfR5KPcNvpt/HMwGeKtBYQlAT6JTzcjQ6qJFBEgk5cnOu4vGGD15GIyCnyDeiS3md5BfBeep/l9H7LuKbs63B9ll8Absxyig+MMcuBT/G4z3J0ZDQNqzRk+W7VBIoU1qrdqxj41kAmfTuJClEV+GvXvxb5NQLaJ7A0iYuDed5NCS0ikrv09urLl0PTpt7GIiKnrDT1WY6vGa+aQJFCstYy7otxREdGc8cZdwTsOkoC/TR+POzf73UUIiI5tG0Lb74JXbp4HYmISDZ397yblLQTxqYRkXx8sOIDvlr3FU8NeIpa5WsF7DpKAv2kUUFFJChVqADDhnkdhYjICc6IPcPrEERKlMPHD3Pb7NtoX7s9Y7qMKfiAU6A+gX46fhy++AJWrvQ6EhGRHJYvh08/9ToKEZFsjiQf4aOVH/HnnhMGKRWRXOw5sofYyrFMHTiViLDA1tX5dXZjTBegF1AXNwHpH8D/rLV7AxhbUElLgwsugL//He6/3+toRARUNmWYOtU1Cd23D0xuU4iJSHFT+QTHUo9x8bsX88g5jwS0b5NIaRFbOZa5I+diiuFveb41gcaYa4wxC4C7gHLAKmAX0BP4yhjzmm8Y4lKvbFk3VYRGCBXxnsqmHOLi4MAB2L7d60hEQp7Kp0xVylYhpkIMK3br5kkkP9Zapvw0hZ2HdhZLAggF1wSWB86w1h7JbaMxpgPQHNhUxHEFJc3JLBI0VDZllT5C6IoVULeut7GIiMqnLOJqxmnCeJECzFw5k4lfTaRMeBnGdR9XLNfMtybQWjs1r0LMt32Rtfbrog8rOMXFwerVkKKBrkQ8pbIph6zTRIiIp1Q+ZRdfw00T4Wa2EJGcDh8/zPhZ42lbq21A5gPMi18Dw/iaLlTJ8rqqMeblgEUVpOLi3AAx69Z5HYmIgMqmDDExUKmSmiqIBBGVT05czTgOHj/ItoPbvA5FJCj939z/Y/OBzcUyGExW/l6pnbV2X/oLa22iMaZjYEIKXhdeCIsXu76BIhIUVDaBGwzm228hNiS6GYmUFCqfgMviL6Nv477UqVDH61BEgs7qPauZ8vMUhrcbTq+GvYr12v4mgWHGmKrW2kQAY0y1QhxbatSo4RYRCRoqm9J16uR1BCKSnconoGb5mtQsX9PrMESCUqUylRjedjgP9nmw2K/tb2H0L+AnY8z7gAUuBx4KWFRB7N133XQRV17pdSQigsqmTKtWwXvvwc03Q+XKXkcjIiqfMry66FXKhJfhyra6eRLJqk6FOrx00UueXNuvPoHW2teBS4GdQAJwibX2jUAGFqxeeAH+/W+voxARUNmUzZ9/wr33wrJlXkciIqh8yurFBS8ybf40r8MQCRpJyUlc+cGVno6c61cS6FMNOGytfQpIMMaEZM+4uDhYuRI0yJVI0FDZBNmniRCRYKHyCYiroWkiRLJ6eO7DvPPHO+xO2u1ZDP6ODvoP4E7cxKcAkcCbgQoqmMXFwcGDsHWr15GIiMqmLBo1gjJlNE2ESJBQ+ZQpvmY8u5N2k3A4wetQRDy3Zu8aHv3pUYa1HUbvhr09i8PfmsCLgUHAYQBr7TagYqCCCmZ62C4SVFQ2pQsPh1atVDiJBA+VTz7xNeMBWLFb5ZOENmstN39xM2XCy/BYv8c8jcXfJPC4dbN8WgBjTPnAhRTc0pPAtWu9jUNEAJVN2cXFaSJTkeCh8sknrqa7eVqfuN7jSES89fmfn/PFmi+4/6z7iakY42ks/o4O+p4x5jmgijFmFHAt8ELgwgpetWvDnj1QrZrXkYgIKpuymzYNKlTwOgoRcVQ++TSo1ICDdx2kQpTKJwltZzc+m3+d+y/GdhvrdSj+JYHW2inGmH7AAaAlcK+19quARhakjFECKBIsVDbloKkhRIKGyqdMxhglgBLyrLVER0ZzW4/bvA4F8H9gmPLAN9baibinWOWMMZEBjSyIffIJXH+911GIiMqmHBITYcwY+PprryMRCXkqn7KbsWwGIz8e6XUYIp5Yu3ctbZ9ty7xt87wOJYO/fQK/B8oYY+oB/wNGAq8GKqhgt3o1vPQS7N3rdSQiIU9lU1bR0W4y0zlzvI5ERFQ+ZbM2cS2vLnqVA8cOeB2KSLG7ZdYtbNy/kboV63odSgZ/k0BjrU0CLgGestZeDMQHLqzgphFCRYKGyqasypSBZs00TYRIcFD5lEVcDXfztCJBN08SWj5d9Smf/fkZ9515X8lMAo0xPYBhwGe+df4OKlPqKAkUCRoqm3KKi1PhJBIcVD5loWkiJBQdST7CzbNuJr5mPDd3v9nrcLLxNwm8BTfZ6Uxr7TJjTBPg28CFFdwaNoSyZXWfJRIEVDblFBcHf/4JycleRyIS6lQ+ZdG4amOiwqNYnqCWChI6Xlv8Ghv2beDpAU8TGR5cXYL9HR30e1zb9vTX64DgSmeLUXg4dOoEx497HYlIaFPZlIvWraFBA9i5E+rX9zoakZCl8im7iLAIutfrjps6USQ0jO48mubVmnN247O9DuUE+SaBxpjnce3Yl+ayrTxwBXDMWvtWgOILWj/+6HUEIqFLZVM+hg93i4h4QuVT3r4f+X3BO4mUEvuP7qdy2cr0bdLX61ByVVBN4DPAJGNMW+APIAEoCzQHKgEvAyFXiImI51Q2iUiwUvkkEuL+u/q//GXmX/hmxDd0jOnodTi5yjcJtNYuAi43xlQAugAxwBFghbV2VeDDC17z5sHNN8O0adCundfRiIQWlU0FuP56qFoVHnvM60hEQo7Kp7z9uuVXbvz8Rl696FXa1m7rdTgiAXE05Si3zLqFmAoxtKnVxutw8uRvn8BDwJzAhlKylCsHP/8MS5cqCRTxisqmPGzeDIsWeR2FSEhT+XSi6MhoFmxfwB+7/lASKKXWoz8+yrrEdXw94uugGwwmK39HB5Ucmjd3A8RohFARCTpxcbByJaSleR2JiEiGFtVbEGbCNE2ElFrrE9fz8A8Pc3nry+nTuI/X4eRLSeBJioqCpk2VBIpIEIqLg8OHXY2giEiQKBNRhqZVm2qaCCm1Zq6cSbgJ51/n/svrUApUqCTQN6qV+GhOZpHgoLIph7g491MFlIjnVD5lF1czTjWBUmrd1uM2Vo1dRf1KwT9Fk19JoDHmdGPMcmCF73V7Y8wzAY2sBDjrLDcll6a8EfGGyqY8xMdDr14Q4Ve3bxEJAJVPuTun8Tl0rNNR8wVKqXI05SgrEtzDjXqV6nkcjX/8rQn8N3AesAfAWrsY6B2ooEqK8eNhxgwwxutIREKWyqbc1KgB338P55zjdSQioUzlUy7GdR/Hm5e8idHNk5Qij/34GO2mtWPN3jVeh+I3v5uDWmtzdi5JLeJYSiw9zBLxjsqmfKhwEvGUyqe8pabpo5DSYcO+DfzfD//H4FaDaVatmdfh+M3fJHCzMeZ0wBpjoowxE/A1bwhlx45Bo0YwebLXkYiELJVNeXngAYiNVSIo4h2VT7k4lnKMmH/F8PAPD3sdikiRuHX2rYSZMB4/93GvQykUf5PAMcBNQD1gC9DB9zqklSnjRmBfrkGuRLyisikvlSrBli2QkOB1JCKhSuVTLspElCEqPEqDw0ip8MWfX/DRyo+Y1HsSDSo38DqcQvF3svjdwLAAx1IiaYRQEe+obMpH1hFCa9XyNhaREKTyKW9xNeIyBtEQKclW71lN21ptua3HbV6HUmh+JYHGmMbAOKBR1mOstYMCE1bJERcHL77oagTDNOuiSLFS2ZSPrEngmWd6G4tICFL5lLf4mvF8v/F70mwaYUY3TxL8UtNSuebjazh8/PAJ2wY0G0BUeJQHUZ0af8cP/wh4CfgUSAtYNCVQ1jmZGzb0OhqRkPMRKpty16ABlC+vpgoi3vkIlU+5iq8Zz5GUI2zct5HGVRt7HY5IgcJMGMt2LeO0+qdxTpNzSDicwJaDW5i/bT7bD233OryT4m8SeNRa+2RAIymhTjsN/vpXTRMh4hGVTXkxBm65xU1mKiJeUPmUhx71e3DrabcSEaa5TKVkMMbwjzP/wX3f3cfUgVMZMmMIs9bMokx4GX69/levwzspxp/JOo0xVwHNgS+BY+nrrbULAhda4XXp0sXOmzfP6zBEpAgZY+Zba7vksU1lk4h4Ir+yybc96MsnlU0i/rPW0un5TvSO7c2Tvz1J38Z9qVepHq8Nfs3r0E5QUPkE/tcEtgX+AvQhs0mD9b0OeSkpkJgINWt6HYlIyFHZVJCEBKhSBSIjvY5EJNSofMrH0ZSj7EnaQ71K9bwORcQvxhh61OvBk789Se+GvVm4fSHPnv+s12GdNH+TwIuBJtba44U5uTGmP/AEEA68aK2dnGO78W0fCCQB16Q/ITPG3ApcjyswlwIjrbVHC3P94tKvn0sE5871OhKRkKOyKT+ffgqDBsGvv0K3bl5HIxJqTqp8ChUD3xrIkZQj/Hzdz16HIuKXJTuX8Oz8Z6lUphKpaalc0PICmldv7nVYJ83fIZkWA1UKc2JjTDgwFRgAxANXGmPic+w2ANdUojkwGnjWd2w94Gagi7W2De5GbWhhrl+cmjfX2AsiHlHZlJ8WLdxPFVAiXih0+RRK0qeJ8KdbkkgwaFe7HR8P/ZiXLnyJn7f8zN97/d3rkE6JvzWBtYGVxpjfyd6uPb9hjrsBa6y16wCMMe8AFwFZp1a/CHjduhLgF2NMFWNMTJbYyhljkoFoYJufsRa7uDjYs8e1ulKTUJFipbIpP02bumagSgJFvHAy5VPIiKsZx/5j+9l+aDt1K9b1OhyRXFlr+fs3f2dg84GcEXsGg1oOwlrL0lpLS3QtIPifBP7jJM5dD9ic5fUWoLsf+9Sz1s4zxkwBNgFHgC+ttV+eRAzFIut0XEoCRYqVyqb8RESoqYKId06mfAqZ5urxNV0DjBUJK5QESlBKs2nc9NlNTJs/jZS0FM6IPQNwfQPT//2WZH4lgdba707i3LlNmpCzzj/XfYwxVXFP4hsD+4AZxpjh1to3T7iIMaNxzbWIjY09iTBPXdYksHdvT0IQCUkqm/wQFwdLlnh3fZEQdTLlU5bm6v1wD59+N8Z8Yq3N2lIha3P17rjm6t2zNFePt9YeMca8h2uu/uopvZEAiavhbp6WJyynb5O+Hkcjkl1KWgrXfnwtbyx5gzvPuJOH+z7sdUhFLt8+gcaYH3w/DxpjDmRZDhpjDhRw7i1Agyyv63Nis6m89jkHWG+tTbDWJgMfAqfndhFr7fPW2i7W2i41PaqGa9AAJk+GHj08ubxIyFHZVAijRsE993h3fZEQc4rlU0Zzdd+AMunN1bPKaK5urf0FyK25egRB3ly9ToU6/Oe8/3B247O9DkUkm+Opxxn6/lDeWPIGD579IA/3fRhTCicEL6gmcCKAtbbiSZz7d6C5MaYxsBX3NOqqHPt8Aoz19cnpDuy31m43xmwCTjPGROOaXPUFgnYim7AwuPNOr6MQCSkqm/x13nleRyASak6lfAqZ5urGGG457RavwxA5QbgJJyIsgn+f92/Gnzbe63ACpqDRQaee7ImttSnAWGA2sAJ4z1q7zBgzxhgzxrfb58A6YA3wAnCj79hfgfeBBbg27WHA8ycbS3HYs0dTRIgUI5VN/kpNhYULYeNGryMRCRUnXT5RdM3V6wLljTHDT7iAMaONMfOMMfMSEhJOIdRTt+vwLr5cG7R5qoSYg8cOsu3gNsLDwpl+6fRSnQBCwTWBp1T3aa39HHczlXXdtCy/W+CmPI79ByfZqdoLzz3nWlwdOAAVT+bZn4gUhsomfx0/Dp07wz/+4RYRCbRTKZ+KpLk6gDEmvbl6tj7L1trn8T286tKli6fzM7yx+A0mfDWB3RN3Uz26upehSIhLPJLIgLcGcDj5MAtvWEhEmL9jZ5ZcBb3DxsaYT/LaqGGOM6UPDrNyJXTt6m0sIiFAZZO/ypWDRo00QqhI8TmV8imkmqvH1XQ3Tyt2r6BnbE+Po5FQtevwLs5941xW7F7Be0PeC4kEEApOAhOAfxVHICVd1hFClQSKBJzKpsKIi1MSKFJ8Trp8stamGGPSm6uHAy+nN1f3bZ+Ga8UwENdcPQkY6dv2qzEmvbl6CrCQIG+unnWaCCWB4oWtB7ZyzhvnsHHfRj698lPObXqu1yEVm4KSwIMnOQR7yGna1E3JpfsskWKhsqkw4uLg669d/8DwcK+jESntTql8CqXm6rGVY4mOjGbFbt08iTdu+vwmth7Yyuzhs+nVsJfX4RSrgpLADcURRGkQGak5mUWK0QavAyhR4uLg2DHYsME9sRKRQNrgdQAlRZgJo2X1lixPWF7wziIB8PyFz7N5/2Y61+3sdSjFLt8k0Fp7SXEFUho88wxUV79mkYBT2VRIAwbAl19CnTpeRyJS6ql8Kpxnzn+GKmWreB2GhJDFOxbz5K9PMu2CadQqX4ta5Wt5HZInQqPnYzE56yyvIxARyUXdum4REQkyp9U/zesQJIT8uuVX+r/VnwpRFdh+aDuxlWO9DskzBc0TKIWweze8/jps3+51JCIiOXz9NXzxhddRiIhksydpDy/Mf4GN+zSXqQTWnA1zOOeNc6herjpzR84N6QQQCqgJNMZ0yrHKAruttZsDF1LJtWkTXH01zJgBQ4Z4HY1I6aWy6SQ89BAkJbmmoSISMCqfCmd30m5G/3c0rw1+jRFVRngdjpRSs9fMZvC7g2lcpTH/G/E/6lZU65iCmoPmNsRxNWNMFHCltXZR0YdUcrVs6X5qcBiRgFPZVFhxcfDmm2AtmFOZy1pECqDyqRCaVmtKZFikBoeRgKpWrhrd63VnxmUzqFm+ptfhBIWCBoY5O7f1xpguwJNA70AEVVKVLw8NGyoJFAk0lU0nIT4eDhxw7dXVP1AkYFQ+FU5EWAQtqrfQNBESEEt3LqVt7bZ0rdeVb6/+FqOHoBlOqk+gtXYeUKGIYykVNCeziHdUNuUjLs79VAEl4gmVT3mLqxmnmkApcs/Ne47209rz3rL3AJQA5nBSSaAxpjaujbvkEBcHq1ZBWprXkYiEHpVN+VASKOIplU95i68Rz7rEdRxLOeZ1KFJKPP7z44z5bAwDmw/kwhYXeh1OUCpoYJinOLHAqgacDtwSqKBKsokT3aKHDSKBo7LpJNSpA8uWQbNmXkciUqqpfCq8m7vfzC2n3UKZiDJehyIlyPHU46SmpWZbZ63lkR8f4YHvH+Cy+Mt485I3iQqP8ijC4FbQwDDzcry2wB7gNmvtrsCEVLLFxHgdgUhIUNlUWMa4foEiEmgqnwqpenR1r0OQEsZaS83HanIk+QjhYeEZ65NTk0m1qVzd/mpeHPQiEWGaEj0vBQ0M85oxpiPQFFhmrVU7ogKkpsIjj0DHjhqJXSRQVDadpDlzYPZsePhhryMRKbVUPhWetZZ/fv9P4mrEcVnry7wOR0oAYwyXx19OnQp1+Geff2asH/bhMKIjonnuwucIM5oOPT/5fjrGmEnAu8ClwGfGmFHFElUJFh4O//kPfPCB15GIlF4qm07SvHkweTIkJnodiUippfKp8IwxvL74dWYsn+F1KFKC3N3rbp6Z9ww7D+1k9KejeWXhK3y59kv+dd6/lAD6oaA60qFAB2ttkjGmOjALeCHwYZVsGiFUJOBUNp2MrIPDnH66t7GIlF4qn05CfM14TRMhhdK4amO61+tOm2fasPvIbn7f9ju3nnYrlcpU8jq0EqGgNPmotTYJwFq7x4/9hcwk0GoMMJFAUdl0MjRCqEhxUPl0EuJqxLFq9ypS0lK8DkVKgM37N3P5jMv5Ys0X7D26l0fPeZStB7YytttYr0MrMQqqCWxqjPnE97vJ8Rpr7aCARVaCxcW51la7dkHt2l5HI1IqqWw6GQ0bQtmySgJFAkvl00mIrxlPcloy6xLX0aJ6C6/DkSD39fqv+XT1pzxw1gOsS1zHg3Mf5M4z7lQtYCEUlARelOP1lEAFUprExUFkJGzYoCRQJEBUNp2M8HBo1Qp27PA6EpHSTOXTSYirGUf5yPJsPbBVSaDkataaWexJ2sOwdsMY0X4E5zQ5h/qV6rM+cT1Ldi1RLWAhFTQ66HfFFUhp0qcPJCVBhEalFQkIlU2n4JdfoIzm4hIJFJVPJ6dL3S4cuOuABvSQE2zYt4Hxs8bz8aqP6Vq3K1e1vYowE0b9SvUB1zdw/uj5HkdZ8hQ0OuhFxpibsrz+1RizzrcMCXx4JVNEhBJAkUBS2XQKlACKBJTKp5MTZsKUAEo2R5KP8MB3DxA3NY7/rfsfk/tOZu7IuRhjvA6tVCjof9sdwCdZXpcBugJnAX8NUEylwpQpMGGC11GIlFoqm07WsmVw6aWwfLnXkYiUViqfTtK/f/431318nddhSJCYt20e/5jzDy5qeRErx67kzp53UiZCDzKLSkFJYJS1dnOW1z9Ya/dYazcB5QMYV4n3xx8wfbrXUYiUWiqbTsWHH8KiRV5HIVJaqXw6SRv3b+TdZe+SZtO8DkU8smbvGl5e+DIAvRr24o+//sE7Q97JaPopRaegJLBq1hfW2qw9LmsWfTilR1wcbNsG+/d7HYlIqaSy6WQ1b+4GiFFNoEigqHw6SXE14jicfJgtB7Z4HYoUs6TkJP7+zd9p/UxrJnw5gf1H3Q1061qtPY6s9CooCfzVGDMq50pjzA3Ab4EJqXRIn45r5Upv4xAppVQ2nayoKGjaVNNEiASOyqeTFFfT3TwtT9BDqlBhreWD5R8QNzWOh+Y+xOWtL2fZjcuoXLay16GVegUNX3Ir8JEx5ipggW9dZ1z79sEBjKvEyzonc/fu3sYiEgxWrYLHH4fFi6FZMxg/Hrp0OenTqWw6FXFxSgJFAkfl00mKrxkPwIqEFfRv1t/jaKQ4bDmwhas+vIpWNVrx5sVv0qthL69DChkFTRGxCzjdGNMHSK+P/cxa+03AIyvhGjd2N7opKV5HIuK9xYuhXz8YOxZGjIB58+D88+GNN+Dccwt/PpVNp6hrV9izB6wFjbImUqRUPp28GtE16F6vO5HhkV6HIgF08NhB3l/+PiM7jqRB5QbMuXoOXet1JSJMQ+sXJ2Ot9TqGItOlSxc7b948r8MQkRwGD3ZJ4E03Za77739h0iRYuDD/Y40x8621J19nGARUNomUPiqbRArHWss7f7zDhK8msO3gNhaPWUy72u28DqtU8qd8UsotIgH3ww/w7LPw1FNQrhxcfz0MHAiXXQaHD0N5jZcnIiJSon288mP2Hd13wvraFWpTv1J9xn4+lu82fkenmE58cPkHSgA9piQwgN5+Gx54wI3EXras19GIeKdOHfjuO7j9drjoIrjuOti82f2/0P8NDyQnQ8+ecOWVrnOmiEiQ+GjlR9wy6xZ+vf5X6lSo43U4Ugg3z7qZBpUa0LRa04x1yxOWk5yazM7DOzmeepxp50/j+k7XEx4W7mGkAkoCAyoszA2G8eef0Lat19GIeCMhAf76VzcozKefumah+/e7pqGjRrnZCqSYRUa6OWzUDExEgkyFqAps2r+JFQkrlASWMH8742989udnvDb4NdJsGjNXzGRFwgru7nU3MRViiK8ZT/Xo6l6HKT4FTREhpyDrCKEioeidd6BJE6hd2w0AM3QodOrkBk6qVw8efNDrCEOYRggVkSAUV0PTRJRU13a8lkU7FvHQ9w/R65VeDJkxhG0HtzEkfgi9GvZSAhhklAQGUIsWbuA93WdJqDl+HG65xbU2bNcOevRwCd+GDfDyy652/Lnn3JR14pH4eDeRaVqa15GIeKtaNffHOudSrZrXkYWkuhXrUqlMJVbs1s1TSXIk+QhXfnAluw7v4u/f/p2N+zbSuEpjppw7hTCjdCMYqTloAJUr52o8luthloSQLVvg8svh559dd7NHH3WtDwEqV3Y1gRIE4uIgKcl1zmzY0OtoRLyTmOimS8lJ06cUu09WfcK2g9uoVq4aX637imnzpgFQMaoiw9oN8zg6yergsYP8d/V/2XV4F7ecdgvlIstx6PghRnUaxfvL3+f6TtczY/kMLm99udehSh6UBAbYpZdq5EMJLd99B0uXwrvvumRQglSXLnDJJa7aVkQkCDz646McTz1O7fK1SU5NZtGORfy5909W7V7FVW2vwigx91R64jdj+Qy+WPMFR1OO0rJ6S8Z1H0eYCePLv3wJQJtabbjx8xt5d8i7qgUMYkoCA2jPHoiOhm+/hWXL4IYboG9fr6MSKXppafDHH67p57Bh7t95HfXnD17VqrnaD4APP8xcX7Uq7N3rTUwiXjh61P1MSYEI3RJ57a6ed3HX13exaMyijOThgrcv4K6edykB9MjBYwcpF1mOiLAI/vn9P3nsp8eoW7EuozuN5rLWl3F6g9NPSPSu7Xgt+4/tZ0j8EI+iFn8oPQ+QPXvgtNNc07i77oI+fdyw+M8+63VkIkUrMdFN+9C9u+vzB0oAg1568zdr4dixzN/TE0ORUDBvXmb79P/9z9tYBICBzQdSJqIMM1fMJCk5iXu+vofft/3OtR2v9Tq0kHLw2EHeXvo2F797MTUfq8mcDXMAGNNlDHNHzmXzrZt5YsAT9IztmWtNX5mIMvyt599UCxjk9NgrQJ56Cnr3hptvdoNivPMOfPml+33ECDURldJhwQIYMsQ97Pj3v9W1rMS5+GLYsQN++kn9nyR0HD8ODz3klvQnVv37exuTAGCM4b4z7+OOr+7gobkPsXDHQgDin4nnvKbn0b9Zfy5qeZFqBf10NOUox1NPbPIfFR5F2YgTJ+lNOJzA6P+O5os/v+BY6jHqVqzLDZ1voEGlBgA0qdqEJlWbBDxuKR5KAgPk++/hb3+D2Fg4cgQmTYIJE9xN8pIlLhkUKclefBHGjoWaNWHuXFcTKCVMy5bw0UfQpg3ceKPX0YgUjxEjXKflv/wFnngCmjbN/SFI1arFH5swsPlA7vvuPvo27su2g9u4u9fdfL3+a95a+hZzNsxhcKvBALy//H0aVWlEp5hOqnHKQ5MnmpB4NJHIsMiMdclpycRUiGHdLes4eOwgn67+lOTUZK7ucDXVylVj0/5N3ND5Bi5vfTk9GvTQZ1uKKQkMkFq1YP16Nzfaq6/CP//p/t4YA4sXKwmUkm/FClfb/dZbLhGUEuj++6FVK5g61WX0AFu3ukkcRUqT1FRIToayZeG229yoVZdc4rapH2xQSa8NvGD6BTw94Glu6nYTN3e/meOpx9lyYAsAqWmpjP50NIlHE6kRXYNzm57LeU3P47ym51G7Qm2P30HwuKrtVRxLOcZTA5/KWDfyo5EkHk1k8DuDmbVmFsdSj9Gjfg+u7nA14WHhzB8938OIpTgZm9uwyCVUly5d7Lx587wOA4BvvoGRI10T0JYtXbebESPcIDHffgutW8OiRa4P1QUXqD+6lAxr1sCBA64bTUqKe6gRHh7Yaxpj5ltruwT2KoEVTGUT4L64nGX/b7+56tz09f/6l2vKMHhw5hwfIiXR2rVwzTVu5KqpU4vstCqbAsday1O/PcXozqNzbbYIsPPQTr5a9xWz187my7VfsuvwLu44/Q4e6fcIx1OP8+OmHzkj9gyiwkN3Qtqdh3bS6ulWzLh8Br0b9mb7we20fLolx1KPUa9iPYbED+Gy+MtU41cK+VM+KfUIkD594O674YwzXBPQrVuhbVs3gmKtWm6f556DadOgfn0YNQquvx7q1vU2bpG8fPwxXH01NGoECxfqwUWJVrVq/s3fUlNde9+VK12hdMMNrpCKiSneOEVOhbXuj+yECe5BxujRXkckfjLGcHP3m/Pdp3aF2gxvN5zh7YaTZtNYvGMxVcpWAeDHTT/S5/U+lI8sT5/GfVwtYbPzaFatWbZz3PvtvWw+sPmEc1ctW5XHz3u8yN5PusL20fNXUnIS4SacMhFlmL9tPtPmTWNN4hr+3PMn+47to98b/VgyZglP//Y0I9qP4Or2VyvxEyWBgXTDDa4J6NKlrrlckxx9aZ96Cs47z40Y+o9/wAMPuERw2jRv4hXJTUoK3HOPm/S9SxeYMUNjiJR4BTV/Cw93T6w+/9zVnPzjH65N+4svuicBIsFu61a49lrXHKdfP3j5ZffEVUqlMBNGx5iOGa+71uvKx0M/ZtaaWcxeO5tPV38KwC/X/UL3+t3ZdXgX5SLKMW/bPCLDIxnccnDGsf9b/z9+3PxjQOKMmxrHjkM7TuijV61cNbbetjXfY621GGPYdnAbby55kzV71/Dn3j/5c8+fbD24lc+u+oyBzQey8/BOPl71Mc2rN6dvk77EVIjh6d+eZuvBrXyw4gNWjV1F9ejqAXl/UrIoCQyw6Oi8B8yIiHAtrQYPdq1VnnsOqvv+X6amutdXXJG5TqS47d/v/n3OmQNjxsB//gNlyngclBSP8HC48EK3rFnjnlald2b+9VdXHTx8OFSo4G2cIrk5csT1uXjmGVd46clVSKkQVYFBLQcxqOUgANbsXcOXa7+kc93OADw892Gm/j6VNrXasC5xHXedcRfd6ncD4F8//4vH+j0WkLiuanMVu5N289yFz2WsG/f5uGy1gEnJSXy59kv+3POnS/L2/smavWu4t/e9jOo8it1Ju7nzf3dSI7oGzau5RK95teY0rdoUgAHNBrBr4q5s101JS+GyGZdxS/dblABKBvUJDFI//AC9erkb7iuugL/+1SWT+jsmxSk1FS691C1/+Ys3MajfTRCaMMH1GaxUydUM3nijG2BGxEu7dsFrr7l/n8a4RLBcuYBdTmVTyfXrll/5cMWHzF47m8U7FwNweoPTGd99PFN+nkKLai1YsXsFUeFRRIZHEhkWSfva7fnXef8CYOKXE9l5eCeRYZFEhkcSFR5Fm1ptGN3ZNTl+4pcnSEpOynZ8i+ot6FCnAy2ebsEj5zxC5TKVWbxzMY/99Bhd63bl0rhLubXHrew9spfqj7pELT3Ra1atGSPaj+CcJueQkpbCoeOHMpq++mPnoZ1cOP1Cvhj2hZLAEOF5n0BjTH/gCSAceNFaOznHduPbPhBIAq6x1i4wxrQE3s2yaxPgXmvtfwIZbzDp2dONIjptGrzxBrz+OnToAJ98Ag0aeB2dlGbWuhaAl1ziuoPNnFn6Hj6obDpFjz3mngxMneqaLDz1FAwbBm++6XVkEqpmznR9MPbvh/PPh/j4gCaAUrJ1r9+d7vW780i/R/hs9WeMmDmCc5ucy/3f3c9j/R7jq3VfsefIHpLTkklOTeZIyhEOJx/OOH7JriWs3rOa5NRkktOSOZ56nHOanJORBD7y4yNsP7Q92zWHthnK9EunM6bzGG787EaS05IBKBdRjjSbRpkI18ymWrlqzBs1j6bVmuaa6EWERRQqAQTXf/K3Ub8V6hjxXv3H67P14InNhOtVrMeW27ac8vkDlgQaY8KBqUA/YAvwuzHmE2vt8iy7DQCa+5buwLNAd2vtKqBDlvNsBWYGKtZg1a6da8nyyCNuGP5PP80cOObTT90AHW3bZj9m1y7XUqtOHdd/q7TdvEvROnjQtfSrX9/1W92/33Wj+fBD2LPHdQUrbf+GVDYVAWNc09AePeDxx+GllzKbhaakwJNPuqSwtoZqlwDbtw9uvtk9Le3UyQ2/HR/vdVRSgpzf4ny61+/OL1t/oXxUefo368+A5gPyPWb28Nn5bt986+aMBPJ46nGS05IzRim9rcdtPP3707w44EVu/uJmVo9bTa3ytbIdn95sVULboJaDeGnhS9kGE4oKj+KilhcVyfkDOSxQN2CNtXadtfY48A6QM+qLgNet8wtQxRiTc/i5vsBaa+3GAMYa1CpWdF0aPvvMddNJS4Nx41yS2LOnSxCPHIH77nPTUTzzjLv/6tYNtpz6gwIphax1AxE1bOhGTm/RwtX8deniRgGdMgXuvdfrKANGZVNRqlUL7rrLFUoAP/8Mt9/umiwMGwY//ZQ5GmnOpVo1b2OXks1aN+jL22+7AuuXX9z8SyKF9I8z/8GsNbO478z7MEXw5DM8LJyyEWWpWKYi1aOrU6dCHaqVc+Vd9ejqjO06lps+v4lRnUadkACKpJvUe9IJI7iGm3AmnTmpSM4fyCSwHpB13N0tvnWF3WcoML3IoyvBwsJg3jzXImvHDjc2Q506buC+Vavgiy/cz0GD3DaRnF5+2bWeWrLENTt+/XXX1Hj7dvcg/fbbS18NYBYqmwKpVy83tcSNN7onV2ec4WprtmxxN+1Zl8REr6OVkujw4cyJSh9+2D14uP/+UjOfpTGmvzFmlTFmjTHmb7lsN8aYJ33blxhjOvnWtzTGLMqyHDDGjC/2N1ACda/fnZ+u/Yn+zfoXy/Vu63EbcTXimHjGxGK5npRMMRVjGNRiUMbryLBIRnYYSZ0KdYrk/IFMAnO7hcw5Ck2++xhjooBBwIw8L2LMaGPMPGPMvISEhJMKtCSqUcP1fV+92o2AXa6ca8ZXq5YbafSpp9y92PLlsG6d19FKsHnmGXfvdOSIe927t6sJDAvLezTbUkRlU6C1bOmGkt261fUZhMw5Bl94wS0LFngWnpRgP/wA7du7p6AA55wDXbt6G1MRytJcfQAQD1xpjMnZvjVrc/XRuObqWGtXWWs7WGs7AJ1x/ZlDr7n6SerRoEeR1AL6o3p0dX4b9ZtqASVfyxOW8/X6rzNeR4RFFFktIAQ2CdwCZB3CpD6wrZD7DAAWWGt35nURa+3z1tou1touNWvWPMWQS56wMNcapnlzOPNMt+7VV+GWW+DssyEhwf0cOjTzoXtKimfhiocSE13FzF13uSngBg+GPn3ctsqV4d133YP1Q4c8DbM4qGwqLuXLZ07QHeb7czN1qlvX2dfnpUsX1/E5XWpq8cYoJcPRo3DHHe6JVVqaq2EundRcXURYuXslfV7rQ1R4FFe2uZIwE1aktYAQ2CTwd6C5Maax76n5UOCTHPt8AozwNW04Ddhvrc06nNKVqLmVX/r1c8kfuL5eW7e6EdwrVoSOHV2Tv4oV3fabb3Z9wQYPdvt++qnbX0oPa10N8JtvZt5T//3vcMEFrr9fhQpw2mlu/I60NLf9f/9zA8RUrepd3MVEZZOXFiyAP/+Ed95xrytXdqMQgfvHWquWSxBHj3a1iPPmwbFj3sUrxa9atRP7j5Yr52r/Ro1yf9B69/Y6ykBRc3WREPfnnj/p85p7Sv/N1d/wr3P/RaMqjYq0FhACODqotTbFGDMWmI0bhv1la+0yY8wY3/ZpwOe4IdjX4JotjEw/3hgTjRu974ZAxVia3Hyza/55ySVw2WWZTUJffhmGDMm+b69erovOggWuH5i1LincsMFtf+MNNz9hp07QpEnmA/yc/vgD/vlPN+5DTAzcdBOMGFGq+5IFtc2b4YMP4McfXYupHTvc+tat3YOAv/4VLr/ctZxav97VEC9e7AZwXLAAHnzQtdIr7d+fyiaPhYVBs2ZuGToUvs5s6sLRo+4mf/58eP999w8S3DC1990HBw64QUA6d3ZDI5ctm+slpIRLTHR/mNL9+qv7w7Z5c2bz4tKrKJur35XrBYwZjWtGSmxs7MlFKSIBsXbvWs5+7WxS0lL49upvaVXDzcG79ua1RX6tgM4TaK39HHczlXXdtCy/W+CmPI5NAjSjpZ+qVHHJ2CuvuOH969RxfQXbtz9x3yuvdAu4pn+LF7ukMN0DD7hpAyCzJvHSS12iCa7maM0a15Twb39zLblWr3aDiWzf7tZJ4SUkuHkh5893Sflf/5r3/NsHDriB8H78ES66yCXsy5fDrbe6Y/v0cSPHnnFG5mB5bdpkHt+6tTv28cfhtttcsv/RR652MBSobCpm6aOD5rY+q/LlYbJvykZr3ZOp+fMzh/xfuND9xwCIiHD/qDt3dv/ws44KWa1a7oPOVK0Ke/ee8tuRANi7F5Ytcwu4p1RVq7o/aN27uz86Zcp4G2PxCHhzdWvt88Dz4CaLP9WARaRorE9cz9mvnc3RlKN8c/U3tK4V2NGOA5oESvGqWNElaunJmj8qVDixa8Uff7i/wwsXuhqihQtho69XQXprrfBwl2yUL+/mJuze3TUr7dzZjRRfvnzRva90R4/Ce++55KdePTe1Qb2cDWBKqE2bXNJ23nnwl7+4UTt793Yt5tL77SUmwqRJLnlbssQl42Fhrha2Uye3/+bNrkmnP5o3h2efDdx7EslwMomXMdC4sVvS9e7tqrHnz89cPvoos9/h+++75gmJia7vYefOLjlMn8OwtFdzlwT792cme9u3Z85F85e/wOdZnsscPeqeTqWLiireOL2T0VwdNw/pUOCqHPt8Aow1xryDm8dUzdVFSriN+zbS5/U+HDp+iG+u/oZ2tdsF/JrG2tLzEKhLly523rx5XodRqh086FplvfCCe1CfPojIww+7GsDmzd3AM/XqucnH05dLL3WJyuHDrjtQ+np//67v3++SoWrV3NQXK1e6hHDmTJc8BcJ337lWaL/9BrGxbrCdMWMCcx95ww1QvTr83/+5RHvZMpegTZ8OEyfCPfdAcrJL8Nq2zazlO+20zL6epZUxZr61tovXcZwKlU0BlP43zBiYNcuNSjo7x0TOO3e6p1fGwBVXuKYSMTGZS9++ebd794dqHk906BCsWOES8bAweOIJ1yE56+S1FSu6JhBlyrgCNynJ1e7GxmZvDprOmNzXeyRQZZMxZiDwHzKbqz+Utbm6cUNYPg30x9dc3Vo7z3dsNK6/YBNr7f6CrqWyScR7Ww5s4cxXz2RP0h6+HvE1net2PuVz+lM+qSZQCqViRTfgzKZNbmTuc8+FRYtcs8XERFcrePbZLmn780/XRHX3bre9Uye3b9akrVIllwxOm+bOt3IlvPZaZpJYo4b7+f77rkXY669nJmH9+rmkbOnSok/M0rugPPGEq+H84w837dn+/f41dz1+3DWx3b/f/Z7eUu2TT1zT2X37MrfXrg1ffeUegp97ruvPlz51gzHuHgncFFjbt5/avapIqZP1P3///m4xxjVfmD/f/YerUSNznwUL3H+k9CdYZcpk/of761/df8SsCWKjRm5USnDnjIx0CWVElj+fOfuw5RZbUSrupNOf6y1Z4vprLlvmCsz0TuZr17oavdq13RDWbdq4ArF1a/fZphdo6cNbi5qri4SQbQe3cfZrZ7M7aTdf/eWrIkkA/aUkUE7KLbe4QUZatHCjjG7f7ppnDh16Yr/9tLTMEShbtnQJXUKCSw4TEtxS3fcna/Vql2QmJ2c/R/PmLjmcMcPdj0VHu1rE1avdCPPvv+9ajX36qRslNTLSbU9fHnzQ3cfMmeOW9PXp+117rbsXXLLEdT157DHXbzImxiWZp5/urtGpk6upO3QoM4kDd+8DMHKkm2oh/Z4S3H3O+vXu96lTXV/NsDDXj7NKFdfnsmpVN5BLnz6upq9jx8wavwcfzDyXEkARP8XGuiWn1avdz0OHXMG1Z09mstatm6uN2r7dFQRz57rRS9OTwFGj3BMbY1wiGBOTfY66jz5y//mjo91oluCebKV37t292xU45cqd2sTmgUw6U1NdU8z0pVIld70DB1wH8i1bMhO9jz5yT6169nSf6+OPu0K+e3dXqLZp457igfvjMHSofzH424dURKQE23FoB2e/djY7Du3gy+Ff0q1et2K9vpJAOSk9e7qEZswYV/tnrUsCs073lS4sLDN5qVHDNQ3Ny6BBbjT4AwfcedOTxIceck1Ra9d23YKOHHH7LV/u7rfCw93x+/a5e5Hjx92SnOx+TvKNqvv993D//Sded9gwlwS+/rpLQsH1PXzySfd7Sgo0beruj/7+d1cJULWqS+JqZZnrtXdv9x6rVHH3jlWqZN4DgUsWo6JcF6Ws9zjPPAN33+0qIapUcdcbO9Yl2OndmUSkCFWo4J4uNW+euW7kSLdklXVi1bvuckMwb9+euWR1992uCWRW48a5xBFcwpheQxYe7pLBSy5xT7jANUs9etStL1fOFW59+2b2ebzvvszkcdo0t0/btu7pVPo0Gvffnz2JGzDAFax79sBVV2WuP3Ikc+6966+HVavcuXI+gXv+efdz1So3tHR67OmfW/pgLYMGufb+p5LcpgvVJrQiEjJ2Hd5Fn9f6sPXAVmYNn0WPBj2KPQb1CZRTYq27t6hYMbADt02d6mrYZs/OfMD+yCPu9TffFO5c1mYmh+mJYs2aLlHdscN1Hxo71iV0/fq57X36uLkUO3RwzVzTp7EqKmlpboDD119394nLl7uH6O+845LCUKY+gVJoxd1cMr2v2q5d7vxHjrgaxZ49Xdvybr6nu6+/7moD07cfOeKaRV53ndt+xRWuQM26ffBgN2Kqte4JUtakFFyzjP/8J7MGElwiVrasKyxvv90leomJLiFMX1+2rFuGDXMTiO7Z456Apa9P369XL4iLc80efvvNPfVq2dIV+EHWR6+4qWwSkZOxO2k3Z792Nmv3ruWLYV9wZqOibw7vT/mkJFBKhNRUd5/05ZcuMVuxwtUMzprlRiktat9/7+7HXnzR3TctX+4exvfrl3tNYlHZts21uGrYMHNU/FCnGy0JenklQ0WdJKU/wSpTxtVCJiW5Gs1atdy2sDCXJKY3jSgqxfX+ShiVTSJSWHuS9tD39b6s2rOKz676jD6N+wTkOhoYRkqN8HDX12/ZMvdgfdgw10qqqO910vXuDS+95JqRDhrkmqGOHw8TJgTmeunq1nWLiJQgxdWHzZjMIZXr1DlxGwSuUBQRkVOSeCSRfm/0Y+XulXx65acBSwD9pSRQSpT0QeWKw8CBbkl/sK4pxkQkV8Xdh624B07RQC0iIqdk39F9nPvmuSxLWMZHV3xEv6b9vA5JSaBIQSL0v0REgklxJ50aqEVE5KQdOHaA/m/2Z/GOxXx4xYcMaD7A65AAJYEiIiIiIiJF7uCxgwx4awDzt89nxmUzuKDFBV6HlEFJoIiIiIiISBE6fPww5799Pr9u+ZV3h7zL4FaDvQ4pGyWBIiIiIiIiRSQpOYkLp1/Ij5t/5O1L3ubS+HwmyfaIkkAREREREZEicCT5CBe9cxFzNszhjYvf4Io2V3gdUq7CvA5ARERERESkpDuacpRL3ruEr9d9zSsXvcKwdsO8DilPqgkUERERERE5BcdSjjHkvSHMWjOLlwa9xNUdrvY6pHypJlBEREREROQkHU89zhXvX8Fnf37Gcxc8x7Udr/U6pAIpCRQRERERETkJyanJXPnBlXy86mOeHvA0ozuP9jokvygJFBERERERKaSUtBSGzxzOhys+5D/n/Yebut3kdUh+UxIoIiIiIiJSCKlpqVz90dW8t+w9pvSbwi2n3eJ1SIWigWFERERERETyUf/x+mw9uPWE9ZWiKnH76bd7ENGpUU2giIiIiIhIPga1HERUeFS2deEmnOHthnsU0alREigiIiIiIpKP2067jTSblm1dVHgUk86c5FFEp0ZJoIiIiIiISC62HNjCnV/dSZcXupCSloLBABAZFsnIDiOpU6GOxxGeHCWBIiIiIiIiWSzYvoDhHw6n8RONmfLzFM5rdh7/vfK/lIkoA0BEWESJrQUEDQwjIiIiIiJCmk3js9Wf8fgvjzNnwxwqRlVkXLdx3Nz9ZhpVaQTAyA4jeW7+cyW6FhCUBIqIiIiISAhLSk7i9cWv8+9f/s3qPatpUKkBU/pN4fpO11O5bOVs+07qPYnZa2eX6FpAUBIoIiIiIiIhaMehHUz9bSrPznuWPUf20KVuF6ZfOp1L4y4lMjwy12NiKsaw9ua1xRxp0VMSKCIiIiIiIWPpzqX8+5d/89bSt0hOTeaiVhdx22m30TO2J8YYr8MrFkoCRURERESkVLPW8uXaL3n8l8f5cu2XREdGM6rTKG7pfgvNqzf3OrxipyRQRERERERKpaMpR3l76ds8/vPjLEtYRkyFGP6vz/9xQ5cbqFaumtfheUZJoIiIiIiIlCq7k3bz7O/P8vTvT7Pr8C7a1W7Ha4NfY2iboUSFR3kdnueUBIqIiIiISIlS//H6bD249YT1taJrcXHcxby2+DWOphxlQLMB3N7jdvo07hMy/f38ocniRURERESkRBnUctAJNXoGw66kXby66FWGtx3OshuX8fmwz+nbpK8SwByUBIqIiIiISIlhreUv7f6CtTb7eiy397idTbdu4oVBLxBfM96jCIOfmoOKiIiIiEhQstayLnEd87fPZ/62+e7n9vnsO7ov237hJpzrOl7HlHOneBNoCaMkUESKzVtvwT33wKZNEBsLDz0Ew4Z5HZWIhLRKleDgwRPXV6wIBw4UfzwiISxrwjdv2zzmb5/Pgu0LMhK+yLBI2tZuy2Xxl9GlbhcaVm7IRe9cxLHUY0SFR3H/2fd7+wZKECWBIlIs3noLRo+GpCT3euNG9xqUCIqIh3JLAPNbLyJFwlrL2sS12Wr3ciZ87Wq34/L4y+lctzOdYzrTplYbykSUyXaeaztey3Pzn2Nkh5HUqVDHg3dSMikJFJGAO3QIbr01MwFMl5TkagaVBIqIiJRseY3WWa9iPTbfuvmEhG/+tvnsP7YfgKjwKNrWapuR8HWp24U2tdr4NZXDpN6TmL12NpPOnFTk76k0UxIoIkXOWliyBGbNgtmz4YcfIDk59303bSre2EREAPcU6ptvvI5CpNQY1HIQLy18ieOpxzPWhRk3BmXVR6pmS/ja1W7H0DZD6RzTmc51O/ud8OUmpmIMa29ee+pvIMQoCRSRIpGQAF995ZK+L7+EHTvc+rZtYfx4eO012LXrxONiY4s1TBEJZRs3wmefwX//C99+C0ePeh2RSIl0+Phh1iauZe3etaxLXMfaxLUsT1hOcmr2J75pNo0a0TW4oMUFdI5xNXyta7XWZO1BQEmgiJyU5GT45ReX9M2eDfPnuxrAatXg3HPhvPPcz7p13f7t22fvEwgQHe0GhxERCYiUFPj5Z5f0ffYZLFvm1jdrBjfcABdcAP36eRujSIDk1zxzy21b8j3WWsuuw7tOSPTSX+88vDPb/lXLVqVptaY0qdqE9fvWk2bTiAiL4LoO1zHtwmlF+r6kaCgJFBG/bdiQmfR9/bUbOC88HE47De6/3yV+nTu7dTml9/vT6KAiElC7d7u26J995gqrxESIiIDeveG66+D886FFi8z9K1bMe3RQkRIst+aZUeFRXNTyIgCSU5PZtH9TRmK3NjEz2VuXuI5Dxw9lHGcw1K9Un6bVmnJ+8/NpWq0pTas2zfhZtVxVALYf3E6TJ5twNOUokWGR3Hf2fcX6nsV/SgJFJE+HD8N332X27Vu92q2PjYUrrnBJX9++UKWKf+cbNkxJn4gUMWth6dLM2r5ffoG0NKhVCy66KLO2r1Kl3I/XNBBSSk3qPYmXF76cbV1qWip/7PqDpk82ZeO+jaTa1IxtZcLL0KRqE5pWa8pZDc/Klug1qtKIshFlC7xmTMUYRnYYqdE6SwAlgSIhLOe8fQ8+6Jptpid9c+fC8eNQtiycdRb89a8u8WvVCozxOnoRCVlJSa45wmefuWWLr2lb584waZKr7evcGcLCvI1TJMCOpx5n0/5NrEtcx/rE9e7nvsyfx1KPZds/IiyCIylH6FavG0NbD82W6NWtWDdjIJdTodE6SwYlgSIhKrd5+0aMcA/VAVq3hrFjoX9/6NXLJYIiIgGX1+Tt5cvDI4+4pC99UJcKFVwt3/33w4ABEBNT/PGKFEJh++lZa9l5eGeeSd6WA1tIs2kZ+0eGRdKoSiMaV21M17pdqR5dnUd/fJTktGTKhpdl/fj1Aa+d02idJUNAk0BjTH/gCSAceNFaOznHduPbPhBIAq6x1i7wbasCvAi0ASxwrbX250DGK1KaHTkCK1bAH3+45amnThwYz1qoXh0WLYL69T0Js1iobBIJYnlN0n74sHsy1awZjBnjavt69YIyZXLfXyQI5dZPLzIskjManMHHKz8+Iclbn7ieIylHsp0jpkIMTao2oXfD3jSp0oTGVRvTpGoTGldpTN2KdQkPy94xf++RvTw3/zmu7XitmmdKhoAlgcaYcGAq0A/YAvxujPnEWrs8y24DgOa+pTvwrO8nuBuwWdbaIcaYKCA6ULGKlCbJya7vXnqyl76sXZtZyxcV5Zp55mbv3lKfAKpsEgkWaWmuKefq1fDnn5kdj/OyalX2QV1ESoCk5CQ27tvIhn0baFi5Ialpqdm2J6cl897y93hv+XsAVIyqSJOqTWhRvQX9m/bPluQ1qtKIcpHlCnV9Nc+U3ASyJrAbsMZauw7AGPMOcBGQ9UbrIuB1a60FfjHGVDHGxACHgd7ANQDW2uNAHresIqVHzj56+Y2emZYG69efmOytWpU5MXtYmLtf6tABhg+HNm1cM89mzdyyceOJ5w2BeftUNokUJ2th587siV76z7VrszdJiC7gmUoIJIBqqVDyHDx2kI37XZK3Yd8Gl/Dt35CR+CUkJWTbP2u/uzATRre63bi1x600ruKSvWrlqmGKsOO9mmdKbgKZBNYDNmd5vYXMJ+n57VMPSAESgFeMMe2B+cAt1trDgQtXxFu59dEbPdrdP5111onJ3vLlrolnukaNXJJ3wQXuZ5s20LJl3n35HnooZOftU9kkUhh59dGrWDH7yJp7956Y6KX/fihzqHkiI6FpU5fQ9e/vfjZv7n7WrRvSg7mopULx86eP3r6j+zKTu30bsid8+zey98jebMeWCS9DoyqNaFilIR3rdKRhlYbudWX301pL86ebczTlKGXCyzBz6Ew105RiF8gkMLdHGNbPfSKATsA4a+2vxpgngL8BJ9RjG2NGA6MBYkOgCkNKr7vuyp6QgXuddbAWcOMetG7t5jlOT/bi4ws/pVUIz9unskmkMPLqo3fwoCug0hO9vVluhMPC3JOp5s3hjDMyk7zmzV1hE6Fx6fKglgrF7Pzm5/PKoldITkvOWBdmwogMj6T9tPZs2LeBA8eyTyNSPrJ8RmJ3Wv3TsiV4Das0pFb5WgWOsqlpFMRrgSyFtwANsryuD2zzcx8LbLHW/upb/z7uRusE1trngecBunTpkvNGTuSUFKZ5Zl5SUlxLqK1b3bJtW+6/5zVVlbUwdWpmU87q1U/9faUL0Xn7VDaJ5JScDDt2uEJp2zbYvj3z9/x8+61L7C67LHui17jxyQ/YEtqTt4d8S4XCjp6ZmzSbxp6kPew4tIMdh3aw8/DOjN9zrtudtDvX46Mjo2lYuSFnNjzzhCSvernqp9xcU/30xGuBTAJ/B5obYxoDW4GhwFU59vkEGOt70tUd2G+t3Q5gjNlsjGlprV0F9CX7UzCRgMureSa4xMla2Lcv76Qu/fedO13/vawiIlyNXt26EBfnJlx/8013vpwaNoQbbwzkOw05KpukZPO3eSZkPoXKLbnLum7XrhPPFxYGdQqoodi8Of/tJyO0J28PeEuFYG+lkNvomVHhUQxqMYj9R/fnmsjlXLfz0M5sk6CnKxdRjpiKMdQuX5vm1ZrTK7YXdSrU4Zv13/Dj5h9JSUshMiySUZ1GMfX8qQF9n+qnJ14LWBJorU0xxowFZuM6N79srV1mjBnj2z4N+BzXsXkNrnPzyCynGAe85WvTvi7HNglRRVEzl59jx1witm8fTJiQe/PM666D++5zCd6RIyeeo1o1qFfPJXjt2mX+Xq9e5u+1ap3Y7eW000K2j16xUtkkRa4wSdmpsjb/5pmjR2dP9nbuzN6eHFzhU6uWK4waNIDu3d3v6U+m0peaNSE8HIpwgAopUMBbKgRjK4Xk1GS2HtzKpv2biK8Rn23eu/Ttryx+hWfnP3vCsRFhEdQuX5s6FepQt2JdOsV0ok6FOtSpUCdjffpSIapCrjV4ozqNosmTTUhJSyEiLEK1cxISAtoo31r7Oe5mKuu6aVl+t8BNeRy7COhS1DEFOonQ9QJ3vYJq5sANMpeexOVc9u/Pe1v6knPevNwcOwadO8OgQScmeDExUK5wIzdnCOE+esUu6Mqm4kwidL2iv15+SdmuXW5QlMOH3c+svxf0M69t+fnkk8yErlOnzIQua4JXq5b65AWvoGupcKrNM6217Du6j037N2VfDmT+vu3gthMSv3QGQ/PqzRnUYlC2hC59qVquaoH97woSUzFGffQk5ITUXwF/kghdL/DXS0lxxxw54hZ/f//Xv3KvmbvmGrj9dpfEHTuWf8yRkVClSvalQYMT11WpAuPHQ0LCiedo2BDeeSf/65ysEO2jJ/klEbpe4K93/Hhm0pXbkjUpy23JT+3a/sVctixUqADly2f/Wb36iesefDDv8+zY4d/1CiO0++gVq2BsqZBX88yLWl4EZK/Fy23ZuH8jh45n/38SFR5FbOVYYivHck6Tc4itFJvxOrZyLBFhEbR5tg1HU45SNqIs313zXcATM/XRk1ATUkngPffknkSMGQM//+xavYSFuZ+5LYXdNn587te79da8p0Lyp9VNXvvcemvu1xs/3v2elgapqW5J/93fn7mte/HF3K93/fUwbVreSV1KSsHvsTBSUuCii3JP5KpUgcqVM38vV87/lk3WqnmmBIE773QFTPpiTPbXuS0F7ZOft97K/E9SVD/z8/bb/hc6/m7LT9euJyZxhSmU0pO1rEt+pk7NTN5yS/LKl3dLeLj/MeSXBAZCaPfRK3bB1lJhUu9JvLzw5WzrUtNS+X3b7zT4d4Nca/FqRtcktnIsLaq3cEle5exJXjCOnqk+ehJqjM3ZV6AE69Kli503b16e28PCTuwaka5atez3EFmXUvQRnbT0e8esSW9+D8DPPtslXNHR7mf6kvV1YX/Pa3Lzhg1hw4bAvO/ibl4rJzLGzLfWFnnT8OJUUNmUb7JUtqwrnLIukilr4ZT+M7/CaeDA7ElZfkvO/cqXz70ZZX7fXyD+gBT39SRXIVE2+Qx9fyjvLns343XlMpXpXLezS+qy1OI1rNKQ+pXqEx156tMTbj+4nZ6v9OTHa39U80yRQvKnfAqpmsDY2JNLIqzNO0HM+QA663L22bmPrh0TA198kft1CpLfPuef78YCyKluXTeKd84ay5z3TXn9NCb3e45GjfL+PL/5puD3UlheTG6u5pniudxGH7I2s2DKa8lve34jAq5alXmNovrZsWPe11u5suBCKa9t6bWeOeWXJH32Wd7bSgo1z5RiNrnvZGaunMnx1OOUDS/LyrErA56YqWZOJLBCKgk82STCmMz7kMJ49NHcr/fYY9C+feHO5Y/HHsv9eo8+6qZuKmrFnZRp4BQRn/QnMwU17TwZgSgs8tOyZfFeLxCKOylT80wpZo2qNuK6jtfx3PznuLbjtaqZEykFAnAHEbyGDYPnn3c1Vca4n88/H7gkQtcLzDU3bHCVGRs2KAGUUiKvZCFQSYSuV7QOHMisnc26KFmTUmRS70k0qtJIA6eIlBIh1SdQREqeUOp3IyIlh8omEQlW/pRPIVUTKCIiIiIiEuqUBIqIiIiIiIQQJYEiIiIiIiIhREmgiIiIiIhICFESKCIiIiIiEkKUBIqIiIiIiIQQJYEiIiIiIiIhREmgiIiIiIhICClVk8UbYxKAjV7HkYcawG6vgwggvb+SLZjfX0NrbU2vgzgVKps8pfdXsgXz+1PZFHjB/P0XhdL8/krze4Pgf38Flk+lKgkMZsaYedbaLl7HESh6fyVbaX9/krfS/t3r/ZVspf39Sf5K+/dfmt9faX5vUDren5qDioiIiIiIhBAlgSIiIiIiIiFESWDxed7rAAJM769kK+3vT/JW2r97vb+SrbS/P8lfaf/+S/P7K83vDUrB+1OfQBERERERkRCimkAREREREZEQoiSwCBlj+htjVhlj1hhj/pbL9mHGmCW+5SdjTHsv4jxZBb2/LPt1NcakGmOGFGd8p8qf92eMOcsYs8gYs8wY811xx3gq/Pj3WdkY86kxZrHv/Y30Ik4JDJVPGfupfApCKp9Cl8qmjP1UNgWhUl02WWu1FMEChANrgSZAFLAYiM+xz+lAVd/vA4BfvY67KN9flv2+AT4HhngddxF/f1WA5UCs73Utr+Mu4vd3N/CI7/eawF4gyuvYtRTb96/yKUgXlU8qn0rrorIp234qm4JsKe1lk2oCi043YI21dp219jjwDnBR1h2stT9ZaxN9L38B6hdzjKeiwPfnMw74ANhVnMEVAX/e31XAh9baTQDW2pL0Hv15fxaoaIwxQAVcQZZSvGFKgKh8clQ+BSeVT6FLZZOjsik4leqySUlg0akHbM7yeotvXV6uA74IaERFq8D3Z4ypB1wMTCvGuIqKP99fC6CqMWaOMWa+MWZEsUV36vx5f08DccA2YClwi7U2rXjCkwBT+aTyKZipfApdKptUNgWzUl02RXgdQCliclmX69CrxpizcQVZz4BGVLT8eX//Ae601qa6ByIlij/vLwLoDPQFygE/G2N+sdauDnRwRcCf93cesAjoAzQFvjLGzLXWHghwbBJ4Kp9UPgUzlU+hS2WTyqZgVqrLJiWBRWcL0CDL6/q4pwLZGGPaAS8CA6y1e4optqLgz/vrArzjK8RqAAONMSnW2o+KJcJT48/72wLsttYeBg4bY74H2gMloSDz5/2NBCZb17B9jTFmPdAK+K14QpQAUvmk8imYqXwKXSqbVDYFs9JdNnndKbG0LLiEeh3QmMzOo61z7BMLrAFO9zreQLy/HPu/Ssnq3OzP9xcHfO3bNxr4A2jjdexF+P6eBe7z/V4b2ArU8Dp2LcX2/at8CtJF5ZPKp9K6qGw6YX+VTUG0lPaySTWBRcRam2KMGQvMxo0m9LK1dpkxZoxv+zTgXqA68IzviU+KtbaLVzEXhp/vr8Ty5/1Za1cYY2YBS4A04EVr7R/eRe0/P7+/fwKvGmOW4ppA3Gmt3e1Z0FJkVD6pfApmKp9Cl8omlU3BrLSXTcaXuYqIiIiIiEgI0OigIiIiIiIiIURJoIiIiIiISAhREigiIiIiIhJClASKiIiIiIiEECWBIiIiIiIiIURJoBQpY0x9Y8zHxpg/jTFrjTFPGGOivI5LREKbyiYRCUYqm8QrSgKlyBg3gc+HwEfW2uZAC6AC8JCngYlISFPZJCLBSGWTeElJoBSlPsBRa+0rANbaVOBW4FpjTHljzBRjzFJjzBJjzDgAY0xXY8xPxpjFxpjfjDEVjTHXGGOeTj+pMea/xpizfL8fMsb8yxizwBjztTGmpm/9KGPM777zfGCMifatf9UY86TvGuuMMUOynPcOXzyLjTGTjTFNjTELsmxvboyZH/BPTUQCTWWTiAQjlU3iGSWBUpRaA9n+81trDwCbgOuBxkBHa2074C1fc4d3gVuste2Bc4AjBVyjPLDAWtsJ+A74h2/9h9barr7zrACuy3JMDNATuACYDGCMGQAMBrr7jnnUWrsW2G+M6eA7biTwamE+ABEJSiqbRCQYqWwSzygJlKJkAJvH+t7ANGttCoC1di/QEthurf3dt+5A+vZ8pOEKQIA3cYUUQBtjzFxjzFJgGK5gTfeRtTbNWrscqO1bdw7wirU2KUs8AC8CI40x4cAVwNt+vG8RCW4qm0QkGKlsEs8oCZSitAzoknWFMaYS0IDcC7q8Cr8Usv/bLJvPNdOPfxUYa61tC9yf45hjOa6Z37U/AAbgnn7Nt9buyefaIlIyqGwSkWCkskk8oyRQitLXQLQxZgSA76nQv3AFzZfAGGNMhG9bNWAlUNcY09W3rqJv+waggzEmzBjTAOiW5RphQHr79KuAH3y/VwS2G2MicU+0CvIlrs19ehv4agDW2qPAbOBZ4JXCfgAiEpRUNolIMFLZJJ6J8DoAKT2stdYYczHwjDFmEq7g+Ry4G0jFjXq1xBiTDLxgrX3aGHMF8JQxphyuXfs5wI/AemAp8AewIMtlDgOtfR2P9+OaHgBMAn4FNvqOq1hArLN8bdjnGWOOZ4kT4C3gElyBJyIlnMomEQlGKpvES8ba3Gp2RYKTMeaQtbZCgK8xAahsrZ0UyOuISOmhsklEgpHKJsmLagJFsjDGzASa4oZtFhEJCiqbRCQYqWwquVQTKCIiIiIiEkI0MIyIiIiIiEgIURIoIiIiIiISQpQEioiIiIiIhBAlgSIiIiIiIiFESaCIiIiIiEgIURIoIiIiIiISQv4f/kLmrMQhyPIAAAAASUVORK5CYII=\n", + "image/png": "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z7iJTNetg4iwHb9LRLw2diwEtESk23TmbJxLs1rNaFa7aeHvPfnk/JfHx8OTTxbr8JUrV856fujQITIyMrJeDxo0KOt5nz59SEpKKnA/jz32GHfeeScdO3bMWjZkyJAijz9hwgTuvPNOfP5Rm30+H3fccQePP/44b7zxBgAXX3wx7777Lpdeeinfffcdxx9/PJ999lmxPl9Rjj32WB5//PE8y7/99lsqVarEqFGjspbFx8eXyjHzyO93vOACGD264PWZtm+HYcNyLvvuu2Ifevny5aSlpXH66acDOVsI09PTGTduHG+//TbTpk0rdD/6/fMXzLOLJCCws2UzYGNpv9daO9lam2CtTWjQoEGJAjx4EH7/vURvEZHyL+RzE5UqwYYNsGlTyd4nIhJEESaStPRUDqSllNkx169fT7du3WjevDn//Oc/adKkSY71qampvPHGGwwYMKDAfSxbtoyePXsWepxx48ZldcsbPnx41vt69eqVY7uEhASWLVuW9bpt27Zs27aN5ORkpk6dykUXXZRj+wMHDuToDvjuu+8W63OD68J4zjnn5Fm+dOnSPHFVRH/++SfR0dGcd9559OjRg3HjxpGeng7As88+y5AhQ4iNjS1yP/r98xfMlsA5QFtjjA/YAFwEXFIG7y22uDhYpZGORcJNyOemHNNENC3iaruISLDkarEzwA2TetCkVhM+veRTd/9XQUrQ4lOY5s2bs3jxYjZu3Mg555zDsGHDaNSoUdb60aNH069fP0488cRi7W/Hjh3079+flJQURo4cya23ugGgH3/8cYblarWy1mJyfcb8lp133nm88847/Prrr0yaNCnHumrVquW4r6s4hg8fzv79+0lPT2f+/Pklem+pK+p3zG995vdTv/5R/TtIS0tj9uzZLFiwgBYtWnDhhRfy6quvMnDgQN5//32+O4J96/fPFrSWQGttGnA9MAtYAbxnrV1mjBlljBkFYIxpbIxJAv4B3G2MSTLG1C7ovaUdY+Zcgba4HcFEpNwrD7lJE8aLSKjyRftYnVz200Q0adKEzp07M3v27KxlDzzwANu2beM///lPoe/t3Llz1sl0vXr1WLhwISNHjmTfvn1Fvm/u3Lk5ls2fP59OnXIOCn3RRRdxzz33cPrppxNRCl3433rrLVavXs0ll1zCmDFj8o1r3rx5R32cUNesWTN69OhBq1at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\n", "text/plain": [ "
" ] @@ -217,7 +217,7 @@ "outputs": [ { "data": { - "image/png": "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29tzEVE98kjVRx9VXbjQjnvlFdXatW1/5Fa7tm13mQ3I1xLiTqhjvVV1DDCm2LbBUf8vwS7JXSWgaq27555r93NybO1rEat3/N3vrPM3WKky06laaTFScvzhB3suRx0FTzwBZ55pU7VFi8wsHmn1btnShlT6jOPZzSfFcOW2YYNN5DB+/LZb06ZwyCFQt651or7gArvdfjt06ZK5yytEqFpwjwTHmTNhl13gmGOsCuHMM62LUml8KYbKxwOlS9jSpVBQYEPuAI44woYSgvVzPOEEa6m+4w648kp47TXbN2GCjZ55+OH05DseVQv4b7xht4ICG2t97LE2xLBnT59JfGfngdKVqKDAZgCPlBZnz4bddrNZeKpUsXHVu+xiwTG6lNW8uTXedOy4rYT24ouZFWwi48UjJccff4SqVeH44+HWWy047r57unPpMoUHykpq3Tob47xkiU3X1blz6cf/+quV/MaPt1LUrrtacIssXtWtm7Vid+26rZvP2WfHPtfpp1v93Cef2LHHHZf6S+7o0TGResILLrDnGCk5zptnwbF7d/jb32xyjUaNUptPlx3EGnuyR25uruZHrvdcTFOnwskn2+w0bdrYZW+3btapO3r6runTrS/j+PH2GFULbOPHW8PLokXWUXqffbJjVExE8dExYAGxXj1YudJmETrxROvfefrp1qXHORGZpKq5Mfd5oKxcVK21+cYbbfkDsHWgjz7a5j3cssXmOzzlFPjqKytN/e53VlLs2hUOO8wur7OVqrWwL1q0475ateDppy041quX+ry5zFZaoPRL70pk40a73F22zDpxr11rgXDSJNv37bfQtq0FTrDO35H6xmxVWGh1jV9+Cf/7n/1dsiT2sevX2+viXFl5oMwyW7ZYfWJkerFbb7XL5lmzrEGiqMjqF0Vsgom6dW2kTM2a2xpmInbJsmmbVW1VxUhA/N//rKGoqMj2t2tnPwx5ebGXffDRMa68PFCGZO5cePRR+OYbq+O75pryrcU8apSVmGbOtNusWXap/Nlntn/sWCstdupk6z+3bQt33mn1kqedZmOui4rs/0hH8Gzx22+2dkwkMH75JSxfbvt23dWqCW67zVrdDztsWyt1rDrK2rWtQce58vBAGYIffrAOypdcYkHr66+tu8xLL+04l+LMmRZMI4Fw5kwrNU6caPufftrmZmzTxqbqOvHE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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUoAAAFhCAYAAAAWQuPwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABBxElEQVR4nO3dd5hU5fXA8e9hKYoiSLGAUgRFUARhRcWCscUuGqMiSqyEKBATJdYYo5KgogYUA9gLPwsRFYUEZe0dVFABUUDK0otIL8ue3x/nLjssszuzu3Pnzizn8zzzzM69d+57pp19733f+76iqjjnnCtdtagDcM65TOeJ0jnnEvBE6ZxzCXiidM65BDxROudcAp4onXMuAU+UcYjIcSIyI+o4ioiIikirMtZPFZET0hfRzktEhonIX2Me/0FElojIWhFpEGVsqSIic0Tk5DLW/1dEfpfkvt4TkauDv3uIyFtJPOdWEXk8+YjDJztDP0oRuRNopaqXRh1LRYiIAgeq6kwReRrIV9XbIw4ro0TxvohIDWA1cJSqTklXuWETkTnA1ao6obK/HRF5D3heVSuU+ESkOfATUENVCyqyj1TwGqVzFbc3sAswtbxPFOO/v2yhqlXqBtwELADWADOAM4HNwBZgLTAl2O4KYHqw3Wzg9zH7OAGrnRQ93h8YDSwDVgCPJIjhcuBj4CFgVbD/LsHy+cBS4Hcx27+H/QePff5HMY8VaAX0Cl7H5uC1vBGsnwOcHPx9JzAKeD54bd8CBwG3BOXOB06N2XfC9wG4FVgelNMjic9gV+ABYC7wC/ARsGuw7hwssawKXnebkq8z5vHTwD0lYrkheB2LgCuCdXHflzLiq1A5sdsG7+m6YF9rgXeC9V2AicHrngh0KfE5Dwi+GxuCz1SBa4Efg8/gbqAl8ClWW30ZqJng9RTF/JeYmLsBZwA/ACuBW+O93lK+73OAk4HTiP/beY/g+0rxd/3h4DV/D5wU77vNjt/rQ4C3g/iWFMWIfYefD/6eF/MerwW6Btu3i9nPXsH72SisvFKl/qOJSGugD3CEqtYBfo19cP8AXlLV3VW1fbD5UuAsYA8sWTwkIh3j7DMHeBP70TcHmgAvJhHOkcA3QAPg/4LnHIH9OC4FHhGR3cvz+lR1BDASuC94LWeXsunZwHPAnsDXwHjs6KEJcBcwPGbbRO/DPkDD4Lm/A0YE73NZBgGdsKRRH/sBF4rIQcALwPVAI2Ac8IaI1Ez44otjqRvEchUwVET2LMf7kqy45cRuoKo/YD90gHqqeqKI1AfGAkOwz/1BYGyJc5eXYYm9DvadAktInYCjsPdqBNAD+wd9KNA9yZh3CWK+A3gM+551Ao4D7hCRA5J8/UWv8X/E/+2UdCT2T7Yh8DdgdPBelEpE6gATgP8BjbHfRV6cTY8P7usFMbyP/ZZiTwV0Byao6rLkXln5ValECWwFagFtRaSGqs5R1VnxNlTVsao6S837wFvYF6qkztgH2V9V16nqRlX9KIlYflLVp1R1K/AS9qW/S1U3qepb2H/qUhtoKulDVR2vdk5nFJaUBqrqFuxL1lxE6kHS78Nfg7jfxxLBhaUVHBxOXgn8UVUXqOpWVf1EVTcBFwFjVfXtIJZBWO2zS5Kvawv2Hm5R1XFYDSNR0q6IipZzJvCjqj6nqgWq+gL2jzo2cT+tqlOD9VuCZfeq6mpVnQp8B7ylqrNV9Rfgv8DhScY8IOYzbggMVtU1wX6nAoclsZ+KWAr8K3i/XqL4SK4sZwGLVfWB4De1RlU/T7K8Z4BLYk5dXIZVDEJTpRKlqs7Eait3AktF5EURaRxvWxE5XUQ+E5GVIrIKO0xpGGfT/YG5Wv4TyUti/t4QxFdyWblqlJUoe3mQsLfFUlR2Eu/Dz6q6LubxXOwfR2kaYjWbeP+gGlNci0JVC7FTAU0SviKzosTnsJ5w3sOKlrPd6wvMZfvXNz/O80p+XhX5nqyI8xmn6/u2QINj4ECi7wjY7ypuJSaRIKGuA7qKyMFYhWNMRfaVrCqVKAFU9f9U9VigGXZu497gfhsRqQW8gtVo9lbVethhoMTZ5XygqYhUDzHsdUDtmMf7lLFtyropJPk+7Ckiu8U8bgosLGO3y4GN2Hm2khZin0tR+YL9YBYEi9aT/PtQUnnel8qUU5btXl+gKcWvD1L4+VVCqr9vTYLPskii7wjY7yredyTZ8p/BDr8vA/6jqhuT2FeFValEKSKtReTEIAFsxP6LbsX+szaPqarXxA7RlwEFInI6cGopu/0COzk+UER2E5FdROSYFIc+GThfRGoH/SWvKmPbJUC5zjWVIdn34e8iUlNEjsMOmUaVtsOglvgk8KCINBaRHBE5OvhMXgbOFJGTgq41NwCbgE+Cp0/GDqlyROQ07MR9ssrzvlSmnLKMAw4SkUtEpLqIXAS0xc5xZ5LJwBkiUl9E9sGOwkpT8rcTz15APxGpISK/Bdpg70VZ3gT2EZHrRaSWiNQRkSPjbLcMKGTHz/Y54DwsWT6boKxKq1KJEvvRD8RqNYuxD/BWin/YK0TkK1VdA/TDfrg/A5dQStU9OJw5G6vez8NaFy9KcdwPYecsl2D/KUeWse0T2DnYVSLyWmUKTfJ9WBysWxjE1VtVv0+w6xux1vaJWAvlvUA1VZ2BfbEfxj6js4GzVXVz8Lw/BstWYY0Zr5Xj5ZTnfalMOaVS1RXYP5IbsN4RfwHOUtXlqdh/Cj0HTMFat9/CzqGXZrvfTinbfA4ciH2mA4ALgveiVMF37xTsc1iMtfr/Ks5264N9fhx8tkcFy/OBr7Aa54dllZUKO0WHc1cxwdU+z6vqfhGH4jKUiFyOdf85NoKynwQWahouMgjzvJtzzoUiuGLnfJLrEVBpVe3QO22Ca37XxrkNizq2dAiuL4/3+ntkQGxNS4ltrYg0jTq+igiuf473ev4bdWzpJiJ3Y92o7lfVn9JSph96O+dc2bxG6ZxzCXiidM65BDxROudcAp4onXMuAU+UzjmXgCdK55xLwBOlc84l4InSOecS8ETpnHMJeKJ0zrkEPFE651wCniidcy4BT5TOOZeAJ0rnnEvAE6VzziXgidI55xLwROmccwl4onTOuQQ8UTrnXAKeKJ1zLgFPlM45l4AnSuecS6B61AGUV8OGDbV58+ZRh+Gcq2K+/PLL5araKN66rEuUzZs3Z9KkSVGH4ZyrYkRkbmnr/NDbOecS8ETpnHMJeKJ0zrkEQk2UInKaiMwQkZkicnOc9XVF5A0RmSIiU0XkijDjcc65iggtUYpIDjAUOB1oC3QXkbYlNrsOmKaq7YETgAdEpGZYMTnnXEWEWaPsDMxU1dmquhl4ETi3xDYK1BERAXYHVgIFIcbknHPlFmaibALMj3mcHyyL9QjQBlgIfAv8UVULQ4zJOVfFbdwIs2fDhg2p22eYiVLiLNMSj38NTAYaAx2AR0Rkjx12JNJLRCaJyKRly5alOk7nXBWgCgMGwH77wYknQpMmcMcdUJiCqleYiTIf2D/m8X5YzTHWFcBoNTOBn4CDS+5IVUeoaq6q5jZqFLfjfOR23313AObOnUunTp3o0KEDhxxyCMOGDdu2TY8ePWjdujWHHnooV155JVu2bCl1f3feeSeDBg3ablnz5s1Zvnw5ACLCDTfcsG3doEGDuPPOO3d47uWXX06LFi3o0KEDHTp0YMiQIQD88ssv9OzZk5YtW9KyZUt69uzJL7/8AsCcOXPYdddd6dChA23btqVnz57bYn3vvfcQEZ544oltZX/99deIyA7xZrOizxNg3rx5nHrqqbRp04a2bdsyZ86c7bbt27fvdtvH459n+IYOhVdfhUmTYM4cmDIFJkyABx6o/L7DTJQTgQNFpEXQQHMxMKbENvOAkwBEZG+gNTA7xJgAGDkSmjeHatXsfuTI1O1733335ZNPPmHy5Ml8/vnnDBw4kIUL7f9Djx49+P777/n222/ZsGEDjz/+eIXLqVWrFqNHj972QyvL/fffz+TJk5k8eTL9+vUD4KqrruKAAw5g1qxZzJo1ixYtWnD11Vdve07Lli2ZPHky3377Lfn5+bz88svb1rVr146XXnpp2+MXX3yR9u3bV/i1VNYLL8Chh0JOjt2/8EJq99+zZ0/69+/P9OnT+eKLL9hrr722rZs0aRKrVq2qdBn+eVbe4MHw6KP2mwbYf38YPtyWV1ZoiVJVC4A+wHhgOvCyqk4Vkd4i0jvY7G6gi4h8C+QBN6lq4m9KJYwcCb16wdy5VlWfO9cepypZ1qxZk1q1agGwadMmCmPq/WeccQYigojQuXNn8vPzK1xO9erV6dWrFw899FC5nztz5ky+/PJL/vrXv25bdscddzBp0iRmzZq13bY5OTl07tyZBQsWbFvWtGlTNm7cyJIlS1BV/ve//3H66adX+LVUxgsvwG23wcMP27mphx+2x6lKltOmTaOgoIBTTjkFsJpm7dq1Adi6dSv9+/fnvvvuq3Q5/nlW3vz5cMghkJcH3bvD4sXQti0sXFj5w+9Qr/VW1XHAuBLLhsX8vRA4NZVlXn89TJ5c+vrPPoNNm7Zftn49XHUVPPZY/Od06AD/+lfyMcyfP58zzzyTmTNncv/999O4cePt1m/ZsoXnnnuOwZX8V3fddddx2GGH8Ze//KXM7fr3788999wDwHPPPcdPP/1Ehw4dyMnJ2bZNTk4OHTp0YOrUqRx22GHblm/cuJHPP/98h1gvuOACRo0axeGHH07Hjh23/XMIwwkn7Ljswgvh2mvh7ruhTh34+9+L19WpA/37249l+XK44ILtn/vee8mX/cMPP1CvXj3OP/98fvrpJ04++WQGDhxITk4OjzzyCOeccw777rtvRV7WDnaWzzMsRx4Jb7xhv/HXXoOnnoKxYyE3144eK2OnuzKnZJJMtLwi9t9/f7755htmzpzJM888w5IlS7Zbf+2113L88cdz3HHHlboP6zFV9vI99tiDnj17bjtPVZrYQ7V27dqhqnH3H7t81qxZdOjQgQYNGtC0adPtfmwAF154IaNGjeKFF16ge/fuZZYfphkzoG7d7ZfVrWu1iFQoKCjgww8/ZNCgQUycOJHZs2fz9NNPs3DhQkaNGkXfvn2T2o9/nuH7+9+hXz8YNcoqN88/b0eLd99d+X1n3ehBiSSq+TVvbofbJTVrVr6aRjIaN27MIYccwocffsgFQbXm73//O8uWLWP48OFlPrdBgwYsWrRou2Vr1qyhXr162y27/vrr6dixI1dckfxFTYcccghff/01hYWFVAv+1RYWFjJlyhTatGkDFJ/TWrRoESeccAJjxozhnHPO2baPffbZhxo1avD2228zePBgPvnkk6TLL6+yPpc2bewH8qtfFS97910oyl8NG1buc91vv/04/PDDOeCAAwDo1q0bn332Gfvssw8zZ86kVatWAKxfv55WrVoxc+bMuPvxzzN8J5xgNcq77oLp0602+corcMwxld/3TlejHDAAglNM29SubctTIT8/nw1BB66ff/6Zjz/+mNatWwPw+OOPM378eF544YVtX+jSHH/88YwZM4Y1a9YAMHr0aNq3b7/d4RVA/fr1ufDCC7drtUykVatWHH744dsO3wDuueceOnbsuO2HX2Tfffdl4MCB/POf/9xhP3fddRf33nvvDjGl02232WmTd9+FLVvs/qqrbHkqHHHEEfz8888UdUt75513aNu2LWeeeSaLFy9mzpw5zJkzh9q1a5eaJME/z3Q58khLkLNnWwt4KpIk7ISJskcPGDHCapAidj9ihC1PhenTp3PkkUfSvn17unbtyo033ki7du0A6N27N0uWLOHoo4+mQ4cO3HXXXaXu57DDDqNPnz4ce+yxdOjQgWHDhpXaSn7DDTck1Voa64knnuCHH36gVatWtGzZkh9++KHUH2e3bt1Yv349H3744XbLu3TpQrdu3cpVbqp1727/5Pr2hV12sfsBA2x5KuTk5DBo0CBOOumkbYe511xzTbn3459nejz6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\n", "text/plain": [ "
" ] @@ -258,7 +258,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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IkWKxL+2ZcsWrly5kuI50uvnf3rZab7d8C2Xwi8BsP/ifkKvhdK7dm+74kuJJIFCCJc7eRJq1ICNG6F7d9MbWL483LgBt25ZHZ0QQgB9+8Kvv1odRboyfboZ2n/8uOk8PX7c/O6sRDBLlixkzZoVgMjISGJjY+Nf69ChA0oplFI0bNiQ0NDQZM8zbtw43n77bapVqxa/rWPHjjRv3jz+9xkzZjBs2DBKly7Nhg0b7IrvzJkz+Pn5xf9eu3bt+O3FixfHy8vcZvv5+ZE/f/57jr9x4wbr1q3jp59+uicJKFy4MK1bt+aXX36xKxYrzJgB77wDX31l/l/+1Vfmd2clgnv37iU6Opq2bdsCpocwR44cAMTExDBy5Eg++eSTFM+TXj//R9o+Qs3TNfliwxcABO4PZFTzUfh4OWc2nySBQgiXa9QI5s+HZctg9mzIkwdWrjSJoK09F0II62gNDzwAyTytz6xeeQVatkz+69lnITz87mPCw8325I555RXHYjh58iS1a9emVKlSvPHGG5QoUeKu16Oiopg2bRrt2rVL9hx79uyhXr16yb4eERHBihUreOyxx+jZsycz7MxiXnzxRZ599llatWrF2LFj43spu3fvzvz58/H392f48OFs3749yeMDAwNp164dlStXpkCBAmzbtu2u1998800+++wzYiwcMpPUZ/jtt+a1//s/yJ0b3nsP2rY133PnhpEjzesXL957rCMOHjxIvnz56Nq1K3Xr1mXkyJHxf4uvv/6ajh07Urx48RTPk54//1NLTzHh3wkcuHiAyxGXndYLCJIECiHcYPRoePNN83S4UiWTED79NIwdCyqp1UKFEMKdlILBg6FjR6sjSVcik6nWkNz21ChVqhS7du0iJCSEX375hXPnzt31+pAhQ2jevDnNmjWz63yXLl3C39+fypUrM378eAAWLFhAq1atyJEjB0888QRz586NTzZUEv+Titv2yCOPcOTIEZ577jn2799P3bp1uXDhAn5+fhw4cICPPvoILy8vWrduzYoVK+45z4wZM+jRowcAPXr0uCf5KFeuHA0bNuT333+3672524EDkDfv3dvy5oXTiReES6Xo6GiCg4MZP348mzdv5siRI0ydOpXTp08ze/ZsXnrpJYfPmd4+/yaNmhC+LZzlR5fTsUpHp/UCgmuXiBBCCMD0BC5cCE2bQq5cMGeOSQhbtbI6MiFEppc/f9JPo5IYvpXZfPnl/V8vW9YMAU2sTBlYvdq5sZQoUYIaNWoQHBxMt27dAHjvvfe4cOEC33///X2PrVGjBtu2baNOnToULFiQHTt2MH78eG7cuAGYm/F169ZRtmxZwCQKq1atok2bNhQsWJCwsDAKFTIl+S9fvhz/M0CBAgXo1asXvXr14rHHHuOff/7hiSeeIGvWrLRv35727dtTtGhRAgMDad26dfxxly5dYuXKlfz3338opYiJiUEpdc/wxrfffptu3brdNXTRne73OVarZnr/Ev6/fNUqiMvNChVK278DPz8/6tatS/ny5QHo3LkzGzZsoFixYoSEhFCxYkUAwsPDqVixIiEhIUmeJz1//o/0e4TpPadTtEZRmvg1Sf0fMwnSEyiEcIsCBczQz2+/NT2BkgAKITzC5ctmKGiTJndXB5XlIVI0duy9Q/pz5DDbnSE0NJSICLNOWlhYGOvWraNKlSoATJ48mSVLljBjxoz4uVfJef311xk7diz79u2L3xZuG8d67do11q5dy4kTJzh27BjHjh3jm2++ie+VadmyJdOmTQPMPLTffvuNVrb/ga1cuTL+PNevX+fw4cOULl2abdu2xQ8NjI2NZdeuXZQpU+aumObMmUPfvn05fvw4x44d4+TJk5QrV461a9fetV/VqlWpXr06CxYscPwP6GLvvGOG/q5aBVFR5vuzz5rtztCgQQPCwsK4cOECYP7e1atX59FHH+Xs2bPxn1eOHDmSTQAhfX/+B9QBVBGFb4gv3l7OXVNLkkAhhFtUrGjuqZ54wupIhBAigVu3YMsWePBBqyNJd3r3hh9+MD1/SpnvP/xgtjvDvn37aNSoEXXq1KFFixaMGDGCWrVqATB48GDOnTtHkyZN8Pf35/3330/2PLVq1WLChAn07duXqlWr0rRpU/bt20evXr3466+/eOihh+IL0AB06tSJefPmERkZyahRowgJCaFOnTrUrVuXihUr0qdPHwC2bt1KQEAAtWvXpkmTJgwcOJAGDRpw/vx5Hn/8cWrWrEnt2rXx8fFh6NChd8U0Y8YMunTpcte2J554Ismhn++88859C99YpWdPk/C/9BJky2a+jx1rtjuDt7c348ePp3Xr1tSqVQutNc8995zD50nPn/+yI8uo/WRtTp065fD7TomytwxqehAQEKC3bNmS8o5C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\n", "text/plain": [ "
" ] @@ -299,7 +299,7 @@ "outputs": [ { "data": { - "image/png": "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5QbG4a9e7cIX2LiXU8nMX2a2xDl3EF9w5F1gH/7qSaJjtgLdMS/Hjw/cAmzDj51LTU/jxyDuxo8tm5rMtpPxYyr/MbOPzuVNg/wedgXW7QjEdbNzbk0Ku74TWA4sBP7GX70Nc86txRfjeQ7/G10OXO6cOxF43W2BZf/gq2R+dAYfJ9W+lwTexHeF3Q6sAuYn977p9PcC/vtphU/qHsWPaz1+Fvs5288XAfyB/x1fxV91FBGRJJhzadXDRUREJO2ZWQfgbedchRCHIikws3eANc65B0Mdi4iInE5XDkVERCRNmFlzM6tuZmGBLrg9OLMrrSIiko6UHIqIZGFmNjEwMXjC28RQx5YezE9kn9jn75cBYquURGyHAtNAZAVlgLn46TyeBf7tnFtqZv2S+NwrQxqtiEg2p26lIiIiIiIioiuHIiIiIiIiouRQREREREREUHIoIiIiIiIiKDkUERERERERlByKiIiIiIgISg5FREREREQEJYciIiIiIiKCkkMRERERERFByaGIiIiIiIig5FBERERERERQcigiIiIiIiIoORQRERERERGUHIqIiIiIiAhKDkVERERERAQlhyIiIiIiIoKSQxEREREREUHJoYiIiIiIiKDkUERERERERFByKCIiIiIiIig5FBEREREREZQcioiIiIiICEoORUREREREBMgR6gDSQ4kSJVyVKlVCHYaIpKLFixfvdc6VDHUc50Jtk0jWpPZJRDKiYNqmbJEcVqlShUWLFoU6DBFJRWa2OdQxnCu1TSJZk9onEcmIgmmb1K1URERERERElByKiIiIiIiIkkMRERERERFByaGIiIiIiIig5FBERERERERQcigiIiIiIiJkk6ksRCRjcw62b4ecOaF06VBHIyIiIpIxHTh+gN2Hdp+2PEdYDqoUqYKZndP+lRyKSEgtWgRDhsCWLRAVBRER8OqrUK1aqCMTkWytWDHYt+/05UWLwt9/p388IiLA8M+HM3P1TEoXOHU2PTI6kk3/bGLtsLXUKl7rnPavbqUiEjJ790K3bnD77bB7N+za5Z9fcgmcPBnq6EQkW9u3z3drSHhLLGGUdFOgQAEANm/eTNOmTYmIiKB+/fpMnDgxdpt+/fpRu3ZtGjRowMCBAzmZwn8oX3zxBS1atKBOnTpERERwzTXXsGXLltj1kZGRlChRgnvuuSfe66pUqcLe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KADA5s2badq0KREREdSvX5+JEyfGbtOvXz9q165NgwYNGDhwICdPnkx2n1988QUtWrSgTp06REREcM0117BlyxYAbrjhBqpWrUpERAQRERG0bt069nUfffQR5513HnXq1KFhw4Z89NFHsetuuOEG8uXLx8GDB2OX3XbbbZgZe/fuBfxE7jH7jYiIYNy4cVxxxRVERERQo0YNChcuHLtu3rx5dOjQgdq1a9OoUSOaN2/OsmXLYvddpUqV2P3u2rWLPn36UL16derVq0fXrl1Zt27d2X3hZ6tKlcR//3OsYhfz+wNs2bKFzp07U7duXerVq8emTZvibTt8+PB42yclrX7/65pexx+7/+COOXew/9h+vn3xW/4c+Selw/wUFRn293fOpckNXxFrA1ANyAX8CtRLsE1X4HP8Wa3zgQVx1r0B3Bh4nAsoEnj8JHB34PHdwBMpxdK0aVMnktUdPercRRc517Klc08+6dzNNztXvLhzs2c798MPp7a74ALnevd27ssvnYuKCl285wpY5NKo/Uqvm9omyTbg1OOTJ5377DPn+vb1y8G5zZv9ukOHQhNfKkvt9gnf02sjUDXOMVX9JLYdA9x5Nq+Nezvn9inmt03sdg7y58/vnHPu+PHj7tixY8455w4ePOgqV67stm/f7pxz7tNPP3XR0dEuOjra9enTx7344otJ7m/58uWuRo0abtWqVbHLPv74Y/f9998755y7/vrr3XvvvXfa65YtW+aqV6/uNm7c6JxzbuPGja569eru119/jX1dw4YN3VtvveWccy4qKso1bNjQlS9f3u3ZsyfeZ0nMd99957p16xZvWfv27d3ChQudc8699tpr7uKLL45dV7lyZbdnzx4XHR3tzj//fPfSSy/Frlu6dKn7Ie6BQHpI6ndOpd/fOf99zJkzxznn/wYOHz4cu27hwoXuuuuuS/Y7di5tfv/o6GjXrns7l6NsDscVuDLjy7gHv33QFalcJOS/fzBtU1peIwhmAHQP4M1AsPMDVwvLAoeBdsANAM65E8CJOK/pEHj8BjAXuCsNP4dIpjBxor/y99VXfuqJpUv9lcPLL4fcuf180EWKwPff+2E6IiLp7rvvfDGZPXtOjQn8/nuoUME/zp8/dLFlYM65SDMbBnyJP/n+mnNupZndHFg/0czKAIuAQkC0mY3An5Q/kNhrzzmoESMgzpWL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\n", + "image/png": "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GIK/s2dde1z73Hvv5cWwe/du6tSpQ9myZXnooYcoVapUtPUXL15kypQptGvXLs5jbNy4kfr168e5/ty5cyxatIiOHTvSu3dvpicy8xk2bBi33347LVu2ZOzYsVFPQ3v06MFXX31FSEgII0eOZM2aNbHuP2fOHNq1a8eVV15JoUKFWL16dbT1Dz/8MC+//DLh4d7N+hTbZ/j2227dM89AvnyuB1GbNu5nvnwwapRb/88/l+57Of744w8KFChAt27dqFevHqNGjYr6W7z55pt07tyZkiVLJnic9Pr5jx49mqBfgjgdepr9p/YTUiIkxZ42giWOxpg05vffoXlzdyeyQAE4fBg2bHD/c5k0CR54wOsIjTGZUmio+wJq29Yt//ADJGKclIkuNPTy2pOibNmyrF+/nm3btvHRRx9x8ODBaOvvuusumjdvTrNmzRJ1vCNHjhASEsKVV17J+PHjAfj6669p2bIluXPn5uabb2b27NlRCYp/YZJIkW033HADO3bsYPDgwWzZsoV69epx+PBhypQpw9atW3n++efJkiULrVq1YtGiRZccZ/r06fTq1QuAXr16XZKwVKxYkcaNGzNt2rREnVtq27rVFbzzd8UVsC9m+cwkCgsLY+nSpYwfP54VK1awY8cOPvzwQ/bt28dnn33GiBEjLvuY6eXzD9dwylcoT9vmbcm3JR9b/tlCpys7Xfb5xseK2xtj0ox334W773YJ47x5cO4cvPWW67p69dXw009QsaLXURpjMp1z5+Daa2H1ale5a/p0CAm5dLtYupZlNq++Gv/6ChVc99SYypeHxYtTNpZSpUoRHBzM0qVL6d69OwBPPfUUhw8f5p133ol33+DgYFavXk3dunUpXLgwa9euZfz48Zz2PWWePn06P//8MxUqVABccvHDDz/QunVrChcuzLFjxyhSpAgAR48ejfodoFChQtx6663ceuutdOzYkSVLlnDzzTeTI0cO2rdvT/v27SlevDhz5syhVatWUfsdOXKE77//nt9//x0RITw8HBG5pOvlI488Qvfu3aN1q0xN8X2ONWq4G8EtW/7b9sMProo6QJEiyft3UKZMGerVq0elSpUA6Nq1K8uXL6dEiRJs27aNKlXc07ezZ89SpUoVtm3bFutx0tvnf/z8cXYe28mIeSN49NFHWdJ5CXVq1KF43uJJ/2PGwp44GmPSjKxZoXVrWL8e2reHbt1g0SLYtAneew+qpFxvC2OMSbxcuaBDB/jyS9fnLq6qqjYVR4LGjoXcMaaTy53btaeEPXv2cO7cOQCOHTvGzz//TLVq1QB47733WLBgAdOnT48aSxaXBx98kLFjx7J58+aotrO+PrYnT57kp59+4u+//2bXrl3s2rWLt956K+rpT4sWLZgyZQrgxtV98skntPRlSt9//33UcU6dOsX27dspV64cq1evjuq2GBERwfr16ylfvny0mD7//HP69evHX3/9xa5du9i9ezcVK1bkp59+irZd9erVqVmzJl9//fXl/wED7NFHXbfkH36Aixfdz9tvd+0poVGjRhw7dozDhw8D7u9ds2ZNbrzxRg4cOBD1eeXOnTvOpBHS1+e/4PsF9J/dnwvhF+hWoxvVq1enSUgTDq85nBJ/0uhUNdO+GjRooMYYb33zjeq0ae73iAj3Si5gpaaB75jkvOz7yRiPHTmi2qOH6vLlKXZI+25yPvlEtXx5VRH385NPkn1IzZMnj6qqLly4UGvXrq116tTR2rVr6zvvvBO1TVBQkFaqVEnr1q2rdevW1aeeeireY3799dfasGFDrVatml599dXaq1cv3bp1q37wwQfas2fPaNseOXJEixQpoufPn9fjx49r7969o2IYNWqUhoeHq6rqiy++qDVq1NDatWtrcHCwjh8/XlVV//e//2n9+vU1ODhYg4ODdeDAgXru3DlVVS1fvrwePnxYr7vuOv3f//4X7X1fe+01HTp0qO7cuVODg4Oj2teuXasioh988EHS/qABNG2aanCwapYs7mfkNUByRH7+qv/+G6hVq5b2799fQ0ND490+Lunh83/pvy9pyZYlNcu9WbRc1XJR7Zf7+Sf2u0nctplTw4YNdeXKlV6HYUymdO4cPPggvPnmv91QYxkWkCQiskpVG6bM0bxh30/GeOiHH+C22+DQIZg4EQalzBxo9t1kjElJN828iS+3fMnUblPpXbt3ko+T2O8m66pqjEl169dDo0YuabzvPvj++5RLGo0xJskuXoTRo6FVK8iTB5YvT7Gk0RhjUtrwRsN5r/N7yUoaL4cVxzHGpKq//3ZTahQsCAsW/Fug0BhjPPf++zBuHPznP67KS548XkdkAuyDDz7gtddei9Z2zTXX8NZbb3kUkUlN6fHzj9AIfv77Z5qVb0arSq0S3iEF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\n", "text/plain": [ "
" ] @@ -342,7 +342,7 @@ "outputs": [ { "data": { - "image/png": "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waJFoGq/e/UqfhL1BJpHIr6lch1xxBF8+eWXzJgxg6+//pqBAweyfPlywBLoL7/8wsyZM9m2bRvDhw+P+zzly5dnwoQJe/4JC/Poo48yY8YMZsyYwY033ghAjx49OProo5k3bx7z5s2jXr16XHPNNXseU79+fWbMmMHMmTNZunQpr7766p77mjVrxiuvvLLn9rhx42jRokXcz6U4xo6FP/wBypa132PHluzxu3XrRt++ffn555/55ptvOPTQQ/fcN23aNDZs2FDsc/h7WTLuugu2bt1329attr04PIGGSdS3VK5y5cpRvnx5AHbs2EFOTs6e+84//3xEBBGhdevWLF26NO7z7LfffvTq1YvHH3+8yI+dO3cu06dP55577tmz7d5772XatGnMmzdvn33Lli1L69atWbZs2Z5ttWvXZvv27axcuRJV5b333uO8886L+7nEa+xY++d4+mnYvt1+33VXySXRn376iezsbNq3bw9YybRixYoA7N69m759+/LII48U+zz+XpaMxYuLtj1WaTUWPpqbb4YZMwq+f8oU2LFj321bt0KPHvD885Ef07IlPPFE7DEsWbKEDh06MHfuXB599FFq1qy5z/27du1i1KhRPPnkk7EfNILrrruO5s2b8/e//73Q/fr27Uv//v0BGDVqFAsWLKBly5aULVt2zz5ly5alZcuWzJo1i+bNm+/Zvn37dr7++ut8sV588cWMHz+e4447jlatWu350ihpp5+ef9sll0CfPvDgg1CpEjzwwN77KlWCvn3hsstgzRq4+OJ9H/vpp7Gfe86cOVStWpULL7yQBQsWcPbZZzNw4EDKli3Lv/71Lzp16sQRRxwRz9PKJxPey0SrXdsKRJG2F4eXQMPkTZ7RtsfjqKOO4ocffmDu3Lm89NJLrFy5cp/7+/Tpw6mnnkq7du0KPIaIRN1euXJlunXrtqcurCDhl33NmjVDVSMeP3z7vHnzaNmyJdWqVaN27dr7/CMCXHLJJYwfP56xY8dy2WWXFXr+RJk9G6pU2XdblSoQqjEptuzsbCZPnszgwYOZOnUq8+fP58UXX2T58uWMHz+eG264Iabj+HtZOvr3h7wvRcWKMGBA8Y6bUSXQaCXFunUjf0vVqVO00kksatasSdOmTZk8eTIXh4pCDzzwAKtXr+a5554r9LHVqlVjxYoV+2zbtGkTVatW3Wfb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\n", + "image/png": "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nfbt06fPTvsXJ8zv5UsvwX//C++9B4sWwXffwQ8/wN//HtNLmRE8gRYxZgw0bQqVKtnvMWOSd+z69evz2WefMWvWLKZOncrgwYNZunQpYAn0m2++Yfbs2WzcuJHHHnss4fNUq1aN8ePHb/8nLM29997LrFmzmDVrFn379gWgV69eHHDAAcyfP5/58+fTrFkzLr/88u2POfDAA5k1axazZ88mLy+PF154Yft9bdu25fnnn99++7nnnuOQQw5J+LmUx9ixcPDBkJNjv8eOTe7xe/bsSf/+/Zk3bx6ff/45devW3X7f9OnTWbNmTbnPkc7v5f33w7332msLULcuPPYYjB4NGzaU95mHgyfQKGPGQO/e9m2qar97905eEq1atSrVqlUDYPPmzRQUFGy/77TTTkNEEBE6depEXl5ewuepXLkyvXv35r777ov7sbm5ucyYMYNbbrll+7Zbb72V6dOnM3/+/J32zcnJoVOnTvz444/btzVu3JhNmzaxbNkyVJW33nqLU089NeHnkqixY2HAAHjgAdi0yX4PGJC8JPr111+zbds2Tj75ZMBKptWrVwcgPz+f/v37c88995T7POn8Xi5ZAm3awMcfwxlnQF4e1KsHu+0Gq1cn8GRDKKPGwpelXz+YNavk+6dMgc2bd962YQP06gWPPlr8Y9q3h6FDY49hyZIlnH766eTm5nLvvffSoEGDne7funUrTz/9NMOGDYv9oMW45ppraNeuHTfeeGOp+/Xv358777wTgKeffpoffviB9u3bk5OTs32fnJwc2rdvz9y5c2nXrt327Zs2bWLq1Km7xHr++eczbtw4Dj30UDp06LD9SyPZjjtu123dusHVV8Mdd8Cee8Jtt+24b889oX9/uPBCWLkSzj9/58d+9FHs5/7uu++oVasW5557Lj/88AMnnXQSgwcPJicnhwcffJAzzzyT+vXrJ/K0dpGu7+URR8Crr8LUqTB5MtSuDdOmQdWqlkizgZdAoxRNnmVtT0SjRo346quvyM3N5cknn2TZsmU73X/11VfTpUsXjjnmmBKPISJlbq9ZsyY9e/bcXhdWkujLvrZt26KqxR4/evv8+fNp3749tWvXpnHjxjv9IwJ069aNcePGMXbsWC688MJSz58q334Le+2187a99oJIjUm5bdu2jUmTJjFkyBCmTZvGggULeOKJJ1i6dCnjxo2jT58+MR0nzO/lP/8Jd90FL74If/gDTJhgX0qDBlm1STbIqhJoWSXFpk3tsr2oJk3iK53EokGDBrRp04ZJkyZxfqQodNttt7FixQpGjBhR6mNr167NTz/9tNO23377jVq1au20rV+/fnTo0IFLL7005rjatGnDzJkzKSgooFIl+34tKCjgyy+/pFWrVsCOerOffvqJ4447jokTJ3LmmWduP0a9evWoUqUK7777LsOGDeOzzz6L+fzxKO09adXKSp/HH79j24cfWisxQJ065XtPGzZsyKGHHsoBBxwAwNlnn82UKVOoV68eubm5NG/eHIANGzbQvHlzcnNziz1OmN/Ltm3hT3+CYcPg009h+XIYMQK6do05xNDzEmiUQYMgUo21XfXqtj0Z8vLy2LhxIwCrV69m8uTJtGzZEoDHHnuMt99+m7Fjx27/sJekS5cuTJw4kd8iHe/Gjx/PIYccstOlGsA+++xDt27ddmpJLUvz5s059NBDt18KAtx555106NBhe1IoVL9+fQYPHszdd9+9y3Fuv/12/v3vf+8SU0UZMMCqXj78ELZutd+9etn2ZDj88MNZvXo1K1asAOCDDz6gdevWnH766fz8888sXLiQhQsXUr169RKTJ4T7vSwogFdegRNOsH6gb72VXckTsqwEWpYePez3gAGweLH1bxs0aMf28po3bx7XX389IoKqcsMNN9C2bVsArrzySpo0aULnzp0BOPfcc7n11luLPU67du249tprOfrooxER6tatW2Kr/fXXX8+DDz4YV5yPP/44ffr0oXnz5qgqnTt3LvEf9+yzz2bgwIFMmjRpp+1HHnlkXOdMtsKrzT59YN48K5EOGrRje3nl5OQwZMgQTjzxRFSVww47jCuuuCLu44T5vaxUCV5/3RrpspWoatAxJE3Hjh3VJ1R2ziWbiMxQ1Y5Ft/slvHMubosXQ/fuUErtRFbwBJrGRo8evX1kSeHPNddcE3RYLgGZ9l4++ii88AJUqRJ0JMHyS3jnXFy2brX2gY4drR9oNvBLeOdcUrzyCvz8M1x5ZdCRBM8TqHMuLo88Yn2js63LUnG8G5NzLmYFBdC5M5x3XvaMNiqNJ1DnXMwqVYKofvlZzy/hnXMx2bgRXnsN8vODjiQxqZiq0hOocy4m48bZtHWffhp0JPFL1VSV3o3JOReTzp1tns9586CESaTSVmkT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\n", "text/plain": [ "
" ] @@ -383,7 +383,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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/ftp0qQJ586do2LFihw4cIB3330XLy8v2rdvz6pVq9IcZ9asWQwYYCprBwwYkCb5qFatGi1atODHH3906Lu524EDUKRIymVFisDJHD16SBYXF8e6deuYOHEiW7Zs4ciRI0yfPp2TJ08yb948Ro8eneVj5rbrf1uL22h0phErjqygZ52eTqsFBBeODmrXpKEjphDbopRaorXeZ7dZYpOG3ql2jwOe01pvV0oFAduUUitT7SuEyCVatjSJX9++MHEiNG5sPt91l9WRCSHyvWLFkqunatRIudz90nss5lAHJaVUMUytYTXgMjBPKTVEa/1DioNpPQWYAhAaGnrLY3/yya3PWbWqaQKaWpUqsGaNI1E7rnz58tSvX59169bRr18/AN544w3OnTvH119/fct969evz/bt22ncuDElSpRg586dTJw4kevXrwPmZnzDhg1UrVoVMInC6tWr6dChAyVKlODSpUuULGmG5L948WLSzwDFixdn0KBBDBo0iO7du7N27Vr69u2Lv78/Xbp0oUuXLpQpU4bFixfTvn37pP0uXLjA77//zp49e1BKER8fj1IqTfPGl19+mX79+qVouuhOt7qO9eqZ2j/7/8tXr4bE3KxkyZz9HVSsWJEmTZpQvXp1AHr37s2mTZsoW7Yshw4dombNmgBERkZSs2ZNDh06lO5xcvP1r96zOnOenEPFhhVpVbFV9n+Z6XBlTWC2mzRorU9prbfbfr4GhOHgkzAhhGc6fdr0AfzpJ9M0VBJAIYRHuHgx/dFBrZkeIgKoZPe5Io436ewA/Ku1Pqe1jgUWArc7Ob4Uxo9P26Q/MNAsd4aIiAiiosw8aZcuXWLDhg3UqVMHgKlTp7J8+XJmzZqV1PcqIy+88ALjx48nLCwsaVmkrR3r1atXWb9+PcePH+fo0aMcPXqUL774IqlWpl27dsyYMQMw/dB++OEH7rL9B/b7778nHefatWscPnyYypUrs3379qSmgQkJCfz9999UqVIlRUzz589n6NChHDt2jKNHjxIeHk61atVYv359iu3q1q1LcHAwv/zyS9Z/gS72yium6e/q1RAba94fftgsd4bmzZtz6dIlEmusf//9d4KDg+nWrRunT59Oul6BgYEZJoCQu6//hqgNBJYPRB/QeHs5d04tVyaB2W7SYE8pVRVoAmx2TlhCCCssXw6lSplaQCGE8BhR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\n", "text/plain": [ "
" ] @@ -424,7 +424,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -467,7 +467,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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XfTt27fItsaNG7Ns2TIARIQbb7xxy76+ffty1113bXPupZdeSpMmTWjXrh3t2rXjscceA2DVqlV0796dZs2a0axZM7p3786qVasAmD9/PjvssAPt2rWjVatWdO/efUusY8eORUR46qmntjz3tGnTEJFt4s1Wsc8SYOHChZxwwgkccMABtGrVivnz5xc5tlevXkWOTySbP8uXXoL//Afefx8WLIBZs2DePPj731N6Kyvd8OHQuDFst539O3x4+a/pCbSYTLzJMXvvvTcTJkxg+vTpfPbZZ/Tp04fFixcDlkC/++47vvrqK9atW8fgwYPTfp4aNWrw8ssvb/klLMmDDz7I9OnTmT59Otdeey0APXr0oGnTpsyZM4c5c+bQpEkTrrjiii3nNGvWjOnTp/PVV1+Rn5/PqFGjtuxr06YNzz///JbHI0eO5KCDDkr7tZTHiBFw4IGQl2f/jhhRsdfv3r07N998MzNmzGDSpEnsueeeW/ZNmTKFlStXlvs5ovxZPvYYPPigvbcAe+4JgwfDkCGwdm15X3nFGj4ceva0RK9q//bsWf7fb0+gcTL1JsdUr16dGjVqALBhwwYKCwu37DvllFMQEUSETp06kZ+fn/bzVKtWjZ49e/Lwww+X+dzZs2czdepU7rjjji3b7rzzTqZMmcKcOXOKHJuXl0enTp344Ycftmxr2LAh69ev5+eff0ZVefvttzn55JPTfi3pGjECbrsNHn8c1q+3f2+7reKS6LfffktBQQHHH388YCXTWrVqAbB582Zuvvlm/v3vf5f7eaL8WS5aBK1bw8cfw2mn2eN69aBmTVixIo0Xm0G33bZtUl+71raXR06NhS/N9dfD9OnJ90+cCBs2FN22di306AGDBiU+p107eOSR1GNYtGgRXbt2Zfbs2Tz44IPUr1+/yP5NmzYxbNgwHn300dQvmsDVV19N27Zt+dvf/lbicTfffDP33XcfAMOGDWPevHm0a9eOvLy8Lcfk5eXRrl07vvnmG9q2bbtl+/r16/nss8+2ifWcc87hhRdeoH379nTo0GHLH42KdvTR224791y46iq4917YaSe4++6t+3baCW6+GS64AJYtg3POKXru2LGpP/esWbPYddddOeuss5g3bx7HHXccffr0IS8vjyeeeILTTjuNvffeO52XtY2ofpaHHgqvvw5ffmlJtE4dmDwZqle3RBolCxeWbXuqvAQap3jyLG17Ovbdd1++/PJLZs+ezTPPPMPPP/9cZP9VV13FkUceyRFHHJH0GiJS6vadd96Z7t27b6kLSyb+tq9NmzaoasLrx2+fM2cO7dq1o06dOjRs2LDILyLAueeeywsvvMCIESO44IILSnz+TJk5E3bZpei2XXaBoMak3AoKCvjkk0/o27cvkydPZu7cuQwdOpTFixfzwgsv0KtXr5Suk82f5T/+AX36QNOmVoh49VX7o9S7t1WbREnDhmXbnqoqVQItraTYuLHdthfXqFHZSiepqF+/Pq1bt+aTTz7hnKAodPfdd7N06VKefPLJEs+tU6cOP/74Y5Ftq1evZtdddy2y7frrr6dDhw5cdtllKcfVunVrpk2bRmFhIdttZ39fCwsL+eKLLzjggAOArfVmP/74I0cffTSjR4/mtNNO23KNevXqsf322/Pee+/x6KOPMmHChJSfvyxK+kwOOMBKn8ccs3Xbhx9aKzHAHnuU7zNt0KAB7du3p2nTpgCcccYZTJw4kXr16jF79myaN28OwNq1a2nevDmzZ89OeJ1s/izbtLH3tE8fqxpp1AiefBJOOinlECtN797QvTvE1ZpRq5ZtLw8vgcbp3dve1HgV8SbH5Ofns27dOgBWrFjB+PHjadmyJQCDBw/mnXfeYcSIEVu+7MkceeSRjB49mtVBx7uXX36Zgw46qMitGsDuu+/OueeeW6QltTTNmzenffv2W24FAe677z46dOiwJSnE7L333vTp04d//etf21znnnvu4YEHHtgmpspy221W9fLhh7Bpk/3bo0f567xiDjnkEFasWMHSpUsBGDNmDK1ataJr16789NNPzJ8/n/nz51OrVq2kyROy+7NUtd+Nc86BGTPg7bejmTwBWra05LnbbiBiyX7gQOjWrXzXrVIl0NLE3szbbrO6kYYN7QtS3jc5ZsaMGdx4442ICKrKTTfdRJs2bQC48soradSoEYcddhgAZ511FnfeeWfC67Rt25ZrrrmGLl26ICLsueeeSVvtb7zxRp544okyxfnUU0/Rq1cvmjdvjqpy2GGHJf3FPeOMM7jrrrv45JNPimzv3LlzmZ6zosXuNnv1sl/uAw6wz7KiahTy8vLo27cvxx57LKrKwQcfzJ/+9KcyXyebP8uJE63k+fvflymkUPTvb4WhefO2rdopD1HVirta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\n", "text/plain": [ "
" ] @@ -508,7 +508,7 @@ "outputs": [ { "data": { - "image/png": "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+45LS0le2csvv0y7du3466+/2Lx5M8OHDwdgypQpHDp0iL///psNGzYwffp0ihQpkmIZkyZNonnz5kyePDnJ9lKlSvHRRx9x8eJFj2JxyqRJULcuBAfbn5Mmebf83r17M3jwYLZs2cKff/5JqVKlEvetXr2aU6dOpVlGVv3+zy89z7jV4wCIN/HM3DaTV1q94lFsadHkUCnlmP37oU6dy7fXqQMHDvg/HqWUUt4xcSL06wd799oG17177XtvJYihoaHkzp0bgOjoaOLj4xP3derUCRFBRGjSpAkHrvA/lHfeeYcXXniBWrVqJW7r0qULLVteWu1j0qRJPPnkk4SFhbFy5UqP4vv333+pUKFC4vv69esnbi9btixBQfYWvEKFChQtWvSy88+ePcuyZcv44osvLksOSpYsSZs2bfjqq688isUJkybBiy/CJ5/AhQv254svei9B3Lx5M7GxsbRr1w6wLYr58uUDIC4ujsGDB/Puu++mWU5W/f7btW3HC//3Ajd9cxN/HvyTYnmL0bpya49iS4smh0opx1x7LcyaZYfvrFkDsbFw8SLMnQtNUpxoXSmlVCAYOBBat0791bcvREUlPScqym5P7ZyBA9MXw/79+6lfvz4VK1bk2WefpVy5ckn2x8TEMGHCBDp06JBqGZs2beKaa65Jdf/58+eZP38+nTt35u6772aSh9nNY489Rt++fbnhhhsYNmxYYqvmnXfeyU8//UR4eDiDBg1i3bp1KZ4/Y8YMOnTowNVXX02xYsVYu3Ztkv3PPfcc//d//0dcXJxH8fhCSt/h55/bfW+8AQULwmuvQbt29mfBgjB4sN1//Pjl56bH9u3bKVKkCLfddhsNGzZk8ODBiX+LTz/9lC5dulC2bNk0y8mq3/+Hb35I1OIofv3nV7Yc30K3mt08issTmhwqpRzTrRtER0PnzhARAePHQ5cu0LAhNG7sTEwi0kFEtonIDhF5LoX9vUTkb9druYg08PRcpVQWExcH/fvDsmVOR5LlREenb3tGVKxYkb///psdO3bw1VdfceRI0hkcH330UVq2bEmLFi08Ku/EiROEh4dz9dVXM2LECABmzZrFDTfcQL58+bj99tuZPn16YhKS0qyQCdtuuukmdu3axUMPPcTWrVtp2LAhx44do0KFCmzbto23336boKAg2rRpw/z58y8rZ9KkSfTo0QOAHj16XJaUVKlShSZNmvDtt9969Nn8bds2KFw46bbCheFQqqtzpk9sbCxLlixhxIgRrFq1il27djF+/HgOHTrE1KlTefzxx9NdZlb7/ktdXQo2QJHcRahZoma6P29qdLZSpZRjQkNh3jz7xDA4GEaOhJ49IQN1uleISDDwGdAOu+j0KhGZaYzZ7HbYbqCVMSZSRDoCY4BrPTxXKZVVFC0KIa7bpNGjk25XfPjhlfdXrmy7kiZXqRIsXOjdWMqVK0edOnVYsmQJ3bt3B+C1117j2LFjjHb/7lJQp04d1q5dS4MGDShevDjr169nxIgRnD17FrA36cuWLaNy5cqATSAWLFhA27ZtKV68OJGRkZQoUQKAkydPJv4OUKxYMXr27EnPnj3p3Lkzixcv5vbbbyd37tx07NiRjh07Urp0aWbMmEGbNm0Szztx4gS///47GzduRESIi4tDRC7rJvnCCy/QvXv3JF0g/elK32OtWra18IYbLm1bsODS/99LlMjcv4MKFSrQsGFDrnJNbd6tWzdWrlxJmTJl2LFjB9WqVQMgKiqKatWqsWPHjhTLycrff3DLYEK+COG6dtdl/A+ZAm05VEo5qlAhOHcOOnWyXUsHDbJJo0OaADuMMbuMMReByUBX9wOMMcuNMQnTFa4EKnh6rlIqCzl5Ej7+2P6eMHDOGEeWsciKhg0D1xCwRPny2e3ecODAAc6fPw9AZGQky5Yto0aNGgCMHTuWuXPnMmnSpMSxXakZMmQIw4YNY8uWLYnbolz9YU+fPs3SpUvZt28fe/bsYc+ePXz22WeJrTitW7dmwoQJgB3n9s0333CDKxv6/fffE8s5c+YMO3fuJCwsjLVr1yZ2MYyPj+fvv/+mUqVKSWL6/vvv6d27N3v37mXPnj3s37+fKlWqsHTp0iTH1axZk9q1azNr1qz0/wF97MUXbRfiBQvs7OMLFtj3L77onfIbN25MZGQkx44dA+zfu3bt2tx8880cPnw48fvKly9fqokhZN3v3xjDF32/oEWjFqxauCpTf8vkNDlUSjnq339h+3Zw6MFncuWB/W7vD7i2paYv8EsGz1VKBbrFiyEszL5UuvTqBWPG2JZCEftzzBi73Ru2bNnCtddeS4MGDWjVqhXPPPMM9erVA6B///4cOXKEpk2bEh4ezuuvv55qOfXq1eOjjz6id+/e1KxZk2bNmrFlyxZ69uzJtGnTuPHGGxMnvgHo2rUrM2fOJDo6mqFDh7Jjxw4aNGhAw4YNqVatGvfccw8Aa9asISIigvr169O0aVMefPBBGjduzNGjR7nllluoW7cu9evXJyQkhAEDBiSJadKkSdx6661Jtt1+++0pdiF98cUXrzjhjlPuvts+CHj8cciTx/4cNsxu94bg4GBGjBhBmzZtqFevHsYYHnrooXSXk1W/fxHhxio38sGwD7z+/YunU7JmZREREWb16tVOh6GUSsF338Fdd8Gff6ZvnKGIrDHGRHgzFhG5A7jJGPOg6/29QBNjzGUdXUXkBuBzoLkx5oSn54pIP6AfQFhYWKO9KfW7Uko5zxgoUwbatwdX64CnfFE/+ZveOykVuL7b9B3lCpajeVjzdJ3nSd2kLYdKKUfdfLOdnbRhQ6cjAWxrX0W39xWAy4bPi0h9YCzQ1RhzIj3nGmPGGGMijDERJUuW9FrgSikvO34cihQJmG4NSikFtkvpU3Of4uM/PvZJ+TohjVLKUfnz2wfzAWIVUF1EqgAHgR5AT/cDRCQMmAbca4zZnp5zlVJZSMmSdsrFHNDDKif48ssv+eijj5Jsa9asGZ999plDESl/yk7f/7YT2zh05hBtr2rrk/I1OVRKOebECTvfw333gWvCMUcZY2JFZAAwFwgGxhljNolIf9f+UcDLQHHgc9eU1bGulsAUz3XkgyilvCeF6epV1tOnTx/69OnjdBjKIdnp+5+/yy590aZKmzSOzBhNDpVSjlm8GF5/3bYcBkJyCGCMmQ3MTrZtlNvvDwIPenquUiqLatIE7rjj0qrdSikVAObvnk+lwpW4qqhvbpx0zKFSyjGLF9tZzCKy9LQNSqlsZ98+WLUK3GYpVEoppxljWHd4HW2qtEF81KtBWw6VUo5ZtAiuu07vv5RSAWbJEvtTJ6NRSgUQEeGfx//hTPQZn11DWw6VUo747z9Yvx5atXI6EqWUSmbJEihcGFzr5imlVKAICQqhaN6iPitfk0OllCO2brUzleqDeaVUwFm8GJo1g+BgpyPJusqUsZP5JH+VKZOpYgsUKADA3r17adSoEeHh4dSpU4dRoxKHhtOrVy9q1KhB3bp1eeCBB4iJiblimXPmzKFJkybUrFmT8PBw7rrrLvbt2wfA/fffT5UqVQgPDyc8PJzrr78+8bwZM2ZQv359atasSb169ZgxY0bivvvvv598+fJx5sylFp4nn3wSEeH48eOAXcg9odzw8HCGDx/OrbfeSnh4ONWqVaNw4cKJ+5YvX07r1q2pUaMGDRo0oHHjxqxfvz6x7MqVKyeWe/jwYXr06EHVqlWpXbs2nTp1Yvt298m1/aBy5ZS//8qVM1VswvcPsG/fPtq3b0+tWrWoXbs2e/bsSXLs448/nuT41GSl779IhSKUq1bOt9+/MSbbvxo1amSUUoEnJsa+MgJYbQKgfsnMS+smpQJQXJwxgwYZM2FChovQ+skYYxcBSfmVCfnz5zfGGBMdHW0uXLhgjDHmzJkzplKlSubgwYPGGGN+/vlnEx8fb+Lj402PHj3M559/nmp5GzZsMNWqVTObN29O3Pbjjz+aRYsWGWOMue+++8zUqVMvO2/9+vWmatWqZteuXcYYY3bt2mWqVq1q/vrrr8Tz6tWrZya4/h3FxcWZevXqmfLly5tjx44l+SwpWbBggbn55puTbGvVqpVZtWqVMcaYcePGmbZt2ybuq1Spkjl27JiJj4831113nRk5cmTivnXr1pnFixenei2fSO179tL3b4z9e/z666/GGPtv4Ny5c4n7Vq1aZe65554r/o2NyVrff4uWLUzuR3KbJ395MsPfvyd1k445VEo5JkRrIKVUoAkKghEjnI4i8A0caMcGZETr1ilvDw+HDz/0qIjQ0NDE36Ojo4mPj09836lTp8TfmzRpwoEDB1It55133uGFF16gVq1aidu6dOmS5vVHjBjBCy+8QJUqVQCoUqUKzz//PO+99x4TJkwA4O6772bKlCncc889LFy4kGbNmvHLL7949PnS0rRpU957773Lti9YsIBcuXLRv3//xG3h4eFeueZlUvoe77wTHn009f0Jjh+H7t2Tblu40ONLb968mdjYWNq1awckbVGMi4tj8ODBfPvtt0yfPv2K5WSl7/909GmiY6NpU6UN1StX99n3r91KlVJ+d+6cnaH0p5+cjkQppZLZuxcuXnQ6CuWB/fv3U79+fSpWrMizzz5LuXLlkuyPiYlhwoQJdOjQIdUyNm3axDXXXHPF6wwePDixe1+vXr0Sz2vUqFGS4yIiIti06dLyttWrV+fYsWNERkYyadIkevTokeT48+fPJ+lWOGXKFI8+N9iukN26dbts+8aNGy+LKzvavn07RYoU4bbbbqNhw4YMHjyYuLg4AD799FO6dOlC2bJl0ywnK33/kRciCZIgWlVu5dPv36fP7UWkA/ARdkHoscaY4cn29wKedb09CzxijPnrSueKSDFgClAZ2APcaYyJ9OXnUEp514oVsGYN5MrldCRKKZXMbbdBiRIwd67TkQS2tFr4rjTNfjpaiK6kYsWK/P333xw6dIhu3brRvXt3Spcunbj/0UcfpWXLlrRo0cKj8k6cOEGbNm2IioqiX79+PPPMMwC89957dE/WymWMuWwpgZS23XbbbUyePJk//viD0aNHJ9mXN2/eJOPGPNGrVy/OnTtHXFwca9euTde5XpfW95jS/oS/T4kSmfp3EBsby5IlS1i3bh1hYWHcddddjB8/no4dOzJ16lQWZqDsQP/+I89HEvpjKLV/ru3T799nLYciEgx8BnQEagN3i0jtZIftBloZY+oDbwBjPDj3OWC+MaY6MN/1XimVhSxebHtuNWvmdCRKKeUmYRrlpk2djkSlQ7ly5ahTpw5LEpYgAV577TWOHTvG+++/f8Vz69Spk3iTXbx4cdavX0+/fv04e/ZsmuetXr06yba1a9dSu3bSW90ePXowdOhQ2rVrR1BQ5m+7J06cyO7du+nZsyePPfZYinGtWbMm09cJdBUqVKBhw4ZcddVVhISE0K1bN9auXcu6devYsWMH1apVo3LlykRFRVGtWrVUy8kq378xhny58vHwsId9/v37sltpE2CHMWaXMeYiMBno6n6AMWa5W6vfSqCCB+d2Bb5y/f4V0M13H0Ep5QuLFsE110DBgk5HopRSbpYvh/h4nUbZG9xa8Dzank4HDhzg/PnzAERGRrJs2TJq1KgBwNixY5k7dy6TJk1K84Z8yJAhDBs2jC1btiRui4qKSvP6zzzzDG+//XbiDJl79uzhrbfeYtCgQUmOCwsLY9iwYTyaMA7PC3LlysWbb77JypUrk8QNcOONNxIdHc3//ve/xG2rVq1i0aJFXru+RypVSnm20kqVvFJ848aNiYyM5NixYwD8/vvv1K5dm5tvvpnDhw+zZ88e9uzZQ758+dixY0eq5WSV719EqFmiJvc0uMfn378vk8PywH639wdc21LTF0gYpXmlc0sbY/4FcP0s5ZVolVJ+ceEC/PGHrm+olApAS5bYmbKuu87pSLK+w4dTnqv08GGvFL9lyxauvfZaGjRoQKtWrXjmmWeo51qXsn///hw5coSmTZsSHh7O66+/nmo59erV46OPPqJ3797UrFmTZs2asWXLFnr27Jl4jPuYs/DwcC5evEh4eDjvvPMOt9xyCzVr1uSWW27h3XffTXHyj4cffpiqVatetj35mLPnnvO8M1zevHkZNGgQI5JNniQiTJ8+nXnz5lG1alXq1KnDq6++etl4TJ/bsyfl7z/ZchMZFRwczIgRI2jTpg316tXDGMNDDz2U7nKyyvcfeT7pCDpffv9iZzX1PhG5A7jJGPOg6/29QBNjzOMpHHsD8DnQ3Bhz4krnisgpY0wRt3MjjTGXrQQpIv2AfgBhYWGN9u7d6/0PqZRKt8OH4Ykn4KGHwDXJWIaIyBpjTIT3IvO/iIgIk7xbilLKQc2bQ1ycHRidCVo/KaW8qd7IejQo3YBvbvsmU+V4Ujf5ckKaA0BFt/cVgEPJDxKR+sBYoKMx5oQH5x4RkbLGmH9FpCxwNKWLG2PG4BrDGBER4ZsMWCmVbmXKwHffOR2FUkql4J13bPcGpZQKEIfPHmbj0Y3cU+8ev1zPl8nhKqC6iFQBDgI9gJ7uB4hIGDANuNcYs93Dc2cC9wHDXT9/9OFnUEp52YkTULy401EopVQKdJasbOvLL7/ko48+SrKtWbNmfPbZZw5FpPwpK3//v+/+HYA2V7Xxy/V8lhwaY2JFZAAwF7scxThjzCYR6e/aPwp4GSgOfO6a+jXWGBOR2rmuoocD34lIX2AfcIevPoNSyrtiYiAsDJ56Ct580+lolFLKzfz5tpK6wpp4Kuvq06cPffr0cToM5ZCs/P3P3zWfInmK0LBMQ79cz6frHBpjZgOzk20b5fb7g8CDnp7r2n4C8E/qrJTyqjVrICoKGjRwOhKllEpm+HA4dkyTQ6VUwDDGMH/3fG6ofAPBQcF+uaZPk0OllHK3eLH9qbPEK6UCSkyMXcaib1+nI1FKqUQGwztt36FUfv8tzqDJoVLKbxYvhho1vLbMlVJKece6dbZbQ4sWTkeilFKJgiSIu+re5d9r+vVqSqkcKy7OLiGm6xsqpQJOQrcGTQ6VUgFk1vZZbD622a/X1ORQKeUXcXHw+eeQRceDK6Wys1Wr4Oqr7Vo7yisajm6IvCaXvRqOztykGgUKFABg7969NGrUiPDwcOrUqcOoUYlTWtCrVy9q1KhB3bp1eeCBB4iJiUm1vFdfffWyhcQrV67M8ePHAbuo+KBBgxL3jRgxgldfffWyc++//36qVKmSuKD5xx9/DMB///1H7969qVq1KlWrVqV37978999/AOzZs4e8efMSHh5O7dq16d27d2KsCxcuRET44osvEq+9bt06ROSyeANR83HNU/z+m49rnqlyE75/gH379tG+fXtq1apF7dq12bNnT5JjH3/88STHpyTQv/+7X7yb4UuHA/77/jU5VEr5RWgo9OoF113ndCRKKZXMpEmwYIHTUWQrTSs0JTQ4NMm20OBQrq9wvVfKL1u2LMuXL2f9+vX88ccfDB8+nEOH7JLYvXr1YuvWrWzYsIHz588zduzYDF8nd+7cTJs2LTFZuJL33nuP9evXs379ep544gkA+vbty1VXXcXOnTvZuXMnVapU4cEHL83FWLVqVdavX8+GDRs4cOAA37ktBFyvXj2mTJmS+H7y5Mk0yCIzujUu15iB1w7EvGISXwOvHUiT8k28do3evXszePBgtmzZwp9//kmpUpfG5a1evZpTp05l+hpOfv/Va1Xn7NqztKli5+H01/evYw6VUn4xezZcdRXUrOl0JEoplUxQEJQr53QUWcrAOQNZf3h9qvujY6OJjY9Nsi02PpZ1h9fRenzrFM8JLxPOhx0+9Oj6oaGXEs/o6Gji4+MT33fq1Cnx9yZNmnDgwAGPykxJSEgI/fr144MPPmDYsGHpOnfHjh2sWbMmSYL38ssvU61aNXbu3Elw8KXZJ4ODg2nSpAkHDx5M3BYWFsbp06c5cuQIpUqVYs6cOUk+m9NS+h7vrHMnjzZ+lAHXDqDmpzVZeWAluUNyEx0bzep/VzOinW31Oh51nO7fdU9y7sL7F3p87c2bNxMbG0u7du2ApC2KcXFxDB48mG+//Zbp06en/4O5cfL7DykaAgegfoH6GGP89v1ry6FSyufi46F3b3jnHacjUUqpZKZMgf794cIFpyO5IhHpICLbRGSHiDyXwv6uIvK3iKwXkdUi0tzTc30hd0huSucvjSA2BoQy+ctc1pqYGfv376d+/fpUrFiRZ599lnLJEvyYmBgmTJhAh0wuT/LYY48xceLExO6AqRk8eHBit8INGzawefNmwsPDL0sCwsPD2bRpU5JzL1y4wB9//HFZrN27d2fq1KksX76ca665hty5c2fqs/hL2QJlKZ2/NPtP7wdg/+n9lM5fmsJ5Cnul/O3bt1OkSBFuu+02GjZsyODBg4mLiwPg008/pUuXLpQtW9Yr13Lq+z8edZxSjUuxbM4yv37/2nKolPK5LVvgxImsMRmNiHQAPgKCgbHGmOHJ9tcEvgSuAV40xoxw2/cUdu1WA2wA+hhjAvuOU6mcbto0WLECRo50OpJUiUgw8BnQDjgArBKRmcYY95kq5gMzjTFGROoD3wE1PTw33Txp4fv3zL9c9fFVXIi9QJ6QPKx5eA1lCnhvXGfFihX5+++/OXToEN26daN79+6UdpsO+9FHH6Vly5a0uMJEQyKS5vZChQrRu3dvPv74Y/LmzZtqWe+99x7du19qDdu1a1eK5RtjErfv3LmT8PBw/vnnH7p37079+vWTHHvnnXdy1113sXXrVu6++26WL1+e6vX97Uotffly5WPVQ6uo83kdPrjpA9pOaMumRzclfv8l8pVIV0thcrGxsSxZsoR169YRFhbGXXfdxfjx4+nYsSNTp05l4ULPyg7U7z8uPo7IC5Hc0+0epv5vql+/f205VEr53KJF9megr2/odhPVEagN3C0itZMddhJ4AhiR7Nzyru0Rxpi62OSyh8+DVkplnDF2GuUWLSCVm8QA0QTYYYzZZYy5CEwGurofYIw5a4wxrrf5sQ+pPDrXV8oWLEuf8D4ESRB9wvt4NTF0V65cOerUqcOSJUsSt7322mscO3aM999//4rnFi9enMjIyCTbzpw5Q5EiRZJsGzhwIF988QXnzp3zOK46deqwbt26JF1e4+Pj+euvv6hVqxZwaczZjh07WLlyJTNnzkxSRpkyZciVKxfz5s2jTZs2Hl87EJQtWJb7GtxHm6/bcF+D+7z6/VeoUIGGDRty1VVXERISQrdu3Vi7di3r1q1jx44dVKtWjcqVKxMVFUW1atVSLSdQv//goGDaVGnD293e9vv3r8mhUsrnFi+GChWgShWnI0mTJzdgR40xq4CUpr8LAfKKSAiQDzjk64CVUpmwcyf8+2/gP7mC8sB+t/cHXNuSEJFbRWQr8DPwQHrO9ZWhLYfSPKw5Q1sN9Wq5Bw4c4Pz58wBERkaybNkyatSoAcDYsWOZO3cukyZNIijoyre6LVu2ZObMmZw5cwaAadOm0aBBgyRdAQGKFSvGnXfemWT20LRUq1aNhg0b8uabbyZue/PNN7nmmmsuS1jKli3L8OHDefvtty8r5/XXX+edd965LKasYEizITQp34QhzYZ4tdzGjRsTGRnJsWPHAPj999+pXbs2N998M4cPH2bPnj3s2bOHfPnysWPHjlTLCeTvPyQohDIFyvj9+9fkUCnlU8bA0qX23iuwH8wDmbiJMsYcxLYm7gP+Bf4zxvzq9QiVUt6TsL5h4CeHKdWe5rINxkw3xtQEugFvpOdcABHp5xqvuDrhpjuzyhYsy6L7F3m91XDLli1ce+21NGjQgFatWvHMM89Qr149APr378+RI0do2rQp4eHhvP7666mWU79+fQYMGEDz5s0JDw9n1KhRqc5uOmjQII9mrXT3xRdfsH37dqpVq0bVqlXZvn17qglGt27diIqKStICCnD99dfTrVu3dF03UJQtWJY598zx+vcfHBzMiBEjaNOmDfXq1cMYw0MPPZTucgL1+//kj0/Y/5+9HfH39y+XeiBkXxEREWb16tVOh6FUjnXqFJw5AxUreq9MEVljjInwXokgIncANxljHnS9vxdoYox5PIVjXwXOJow5FJGiwA/AXcApYCrwvTHmm2Tn9QP6AYSFhTXau3evNz+CUio9/vc/GD3arnPoxadX3q6fRKQp8Kox5ibX++cBjDGXNzNdOmc30Biont5zQe+dlHLK2YtnKfpOUZ6+7mneaefdmfw8qZu05VAp5XNFing3MfShA4B7pBXwvGtoW2C3MeaYMSYGmAZctqCXMWaMMSbCGBNRsmTJTAeslMqEhx6C1auzQreGVUB1EakiIqHY8cxJBqeJSDVxzXIhItcAocAJT85VSgWOJXuXEBsfS5urnBljqrOVKqV8asQIyJMHBgxwOhKPJN5EAQexN1E9PTx3H3CdiOQDzgNtAH3srlSgiouz6xsGfmKIMSZWRAYAc7GTXY0zxmwSkf6u/aOA24HeIhKDrYPuck1Qk+K5jnwQB3355Zd89NFHSbY1a9aMzz77zKGIlD9lpe9//u75hAaH0jysedoH+4B2K1VK+VTlyhARAd9/791yfdGt1FVuJ+BDLt1EDXO/ARORMtikrxAQD5wFahtjTovIa9hupbHAOuBBY0x0atfSukkpB02aBE8/bZexqFzZq0X7qn7yJ62flHJGw9ENKZKnCAvuW+D1sj2pm7TlUCnlM3v32tegQU5H4jljzGxgdrJto9x+P4ztbprSua8Ar/g0QKWUdyxeDOfOZZk+70qp7C82PpbS+UvT9qq2jsWgyaFSymeyzkSASqkcZ8kSaNYMsuDyAEqp7CkkKIQ598xxNAadkEYp5TOLFtnJaFyziyulVGA4fhw2bdInV0qpgHIx7qLTIWhyqJTyndhYaN/ezvmglFIBY+lS+1OTQ6VUAKk3sh5PzXnK0Rj0lk0p5TPjx8PkyU5HoZRSyVSuDE88YWfLUkqpALD31F62n9hOpSKVHI1DxxwqpXzCGDtDfBaYJV4pldOEh0Oyae2VUspJ83fPB3B0MhrQlkOllI8MHAjt2jkdhVJKJRMVZRe+j411OhKllEo0f/d8SucvTZ2SdRyNQ5NDpZRPzJ8PIdo3QSkVaJYsgcaNYYH31xBTSqmMMMbw++7fubHKjYjDXa701k0p5XUJEwH26uV0JEoplczixXb5iqZNnY5EKaUAu77hiy1epGaJmk6HosmhUsr7liyxP3UiQKVUwFm8GBo1ggIFnI5EKaUAyBWciwFNBjgdBqDdSpVSPrB4MeTJY3tuKaVUwLhwAf78U59cKaUCyoLdCzh05pDTYQDacqiU8oEmTexD+dBQpyNRSik3f/4JFy9CixZOR6KUUoDtUtptSjfuqnMXY24Z43Q4mhwqpbzv7rudjkAppVIQEQHz5tknWEopFQDWHFrD6ejTtKnSxulQAE0OlVJe9u+/dm3DMmWcjkQppZLJlw/aOruGmFJKuUtY3/DGKjc6HInl0zGHItJBRLaJyA4ReS6F/TVFZIWIRIvIM27ba4jIerfXaREZ6Nr3qogcdNvXyZefQSmVPh9+CJUq2aE9SikVMGJj4ZVXYPNmpyNRSqlE83fPp0HpBpTMX9LpUAAfJociEgx8BnQEagN3i0jtZIedBJ4ARrhvNMZsM8aEG2PCgUZAFDDd7ZAPEvYbY2b76jMopdJv0SI7EU2ePE5HopRSbtatg9dfhw0bnI5EKaUAuBB7gWX7lgVMl1LwbbfSJsAOY8wuABGZDHQFEh/ZGWOOAkdF5OYrlNMG2GmM2evDWJVSXnD2LKxZA0OGOB2JUkols3ix/amT0SilAkSekDxsf3w7grML37vzZbfS8sB+t/cHXNvSqwcwKdm2ASLyt4iME5GiKZ0kIv1EZLWIrD527FgGLquUSq8VK2zPLZ0lXikVcBYvhmrVoFw5pyNRSqlEYYXDqFi4otNhJPJlcphSCmzSVYBIKNAFmOq2eSRQFQgH/gX+L6VzjTFjjDERxpiIkiUDow+vUtnd4sUQHAzXX+90JEop5SY+HpYu1VZDpVRAef6355m5babTYSThy+TwAOCeBlcA0ru6Y0dgrTHmSMIGY8wRY0ycMSYe+B+2+6pSKgA89BB8/z0ULOh0JEop5Wb/fru+oXZrUEoFiFMXTvHu8ndZ++9ap0NJwpdjDlcB1UWkCnAQ2z20ZzrLuJtkXUpFpKwx5l/X21uBjZkNVCnlHWFh9qWUUgGlUiWIjIS4OKcjUUopABbuWUi8iQ+oyWjAh8mhMSZWRAYAc4FgYJwxZpOI9HftHyUiZYDVQCEg3rVcRW1jzGkRyQe0Ax5OVvS7IhKO7aK6J4X9SikHbN4My5ZBjx7acqiUCkAhIfallFIBYP6u+eTLlY9rK1zrdChJ+LSWdC0zMTvZtlFuvx/GdjdN6dwooHgK2+/1cphKKS+YNg1efhm6d3c6EqWUcmMM3HQT9OoF993ndDRKKQXY9Q1bVmpJaHCo06Ek4csxh0qpHGTRIqhXD4qmOH+wUko5ZNcumDcPoqKcjkQppQCIiokiT0ge2l3VzulQLqP9K5RSmRYTA8uXQ9++TkeilFLJJKxvqJPRKKUCRL5c+Vj78FqMSddCDn6hLYdKqUxbs8Y+lM8O914i0kFEtonIDhF5LoX9NUVkhYhEi8gzyfYVEZHvRWSriGwRkab+i1wplaIlS6B4cahVy+lIlFIKIDEpFElp5T9naXKolMq0v/+2P7N6cigiwcBn2GV0agN3i0jtZIedBJ4ARqRQxEfAHGNMTaABsMWH4SqlPLF4sV3fMEhveZRSzjPGUOfzOry95G2nQ0mR1pRKqUzr1w9OnIBSpZyOJNOaADuMMbuMMReByUBX9wOMMUeNMauAGPftIlIIaAl84TruojHmlF+iVkql7OJFiIiAW25xOhKllALgn5P/sOX4FormDcxJGnTMoVLKK4oVczoCrygP7Hd7fwDwdI7pq4BjwJci0gBYAzxpjDnnfpCI9AP6AYTpopBK+VZoKEye7HQUSimVaP6u+QABt75hAm05VEplyt9/24fyW7c6HYlXpNT539PR4iHANcBIY0xD4Bxw2ZhFY8wYY0yEMSaiZMmSGY9UKZW206edjkAppZKYv3s+FQtVpFqxak6HkiJNDpVSmTJ/PsyaBQUKOB2JVxwAKrq9rwAcSse5B4wxf7jef49NFpVSTmnWDO7V5ZGVUoEhLj6O33f/Ttur2gbkZDSgyaFSKpMWL4arroIKFZyOxCtWAdVFpIqIhAI9gJmenGiMOQzsF5Eark1tgM2+CVMplaYTJ2DjRp2lVCkVMC7EXuDxJo9zd927nQ4lVTrmUCmVYfHxNjns2jXtY7MCY0ysiAwA5gLBwDhjzCYR6e/aP0pEygCrgUJAvIgMBGobY04DjwMTXYnlLqCPE59DKQUsXWp/ZvVplJVS2Ub+0Py8dsNrTodxRZocKqUybPNmOHkye917GWNmA7OTbRvl9vthbHfTlM5dD0T4Mj6llIeWLIHcuaFxY6cjUUopAFYdXEXtkrXJH5rf6VBSpd1KlVIZdvYsXH999koOlVLZxOLFcO21NkFUSimHRcdG02p8K56f/7zToVyRthwqpTLsuutg2TKno1BKqRQMGgR58zodhVJKAbDiwArOx54P2CUsEmhyqJTKEGMgOhry5HE6EqWUSsFddzkdgVeJSAfgI+x46LHGmOHJ9vcCnnW9PQs8Yoz5y7VvD3AGiANijTHa/V0pP5u/az5BEkSryq2cDuWKtFupUipD/vkHCheGGTOcjkQppZL54w/YsMHpKLxGRIKBz4COQG3gbhGpneyw3UArY0x94A1gTLL9NxhjwjUxVMoZ83fPJ6JcBEXyFHE6lCvS5FAplSGLF8PFi1CzptORKKVUMkOGQN++mSujUCEQufxVqJB3YkyfJsAOY8wuY8xFYDKQZJ5oY8xyY0yk6+1KUpk4Synlf6ejT/PnwT8DvkspaLdSpVQGLVoEpUpBjRppH6uUUn4THW1bDgcMyFw5Z86kb7tvlQf2u70/AFx7heP7Ar+4vTfAryJigNHGmOStigCISD+gH0BYWFimAlZKXVIgtAB/PPgHxfIWczqUNGlyqJTKkMWL7SylIk5HopRSblatsgliixZOR+JNKdW0JsUDRW7AJofN3TY3M8YcEpFSwDwR2WqMWXxZgTZpHAMQERGRYvlKqfQLkiAalWvkdBge0W6lSql027MH9u2DVoE9ploplRMtduU8zZtf+bis5QBQ0e19BeBQ8oNEpD4wFuhqjDmRsN0Yc8j18ygwHdtNVSnlJ28seoMle5c4HYZHNDlUSqVb3rwwfDh06OB0JEoplcySJVC3LhQv7nQk3rQKqC4iVUQkFOgBzHQ/QETCgGnAvcaY7W7b84tIwYTfgfbARr9FrlQOd/TcUV5e+DJL9y11OhSPaLdSpVS6lS4Nzz6b9nFKKeV3kybBwYNOR+FVxphYERkAzMUuZTHOGLNJRPq79o8CXgaKA5+L7e+fsGRFaWC6a1sI8K0xZo4DH0OpHOn33b8D0OaqwJ+MBjQ5VEplwNy50LgxFAv8cdVKqZymSBH7yqyCBVOefKZgwcyXnQHGmNnA7GTbRrn9/iDwYArn7QIa+DxApVSK5u+aT+HchWlUNmuMOfQoORSRCKAFUA44j+2O8Jsx5qQPY1NKBaBDh2x30hEjYNAgp6NJmdZZSuVQ06fDxo3wwgsQHJy5sk6fhmuugTx5YPly78SH1k9K5TTzd8/nhio3EByUyTrJT6445lBE7heRtcDzQF5gG3AUOwPWPBH5ytXHXSmVQyTM9RCIk9FonaVUDvf11/DVV5lPDAF274Z16+C22zJfFlo/KZUTnTx/kui4aK+vb1jh/QrIa3LZq8L7mV/eNK2Ww/zY6Y/Pp7RTRMKB6sC+TEeilMoSFi+2varCw71X5sSJ8OKLdgbUsDAYNgx69cpQUVpnKZVTGWMno7nlFu+UN326/Xnrrd4pT+snpXKcYnmLceCpA8TGx3q13C41uvDFui+4GHcxcVtocChda3TNdNlXTA6NMZ+lsX99piNQSmUpixdDs2YQ4qURyxMnQr9+EBVl3+/da99D+hNErbOUysG2bIETJ+wCrN4wbRo0aABVq3qlOK2flMqZRIRcwbm8WubQlkMZt25ckm3BEszQVkMzXbZHS1m4ujoUcXtfVETGXeEUpVQ2dPw4bNrkvXsvsC2GCYlhgqgouz2jtM5SKgdK6PPujQrq33/tOMPbb898Wclo/aRUzhBv4rlm9DWMWTPG62WXLViWjtU6Jr4PDQ6lT3gfyhQok+myPX32X98YcyrhjTEmUkQaZvrqSqkspXhxmxx6YyLABPtS6UCV2nYPaZ2lVE5z/Lht5bvqqsyX9eOPtpuql8YbJqP1k1I5wMajG1l3eB2hwaE+KT9frnyJv3ur1RA8bDkEgkSkaMIbESmGB4mliHQQkW0iskNEnkthf00RWSEi0SLyTLJ9e0Rkg4isF5HV7tcWkXki8o/rZ9Hk5SqlfEMEateGcuW8V2ZYKtMvpLbdQxmqs5RSWdhLL8H27baiyqwffoCrr7YVnvdp/aRUDjB/13wAr09GAxAVE8VP23+iRvEaBEmQ11oNwfPk8P+A5SLyhoi8DiwH3r3SCSISDHwGdARqA3eLSPJa9iTwBDAilWJuMMaEuxZxTfAcMN8YUx2Y73qvlPKDV16BefO8W+awYRCUrCbKl89uz4R011lKqWwgeWWSESdPwoIFttXQG4nm5bR+UioHmL97PtWLVadi4YpeL3v6lumcuXiGYTcOo3KRyl5rNQQPk0NjzNfA7cAR4BhwmzFmQhqnNQF2GGN2GWMuApOBJFPoGGOOGmNWATHpiLkr8JXr96+Abuk4VymVQadOwRtvwIoV3i23WTOIj7ddVUWgUiUYMybDs5UCGa6zlFJZ1cSJ0KQJHD2a+bJ++gni4nzVpVTrJ6VygJi4GBbtXUTbq9r6pPzxf42ncpHK3FrrVnY+sdNrrYbgecshQDHgnDHmE+CYiFRJ4/jywH639wdc2zxlgF9FZI2I9HPbXtoY8y+A62epdJSplMqgpUvtEBxvTkYD8N139ufatTZJ3LMnc4mhm/TWWUqprGrBAtixA0qUyHxZ06ZBxYoQEZH2sRmn9ZNS2djZi2e5p9493FrTa0vhJNr33z7m75rPfQ3uI0i80FsiGY/6uIvIK0AEUAP4EsgFfAM0u9JpKWwz6YitmTHmkIiUwi4Ou9UYs9jTk10JZT+AsEwOXlJK2YkAQ0Ph2mu9W+6UKfaBfxUv3hplsM5SSmVVixdDixaZ71Z69izMnQv9+/uqS6nWT0rlAEXzFmVk55E+KXvCXxMwGHo36O2T8j2tRW8FugDnAIwxh4CCaZxzAHDvZFsBOORpYK5rYIw5CkzHdlMFOCIiZQFcP1PsQ2KMGWOMiTDGRJQsWdLTyyqlUrFokU3i8ub1Xpk7dtgWw7vu8l6ZLhmps5RSWdHhw/DPP97p1vDLLxAd7bMupS5aPymVzW0/sZ14E+/1co0xjP9rPK0qteKqol6YmTkFniaHF40xBlfLn4jk9+CcVUB1EakiIqFAD2CmJxcTkfwiUtDtWu2Bja7dM4H7XL/fB/zo4WdQSmVQbCycPu39LqVTptifd9zh3XLJWJ2F69gMz7Ls2h8sIutEZFamPoFSyjNLltif3qigfvgBSpa0g6F9J8P1k1Iq8J27eI66n9fl5QUve73s5fuXs+PkDu4Pv9/rZSfwdOrk70RkNFBERB4CHgD+d6UTjDGxIjIAmAsEA+OMMZtEpL9r/ygRKQOsBgoB8SIyEDuzaQlgutguHSHAt8aYOa6ih7vi6QvsA7x/W6mUSiIkBLZssUmiN02ZYu/BKnp/Iq9011mQZJbldtjeD6tEZKYxZrPbYQmzLHdLpZgngS3Yek0p5WslSsCdd0LDTC4VeOEC/Pwz3H03BAd7J7aUZah+UkplDUv3LSUmPoYWYS28Xvb49ePJnys/3Wt393rZCTxKDo0xI0SkHXAa20f+ZWNMmhPaG2NmA7OTbRvl9vthbHfT5E4DDVIp8wTg/QVDlFJpCvHiSlxbtsCGDfDxx94rM0FG6yzcZlkGEJGEWZYTk0NXV/ejInJz8pNFpAJwMzAMeDrTH0QplbYbbrCvzPrtNzvm0LddSjNTPymlsoD5u+cTGhxK87DmXi03KiaKKZum0L12dwqEFvBq2e48nZAmP/C7MWaeiNQAaohILmNMepagUEplUbffDjVrZnrtwSSmTLHzPXT3wcOvTNRZKc2ynJ4peD4EhqDjh5Tyj/Pn7To7Zctmvqxp06BwYbjxxsyXdQV6T6VU9jZ/93yaVmhK/lDv9hhPWNvQl11KwfMxh4uB3CJSHvgN6AOM91VQSqnAceECzJoFFy96r0xj7BIWLVt6554uBRmtszI8y7KIdAaOGmPWpHFcPxFZLSKrjx075knRSqnUzJ8P5cplfgHW2Fj48Ue45RY7LbNv6T2VUtnIoj2LeG/Ze7y37D1eW/ga6/5dR+7g3Ly/4n1OXTjltet89ddXVC5SmZaVvDwBRDKeJodijIkCbgM+Mcbcih0bqJTK5v74wyaG3pyMZuNG263UB7OUJshonZWZWZabAV1EZA8wGbhRRL5JfpDOpKyUFyWssRMenrlyFi2Ckyd93qXURe+plMpG5uyYw8jVIzl67iinLpzitpq3UThPYYbMG8Lp6NNeucb+//bz267ffLa2oTuPk0MRaQr0An52bfPi6COlVKBavNh2/2zuxa7zU6bY5chuv917ZSaT0Torw7MsG2OeN8ZUMMZUdp33uzHmnvSHrpTy2OLF3lljZ9o0W8ZNN3knrivTeyqlspGnmj7Ff9H/MfC6gXzQ4QO+v+t7apWoRe8GvQkr7J211if87du1Dd15Whk9CTwPTHfNOHoVsMB3YSmlAsWiRVC/PhQt6p3yjLHJ4Y03QqlS3ikzBRmqszIzy7IxxjuPB5VSnjl3DtasgcGDM1dOfDxMnw4dO0K+fN6J7cr0nkqpbKRU/lI8EP4Aw5cOp3KRylxX4To+W/UZfzz4h1fKN8Ywfr1v1zZ05+lspYuxfeQT3u/CTuWulMrmrrsOihXzXnnr1sGOHfDss94rM7nM1FmZmGXZ/fiFwEKPA1ZKpd/KlXasYGb7vP/xB/z7r7+6lOo9lVLZ0OBmg6nyURWiYqK4tcatdKnRharFqnql7BUHVvDPyX94ocULXikvLVdMDkVkDLY//IYU9uUH7gKijTETfRSfUsphb77p3fKmTLFLYvjiPkzrLKVykHr14MsvM79g/bRpkCsXdO7snbhSofWTUtnX2YtniYmLoVyBcizau4g/H/rTa2X7Y21Dd2m1HH4ODBWResBG4BiQB6iO7VI1DtBKTKls6vBhKF7c3jd5Q8Ispe3aebc10o3WWUrlFKVKwf33Z64MY2xy2LatXcbCt7R+UiobijfxPDjzQXKH5ObE+RP0rNfTa62G/lrb0N0Vk0NjzHrgThEpAEQAZYHzwBZjzDbfh6eUctIDD8CRI3ZYjzesWgV79sArr3invOS0zlIqh4iOhq++sq195cplvJy//oJdu+D5570XWyq0flIqexq3bhwL9izgf7f8j9L5SxNRLsJrZc/YOoPT0ad9vrahO0/HHJ5Fx88olWPs2mXnZ/j9d7jjDu+VO2WKnXW+WzfvlZkSrbOUyuZWr4aHH7atfrfemvFypk2zUyd36eK92NKg9ZNS2Uu3mt04EXWCvg37IpLScskZN379eL+sbejOtwtlKKWynA8+sDPDL19uH85Pnw7jx2e+3Ph426X0ppugSJHMl6eUysEWu+ZzyewaO9OmQYsWPp06WSmVPRljiI2PpUS+Ejzb/FmvJ4b+XNvQnSaHSqlEmzfD8OGwfv2le65ffoGnnoJDni4Fn4oVK+DAAZ8ufK+Uys6KFbOLrorAC65Z+0qVyvgA5m3bYNMmv81SqpTKXsauHcv1X1zP8ajjPinfn2sbuktXcuiaTUsplU398APccw9UqAALF0LVqvahepcuMGNG5sqeMgXy5PFr7y2ts5TKTiIj7QQysbFQsKDtVmqM3Z4R06fbn5nplpoJWj8plXXt+28fg34dRMHcBSmW1/sz7Pl7bUN3HiWHInK9iGwGtrjeNxCRz30amVLK7+Lj7fAbgPfeg5desr8HB9t7sIyKi4OpU6FTJ3tP52taZymVjW3ZAmfOZH59w2nTbB/6ihW9E5eHtH5SKmszxvDQTw8Rb+IZe8tYn3T5TFjb0J8T0STw9NN8ANwEnAAwxvwF+G9kpFLKL267DSZMsEtYXH21nSV+927bapiZFr8lS2yZfuxSqnWWUtlV3bpw7FjmKqV9++z0yc50KdX6Saks7Mv1X/Lrzl95p+07VClaxSfX8Pfahu48mq0UwBizP9lAyzjvh6OUclK9elCpElSuDI88YntvTZoEw4Zl7uH6lCmQLx/cfLPXQk2T1llKZUMHDkD58lCiRObKcbhLqdZPSmVNxhj+t/Z/tKrUikcaP+KTazixtqE7T5PD/SJyPWBEJBR4Ald3CKVU9jF/Pvz5J9x3n733CgmBlSuhWrWMlxkba8cydu4M+f03wkbrLKWyo2uvtevrfPhh5sqZNs22QF59tVfCSietn5TKokSEBfct4NSFUz6bQdSJtQ3deZoc9gc+AsoDB4Bfgcd8FZRSyv/OnIG+fe290siRkDevd8pduND2APPzLKVaZymV3YSG2mmTP/rIvhIULZq+co4csX3dhw71bnye0/pJqSxoxf4V1CtdjwKhBShToIzPruPE2obuPEoOjTHHgV4+jkUp5aDnnrPDcJYs8V5iCLZLaYEC0LGj98pMi9ZZSmUzs2fDxYt2CYthwzJX1syZdoat22/3TmzppPWTUlnPwdMH6TixIzdffTMTb5vos+skrG34cquX/bq2oTuPkkMRqQI8DlR2P8cY48dJ6ZVSvhIZaWcTHTgQmjXzXrkxMbb3Vteu3k0406J1llLZyKlT0K8f1KkDL7+c+fJ++MGu01OvXubLygCtn5TKWowx9P+5PxfjLvJqq1d9ei2n1jZ052m30hnAF8BPQLzPolFKOaJoUbsWtLfHBP72G5w86cjC9zPQOkup7GHnTrvGzvjxkDt35so6dcoOrn7qKUg6IYw/zSAD9ZOIdMB2Rw0Gxhpjhifb3wt41vX2LPCIaybUNM9VSqVu4oaJzNo+i/fbv0/14tV9dh0n1zZ052lyeMEY87FPI1FKOWL+fGjdGkqW9H7ZU6ZA4cLQvr33y06D1llKZReNGsGOHXbMYWbNmmVnyXJmCYsE6a6fRCQY+Axohx2nuEpEZhpjNrsdthtoZYyJFJGOwBjgWg/PVUql4N8z//LEL09wfcXreeLaJ3x6rYS1DV9o8YJPr5MWTzuzfiQir4hIUxG5JuHl08iUUj63cCG0bQsf+yCNio626yPeemvmH/ZngNZZSmV1//0HI0bY/uneSAzB9nMvVw6aNPFOeRmTkfqpCbDDGLPLGHMRmAx0dT/AGLPcGBPpersSqODpuUqplMXEx9CkfBPGdRlHcFCwT681fv148uXKx+21nBkPncDTlsN6wL3AjVzqAmFc75VSWdC5c/DAA3bozcMPe7/8X3+193Z33un9sj2gdZZSWd2gQfDll9CmDTRsmPnyzp2DOXPstMxBzkz04JKR+qk8sN/t/QHg2isc3xf4Jb3nikg/oB9AWFjYFYpXKmcIKxzGnHvm+Pw67msbFsxd0OfXuxJPk8NbgatcT5yUUtnAc8/Bnj2waJFdoN7bpkyBYsVsy6QDtM5SKiubOxe++AKefdY7iWFCmefPO92lFDJWP6U0QNKkeKDIDdjksHl6zzXGjMF2RyUiIiLFY5TKCY6cPcIz857h3bbvUrZgWZ9fL3Ftwwb3+/xaafH00dlfQBEfxqGU8qNFi+DTT+Hxx6FFC++Xf/48/PijvQfLlcv75XtA6yylsqr//oMHH4RateDVV71X7g8/QPHivqn00icj9dMBoKLb+wrAoeQHiUh9YCzQ1RhzIj3nKqUsYwyPzn6UqZumcurCKb9cc/z68VQqXIlWlVv55XpX4mnLYWlgq4isAqITNuq0y0plTXnyQIcO8NZbvin/l1/g7FlHZilNoHWWUlnVkCF2sfvly21l5Q3R0XYymu7dIcTTWx+fyUj9tAqo7loG4yDQA+jpfoCIhAHTgHuNMdvTc65S6pKpm6cybcs0hrcZTq2StXx+vYS1DYe2HOrY2obuPK0hX/FpFEopv7r2WpvA+cqUKXb209atfXeNNGidpVRW1a8f1K1rKypv+f13OH06ELqUQgbqJ2NMrIgMAOZil6MYZ4zZJCL9XftHAS8DxYHPxS7TEWuMiUjtXC99FqWylaPnjvLY7MdoXK4xg64f5JdrBsLahu48Sg6NMYt8HYhSyveWLLE9q956yzfjDMHO+TBrFtx3n3MP6LXOUioLio+3E8U0amRf3jRtGhQs6NggaHcZrZ+MMbOB2cm2jXL7/UHgQU/PVUpd7qXfX+J09Gm+7PolIUG+v4lJWNuwZaWWVC1W1efX88QV2y5FZKnr5xkROe32OiMip9MqXEQ6iMg2EdkhIs+lsL+miKwQkWgRecZte0URWSAiW0Rkk4g86bbvVRE5KCLrXa9O6fvISuVMUVHQpw/MnGnvwXxl1ix7LSe6lGa2znKd6/V6SynlgUcfhUceAePleVDi4uy6Op07O7KuTgJv1E9KKd96u83bTL1jKnVK1fHL9RLWNgyEiWgSpJUSDwYwxqR7TlUPF109CTwBdEt2eiwwyBizVkQKAmtEZJ7buR8YY0akNyalcrIXX4SdO2HBAihQwHfXmTIFypSB5s3TPtYHMlxngc/rLaVUan77DUaPhsGDQVKaXDMTli6F48cDoUtppuonpZTvnIk+Q95ceSmerzhdavhveoKEtQ271+7ut2umJa1Rj59lomxPFmw9aoxZBcQk2/6vMWat6/czwBbsOj1KqQxYuhQ++ggee8y34wDPnIHZs+GOOyDYt2vFpiYzdRZovaWU/505Y9cerFEDXnvN++X/8MOlWbicldn6SSnlIw/PephW41sRFx/nt2sG0tqG7tJKDjPz+C6lRVfTfaMkIpWBhsAfbpsHiMjfIjJORIpmIkalsj1jbFJYuTIMH+7ba82caScFdHCW0sw2Ofiy3lJKpWTIENi/3y54nzevd8uOj7fjDW+6ybddJjzj5SZRpZQ3zNg6g0kbJ9GhageCg/z3ZDuQ1jZ0l1a30ioiMjO1nWlMu+zxoqupFiBSAPgBGGiMSeiPPxJ4w1XWG8D/AQ+kcG4/oB9AWFhYei6rVLYiAlOnwqlTvr83mjIFKlSApk19e50ryEydBb6rt9z3a92kVIIjR2DiRHj6ad9UHKtXw8GDvlu3J30yWz8ppbzs5PmT9J/Vn/Ay4TzX/LJpBnwqkNY2dJdWcngMm3xlRKYWXRWRXNgbrInGmGkJ240xR9yO+R8wK6XzjTFjgDEAERERXh7drlTWcOIEFCsGV1/t+2udOgVz5sDjj9sJBx2SmToLfFRvudO6SSk3pUvDhg1QqpRvyp82zU6bfMstvik/fTJbPymlvOzJOU9y4vwJ5t4zl1zBufx23UBb29BdWsnhmUxMCZ/hRVfFLtDzBbDFGPN+sn1ljTH/ut7eCmzMYHxKZWvnz8P119thNh995PvrzZgBMTGOdimFzNVZ4KN6SymVghUr4LrroFIl35RvjB1veOONUDQgRqBktn5SSnnR6ejTrDm0hhdbvEiDMg38eu1AW9vQXVrJ4Z6MFuzJgq0iUgZYDRQC4kVkIFAbqA/cC2wQkfWuIl9wrdPzroiEY7t67QEezmiMSmVnQ4fC9u0wcqR/rjdlClSpAo0b++d6qdiTmZN9WG8ppdz9/ju0aQOjRsHDPvrf+KZNsGMHPPNM2sf6xx6nA1BKXVIodyHWPrzW7y13gbi2obsrJofGmEzN++zBgq2Hsd22kltKKgO3jTH3ZiYmpXKC5cvh/fehf3/70NzXTpywM9EPGuT9WejTI7N1lqsMr9dbSik3Z8/a2UmrV4d7ffi/9B9+sBVS165pH+sH3qiflFLeMeGvCdxa61YKhPp/oqqEtQ2fb/6836/ticDq5KqUyrTz5+1i9xUrwrvv+uea06dDbCzcead/rqeUysKefRb27oVx4yBfPt9dZ9o0aNbMLryqlFIuP2//md4zevPZn86sLhOIaxu60+RQqWxm2zaIjIQvvoCCflo2Z8oUqFYNGjb0z/WUUlnUggXw+efw5JPQvLnvrrNjB/z9dyAsfK+UCiCnLpyi36x+1ClZh4HXDfT79QN1bUN3V+xWKiLXJNtkgOPGmP0pHa+Ucl54OOzeDfnz++d6R4/a4UPPP+9sl1LQOkupgBcXBy1bwrBhvr3O9On2ZwAlh1o/KeW8QXMHceTsEX7s8SO5Q3L7/fqBurahu7QmpElpyuViIhIK3G2MWe/9kJRSGXHhAnz1FTz4oP8SQ7DDeuLjHZ+lNIHWWUoFsrZt7cvXpk2DRo18NxNqxmj9pJSD5uyYw7j143i++fNElItwJIZAXdvQXVoT0tyQ0nYRiQA+Blr6IiilVPq98oodY1i3rh1m4y9TpkCtWva6TtM6S6kAtWiRfT3/POTy8VpiBw7AypW+b51MJ62flHLW1cWvpm/Dvrzc6mVHrh/Iaxu6S6vlMEXGmNUi4v/pfZRSKVq5EkaMgIce8m9ieOgQLF5sE1Onu5ReidZZSjno3Dl44AFbSQwa5PvkcMYM+zOAupReidZPSnnXoTOH+OfEP5dtD5IgRt480q+L3bsL5LUN3WUoORSR0ti+8koph124YGcnLV/eJoj+9P33dp3pQJ+lVOsspRz0wguwa5dtOfRHn/dp02x3hpo1fX8tL9D6SSnvemfpO0zcMJE6peoAcPL8SQ6ePkjkhUjWPbyO8DLhfo8p0Nc2dJfWhDSfcHmFVQy4HnjSV0EppTz36quwdSvMmQOFCvn32lOmQL169j4sEGidpVSAWbwYPv4YHn/cTkTja8ePX+q+GmC0flLKPx6/9nG+3fgtP/b4kWAJpu7IuuQJyUOLsBaOJIYQ+Gsbukur5XB1svcGOAE8bYw56puQlFLpccstkDcv3HSTf6+7fz8sXw5vvunf66ZB6yylAkVcHDz8MFx1Fbz9tn+uOXOmnSHr9tv9c7300fpJKT+oVqwaN1e/mY9WfsSB0wfY/99+yhUsx+s3vO5YTIG+tqG7tCak+UpEGgJVgU3GmC3+CUsplRZj7BCeZs38O84wwdSp9meAzFIKaJ2lVEAJDoZvvoGYGP9NoTxtGlSubNf0CTBaPynlP0OaDeGa0dcQHRdNp2qdiIqNonXl1o7EkhXWNnR3xalyRGQoMAW4HfhZRB7yS1RKqTQNHQoDB9qH5E6YMgWuuQaqVXPm+inROkupAHHmjP3ZqBFcd51/rnn6NMybZyeiCcAZsrR+Usp/SuQrQUhQCC3CWrD1+FZeafWKY7FkhbUN3aU1j2oPINwYczfQGOjn+5CUUmlZtcr20jpzBoIcmA15927488/AajV00TpLKadFRdmk8NVX/Xvdn3+GixcDeZZSrZ+U8rF9/+0jNj6WUvlLseSBJaw8sJKwImGOtRpC1ljb0F1at5UXjDFRAMaYEx4cr5TysehoOztp2bLwfyktqewH331nfwbgLKVaZynltJdegn/+gdat/XvdadOgTBlo2tS/1/Wc1k9K+dCSvUtoOLohL8x/AYCGZRryxg1v8F679xyLKWFtw/sa3BfQaxu6S2tCmqoiMtP1uyR7jzGmi88iU0olioy0s5GKwOrVsGmTfUhepIgz8UyZAtdea4f2BBits5Ry0rJl8OGH8Nhj/k0Oz5+H2bOhd29nulN4RusnpXzkm7+/oe/MvlQuUpl+jS41yj/b/FkHo7JxZYW1Dd2llRx2Tfbez6uoKaUmTYJHH4VWreyahnPnwg03QKdOzsTzzz+wbh28/74z10+D1llKOSUqynZrqFQJhg/377V//dVePzBnKU2g9ZNSXmaM4ZWFr/DG4je4ofIN/HDnDxTNW9TpsADX2oZ/ZY21Dd2lNVvpIn8FopS63P799gH8kiVQt67d9uOPcN99cPiw7UHlbwldSrsH4GzMWmcp5UfFitluDckVKGBf/jRtGhQtap+iBSitn5Tyvl2Ru/i/Ff9H34Z9+fzmzwkNDnU6pEQrD6xk+4ntPNfsOadDSZe0ZivtKiKPub3/Q0R2uV4BeGuoVPYydSrccQfUqQMrVtjlK7p2ta8ffnAmpilT7NIZFSs6c/0r0TpLKT+KjLSVkvsrMhLOnvVvHBcv2vUNu3SBXLn8e+100PpJKe85e9HWM1WLVWX9w+v53y3/C6jEELLW2obu0uqYPwSY6fY+N3aGrdbAIz6KSSnlcv48hIbanlLXXw/jx9vthQrZff62ZQts2BCQs5Qm0DpLKX+LioLJk21y6MRA6IUL4dSpQJ6lNIHWT0p5waajm6g3sh5j1owBoHrx6kiALV9zPuY8kzdNzjJrG7pLa8xhqDFmv9v7pa4Ztk6IiJ9WtFUq56pRA15xLc3zwQdw//1w/LhtUVywwP/xTJliJ8UJxC6lLlpnKeVPe/bY7g2rV9tFTyMi/B/DtGmQPz+0a+f/a6eP1k9KZdK8nfPoPrU7eUPyEl4m3OlwUpXV1jZ0l1bLYZIRncaYAW5vS3o/HKVUgu+/t2ML8+SBUqVsS+Fbb9l7r4ceglq1/BuPMTY5bNXKLqMRoLTOUsqfrrnGzlI1Y4YziWFcnL32zTdD3rz+v376aP2kVCaMXj2ajhM7UqlwJf586E+alG/idEipGv9X1lrb0F1ayeEfIvJQ8o0i8jDwp29CUkqBfRAeEQHbt9uk7MgR22r47bfwxhv+j2fDBti6NaC7lILWWUr5x5tv2p+VK8PatXYgtBNWrLCVY+B3KQWtn5TKsPWH19P/5/60r9qepQ8sJaxwmNMhperA6QPM2zkvS61t6C6tbqVPATNEpCew1rWtEbaffDcfxqVUjnToECxaBHffDR07QocOthtnuXLQooWzsU2ZYpcPC+yZ4rXOUsovatWyA6LXrYOqyaZoL+rHaeR/+MHG4dTaPumj9ZNS6WSMQUQILxPOnF5zaHNVG0KC0kpfnDXhrwlZbm1Dd2ktZXEUuF5EbgTquDb/bIz53eeRKZXDLF4Md95pu4+2bw/Fi9vEMBAkdCm98UYoGcCdn7TOUsqHFi6EXbvggQfsU6LoaGfjMcaON2zfHgoG/oQPWj8plT4HTx+k+9TuDG8znFaVW3FTtZucDilNWXVtQ3cepd6uiksrL6V8wBg72cyQIfYB/Pz5NjEMJOvWwc6d8FwWWaonM3WWiHQAPgKCgbHGmOHJ9tcEvgSuAV40xozw9FylsqT4eHjnHXjpJbuuzr33BsaSEWvXwr598OqrTkeSLnpPpVTa1h9eT+dvO/Nf9H9ExUQ5HU6aKrxfgYNnDia+335iO/KaUL5geQ48fcDByNIv63WEVSobMQZ69YJBg+yQnVWr7L1XoJkyBUJCssqwnowTkWDgM6AjUBu4W0RqJzvsJPAEMCID5yqVtZw8adcPfOEF27Vh2bLASAzBthoGB9v4lFLZxk/bfqL5uOaICEv7LKVj9Y5Oh5SmLjW6XLbOYmhwKF1rODQeOxM0OVTKQSLQqBG8+66dnbRQIacjupwx8N13dpb4YsWcjsbnmgA7jDG7jDEXgclAkprdGHPUGLMKiEnvuUplKefO2Vmxfv0VPv3UzoYVSN03p02D1q0Dr6uFUirDlu1bRtfJXalVshZ/PvgnDco0cDokjwxtOfSybcESzNBWl28PdJocKuWAH36AX36xvw8aBIMHB874wuT+/NMuZRbgs5R6S3nAfR2yA65tvj5XqcCTPz8MHAhLl8JjjwVWJbVli50+Obt3Z3AjIh1EZJuI7BCRyzr5i0hNEVkhItEi8kyyfXtEZIOIrBeR1f6LWqn0aVqxKe/f9D6L7l9E2YKBu25WcifPn0wyM2locCh9wvtQpkAZB6PKGE0OlfKj2FibCHbvDp984nQ0npkyxU4G2K2b05H4RUp3v8ab54pIPxFZLSKrjx07lq7glPK5s2ftmMIFC+z7J56AJgGyllihQjZBFYHarh7bjz0WmF0uvCwzXd7d3GCMCTfGOLAgpVKp++/Cf9wz7R72nNpDkAQx8LqB5MuVz+mwPLbz5E7aTWhHodyFEruWZtVWQ9DkUCm/OXLEds0cMcLez8yY4XREaYuPt11KO3SAwoWdjsYvDgAV3d5XAA5581xjzBhjTIQxJqJkIE/9qnKezZttIvjtt7Bxo9PRXO7MmfRtz14y0+VdqYC159Qemo1rxpRNU1h9KOs1ah84fYC2E9oSHRfN/N7z6duwL0ESlGVbDcHD2Uozyhez/olIMWAKUBnYA9xpjIn05edQKrMOH7ZjCyMj4euv7YP5rGD5cjh40E5UmEOsAqqLSBXgINAD6OmHc5Vy1sSJ0K8fFCgAv/0GN9zgdEQqqZS6rV+bjvMN8KuIGGC0MWaMN4NT6kpWH1rNygMrL9u+J3IPX//9NRfjLiauYZiVHD13lHYT2nEi6gS/3/c7dUvVZWjLoczdOTfLthqCD5NDty4Q7bCV2CoRmWmM2ex2WEIXiG7pOPc5YL4xZrirz/1zwLO++hxKeUPp0tC7N/ToAQ2yxthqwLYa5smTcyYDNMbEisgAYC72wdQ4Y8wmEenv2j9KRMoAq4FCQLyIDARqG2NOp3SuIx9EqfSYNw/uuQdatIDJk6FcOacjUpfLTJd3gGbGmEMiUgqYJyJbjTGLL7uISD+gH0BYWFjGIlUqmV/++YVRa0Zxa81bE7ftjtzN7B2zqVCoAov7LKZmiZoORph+py6c4qZvbmLvqb3MvWcuEeVsb+2yBcuy84mdDkeXOb7sVuqrWf+6Al+5fv+KZImlUoHi3Dn7IH7rVjtE5u23s05iOHEiVKpkx0UGBcHMmU5H5D/GmNnGmKuNMVWNMcNc20YZY0a5fj9sjKlgjClkjCni+v10aucqFbBiY+3Ptm1h/Hj4/XdNDANXZrq8Y4w55Pp5FJiOvc9K6Tjt9q687rEmj3Eh9gKDmg7i006f8mmnT2lVqRWVi1Rm3cPrslxiePbiWTpN7MSmo5uYdtc0WlRq4XRIXuXL5NBXs/6VNsb8C+D6WSqTcSrldf/8A9ddB2PH2on+spKE3mX79tn3UVH2/cSJzsallPKimTOhRg3Yvds+vbrvPruYqQpUid3WRSQU223do8d2IpJfRAom/A60BwJwUKnKrorlLcajEY/y0u8v8eL8Fzl27hgf/vEh0+6cRol8JZwOL10uxF6g2+Ru/HHwDybdPokO1To4HZLX+fL/BD6f9e+KBWjXCOWQH3+0XUhz5YI5c6B9e6cjSp8XX7QJobuoKLu9Vy9nYlJKeUlsrP2P+d134ZprAmt5iiuZNy/1fYG09qKPZKbLO1ACmC72uw4BvjXGzHHgY6gcKiominji+Xbjt4QEhXDozCGurXAtDcs2dDq0dImJi6HH9z2Yv3s+47uO5/batzsdkk/4Mjn01ax/R0SkrDHmXxEpCxxNqQDXYOsxABEREelKLJXKqB9/tEs+RETYRe0rVXI6ovRLaDH0dLtSKos4dMgOfF6yBPr3hw8+sIOKA93mzXb9n3r1YNmyHJEMpsQYMxuYnWzbKLffD2Pvl5I7DWSRQQ0qOzHG8M3f3/DC7y9w4PQBahSvwdXFr2buzrn83PNnp8NLl3gTz/0/3s+P237kk46fcF/4fU6H5DO+7Faa4S4QaZw7E0j4Ru4DfvRizEp5ZP16eOkl+wB+zZpL22+6CYYNs/deWTExBDt5Tkq0AV6pLO7tt22FNXEijByZNRLDo0fh5pshXz6YNSvHJoZKZVVf//01ZQqUYdH9i1jedzkL9yzMcq2Gxhge/flRvt3wLW/d+BYDmgxwOiSf8lnLoQ9n/RsOfCcifYF9wB2++gxKpeTtt+HTT+0QnaAg6NjRzv6+di0UKQIvvOB0hBm3bZtdA1sEjFt7e758NulVSmUx8fFw/DiUKgXDh9tFVmtmkckfzp+Hrl3tIrGLFukTKqWygO0ntvPS7y8xov0IwgqHMaX7FIrkKUKQ2PaoCbdOoG6pug5H6TljDEPmDWH0mtE81+w5nm/xvNMh+ZxPR59nogtEiue6tp8AstZCKCrb2L7d9sT6+2/bwjZmDPz3H5w4AYsXZ+0lHw4ftovd58sHr70GH39su5KGhdnEUMcbKhXgihWzi6kmFxRkp0/Onz/rJIbx8dCnD6xcCT/8AI0bOx2RUuoKTkSd4LVFrzFy9UjyhOThnvr3EFY4jGJ5iyU5rmvNrqmUEJjeXPwmI1aM4NGIR3mrzVtOh+MXOjWZUunw009wxx1w4AA88gjMmGETqsqVYePGrJscnjkDnTrBsWOwcKEdM/n0005HpZRKl8jIS03+f/5pK6vDh+HiRcid29nY0uuVV2DKFHjnHbjtNqejUUpdwYcrP+TVha9y5uIZHrrmIV5r/RqlC6QyRiUL+XDlh7y88GXurX8vn3T6BMkqE3hlki/HHCqVrRhjZyC9cMH2zvr9d3jzTTsMBiA01Nn4Miomxs718PffMHWqTQyVUlnU+fPw8MPQvLltMVy2zG7PSjc1X39tK9e+fWHwYKejUUqlwLiNPdl8bDPXV7yev/v/zajOo7JFYvjF2i94au5T3FrzVsZ1HZfYLTYnyDmfVKkMio6GcePsRHn168P06XbYzv79dkKaXbvgu+9sgpXVGAMPPgi//mq7yHbs6HRESql0i4+HLVvs73nywIYNtkvmmjVZ72nP4sW2UrrxRjtpTlZKapXKIVbsX0HzL5vzx4E/APi006fM7jWbOqXqOByZd0zZOIWHfnqI9lXbM+n2SYQE5ayOljnr0yqVDpGRMGqUHXt3+DA0aGB7Zn38se3l1KGDvW/55Rf4v/+zXUuzmpdesg/pX38dHnjA6WiUUuly9ix89ZWtlA65VnsSgaVLbathVvPPP3DrrVC1ql0LKFcupyNSSrnZHbmb5+Y/x3ebvqNsgbIcjzoOQGhwFu06lYKft//MPdPvoVlYM6bfNZ3cIVmsS74XaHKoVAqio6FGDTsGr317mDAB2rSx911Nm9ptP/1kW97efx/KlHE64vQbORLeegseesgmiUqpLOLQIftE6osv7IxYTZrAq69Cz552f1ZMDE+etEtWBAXZvvpFizodkVLKzeuLXmfYkmGEBIXwSqtXeOb6ZygQWsDpsLxqwe4F3P7d7TQo3YBZd88iX658TofkCE0OlXJZuxamTYM33rAthP/3f7a1sH79y48tVcoOh8mqZsyAAQOgc2f4/HPtuaVUwDMGoqLsjKPHj9vWwu7d4ckn4brr7DGPPZbyf8yBnmhdvGi7Y+zdawdzV63qdERKKSAmLoaQoBBEhNzBuelVrxdv3PAG5QuVdzo0r/vjwB90mdyFqsWqMueeORTOU9jpkByjyaHK0YyBOXPgvfdgwQK7vvJDD9kF7O+91+nofGP5crj7bjsUafJkCNFaQKnAFR1t/0P96COoVcsuYF+/vm09LFky6bEnTzoTY2YYA/362XUMJ06EZs2cjkipHM8Yw8xtMxny2xDeuOEN7qxzJ0OaDcm2s3X+feRvOk7sSKn8pZh37zxK5CvhdEiO0ttClWNt2wa33w6bNkH58jZBfOghKJyNHxZt2wa33AIVKtieW/nzOx2RUipFhw/bQc8jR8LRo1C7NrRte2l/8sQwq3r7bTtu0r1brFLKp0atHsXYtWMv2y4iPHXdU/xv7f9YuGchNUvUpHje4on7sqPtJ7bTfkJ78uXKx2/3/ka5guWcDslxmhyqHOXUKdi9Gxo2tIu7lyoFQ4ZAjx5ZdykKT/37r51EJyTEtpZml3tLpbKl99+3T6xuvtl2HW3bNvv1//7uOzvlc69e8PLLTkejVI5RvmB5/j37L9Pvmp64RMPeU3u5+4e7uWfaPRTPV5zPOn3GQ9c8RK7g7Dsx1L7/9tH267bEmTgW9l5IlaJVnA4pIGhyqHKEvXttr6z//c9OHrNtG+TNa4e35ARnzth7zIRF7nVIj1IBJC4OfvwRPvwQXnjBPsV5+mm7pMPVVzsdnW+sXAm9e9v1GL/4IvslvkoFsM5Xd6bMojIcOH2Adle1I1dwLsauHUvnqztzdfGreb7589l+zN3hs4dp83UbTkefZsF9C6hZoqbTIQUMTQ5VlnfxInz2mX0IHRdnZ0J/8knIl892GX3rLZgyxR7bowc880zWnMwvoy5evLTI/U8/Zb1lz5TKtk6dsonRJ5/YJ1iVK8OFC3ZfmTJZcxpkT+zZA1272v7806fbGcCUUn4jIvQN78vDsx4mLj6Ofo36MXXzVLYN2JYjxtudPH+S9hPac+jMIebdO4+GZRs6HVJA0eRQZWnGwF13wblz8OabtsvkBx/YB+8LFsDWrTBzpk0Wn3zSdiXNSYyx4yh//RXGjdNF7pXyq2LF7IKpyRUtCidO2HVxtm6FVq1sxdWlCwQH+z9Of/rvPztN8sWL8PPPUCL734gqFUgmbZjEyNUjWbJvCYJwfcXr2X5iOw83ejhHJIZnos/Q4ZsObDuxjZ97/sz1Fa93OqSAo8mhytJWrICNG2HzZpsITZ4Mu3bZmd5nz4Zu3WD/fihSxOlIneG+yH2fPk5Ho1QOExlpKyawP+fNs4umfvON7UY5YgSUK2cHQecEsbFw5522X//cuVBTu3Ep5Q+HzhxKnGhl/F/jOXTmEO+0fYeyBcry+uLX2XJ8C2NuGeNwlL53PuY8t0y6hbX/ruWHO3+g7VVt0z4pB9LkUGVpK1dCtWp2aYZ58+D0aahbF1q0sInjLbfk3MTw8891kXulHLdoka2cpk2DLVugdOlL+26+2bm4/M0YePxx241h7Fi48UanI1IqW4uOjWbalmmMWTuGJXuXsGfgHioUqsDE2yZSLG8xgiQIYwwf/fERd9S+I9u3Gl6Mu0j3qd1ZvHcxE26dQNeaXZ0OKWBpcqiylNhYmxD+8QcMGmSHrKxbZ7uT3nmnHVvXvr2d/K5CBaejdY4ucq+UA4yxA51z54bq1e221q1tV9GmTe2SDXfdBXnyOBqmIz780C7N8eyz0Lev09EolW0dOXuEEctHMP6v8RyPOk6VIlV444Y3yJ/Lrl3lngSKCPN7z6dAaAGnwvWZCu9X4OCZg5dtL5K7CL3q93IgoqxDk0MV8I4ft0NTZs+2D51PnbL3Wr162TkNBg2ys6H362eToMmT7Sykn33mdOTOSFjkvkkTXeReKZ/791/47TfbOvjbb/b9I4/YpzJgZyFt1Sp7L6CalpkzbUV9++22O4NSyqsuxl3k6LmjVChUgTgTxyd/fkKn6p14uNHDtKvaLnG5ipRk11lJu9TowhfrvuBi3MXEbcESTM96up5qWvS2UQWcuDhYtQqqVLE9sH75Be6/307cd+ut0KmTXfIrobvovHl2PN0rr9hEqFQpm0wWLerkp3CG+yL3P/2ki9wr5XVRUXZgc926tqWwcWM4eBCKF7cVU7t2tvtCgi5dnIs1EKxda59WRUTYAdA5aapopXxs58md/G/t//hy/ZfUL12feffOo1zBchx+5jBF8hRxOjxHDW05lHHrxiXZFhocytBWQx2KKOvQ5FAFhOPH7fwEs2fbnydO2HUJn3jC3lutXQsNGqR8X1Grlu1qum+fTSwrV86Z3Sh1kXulfCAuzvZdnzfPvpYts0+g9u2zFc3o0VC2LISHX15BFS2acmWUU55cHTxon1aVKGFbD/PlczoipbKFeTvn8e7yd/lt128ESRC3XH0LDzd6OHF/Tk8MAVYfWk3ukNxEx0UDkCsoF33C+1CmQDZdIsiLNDlUXhcXZ4fWTJoEMTG26+cjjyQdZhMfbxPAkiXtJDJly9rxhCVL2jkaOnW69PC9cGHPJvPLactUuDt92v7NdJH7zBORDsBHQDAw1hgzPNl+ce3vBEQB9xtj1rr2PQU8CBhgA9DHGHMhUwFdaTmEkyczVbRKxe7dUKmSTfYGDbJPqsA+oXriCds6aIxN/K40qUxO/n7OnrWJ4ZkzNqHOrms2KuUFC/cs5KdtP6W4b0CTAVQpWoXdkbspU6AMeXPl5e8jf7Pt+DZea/0afRv2pXyh8n6OOHDtPLmTJ+c8yc///Ez1YtU5H3OemPgYQoJCtNXQQ5ocuuzfb8dnnTtn14Jr0iRntj55w4MP2u6NQ4bYhPCTT2DWLPj2WzsW8JdfbMtWgwb2QXyhQjBypH3wfs012usovRIWud+wQRe5zywRCQY+A9oBB4BVIjLTGLPZ7bCOQHXX61pgJHCtiJQHngBqG2POi8h3QA9gfKaCSlgO4cwZO9g2ofVFK6j0Sy3RLlzYLgSa0Dq4c6ftrtCwIdxzj/0fQps2SWcaVamLi7ODwv/6y1b+9eo5HZFSAW3HyR18s+Ebhlw/JHHbuZhzvLrwVcIKh/HLjl/4deevjO82nt4NevNYk8cYeN1AgoOy+bqo6RAVE8XwpcN5d9m75ArOxXvt3uOJa59g4JyBjF4zWlsN00GTQ2DqVOjfH+64w9479OhhE8TPPtP7r/T66y97b/XPPzYxFLEP2cuWtct5xcfboTk33ZR0KM6DDzoXc1ZmjP3bzZuni9x7SRNghzFmF4CITAa6Au7JYVfga2OMAVaKSBERKevaFwLkFZEYIB9wyGuRjR1rZ3ps1AiaN7fbjh/XRcTTIzLyUreFXLlsUrhsmf173n47FChgZxd94glbYYF92qJPXNJnyBDbjfTTT7VSUsoDvRv05s3Fb3J9xetpWrEpMXExdJrYidwhuRk4dyDlC5ZnaMuh3FjFLgGTJyQHznicCmMMP277kYFzBrL3v73cXfduRrQfkbiu49CWQ5m7c662GqZDjk8OT5+Ghx+GBQtsSxbA88/bB8W//mqTGJW2yEg7LOfzz6FgQbjhBti+HfbssS2DrVvb1tkPPrDzNwTrwy6vePFFu6a2LnLvNeWB/W7vD2BbB9M6prwxZrWIjAD2AeeBX40xv3otshYtbBfHpUvh44/ttrJlbSWWN6/9D7BQIbjqKn2qBbZJPTQUoqPtDJk7dtjtxYrZKY9ffdXOYhUebrcvXgzXXWeTRpVxo0bB++/bBPuxx5yORqksITQ4lEciHmHA7AGseXgN0bHRLNy7kKYVmvLM9c/QqXonQoJy/C37Zf458Q9PzHmCOTvmUKdkHRbct4DWlVsnOaZswbLsfGKnMwFmUTn+X9pvv8G1115KDAcNsvdZ119vb7o1OUzq7Fm7jNeGDfY1cKCdVfS772zrK9h7q2bNbK+i//6z96uFC9uE+7rrHA0/W/n8c3j7bbuEhy5y7zUpZVXGk2NEpCi2VbEKcAqYKiL3GGO+SXKySD+gH0BYegbKurdgXbhgK6rRo+1PgKeesguuly1rW8KaN7dPZerX9/waWdWUKXaB+R07bLeFf/6Bbt1sc3poqE1WElpY777brkHYtKl9nzClb4sWjoSepRUqZLs7JxccbP/mSqlUGWNYd3gdM7fNZOa2maw7vA5BWLh7IWv+XUPn6p2Z3mO602EGpHMXz/HWkrcYsWIEeULy8MFNH/BY48fIFawP97whxyeHwcF2IhSwXfQSFliPi7Pbfv/dPvx88UX7/tSpS0soZBXnz9sH599+a+8pu3SxD82vNHzm4kXb8leihJ1HYNUqu3bz7t2XjsmXz87FUKWKXWz911/tPVeLFnDvvXb5CRE7A+mMGTaZVN4xfbpd5P6WW7T7s5cdACq6va/A5V1DUzumLbDbGHMMQESmAdcDSZJDY8wYYAxARERE8sTTMwmzOz3wwKVtn39uW7+WLrWvqVPt0605c+z+kSOhRg37NCyQ1jjxZMKdv/+GjRtt0peQAIaF2adSAEOH2u1hYbYSuusu230B7H8cJ0/ap1Yil9YfVJmXUmII9n+g2j1EqctEx0YTHBRMSFAIw5cO54XfX0AQmoU1492273Ih9gKvLX6NLce28Ou93ut4kl0YY/hhyw88Pfdp9p/ez7317+Xddu/qWEIvy/HJYdu20LevTQqvu84OPzlwwP5+6602GUx44BwZae9jqlSxXSMTXo0a2aEqgcgYO1lJnjw2ocif3yYTrVrBmjWX7hFPn7bDQzZssPdgW7fapPn9922DRNmytuXvgQfs3AJ169q/Q8LkMeXL2xfYe9F77rEJaO7cNobvv9fJ6rxl+XLo2dN+H5Mm6SL3XrYKqC4iVYCD2Allkq+YOxMY4BqPeC3wnzHmXxHZB1wnIvmw3UrbAKszHZGnyyHUrm1fCU34+/fb/7DBNvk/8YT9jzokxM781Ly5TaKaNElajr9nR42MhEOHbLw7d15K/iZMuHTMU0/ZJ3UiULEiVKsGNWte2j9/vp3qOE8q43C0q6hSyiHHo44z+5/ZzNw2k7k75/Jd9+/oWL0jt9W6jXIFy9GpeidK5rdrT12Mu8gX676geVhz6pfOAb0+0mHr8a08/svj/LbrN+qXrs+3t39L87DmToeVLeX428r8+e26vDffbJdOKFYMfvjBjt96663L78mGD7etaCtXXnpoPWqUHbd48KBtIWvc2PbkSu0+xRiYNg2++caup9y5s51UJKF3mDetWmVnDt261d577dplH65HRdkk75577Hi1XLng5ZftfVfdurZFqm5d2z0U7KLqkyd7ds06dexEf9u22aUs6tTRGUgza+JE23q9d6/9W5YqpYvc+4IxJlZEBgBzsUtZjDPGbBKR/q79o4DZ2GUsdmCXsujj2veHiHwPrAVigXW4WggzJaMJWUW3xs0CBew6JytWwJIltmXxs8/s+MQmTewTsVdftQljwqQtySu/hPfG2HF8p0/b2aWCg21St3Gj3eb+eu01261zzBjbdeH0advX/PRpWwmdPWvLfOkl2wU0QYUKl64lYp9ShYTYeFOqKN0/65Xk9HUHlVJ+c/TcUbp/151l+5cRb+IpV7Acver1Slx2okaJGtQoUSPJOaHBoUy7a5q2hLk5e/Esbyx6gw9WfkC+XPn4uMPHPNL4ER2D6UP6l8WuD7d9u00Kz561k9PUqnX5cUWL2skCExw9CqtXXxrSs2SJ7eoHNtmqV88mii+8kHQNviFDbOvakCF2yMaYMbZlbd48ex91JcbY5TaOH7cvuDQM6f337ec4ftxOxnf8+KXJ90JCbKL377/22AIFbPfYhAn58ua192zeSjZEkj7YVxk3caIdVxgVZd/Hx9sW7V9/teM6lXcZY2ZjE0D3baPcfjdAijNtGGNeAV7xaYAZVaSInTkyYfbI6OhLfep37LBPrL74wr4vV85WXp99ZhOvb1w9Y0uUsIldTIx9v3evrdwmT7584GuuXPDMMzaBTDi+QgXbupkwEDmh//4jj9gxglWq2EU68+a1lUhCIpcwKDyzcvK6g97mPsZAqWzGGENMfEyK+0KDL79Ri4uPY8WBFczcNpMieYrwQosXKJGvBKHBobzY4kW61OjCNWWvIUjSflJ+TdlrMh1/dmCM4btN3zHo10EcPHOQ+8PvZ3ib4ZQuoEsK+ZrY+5zsLSIiwqxenfneXWkxxrbOrV5tW+xWrbK/b9pku1yOHGnvvTZtsmsqt25t76tCQ203z44d7b1RQuJ34oRtfRwxwpbfrZtNKqOjL13zmmts91CwXWF37bL3bwmvYsXs/rVrL7U01a0LgwfbcwcO9PmfRWVS5cr2Hjy5SpXsbLA5lYisMcZk6TUG/FU3eSQ+3k7qUreu7VKwdq2d6KVuXfvkqn17ePRRm9glvHr1sknnwYNw5Mil7YUL2z7lnhCxlaen25Wz4uPt/8yefdY+qUxNDv/utH7K2t5Z+g7PzX+OXEFJu6THxMfwc8+f6VS9EwBzd8xl8qbJzNo+i+NRx8kVlIue9Xoyvtt4B6LOPjYd3cTjvzzOgj0LaFimIZ91+oymFZs6HVa24EndpC2HXiRik72wMLjtNrvNvXdWgQK2dS4mxnZDBXtfFRlph/588IFN7hIUK5a09a1NGzufRELiV7z4pXF+YHuMJe8xFR9vWxaHDLEP9vPksb23fvsNPvzQ238B5W3796ecGALs2+ffWFQ2FxRk+4BD0vF+YBcrBduSmBL3Qccq+9q50w7SX7QIOnSw3WVSShALFvR/bEp5Ubea3RixYgQ7Ht9B4TyFAdh4dCM3jL+B/f/txxiDiPDdpu+YsXUGN1e/mS41unBT1ZsSj1fpdzr6NK8tfI2P//yYgqEF+bzT5/Rr1I/gIJ3gyp98mhyKSAfgI+zYnbHGmOHJ9otrfyfs2J37jTFrRaQGMMXt0KuAl40xH4rIq8BDwDHXvhdc3cACkvtYu3vvtUndG2/YB6+rVtnWQWNsAtChg+2WWqKE7cKafKKRxx+/8rVSGkoTFGRbG594wk4qY4ztXjpvnk0+VWCKibGty6++mnoDSnpWQVAqYOk4wMAXHw+ffGIXAQ4NtU8YE6ajViobqlGiBh2qdeDDlR9y89U3M/uf2Xy48kMiL0TS/+f+NK3YlPql6/Ne+/cY1XmULqGQScYYvt3wLYPnDebw2cP0bdiXt9q8lThRj/IvnyWHIhIMfAa0w079vkpEZhpjNrsd1hGo7npdC4wErjXGbAPC3co5CLgv9vKBMWaEr2L3pbZt7dIYq1fbB7AidnKb8eNty1+1at6/ZqlSdkjQhQt2iI9OYhLYli2zE05u3GgnK7rxRtvqmzDmEOwyIsOGORejysb8nazpOMDA9s8/dprqpUvtzG2jR2srscq2LsReYNXBVYQVDuOlFi/RZGwTXl30KoIQEhTCa61fo3vt7tQqYSemKJZXn7Jn1oYjGxjwywAW711MRLkIZvSYQZPyTdI+UfmML1sOmwA7jDG7AFzTvncF3JPDrsDXrgkeVopIEREpa4z51+2YNsBOY0wqneuylly54OefbTfSt96yvW+OHLFjEX2RGLpLbfZUFRiOH7fdf7/80rYKzphh16QUsQn+iy/arqRhYTYx1MlolE9osqbAPkn8+GM7o1qePPDVV7b7i7YWqmwkJi6G+bvns2TvEhbvW8yfB//kYtxFht04jBdavECHah0wxhAdF03zis0Z3Gyw0yFnWRXer8DBMwdT3FcsbzFGdx5N34Z9tQtpAPBlclge2O/2/gC2dTCtY8oD7slhD2BSsvMGiEhv7Bpig4wxly3KJSL9gH4AYQHW/65WLfjrL7umYFSUnRgmrVlKVfYVH297aT37rJ0I8tln7Zre7i28vXppMqiU8pNt2+x6TitW2HWNRo26NLW1cowHQ3VqAl8C1wAvuvewSuvcnOLouaMs2buEXMG56FKjC/Emnm6TuxFn4mhUthFPNHmCFpVaJK6f93rr17nui+vIHZybb2/71uHos7YuNbrwxbovuBh3Mcn2OiXrsOj+RRTPV9yhyFRyvkwOU3q8mHzk1BWPEZFQoAvwvNv+kcAbruPeAP4PeOCyQowZg2uNsYiIiICbNk3k0hIYKuf66y87i/+KFdCyJXz++aU5QZRSyq/i4uzMaEOH2uVEvvkGevbU1sIA4OFQnZPAE0C3DJwb0A6ePsifB/9McV/ryq0pmjf1bu/Ttkxjzo45LN67mG0ntgHQIqwFXWp0IXdIbpY+sJRaJWqRP/TyMTc1StSgZ92e1ClVJ8X9ynODmg5i7NqxSbblDs7Nb71/08QwwPgyOTwAuK9MXAE4lM5jOgJrjTFHEja4/y4i/wNmeStgpfzlzBl45RXba6toUTvmtHdvvQdTSjlkyxbbWvjHH3bdpJEjoYwuxB1A0hyqY4w5ChwVkZvTe26gm7F1Bs/Pf542V7VJ3GaMYdb2WczoMYPOV3fGGMOW41tYsncJ205s4/2b3gfg67++ZuGehTQPa06f8D60rNSSRuUaJZYTUe7KK458dnMqszQrj2w8upExa8Yw4e8JSdaOzBWUi74N+1KmgNYzgcaXyeEqoLqIVMFOKNMD6JnsmJnYLqKTsV1O/0s23vBuknUpTTYm8VZgoy+CV8oXjIHvv7frS/77r13c/q23dOZYpZRDYmPh//7PPq0qUAAmTbKD4vVJVaDxZKiOL85NUXRsNPv+S3k9pSpFqxAS5N3by/vC7+P1xa8z7MZh1C5ZG4A5O+bwz8l/CJZgbp1yK0v2LuHE+RMAlC1Qltdav0bB3AUZ13UchXMX1rFsfhQVE8XUTVMZs3YMy/cvJzQ4lO61u3N7zdvpOa0n0XHRhASFMLTVUKdDVSnwWXJojIkVkQHAXGwf93HGmE0i0t+1fxQwG7uMxQ7sUhZ9Es4XkXzYLhAPJyv6XREJx3Yr3ZPCfqUC0o4ddqmSuXMhPBx++AGuu87pqJRSOdamTba1cNUquP12u45l6dJOR6VS5slQnUyf6+l8DWPWjOGZec8QVjjpMbsjd/P1rV/Ts17ytoD0iTfxxJt4QoJCOB51nOX7l9MyrCU9f+hJ+6rtWX94PUfPHeXlli/z79l/2XBkA7fUuIUWYS1oWaklVYtWRVwPOHRGUf9xbyU8deEUNYrX4P/a/x+9G/SmRL4SADyw+wFGrxlNn/A+2moYoHy6zqFr/cHZybaNcvvdAI+lcm4UcFknZGPMvV4OUymfunAB3n3XthCGhtr1Cx999PJ1LJVSyi9iY22l9NprUKgQfPcd3HGH01GpK/NkqE6mz/V0voa7693Nq4te5bd7f6NSkUqAXZKg3YR2dK3RNXmZ/Bf9H8ejjie+TkSdoHH5xtQuWZsdJ3cwZN6QpPvPn2Dy7ZO5o84d/HX4L7pOvlTm5mObKV/ILqfSvXZ3RIQHGl429YTyk4RWwtFrRrPiwIrEVsJ+1/SjZaWWiUl6gqEthzJ351xtNQxgenuqlA/Nm2fXtfznH9tT6/33ddI/pZSDNmywrYVr1sCdd8Knn0JJXWg6C/BkqI4vzk1RiXwleLjRw7y99G0+uOkDRq8Zzeg1o6lSpAr3zbiP41HHua/BffRp2Ic9p/Zw1cdXXVbGhzd9mNhF9J+T/1AiXwnqlKpDibwlKJ6vODVK1ACgcfnGrHpoFSXylWDCXxPYeHQje//by1PXPaVdRR208ehGRq8ezYS/J/Bf9H8pthKmpGzBsux8YqcfI1XppcmhUj5w6BA8/TRMmQLVq8Ovv0K7dk5HpZTKsWJiYPhweOMNOwvW99/brqQqS/BkqI6IlMEu8VUIiBeRgUBtY8zplM7NbExPN32aGp/W4KnrnuKpuU8BUDJfSU5fPE3xvMUJkiAAyhQow/+1/z9K5CuR5JXQpbBasWpseGRDqtcplLtQ4qQxTzV9iiofVaFU/lJ0r909sx9BpVN6WwlV1qTJoVJeFBtrh+0MHQoXL9peW0OG2DWklVLKEevX29bC9evh7rvtNMklUn+yrwKTB0N1DmO7jHp0bmYltB5+sPIDutTokuoi8Xlz5eXppk975ZoFQgsw8uaRlMxXUlsN/SijrYQqa9LkUCkv+eMPu2bhunVw0022t1a1ak5HpZTKMQoVsuvkpKR0aZg+3S5ToZSXPN30aa7+5GpCg0P9tki8thj6h7YS5lyaHCqVARMnwosvwr59UL48XH01LFgAZcvC1Km2t5bWm0opv0otMQTYvFnXzFFeVyJfCV5u9TJF8hTRReKzmArvV+DgmYOXbS+VrxR31rlTWwlzME0OlUqniRPt+oRRUfb9gQP21aGDnfSvYEFn41NKqctoYqh8ZOB1A50OQWVAlxpd+GLdF1yMu5i4TRCORh1lzNox2kqYg2lyqFQ6PfvspcTQ3ZYtmhgqpRywcyeMG+d0FEqpLOSZps8wdu3Yy7a/0uoVBjQZoK2EOZgmh0p54PBh2yo4eTIcvLwXBmC7mCqllF9ERcEPP8AXX8CiRRAU5HRESqkAd/D0QX7+52dmbZ/Fb7t+IyY+JnFfSFAIDzV8iFdbv+pcgCogaHKoVCpOnoRp02DSJFi4EOLjoX59KFIETp26/PiwMD8HqJTKWYyBVatsK+GkSXD6NFStCsOGQe/eULFi2mUopXKMeBPP6kOrmbV9FrO2z2Ld4XUAVCpcib4N+3J9xevp82MfouOiyRWUi5dbv+xwxCoQaHKolJszZ2DmTHvfNXeuXZqienV46SW7iH3t2pePOQTIl8/enymllNcdOwbffGOTwo0bIW9euOMOeOABaNny0uxXBQumPCmN9ndXKsc4E32GebvmMWv7LGb/M5sj544QJEFcX/F6hrcZTuerO1O7ZO3EcYRL9i1h9JrR9Anvk7j2pMrZNDlUOd758/DLLzYhnDULLlywD+Cfegp69ICGDZPOPNqrl/2ZMFtpWJhNDBO2K6VUpsXF2SdU48bZJ1YxMdCkCYwebZ9UFS58+TmnT/s/TqWU43ZF7kpsHVy4ZyEx8TEUzl2YjtU70rl6ZzpU60DxfMVTPHdoy6HM3TmXoa2G+jlqFag0OVQ5UkwM/PabHUM4fbp92F6qFPTta9eIbtr0ykN4evXSZFAp5QMJk8t89ZUd4FyiBAwYYFsJ69Z1OjqlVACIjY9l+f7liQnhluNbAKhZoiZPXvskna/uzPUVrydXcK40yypbsCw7n9jp65BVFqLJocox4uJgyRKbEH7/PZw4YccP3nGHTQhbt4YQ/S8ixxORDsBHQDAw1hgzPNl+ce3vBEQB9xtj1rr2FQHGAnUBAzxgjFnhv+hVlpTS5DIdOsDHH0PnzhAa6nSESikfS23dwfIFy3Pg6QOcPH+SOTvmMGv7LObsmEPkhUhyBeWiVeVWPNzoYW6++maqFavmQOQqu9Fb4f9v7+6Dq6rvPI6/v0kIDyGIQowIBNBSIUBAF6SKshXFFnUaabXt6FRFuoxtZWx3dlqrxX3oOGW325nWtcpSR63ddrSzltY6rmjZ+oSCKCsBgkiECFFERQV5zsN3//idJDfh5uZich/zec2cueeec+49319u5jv3e8/v/H6SF2InpY/t5ukOL78cCsJHHoHdu8P9gdXVoSC89FLo3z/T0Uu2MLNC4JfAXKABWGdmj7l7bcxh84Dx0TITuDd6hFA0PunuV5lZMTAobcFLbkk0uMz118PIkZmOUETSKN68g/0K+lExpILZD8xm9a7VtHgLZYPKqJ5QzRXjr2DumXMZ0n9IBqOWfKTiUHJe5wFi3noLvvnNUAxu2gQ7doQf3i+7LBSEl18OJSWZjVmy1rlAnbtvBzCzh4FqILY4rAYecncH1pjZUDMbARwEZgM3ALj7MeAY0ncNGRJ/gJj+/cNIV4kGlxGRPmXJ7CXc/38d5yttbGnkpbdfYtpp07jtgtu44rNXMGPkDApMU9dI6qg4lJx3++3HT0p/5Aj8+c/whS/AHXfA/Pnxx28Q6WQksCvmeQPtVwUTHTMSaALeBx4ws6nAq8At7n4wdeFKVotXGAIcPRp+oUo0uIyI5DV3p/7jel7Y+QKrd61m9a7VHG0+2rbfMGaPmc1v5v+G0SdpmhpJHxWHkrP27oVVq8KVwq48+WT64pG8EO+yjSd5TBFwDrDY3dea2S+AW4EOQ8CZ2SJgEUCFJsfMT+7hqmAia9akJxYRyQqNzY1s2LOhvRjcuZrdB3YDUFpcyvmjz2feZ+bx8zU/p7GlkQFFA3j4qoc1vYSknYpDyRlNTbB2bRjdfeXKcLuOe+iF5Z2/vgNjxqQ/Rsl5DUDsT7SjgHeSPMaBBndfG23/b0Jx2IG7LweWA0yfPj3Of67kpN274emnw/KXv8C772Y6IhHJoH1H9vFSw0us3hmuCq59ey2HGkM3pzEnjeGicRcxa/QsZo2exeRTJ1NYUAjAgWMHNO+gZJSKQ8lq9fXtxeCqVWHMhoKCMN3XHXeEbqPbtsG3vqVJ6aVXrAPGm9k44G3g68A1nY55DLg5uh9xJrDP3XcDmNkuMzvL3bcCF9PxXkXJJwcPwnPPtReErVcKhw+HSy4Jo13deGNmYxSRtHB33tr3VlshuHrXajbu2YjjFFgB006bxsKzF4ZisGIWo4aM6vK9NO+gZJqKQ8kqBw7AM8/AU0+FgvCNN8L20aPhq18NxeDFF8PJJ7e/5rzzoLBQk9JLz7l7k5ndDKwkTGVxv7tvNrObov3LgCcI01jUEaayWBDzFouB30YjlW7vtE9yWXMzrF/fXgy++CIcOxYGl7nwQvjGN2DuXJg6tX2SVBWHIjkr0dQS9d+tZ8O7G9oKwdU7V7cdO7h4MOeNOo8v/+2XmVUxi5kjZ1LavzTp82reQck0FYeSUS0tUFPTfnXwhRfCBPUDB4Z5B7/97fAD/IQJiQfx06T00lvc/QlCARi7bVnMugPf6eK1rwHTUxmfpFF9fXsxuGoVfPhh2D51KtxySygGL7ggJKx4SkvjD0pTmvwXRRHJjHhTSxRYAYYxdOlQDjaGscZGDxnNhWMubOsiOqV8CkUF+notuUv/vZISXc07CLBnT/iutXJleNyzJ2yvqoLvfjcUgxdcAAMGZCx8EclHXU0tUVoa+qx//DH89a/tBWFdXdg/ciR86UuhGLz4YigvT+58+/f3Wugiknruzu4Du6nZU8MpA0+hqaWpw/4Wb2HogKFUT6hu6yJacZIGFpP8ouJQel28eQcXLgwT0Tc0wGuvhe3Dh4dCsHUZMSJjIYtIX9DV1BKffALnnw8vvxy6j5aUhK4LixeHgrC7rgsiknMONx6m9v1aavbUsGHPBmr21FCzp4a9h/e2HVPSr4RDjYdwnKKCIm6YegO/+tKvMhi1SOqpOJRe1dwM3//+8fMOHj0Kjz8e5ni+885w7+DZZ7ffmiMiklKNjYn3t7TAD38YisHPfQ6Ki9MTl4iklLuza/+uUAS+u4Ga90IR+MbeN2jxFgAGFg1kSvkU5k+YT1V5FVXlVUwpn8LRpqOccdcZHGk6Qr+Cfvx4zo8z3BqR1FNxKJ9KczNs3w6bN0NtbVg2b4bXXw8T0Hfl2WfTF6OI9EFNTfDmm2H00M2b25etWxO/TvMOimS1RAPENPx9AxCmgdj03qa2q4Cty76j+9qOHzd0HFXlVVxdeTVTy6dSVV7FGSef0TaVRGcLpi3Q1BLSp6g4lIRav2d1LgK3bg1XA1tVVEBlJcyZA7/+dZigvjPNOygivaalBXbs6FgEbtoUfqE6Fg0gYQbjxsGkSeGewZ/8JLMxi8inFm+AmKKCIk4vPZ2v/P4r1Oyp4c0P38QJ08eWFpdSVV7FNVOuabsaOPnUyQzpP+SEzqupJaSvUXHYRyQaIAZCj6tt2zoWgLW1oQiM7Y01dmwoAi+9NHzfqqyEiRM7Dr53zjkd7zkEzTsoIl3obpCYlpaQuGKvAm7aBFu2wOHD7cdXVMDkyaHP+qRJYX3ChHD/YCsVhyI5pcVbqP+4ni3vb2HYwGE0tzR32N/U0sQr77zCvqP7mHbaNK6ruq6tEBw7dCzWC/cKa2oJ6WtUHGZId8Vab5+r8wAxN94Ijz4a5gesrQ3zCTZFg3K1/theWQmXXx4eKyvD96zBg7s/X2s7NO+gSA7qrljrbYkGiZk5MySoAwfat48cGYq/m24KBWDrr1TJTA+hqSVEslJjcyN1H9ZR+34tWz7Y0va49YOtHG5q/xFoUL9BHG48jOMUWiFXTriSh+Y/xKB+gzIYvUh+SWlxaGZfBH5BmEz6Pndf2mm/RfsvI0wmfYO7r4/21QOfAM1Ak7tPj7afAjwCjAXqga+6+0c9jTXTxdqiRWG9q3O6h26c+/eH5ZNP2tc7L533Pf98ey+rVseOwYoV8JnPhO9V1dUdi8BBPcyzmndQpJdkU7EWT0sLHDzYnnxil2S2JTJ4cPgla9Kk9mXo0E/fNk0tIdJrkrkHsLPDjYfZundrKP7e30LtB+Fx24fbOkwbMeakMVSWVTJn7BwqyyqZWDaRicMncqTpSNsAMcWFxdx92d0qDEV6WcqKQzMrBH4JzAUagHVm9pi718YcNg8YHy0zgXujx1YXufsHnd76VmCVuy81s1uj5z/oSayfplhLxD0MynLoUPzle987fjTPQ4fCD+GPP951kdfdYHsQrgQOGRKW0tLw2LkwjLVt24m3T0TS6ESLtUSOHQvJ5uDB9qXz80TmzDm+wIu9qpdIQUFISq1La5JKZNWq5N5bRNIu3j2AxYXFVJ9Vzf6j+0Px1+lK4I6PdrTdE1hohZx5yplUllVy5YQrQxE4fCIThk+gpLikq9NqgBiRFEvllcNzgTp33w5gZg8D1UBscVgNPOTuDqwxs6FmNsLddyd432rg89H6r4Fn6GFxePvt8Yu1xYuhvr7rIq/1e1W8xf3E4zhwANavb//eNHZse6EXW+x1XmK3Dxx4/HRcY8eGgrczDRAjkuNak1eiYi/2eVNT9++ZyLFjUFYGZ5xxfJEXr/CLfR4vOYHmDxTJUUtmL+GB1x7osK2ppYkVr6/gnlfuadtWXFjMWcPOYsbpM7iu6rq2K4HjTxlP/6L+n+q8GiBGJHVSWRyOBHbFPG+g41XBro4ZCewGHHjKzBz4T3dfHh1T3lo8uvtuMzu1p4Hu3Bl/+0cfwY9+FK7GlZSErpaDBnVcP+209vV4++MtV18Nu+OUv2PGdD/a+qdx550aIEYkLy1dGhJOa9JpXS8pgWHDOj7vvL+r52ed1fX5XnghfW0Tkaw2onQEC6YtYNkry9quBg4bOIy5Z85l4vCJbVcCx508jqKC3vu6qQFiRFIrlcVhvJ+DO19PS3TMLHd/Jyr+njaz1939uaRPbrYIWARQUVGR8NiKivhX1kaPDtM49OuX7FmT89OfprdY0wAxInmqqSn3r7xpkBiRnLVk9pK2rqUDCgdQ860adfUUyXEFKXzvBmB0zPNRwDvJHuPurY/vASsI3VQB9pjZCIDo8b14J3f35e4+3d2nl5WVJQz0zjuPH4Bl0KAw6nlvF4YQirLly8OVQrPwuHx5aou1a68NXWRbWsKjCkORPJCKwrCroixVxdr+/aEffudFg8eIZL0RpSNYePZCCqyAG8++UYWhSB5IZXG4DhhvZuPMrBj4OvBYp2MeA66z4HPAvqiraImZlQKYWQlwKbAp5jXXR+vXA3/qaaAq1kQka6lYE5EstmT2EsYOHat7AEXyRMq6lbp7k5ndDKwkTGVxv7tvNrObov3LgCcI01jUEaayWBC9vBxYEU1eWgT8zt2fjPYtBX5vZguBncDVvRGvpl4QkaykokxEspjuARTJLymd59DdnyAUgLHblsWsO/CdOK/bDkzt4j33Ahf3bqQiIiIiIiJ9Wyq7lYqIiIiIiEiOUHEoIiIikuXM7ItmttXM6szs1jj7zczuivbXmNk5MfvqzWyjmb1mZq+kN3IRySUp7VYqIiIiIj1jZoXAL4G5hJHe15nZY+5eG3PYPGB8tMwE7qXj/NIXufsHaQpZRHKUrhyKiIiIZLdzgTp33+7ux4CHgepOx1QDD3mwBhjaOvWXiEiyVByKiIiIZLeRwK6Y5w3RtmSPceApM3vVzBalLEoRyXnqVioiIiKS3SzONj+BY2a5+ztmdirwtJm97u7PHXeSUDguAqioqOhJvCKSo3TlUERERCS7NQCjY56PAt5J9hh3b318D1hB6KZ6HHdf7u7T3X16WVlZL4UuIrnEwlSD+c3M3gfeynQcXRgO5PMN4mpfbsvm9o1x95z+9pLluQmy+/PvqXxuG6h9mdar+cnMioA3CPM8vw2sA65x980xx1wO3AxcRhiI5i53P9fMSoACd/8kWn8a+Bd3f7Kbc2Zzfsr2z7+n1L7cls3t6zY39Ylupdn8BdLMXnH36ZmOI1XUvtyW7+3LtGzOTZDfn38+tw3Uvnzj7k1mdjOwEigE7nf3zWZ2U7R/GfAEoTCsAw4BC6KXlwMrzAzC977fdVcYRu+Ztfkp3z9/tS+35Xr7+kRxKCIiIpLL3P0JQgEYu21ZzLoD34nzuu3A1JQHKCJ5QfccioiIiIiIiIrDLLA80wGkmNqX2/K9fZJYPn/++dw2UPskv+X756/25bacbl+fGJBGREREREREEtOVQxEREREREVFxmC5m9kUz22pmdWZ2a5z915pZTbS8aGY5dfN4d+2LOW6GmTWb2VXpjK+nkmmfmX3ezF4zs81m9my6Y+yJJP4/TzKzP5vZhqh9C+K9j+Qe5aa245SbspByU9+m/NR2XM7lJ+WmHM5N7q4lxQth2Ok3gTOAYmADUNnpmPOBk6P1ecDaTMfdm+2LOe5/CaOtXZXpuHv58xsK1AIV0fNTMx13L7fvNuBfo/Uy4EOgONOxa0nLZ6/clKWLcpNyUz4vyk8djsup/KTclNu5SVcO0+NcoM7dt7v7MeBhoDr2AHd/0d0/ip6uAUalOcae6LZ9kcXAo8B76QyuFyTTvmuAP7j7TgB3z6U2JtM+B0otTJQ1mJDkmtIbpqSAclOg3JSdlJv6NuWnIBfzk3JTDucmFYfpMRLYFfO8IdrWlYXA/6Q0ot7VbfvMbCQwH1hG7knm8/sscLKZPWNmr5rZdWmLrueSad/dwETgHWAjcIu7t6QnPEkh5Sblpmym3NS3KT/lbn5Sbsrh3FSU6QD6CIuzLe4wsWZ2ESHBXZDSiHpXMu37OfADd28OP6LklGTaVwT8DXAxMBB4yczWuPsbqQ6uFyTTvi8ArwFzgDOBp83seXffn+LYJLWUm5SbsplyU9+m/JS7+Um5KYdzk4rD9GgARsc8H0X4JaEDM6sC7gPmufveNMXWG5Jp33Tg4Si5DQcuM7Mmd/9jWiLsmWTa1wB84O4HgYNm9hwwFciFJJdM+xYASz10nq8zsx3ABODl9IQoKaLcpNyUzZSb+jblp9zNT8pNuZybMn3TY19YCEX4dmAc7TeuTup0TAVQB5yf6XhT0b5Oxz9IjtxUfQKf30RgVXTsIGATMDnTsfdi++4F/ilaLwfeBoZnOnYtafnslZuydFFuUm7K50X56bjjcyY/KTfldm7SlcM0cPcmM7sZWEkY4eh+d99sZjdF+5cBdwDDgHuiX4ia3H16pmI+EUm2L2cl0z5332JmTwI1QAtwn7tvylzUyUvy8/sx8KCZbSR0p/iBu3+QsaClVyg3KTdlM+Wmvk35KXfzk3JTbucmiypaERERERER6cM0WqmIiIiIiIioOBQREREREREVhyIiIiIiIoKKQxEREREREUHFoYiIiIiIiKDiUNLEzEaZ2Z/MbJuZvWlmvzCz4kzHJSJ9m3KTiGQr5SfJBBWHknIWJh/6A/BHdx8PfBYYDNyZ0cBEpE9TbhKRbKX8JJmi4lDSYQ5wxN0fAHD3ZuB7wI1mVmJm/25mG82sxswWA5jZDDN70cw2mNnLZlZqZjeY2d2tb2pmj5vZ56P1A2b2MzNbb2arzKws2v53ZrYuep9HzWxQtP1BM7srOsd2M7sq5n2/H8WzwcyWmtmZZrY+Zv94M3s15X81EUk15SYRyVbKT5IRKg4lHSYBHRKCu+8HdgLfBMYBZ7t7FfDbqMvEI8At7j4VuAQ43M05SoD17n4O8Czwj9H2P7j7jOh9tgALY14zArgAuAJYCmBm84ArgZnRa/7N3d8E9pnZtOh1C4AHT+QPICJZSblJRLKV8pNkhIpDSQcDvIvts4Fl7t4E4O4fAmcBu919XbRtf+v+BFoISRHgvwiJC2CymT1vZhuBawnJttUf3b3F3WuB8mjbJcAD7n4oJh6A+4AFZlYIfA34XRLtFpHsptwkItlK+UkyQsWhpMNmYHrsBjMbAowmfvLrKiE20fF/dkCCc7a+/kHgZnefAvxzp9cc7XTOROd+FJhH+KXsVXffm+DcIpIblJtEJFspP0lGqDiUdFgFDDKz6wCiX5B+Rkg+TwE3mVlRtO8U4HXgdDObEW0rjfbXA9PMrMDMRgPnxpyjAGjt+34N8EK0XgrsNrN+hF+/uvMUoT9/a//6UwDc/QiwErgXeOBE/wAikpWUm0QkWyk/SUYUZToAyX/u7mY2H7jHzJYQktETwG1AM2EErhozawR+5e53m9nXgP8ws4GEPvOXAKuBHcBGYBOwPuY0B4FJ0c3O+wjdFwCWAGuBt6LXlXYT65NR//hXzOxYTJwAvwW+TEiCIpLjlJtEJFspP0mmmHu8q8AiucXMDrj74BSf4x+Ak9x9SSrPIyL5Q7lJRLKV8pPEoyuHIkkwsxXAmYShpUVEsoJyk4hkK+Wn3KQrhyIiIiIiIqIBaURERERERETFoYiIiIiIiKDiUERERERERFBxKCIiIiIiIqg4FBEREREREVQcioiIiIiICPD/DISBtmbOLToAAAAASUVORK5CYII=\n", + "image/png": "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XSU+8VfJkmk6bd68eQE4cOAAjRs3JjAwkDp16jBlStwqY/Tv358aNWpQt25dHn74YSIiIm56zkWLFtGsWTNq1qxJYGAgffr04eDBgwA89NBDVKpUicDAQAIDA2nZsmXccT/99BP169enZs2a1KtXj59++inuuYceeojcuXNz/vz5uG1PPfUUIsLJkycBu+B57HkDAwN555136NmzJ4GBgVStWpUCBQrEPbdmzRpuu+02atSoQYMGDWjatCmbN2+OO3fFihXjznvs2DH69u1LlSpVqF27Np07d2bXrl2p+4WnVsWKSX/+FSum6bSxnz/AwYMHufPOO6lVqxa1a9cmNDQ0wb5PPPFEgv2Tk9E+/3vvuJf77rzPu5+/MSbTfDVu3NgopXzPxYupPxbYYHygfUnLl7ZNSvmgIUOMmT491Ydr22SMgeS/0iBPnjzGGGOuXr1qrly5Yowx5vz586ZChQrm8OHDxhhjFixYYKKjo010dLTp27ev+eSTT5I939atW03VqlXN9u3b47b9/PPPZsWKFcYYYx588EEze/bsG47bvHmzqVKlitm3b58xxph9+/aZKlWqmL///jvuuHr16pmvv/7aGGNMVFSUqVevnilTpow5ceJEgveSlN9++8106dIlwba2bdua9evXG2OM+fzzz0379u3jnqtQoYI5ceKEiY6ONrfccov573//G/fcpk2bzMqVK5N9La9I7nP20OdvjP19LFmyxBhj/w1cjHdBsX79ejNgwICb/o6NyXif/70f3mtWhK5I0+fvSvuk9+aVUl6XO7fTESilVDxnzsDnn0Pp0k5H4tuefhri9US45bbbkt4eGAgffujSKQICAuJ+vnr1KtHR0XGPO3fuHPdzs2bNCAsLS/Y848eP56WXXqJWretFNrp165bi60+YMIGXXnqJSpUqAVCpUiVefPFF3n33Xb7++msA+vXrx/fff8+AAQNYvnw5rVq1YuHChS69v5S0aNGCd99994btv/32G9mzZ2f48OFx2wIDAz3ymjdI6nO87z549NHkn4918iT07p1wW2yhABds376dyMhIOnToACTsIYyKimLUqFF8++23zJ0796bnyUif/8VrF5m9bTZ33XoXrVq08urnr8NBlVJeM2oUPPaY01EopVQiy5dDdDS0b+90JCoFhw4don79+pQrV47nn3+e0okS94iICL7+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\n", "text/plain": [ "
" ] @@ -549,7 +549,7 @@ "outputs": [ { "data": { - "image/png": "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r6mZlc3CmADeB24zsypxw1bvOcXrnMr7Gw+MsuPFe8qb2UWn+PoiInmKkkARkcwphJ/ntAs/JO50/FC/+KRlt5ktds7txxeqeB9foKI/8ElKF4wb7nchfv7e30AkcEUWx/08fo7gduB1jg9dTMlk/JzHf8xsRmZeNJ1/h21x+7bExTXUObcqg68T/zcMB9bjP59JQHySkOTzSec1p+N7ed81s33AH/iCJIlNA7rjC8WkN5ZMS+vvGvf3mwasi/scKwPPxR3/JbAP/zkXyaqY4rwad/1l+MI2s4Bo/Bcl6XaK729s3DFfmtl+4Bd8D62ISL6nxeJFRCTHMC36nafF9eCNd87VCHYsIiL5mXoCRUREJCDihr+eb2YFzKwK8BAwPdhxiYjkd0oCRURyCfMLkh9I4TE+2LFlBzNbnsr7T3Mx+ZzKzD5P5T3dH+zYsogBj+CHcC7BV+gcCZDK+z4QNw9UREQCSMNBRURERERE8hH1BIqIiIiIiOQjSgJFRERERETyESWBIiIiIiIi+YiSQBERERERkXxESaCIiIiIiEg+oiRQREREREQkH1ESKCIiIiIiko8oCRQREREREclHlASKiIiIiIjkI0oCRURERERE8hElgSIiIiIiIvmIkkAREREREZF8REmgiIiIiIhIPqIkUEREREREJB9REigiIiIiIpKPKAkUERERERHJR5QEioiIiIiI5CNKAkVERERERPIRJYEiIiIiIiL5iJJAERERERGRfERJoIiIiIiISD6iJFBERERERCQfKRDsALJSuXLlXM2aNYMdhohkoUWLFu1yzpUPdhyZobZJJO9R2yQiOVV62qc8lQTWrFmThQsXBjsMEclCZrYx2DFkltomkbxHbZOI5FTpaZ80HFRERERERCQfURIoIiIiIiKSjygJFBERERERyUeUBIqIiIiIiOQjSgJFRERERETyESWBIiIiIiIi+UieWiJCRHK2o0dh82aoUAGKFQt2NCIiIiI5U+S+SA5HHT5he+kipSlXtFymrx/QJNDMegJjgVBgknNudLL9DYCpQAvgAefcmET7NgD7gRgg2jkXEchYRSRwnINnn4WnnvLJ37//wpAh8MQTEBoa7OhEJF8rUwb27j1xe+nSsGdP9scjIvnekegj1B5bm9OLnU6RgkUStu85vIf6Zesz77p5mX6NgA0HNbNQYBxwHtAQuNLMGiY7bA8wDBhDyro658KVAIrkbq+9Bq+/DvPmwYYNsHw5/PorPPZYsCMTkXxv717/TVXyR0qJoWSL4sWLA7Bx40ZatmxJeHg4jRo1Yvz48QnHDBgwgPr169O4cWMGDx5MVFTUSa/5xRdf0Lp1axo0aEB4eDhXXHEFf//9d8L+6OhoypUrx3333ZfkvJo1a7Jr166E53PmzOGCCy4AYPv27VxwwQU0a9aMhg0bcv755wMQGxvLsGHDaNy4MU2aNKFVq1asX78+xetNnz4dM2PVqlUJ2zZs2ICZ8eKLLyZsu+WWW3jttdfS9ffL7eI/f4C///6bc845hzPPPJOGDRuyYcOGJMfeeuutSY5PTW77/IsULEJEZATXhl/LX7f+xbmrz+WBEg/Q5PQm3NjyxjTfb3oEck5ga2CNc26dc+4Y8C5wUeIDnHM7nHMLgJP/nysiudrYsfDCC1Cvnn9euTJMmgTjxkFMTHBjExHBuWBHkGu9/TbUrAkhIf7n229n3bUrVarEvHnzWLp0KfPnz2f06NFs2bIF8EngqlWr+P333zl8+DCTJk1K9Tp//PEHt956K6+//jqrVq1i6dKlDBgwIElC8eWXX1K/fn3ef/99XDr/exg5ciQ9evTgt99+Y8WKFYwe7Qe8vffee2zZsoVly5bx+++/M336dEqVKpXiNaZNm0aHDh149913k2w//fTTGTt2LMeOHUtXLMEybRo0buxH9TRu7J9npWuuuYbhw4ezcuVKfv31V04//fSEfQsXLuSff/5J8xq59fPf8tUWXv7lZXYf2g3Aql2riNwXyYCmA9IVX1oCmQRWATYleh4Zty29HPClmS0ysyFZGpmIZKsNG6BKsv/7a9eGAwfgyJGghCQiAitW+J8NGsD+/cGNJRd6+20/tH/jRp9Hb9zon2dVIhgWFkahQoUAOHr0KLGxsQn7zj//fMwMM6N169ZERkamep2nnnqK+++/nzPPPDNhW+/evenUqVPC82nTpnHbbbdRvXp1fvnll3TFt3XrVqpWrZrwvGnTpgnbK1WqREiIv82uWrUqpUuXPuH8AwcOMHfuXCZPnnxCElC+fHm6devG66+/nq5YgmHaNHjgAXjxRf9v+Ysv+udZlQiuWLGC6OhoevToAfgewqJFiwIQExPD8OHDefrpp9O8Tm79/M/tcS6NtjTi+V+eB2DGqhmM6DSCAiFZM5svkEmgpbAtI1+1tXfOtcAPJ73ZzDqldJCZDTGzhWa2cOfOnacSp4gEgHPwzTfQu7efA5hshAXffusTwbj2XEQke+zd6+9WIyKgUSO/7YwzYPfu4MaVA91+O3Tpkvrjuuvg0KGk5xw65Lends7tt2cshk2bNtG0aVOqVavGPffcQ+XKlZPsj4qK4s0336Rnz56pXmP58uW0aNEi1f2HDx/mm2++4YILLuDKK69kWjqzmJtvvpnrrruOrl27MmrUqIReyssvv5z/+7//Izw8nDvvvJMlS5akeP6MGTPo2bMnZ5xxBmXKlGHx4sVJ9t977708++yzxARxyExKn+HLL/t9jz0GJUrAI49Ajx7+Z4kSMHy4379r14nnZsSff/5JqVKluOSSS2jevDnDhw9P+Fu89NJL9O7dm0qVKqV5ndz4+TsctIclHy9h3PxxrN27lj2H92RZLyAENgmMBKolel4V2JLek51zW+J+7gCm44eXpnTcROdchHMuonz58pkIV0SygnMweTI0bQrdu8Mvv8DgwTBnjh8Suny5nx949dUwahRYSl8XiYhkpWPHIP6L4k2bYNgwPxb9ef8NO//3f34so2TI0aMZ234qqlWrxrJly1izZg2vv/4627dvT7L/pptuolOnTnTs2DFd19u9ezfh4eGcccYZjBnjS1J8+umndO3alaJFi3LppZcyffr0hGTDUvhHKn7bueeey7p167jhhhtYtWoVzZs3Z+fOnVStWpXVq1fz5JNPEhISQrdu3fjmm29OuM60adPo168fAP369Tsh+ahVqxatW7fmnXfeSdd7y26rV8NppyXddtppsCXdd/snFx0dzY8//siYMWNYsGAB69at47XXXmPLli188MEH3HrrrRm+Zm74/NfsXsO6veuYuH4ilRpUoumOpny59kt61++dZb2AENjqoAuAemZWC9gM9AP6p+dEMysGhDjn9sf9fg7waMAiFZFM++cfKFXKJ3UffODnB0ydCv36QeHCcPPNvjroK69A3bp+uFDXrsGJNTOVi+P2hwILgc3OuQuyJ2oRyRDnYOFCeOMNPz7t/PP9702bwsqVfggowKOPpvxtVArDt/Kb//3v5Ptr1vRDQJOrUcN/8ZeVKleuTKNGjfjxxx/p27cvAI888gg7d+5kwoQJJz23UaNGLF68mGbNmlG2bFmWLl3K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A/z999+cc845nHnmmTRs2JANGzYkOfbWW29NcnxqAvX5v3XFW4RFhzF38FwW37iY5kub88dNf9C+bHtmDZjFmtvWcEOvG3Lm55/WavK56dGyZUsnIsft2uVc2bLOgXONGjn38svO7dsX7KgyBljockD7kpmH2ibJN0qX9g1O8kexYs516eJ/Dwtzbv36YEeaaWqbXMqfdfwjE4oVK+acc+7o0aPuyJEjzjnn9u/f72rUqOE2b97snHPus88+c7GxsS42Ntb169fPvfzyy6le7/fff3d169Z1K1asSNg2c+ZM9/333zvnnBs4cKD74IMPTjhv6dKlrk6dOm7dunXOOefWrVvn6tSp43777beE85o0aeLefPNN55xzMTExrkmTJq5KlSpu586dSd5LSr777jvXq1evJNs6d+7sFixY4JxzbsqUKa579+4J+2rUqOF27tzpYmNjXdu2bd0rr7ySsG/JkiXuhx9+SPW1AiK1zzmLPn/n/N/jyy+/dM75/wYOHjyYsG/BggXuqquuOunf2LnAf/4tb27pnpv3nHvh5xecVTAXclqIm7FoxgnvJblAfv7paZ80HFQkF/rhB3jpJYiMhNat4Y47/Ly+2Fj4+mv4/Xe4804oW9YP+ezSBTp3Vq+eiARY8kXdFy3yBV22b/dr+o0eDYMGwemnBy1EyYDbbz8+dCSjunRJeXt4uJ+TkA5hYWEJvx89epTY2NiE5+eff37C761btyYyMjLV6zz11FPcf//9nHnmmQnbeqdjrsOYMWO4//77qVWrFgC1atXivvvu45lnnuHNN98E4Morr+S9997jqquuYs6cObRv357PP//8ZJdNt3bt2vFMfM95It999x0FCxZk6NChCdvCw8Oz5DVPkNLnePnlcNNNqe+Pt2uXLyyQ2Jw56X7pFStWEB0dTY8ePYCkPYQxMTEMHz6cd955h+nTp5/0OoH+/Gd+NZP7vrmPo38dpcwZZTi44iDtq7dP9/tMTaA/fw0HFcllpk2D/v19xc6nn4ZChXwiOHIkNGjgR1c9/zwcOeKPf/hh30YrARSRbPHFF/DZZ/73Bg38vD+ANWvgnnuUAEqGbNq0iaZNm1KtWjXuueceKleunGR/VFQUb775Jj1PsnzI8uXLadHihEKpSQwfPjxhWN6AAQMSzmvZsmWS4yIiIli+fHnC83r16rFz50727t3L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\n", + "image/png": "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\n", "text/plain": [ "
" ] From cdcbbd4cd2ae559cc9e127612c6e1fb9d508c524 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 9 Jun 2021 15:02:32 -0400 Subject: [PATCH 137/267] Rename num_items to num_matches --- include/cuco/detail/static_multimap.inl | 84 ++++++------ .../cuco/detail/static_multimap_kernels.cuh | 124 ++++++++++-------- 2 files changed, 111 insertions(+), 97 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 3f7110c3d..42ed2bfc7 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -123,19 +123,19 @@ std::size_t static_multimap::count( auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; + atomic_ctr_type* num_matches; + CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); + *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); detail::count - <<>>(first, last, num_items, view, key_equal); + <<>>(first, last, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - size_t result = *num_items; - CUCO_CUDA_TRY(cudaFree(num_items)); + size_t result = *num_matches; + CUCO_CUDA_TRY(cudaFree(num_matches)); return result; } @@ -157,19 +157,19 @@ std::size_t static_multimap::count_ constexpr bool is_outer = true; - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; + atomic_ctr_type* num_matches; + CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); + *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); detail::count - <<>>(first, last, num_items, view, key_equal); + <<>>(first, last, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - size_t result = *num_items; - CUCO_CUDA_TRY(cudaFree(num_items)); + size_t result = *num_matches; + CUCO_CUDA_TRY(cudaFree(num_matches)); return result; } @@ -189,19 +189,19 @@ std::size_t static_multimap::pair_c auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; + atomic_ctr_type* num_matches; + CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); + *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); detail::pair_count - <<>>(first, last, num_items, view, pair_equal); + <<>>(first, last, num_matches, view, pair_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - size_t result = *num_items; - CUCO_CUDA_TRY(cudaFree(num_items)); + size_t result = *num_matches; + CUCO_CUDA_TRY(cudaFree(num_matches)); return result; } @@ -223,19 +223,19 @@ std::size_t static_multimap::pair_c constexpr bool is_outer = true; - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; + atomic_ctr_type* num_matches; + CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); + *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); detail::pair_count - <<>>(first, last, num_items, view, pair_equal); + <<>>(first, last, num_matches, view, pair_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - size_t result = *num_items; - CUCO_CUDA_TRY(cudaFree(num_items)); + size_t result = *num_matches; + CUCO_CUDA_TRY(cudaFree(num_matches)); return result; } @@ -257,19 +257,19 @@ OutputIt static_multimap::retrieve( auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; + atomic_ctr_type* num_matches; + CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); + *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); detail::retrieve - <<>>(first, last, output_begin, num_items, view, key_equal); + <<>>(first, last, output_begin, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - auto output_end = output_begin + *num_items; - CUCO_CUDA_TRY(cudaFree(num_items)); + auto output_end = output_begin + *num_matches; + CUCO_CUDA_TRY(cudaFree(num_matches)); return output_end; } @@ -293,19 +293,19 @@ OutputIt static_multimap::retrieve_ constexpr bool is_outer = true; - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; + atomic_ctr_type* num_matches; + CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); + *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); detail::retrieve - <<>>(first, last, output_begin, num_items, view, key_equal); + <<>>(first, last, output_begin, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaDeviceSynchronize()); - auto output_end = output_begin + *num_items; - CUCO_CUDA_TRY(cudaFree(num_items)); + auto output_end = output_begin + *num_matches; + CUCO_CUDA_TRY(cudaFree(num_matches)); return output_end; } diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 60bd6ac13..79afeadfb 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -37,7 +37,7 @@ namespace cg = cooperative_groups; * @param g The Cooperative Group used to flush output buffer * @param num_outputs Number of valid output in the buffer * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_items Size of the output sequence + * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ template : flush_output_buffer(CG const& g, uint32_t const num_outputs, cuco::pair_type* output_buffer, - atomicT* num_items, + atomicT* num_matches, OutputIt output_begin) { std::size_t offset; const auto lane_id = g.thread_rank(); - if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } offset = g.shfl(offset, 0); cg::memcpy_async(g, @@ -78,7 +80,7 @@ flush_output_buffer(CG const& g, * @param g The Cooperative Group used to flush output buffer * @param num_outputs Number of valid output in the buffer * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_items Size of the output sequence + * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ template * output_buffer, - atomicT* num_items, + atomicT* num_matches, OutputIt output_begin) { std::size_t offset; const auto lane_id = g.thread_rank(); - if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } offset = g.shfl(offset, 0); for (auto index = lane_id; index < num_outputs; index += cg_size) { @@ -115,21 +119,23 @@ flush_output_buffer(CG const& g, * @param activemask Mask of active threads in the warp * @param num_outputs Number of valid output in the buffer * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_items Size of the output sequence + * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ template __inline__ __device__ void flush_output_buffer(const unsigned int activemask, uint32_t const num_outputs, cuco::pair_type* output_buffer, - atomicT* num_items, + atomicT* num_matches, OutputIt output_begin) { int num_threads = __popc(activemask); std::size_t offset; const auto lane_id = threadIdx.x % 32; - if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } offset = __shfl_sync(activemask, offset, 0); for (auto index = lane_id; index < num_outputs; index += num_threads) { @@ -286,7 +292,7 @@ __global__ void contains( * @tparam KeyEqual Binary callable * @param first Beginning of the sequence of keys to count * @param last End of the sequence of keys to count - * @param num_items The number of all the matches for a sequence of keys + * @param num_matches The number of all the matches for a sequence of keys * @param view Device view used to access the hash map's slot storage * @param key_equal Binary function to compare two keys for equality */ @@ -301,7 +307,7 @@ template __global__ std::enable_if_t count( - InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) + InputIt first, InputIt last, atomicT* num_matches, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -309,7 +315,7 @@ __global__ std::enable_if_t count( typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; + std::size_t thread_num_matches = 0; while (first + key_idx < last) { auto key = *(first + key_idx); @@ -335,10 +341,10 @@ __global__ std::enable_if_t count( if (tile.any(first_equals or second_equals)) { found_match = true; } - thread_num_items += (first_equals + second_equals); + thread_num_matches += (first_equals + second_equals); if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } break; } @@ -360,7 +366,7 @@ __global__ std::enable_if_t count( auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - thread_num_items += (first_equals + second_equals); + thread_num_matches += (first_equals + second_equals); if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } @@ -372,8 +378,10 @@ __global__ std::enable_if_t count( // compute number of successfully inserted elements for each block // and atomically add to the grand total - std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } + std::size_t block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); + if (threadIdx.x == 0) { + num_matches->fetch_add(block_num_matches, cuda::std::memory_order_relaxed); + } } /** @@ -394,7 +402,7 @@ __global__ std::enable_if_t count( * @tparam KeyEqual Binary callable * @param first Beginning of the sequence of keys to count * @param last End of the sequence of keys to count - * @param num_items The number of all the matches for a sequence of keys + * @param num_matches The number of all the matches for a sequence of keys * @param view Device view used to access the hash map's slot storage * @param key_equal Binary function to compare two keys for equality */ @@ -409,7 +417,7 @@ template __global__ std::enable_if_t count( - InputIt first, InputIt last, atomicT* num_items, viewT view, KeyEqual key_equal) + InputIt first, InputIt last, atomicT* num_matches, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -417,7 +425,7 @@ __global__ std::enable_if_t count( typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; + std::size_t thread_num_matches = 0; while (first + key_idx < last) { auto key = *(first + key_idx); @@ -436,10 +444,10 @@ __global__ std::enable_if_t count( if (tile.any(equals)) { found_match = true; } - thread_num_items += equals; + thread_num_matches += equals; if (tile.any(slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } break; } @@ -454,7 +462,7 @@ __global__ std::enable_if_t count( auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); auto const equals = not slot_is_empty and key_equal(current_key, key); - thread_num_items += equals; + thread_num_matches += equals; if (tile.any(slot_is_empty)) { break; } @@ -463,8 +471,10 @@ __global__ std::enable_if_t count( } key_idx += (gridDim.x * block_size) / tile_size; } - auto const block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } + auto const block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); + if (threadIdx.x == 0) { + num_matches->fetch_add(block_num_matches, cuda::std::memory_order_relaxed); + } } /** @@ -484,7 +494,7 @@ __global__ std::enable_if_t count( * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count - * @param num_items The number of all the matches for a sequence of pairs + * @param num_matches The number of all the matches for a sequence of pairs * @param view Device view used to access the hash map's slot storage * @param pair_equal Binary function to compare two pairs for equality */ @@ -499,7 +509,7 @@ template __global__ std::enable_if_t pair_count( - InputIt first, InputIt last, atomicT* num_items, viewT view, PairEqual pair_equal) + InputIt first, InputIt last, atomicT* num_matches, viewT view, PairEqual pair_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -507,7 +517,7 @@ __global__ std::enable_if_t pair_count( typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; + std::size_t thread_num_matches = 0; while (first + pair_idx < last) { cuco::pair_type pair = *(first + pair_idx); @@ -535,10 +545,10 @@ __global__ std::enable_if_t pair_count( if (tile.any(first_slot_equals or second_slot_equals)) { found_match = true; } - thread_num_items += (first_slot_equals + second_slot_equals); + thread_num_matches += (first_slot_equals + second_slot_equals); if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } break; } @@ -561,7 +571,7 @@ __global__ std::enable_if_t pair_count( auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - thread_num_items += (first_slot_equals + second_slot_equals); + thread_num_matches += (first_slot_equals + second_slot_equals); if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } @@ -573,8 +583,10 @@ __global__ std::enable_if_t pair_count( // compute number of successfully inserted elements for each block // and atomically add to the grand total - std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } + std::size_t block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); + if (threadIdx.x == 0) { + num_matches->fetch_add(block_num_matches, cuda::std::memory_order_relaxed); + } } /** @@ -594,7 +606,7 @@ __global__ std::enable_if_t pair_count( * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count - * @param num_items The number of all the matches for a sequence of pairs + * @param num_matches The number of all the matches for a sequence of pairs * @param view Device view used to access the hash map's slot storage * @param pair_equal Binary function to compare two pairs for equality */ @@ -609,7 +621,7 @@ template __global__ std::enable_if_t pair_count( - InputIt first, InputIt last, atomicT* num_items, viewT view, PairEqual pair_equal) + InputIt first, InputIt last, atomicT* num_matches, viewT view, PairEqual pair_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -617,7 +629,7 @@ __global__ std::enable_if_t pair_count( typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_items = 0; + std::size_t thread_num_matches = 0; while (first + pair_idx < last) { cuco::pair_type pair = *(first + pair_idx); @@ -636,10 +648,10 @@ __global__ std::enable_if_t pair_count( if (tile.any(equals)) { found_match = true; } - thread_num_items += equals; + thread_num_matches += equals; if (tile.any(slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_items++; } + if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } break; } @@ -653,7 +665,7 @@ __global__ std::enable_if_t pair_count( auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); - thread_num_items += equals; + thread_num_matches += equals; if (tile.any(slot_is_empty)) { break; } @@ -665,8 +677,10 @@ __global__ std::enable_if_t pair_count( // compute number of successfully inserted elements for each block // and atomically add to the grand total - std::size_t block_num_items = BlockReduce(temp_storage).Sum(thread_num_items); - if (threadIdx.x == 0) { num_items->fetch_add(block_num_items, cuda::std::memory_order_relaxed); } + std::size_t block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); + if (threadIdx.x == 0) { + num_matches->fetch_add(block_num_matches, cuda::std::memory_order_relaxed); + } } /** @@ -674,11 +688,11 @@ __global__ std::enable_if_t pair_count( * oads combined with per-block shared memory buffer. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and + * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Else, copies `k` and * the empty value sentinel. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. + * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups @@ -698,7 +712,7 @@ __global__ std::enable_if_t pair_count( * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of values retrieved for each key - * @param num_items Size of the output sequence + * @param num_matches Size of the output sequence * @param view Device view used to access the hash map's slot storage * @param key_equal The binary function to compare two keys for equality */ @@ -717,7 +731,7 @@ template retrieve(InputIt first, InputIt last, OutputIt output_begin, - atomicT* num_items, + atomicT* num_matches, viewT view, KeyEqual key_equal) { @@ -802,7 +816,7 @@ __global__ std::enable_if_t retrieve(InputIt first, __syncwarp(activemask); if (warp_counter[warp_id] + 32 * 2 > buffer_size) { flush_output_buffer( - activemask, warp_counter[warp_id], output_buffer[warp_id], num_items, output_begin); + activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); // First lane reset warp-level counter if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } } @@ -858,7 +872,7 @@ __global__ std::enable_if_t retrieve(InputIt first, __syncwarp(activemask); if (warp_counter[warp_id] + 32 * 2 > buffer_size) { flush_output_buffer( - activemask, warp_counter[warp_id], output_buffer[warp_id], num_items, output_begin); + activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); // First lane reset warp-level counter if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } } @@ -872,7 +886,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Final flush of output buffer if (warp_counter[warp_id] > 0) { flush_output_buffer( - activemask, warp_counter[warp_id], output_buffer[warp_id], num_items, output_begin); + activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); } } @@ -881,11 +895,11 @@ __global__ std::enable_if_t retrieve(InputIt first, * loads combined with per-CG shared memory buffer. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_items - 1)`. Else, copies `k` and + * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Else, copies `k` and * the empty value sentinel. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_begin + *num_items - 1)`. Use `count()` to determine the number of matching keys. + * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups @@ -905,7 +919,7 @@ __global__ std::enable_if_t retrieve(InputIt first, * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of values retrieved for each key - * @param num_items Size of the output sequence + * @param num_matches Size of the output sequence * @param view Device view used to access the hash map's slot storage * @param key_equal The binary function to compare two keys for equality */ @@ -924,7 +938,7 @@ template retrieve(InputIt first, InputIt last, OutputIt output_begin, - atomicT* num_items, + atomicT* num_matches, viewT view, KeyEqual key_equal) { @@ -988,7 +1002,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Flush if the next iteration won't fit into buffer if ((cg_counter[cg_id] + tile_size) > buffer_size) { flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); // First lane reset CG-level counter if (lane_id == 0) { cg_counter[cg_id] = 0; } } @@ -1025,7 +1039,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Flush if the next iteration won't fit into buffer if ((cg_counter[cg_id] + tile_size) > buffer_size) { flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); // First lane reset CG-level counter if (lane_id == 0) { cg_counter[cg_id] = 0; } } @@ -1038,7 +1052,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Final flush of output buffer if (cg_counter[cg_id] > 0) { flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_items, output_begin); + tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); } } From e4ece4f848b823f7685c3db1ec635f51e0150c33 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 9 Jun 2021 15:44:00 -0400 Subject: [PATCH 138/267] Create and use view::count functions --- include/cuco/detail/static_multimap.inl | 117 ++++++++++++++++++ .../cuco/detail/static_multimap_kernels.cuh | 100 +-------------- include/cuco/static_multimap.cuh | 46 +++++++ 3 files changed, 167 insertions(+), 96 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 42ed2bfc7..c8ba3f10b 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -559,4 +559,121 @@ static_multimap::device_view::conta } } +template +template +__device__ std::enable_if_t +static_multimap::device_view::count( + CG const& g, std::size_t& thread_num_matches, Key const& k, KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, k); + + if constexpr (is_outer) { + bool found_match = false; + + while (true) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + + if (g.any(first_equals or second_equals)) { found_match = true; } + + thread_num_matches += (first_equals + second_equals); + + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + return; + } + + current_slot = next_slot(current_slot); + } + } else { + while (true) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + + thread_num_matches += (first_equals + second_equals); + + if (g.any(first_slot_is_empty or second_slot_is_empty)) { return; } + + current_slot = next_slot(current_slot); + } + } +} + +template +template +__device__ std::enable_if_t +static_multimap::device_view::count( + CG const& g, std::size_t& thread_num_matches, Key const& k, KeyEqual key_equal) noexcept +{ + auto current_slot = initial_slot(g, k); + + if constexpr (is_outer) { + bool found_match = false; + + while (true) { + pair slot_contents = + *reinterpret_cast const*>(current_slot); + auto const& current_key = slot_contents.first; + + auto const slot_is_empty = (current_key == this->get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, k); + + if (g.any(equals)) { found_match = true; } + + thread_num_matches += equals; + + if (g.any(slot_is_empty)) { + if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + break; + } + + current_slot = next_slot(current_slot); + } + } else { + while (true) { + pair slot_contents = + *reinterpret_cast const*>(current_slot); + auto const& current_key = slot_contents.first; + + auto const slot_is_empty = (current_key == this->get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, k); + + thread_num_matches += equals; + + if (g.any(slot_is_empty)) { break; } + + current_slot = next_slot(current_slot); + } + } +} } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 79afeadfb..ccaced8b8 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -318,61 +318,8 @@ __global__ std::enable_if_t count( std::size_t thread_num_matches = 0; while (first + key_idx < last) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key); - - if constexpr (is_outer) { - bool found_match = false; - - while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - - if (tile.any(first_equals or second_equals)) { found_match = true; } - - thread_num_matches += (first_equals + second_equals); - - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } - break; - } - - current_slot = view.next_slot(current_slot); - } - } else { - while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - - thread_num_matches += (first_equals + second_equals); - - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } - - current_slot = view.next_slot(current_slot); - } - } + auto key = *(first + key_idx); + view.count(tile, thread_num_matches, key, key_equal); key_idx += (gridDim.x * block_size) / tile_size; } @@ -428,47 +375,8 @@ __global__ std::enable_if_t count( std::size_t thread_num_matches = 0; while (first + key_idx < last) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key); - - if constexpr (is_outer) { - bool found_match = false; - - while (true) { - pair slot_contents = - *reinterpret_cast const*>(current_slot); - auto const& current_key = slot_contents.first; - - auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, key); - - if (tile.any(equals)) { found_match = true; } - - thread_num_matches += equals; - - if (tile.any(slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } - break; - } - - current_slot = view.next_slot(current_slot); - } - } else { - while (true) { - pair slot_contents = - *reinterpret_cast const*>(current_slot); - auto const& current_key = slot_contents.first; - - auto const slot_is_empty = (current_key == view.get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, key); - - thread_num_matches += equals; - - if (tile.any(slot_is_empty)) { break; } - - current_slot = view.next_slot(current_slot); - } - } + auto key = *(first + key_idx); + view.count(tile, thread_num_matches, key, key_equal); key_idx += (gridDim.x * block_size) / tile_size; } auto const block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 03a7f4765..25f3612cd 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -715,6 +715,52 @@ class static_multimap { template > __device__ std::enable_if_t contains( CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the occurrence of a given key contained in multimap using vector loads. + * + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the contains operation + * @param thread_num_matches Number of matches found by the current thread + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ std::enable_if_t count( + CG const& g, + std::size_t& thread_num_matches, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the occurrence of a given key contained in multimap using scalar loads. + * + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the contains operation + * @param thread_num_matches Number of matches found by the current thread + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ std::enable_if_t count( + CG const& g, + std::size_t& thread_num_matches, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device_view /** From 4dea589bdd84a16d4291d93b444311e04e359ff9 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 9 Jun 2021 16:33:19 -0400 Subject: [PATCH 139/267] Refactor global pair_count to use view::pair_count functions --- include/cuco/detail/static_multimap.inl | 135 +++++++++++++++++- .../cuco/detail/static_multimap_kernels.cuh | 64 +-------- include/cuco/static_multimap.cuh | 53 ++++++- 3 files changed, 182 insertions(+), 70 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index c8ba3f10b..0a20fde62 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -567,7 +567,7 @@ template __device__ std::enable_if_t static_multimap::device_view::count( - CG const& g, std::size_t& thread_num_matches, Key const& k, KeyEqual key_equal) noexcept + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -595,7 +595,7 @@ static_multimap::device_view::count if (g.any(first_slot_is_empty or second_slot_is_empty)) { if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } - return; + break; } current_slot = next_slot(current_slot); @@ -618,7 +618,7 @@ static_multimap::device_view::count thread_num_matches += (first_equals + second_equals); - if (g.any(first_slot_is_empty or second_slot_is_empty)) { return; } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { break; } current_slot = next_slot(current_slot); } @@ -633,7 +633,7 @@ template __device__ std::enable_if_t static_multimap::device_view::count( - CG const& g, std::size_t& thread_num_matches, Key const& k, KeyEqual key_equal) noexcept + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -676,4 +676,131 @@ static_multimap::device_view::count } } } + +template +template +__device__ std::enable_if_t +static_multimap::device_view::pair_count( + CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept +{ + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + if constexpr (is_outer) { + bool found_match = false; + + while (true) { + cuco::pair_type arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } + + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + + auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); + + if (g.any(first_slot_equals or second_slot_equals)) { found_match = true; } + + thread_num_matches += (first_slot_equals + second_slot_equals); + + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + break; + } + + current_slot = next_slot(current_slot); + } + } else { + while (true) { + cuco::pair_type arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); + } + + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + + auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); + + thread_num_matches += (first_slot_equals + second_slot_equals); + + if (g.any(first_slot_is_empty or second_slot_is_empty)) { break; } + + current_slot = next_slot(current_slot); + } + } +} + +template +template +__device__ std::enable_if_t +static_multimap::device_view::pair_count( + CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept +{ + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + if constexpr (is_outer) { + bool found_match = false; + + while (true) { + auto slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); + + auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); + + if (g.any(equals)) { found_match = true; } + + thread_num_matches += equals; + + if (g.any(slot_is_empty)) { + if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + break; + } + + current_slot = next_slot(current_slot); + } + } else { + while (true) { + auto slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); + + auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); + + thread_num_matches += equals; + + if (g.any(slot_is_empty)) { break; } + + current_slot = next_slot(current_slot); + } + } +} + } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index ccaced8b8..f6bbac3ee 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -319,7 +319,7 @@ __global__ std::enable_if_t count( while (first + key_idx < last) { auto key = *(first + key_idx); - view.count(tile, thread_num_matches, key, key_equal); + view.count(tile, key, thread_num_matches, key_equal); key_idx += (gridDim.x * block_size) / tile_size; } @@ -376,7 +376,7 @@ __global__ std::enable_if_t count( while (first + key_idx < last) { auto key = *(first + key_idx); - view.count(tile, thread_num_matches, key, key_equal); + view.count(tile, key, thread_num_matches, key_equal); key_idx += (gridDim.x * block_size) / tile_size; } auto const block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); @@ -428,64 +428,8 @@ __global__ std::enable_if_t pair_count( std::size_t thread_num_matches = 0; while (first + pair_idx < last) { - cuco::pair_type pair = *(first + pair_idx); - auto key = pair.first; - auto current_slot = view.initial_slot(tile, key); - - if constexpr (is_outer) { - bool found_match = false; - - while (true) { - cuco::pair_type arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - - auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); - auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - - if (tile.any(first_slot_equals or second_slot_equals)) { found_match = true; } - - thread_num_matches += (first_slot_equals + second_slot_equals); - - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } - break; - } - - current_slot = view.next_slot(current_slot); - } - } else { - while (true) { - cuco::pair_type arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - - auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); - auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - - thread_num_matches += (first_slot_equals + second_slot_equals); - - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { break; } - - current_slot = view.next_slot(current_slot); - } - } + typename viewT::value_type const pair = *(first + pair_idx); + view.pair_count(tile, pair, thread_num_matches, pair_equal); pair_idx += (gridDim.x * block_size) / tile_size; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 25f3612cd..6ed96c820 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -723,9 +723,9 @@ class static_multimap { * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the contains operation - * @param thread_num_matches Number of matches found by the current thread + * @param g The Cooperative Group used to perform the count operation * @param k The key to search for + * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality */ @@ -735,8 +735,8 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ std::enable_if_t count( CG const& g, - std::size_t& thread_num_matches, Key const& k, + std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; /** @@ -746,9 +746,9 @@ class static_multimap { * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the contains operation - * @param thread_num_matches Number of matches found by the current thread + * @param g The Cooperative Group used to perform the count operation * @param k The key to search for + * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality */ @@ -758,9 +758,50 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ std::enable_if_t count( CG const& g, - std::size_t& thread_num_matches, Key const& k, + std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the occurrence of a given key/value pair contained in multimap using vector + * loads. + * + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam CG Cooperative Group type + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to perform the pair_count operation + * @param pair The pair to search for + * @param thread_num_matches Number of matches found by the current thread + * @param pair_equal The binary callable used to compare two pairs + * for equality + */ + template + __device__ std::enable_if_t pair_count(CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept; + + /** + * @brief Counts the occurrence of a given key/value pair contained in multimap using scalar + * loads. + * + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam CG Cooperative Group type + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to perform the pair_count operation + * @param pair The pair to search for + * @param thread_num_matches Number of matches found by the current thread + * @param pair_equal The binary callable used to compare two pairs + * for equality + */ + template + __device__ std::enable_if_t pair_count( + CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept; }; // class device_view /** From 95c2ac9437d2cba4258efb34e9d4e4038f5e0e02 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 9 Jun 2021 16:45:07 -0400 Subject: [PATCH 140/267] Cleanups: remove redundant template specializations --- .../cuco/detail/static_multimap_kernels.cuh | 157 +----------------- 1 file changed, 5 insertions(+), 152 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index f6bbac3ee..54457dfdb 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -275,7 +275,7 @@ __global__ void contains( } /** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If is_outer + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If `is_outer` * is true, the corresponding occurrence for non-matches is 1. Otherwise, it's 0. * * @tparam block_size The size of the thread block @@ -306,7 +306,7 @@ template -__global__ std::enable_if_t count( +__global__ void count( InputIt first, InputIt last, atomicT* num_matches, viewT view, KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); @@ -331,63 +331,10 @@ __global__ std::enable_if_t count( } } -/** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If is_outer - * is true, the corresponding occurrence for non-matches is 1. Otherwise, it's 0. - * - * @tparam block_size The size of the thread block - * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts - * @tparam Key key type - * @tparam Value The type of the mapped value for the map - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not - * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join - * operations or not - * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's - * `key_type` - * @tparam atomicT Type of atomic storage - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam KeyEqual Binary callable - * @param first Beginning of the sequence of keys to count - * @param last End of the sequence of keys to count - * @param num_matches The number of all the matches for a sequence of keys - * @param view Device view used to access the hash map's slot storage - * @param key_equal Binary function to compare two keys for equality - */ -template -__global__ std::enable_if_t count( - InputIt first, InputIt last, atomicT* num_matches, viewT view, KeyEqual key_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; - - typedef cub::BlockReduce BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_matches = 0; - - while (first + key_idx < last) { - auto key = *(first + key_idx); - view.count(tile, key, thread_num_matches, key_equal); - key_idx += (gridDim.x * block_size) / tile_size; - } - auto const block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); - if (threadIdx.x == 0) { - num_matches->fetch_add(block_num_matches, cuda::std::memory_order_relaxed); - } -} - /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. - * If no matches can be found for a given key/value pair, the corresponding occurrence is 1. + * If no matches can be found for a given key/value pair and `is_outer` is true, the corresponding + * occurrence is 1. * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts @@ -416,7 +363,7 @@ template -__global__ std::enable_if_t pair_count( +__global__ void pair_count( InputIt first, InputIt last, atomicT* num_matches, viewT view, PairEqual pair_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); @@ -441,100 +388,6 @@ __global__ std::enable_if_t pair_count( } } -/** - * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. - * If no matches can be found for a given key/value pair, the corresponding occurrence is 1. - * - * @tparam block_size The size of the thread block - * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts - * @tparam Key key type - * @tparam Value The type of the mapped value for the map - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not - * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join - * operations or not - * @tparam Input Device accesible input iterator of key/value pairs - * @tparam atomicT Type of atomic storage - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam PairEqual Binary callable - * @param first Beginning of the sequence of pairs to count - * @param last End of the sequence of pairs to count - * @param num_matches The number of all the matches for a sequence of pairs - * @param view Device view used to access the hash map's slot storage - * @param pair_equal Binary function to compare two pairs for equality - */ -template -__global__ std::enable_if_t pair_count( - InputIt first, InputIt last, atomicT* num_matches, viewT view, PairEqual pair_equal) -{ - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto pair_idx = tid / tile_size; - - typedef cub::BlockReduce BlockReduce; - __shared__ typename BlockReduce::TempStorage temp_storage; - std::size_t thread_num_matches = 0; - - while (first + pair_idx < last) { - cuco::pair_type pair = *(first + pair_idx); - auto key = pair.first; - auto current_slot = view.initial_slot(tile, key); - - if constexpr (is_outer) { - bool found_match = false; - - while (true) { - auto slot_contents = *reinterpret_cast const*>(current_slot); - - auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - - auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); - - if (tile.any(equals)) { found_match = true; } - - thread_num_matches += equals; - - if (tile.any(slot_is_empty)) { - if ((not found_match) && (tile.thread_rank() == 0)) { thread_num_matches++; } - break; - } - - current_slot = view.next_slot(current_slot); - } - } else { - while (true) { - auto slot_contents = *reinterpret_cast const*>(current_slot); - - auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - - auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); - - thread_num_matches += equals; - - if (tile.any(slot_is_empty)) { break; } - - current_slot = view.next_slot(current_slot); - } - } - pair_idx += (gridDim.x * block_size) / tile_size; - } - - // compute number of successfully inserted elements for each block - // and atomically add to the grand total - std::size_t block_num_matches = BlockReduce(temp_storage).Sum(thread_num_matches); - if (threadIdx.x == 0) { - num_matches->fetch_add(block_num_matches, cuda::std::memory_order_relaxed); - } -} - /** * @brief Finds all the values corresponding to all keys in the range `[first, last)` using vector * oads combined with per-block shared memory buffer. From e21e0371b7c7944eef2ab2a5780eeb9e714c0317 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 9 Jun 2021 19:43:27 -0400 Subject: [PATCH 141/267] Refactor retrieve kernel to use view-based retrieve functions --- include/cuco/detail/static_multimap.inl | 347 +++++++++++++++++ .../cuco/detail/static_multimap_kernels.cuh | 354 +----------------- include/cuco/static_multimap.cuh | 152 +++++++- 3 files changed, 512 insertions(+), 341 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 0a20fde62..8e412689f 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -487,6 +487,86 @@ static_multimap::device_mutable_vie } } +template +template +__inline__ __device__ std::enable_if_t::value, void> +static_multimap::device_view::flush_output_buffer( + CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + offset = g.shfl(offset, 0); + + cooperative_groups::memcpy_async(g, + output_begin + offset, + output_buffer, + cuda::aligned_size_t)>( + sizeof(cuco::pair_type) * num_outputs)); +} + +template +template +__inline__ __device__ std::enable_if_t::value, void> +static_multimap::device_view::flush_output_buffer( + CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) noexcept +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + offset = g.shfl(offset, 0); + + for (auto index = lane_id; index < num_outputs; index += cg_size) { + *(output_begin + offset + index) = output_buffer[index]; + } +} + +template +template +__inline__ __device__ void +static_multimap::device_view::flush_output_buffer( + const unsigned int activemask, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept +{ + int num_threads = __popc(activemask); + + std::size_t offset; + const auto lane_id = threadIdx.x % 32; + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + offset = __shfl_sync(activemask, offset, 0); + + for (auto index = lane_id; index < num_outputs; index += num_threads) { + *(output_begin + offset + index) = output_buffer[index]; + } +} + template ::device_view::pair_ } } +template +template +__device__ std::enable_if_t +static_multimap::device_view::retrieve( + const unsigned int activemask, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept +{ + const uint32_t warp_lane_id = threadIdx.x % 32; + const uint32_t cg_lane_id = g.thread_rank(); + + auto current_slot = initial_slot(g, k); + + bool running = true; + if constexpr (is_outer) { + bool found_match = false; + + while (__any_sync(activemask, running)) { + if (running) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); + + if (first_exists or second_exists) { + found_match = true; + + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == cg_lane_id) { + output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + } + output_idx = g.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[0].second)); + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[1].second)); + } + } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if ((not found_match) && (cg_lane_id == 0)) { + auto output_idx = atomicAdd(warp_counter, 1); + Key key = k; + output_buffer[output_idx] = cuco::make_pair( + std::move(key), std::move(this->get_empty_key_sentinel())); + } + } + } // if running + + __syncwarp(activemask); + if (*warp_counter + 32 * 2 > buffer_size) { + flush_output_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); + // First lane reset warp-level counter + if (warp_lane_id == 0) { *warp_counter = 0; } + } + + current_slot = next_slot(current_slot); + } // while running + } else { + while (__any_sync(activemask, running)) { + if (running) { + pair arr[2]; + if constexpr (sizeof(Key) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + } + + auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); + auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); + + if (first_exists or second_exists) { + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == cg_lane_id) { + output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + } + output_idx = g.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[0].second)); + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[1].second)); + } + } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { running = false; } + } // if running + + __syncwarp(activemask); + if (*warp_counter + 32 * 2 > buffer_size) { + flush_output_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); + // First lane reset warp-level counter + if (warp_lane_id == 0) { *warp_counter = 0; } + } + + current_slot = next_slot(current_slot); + } // while running + } +} + +template +template +__device__ std::enable_if_t +static_multimap::device_view::retrieve( + CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept +{ + const uint32_t lane_id = g.thread_rank(); + + auto current_slot = initial_slot(g, k); + + bool running = true; + + if constexpr (is_outer) { + bool found_match = false; + + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + pair slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); + auto const exists = g.ballot(equals); + + if (exists) { + found_match = true; + auto num_matches = __popc(exists); + uint32_t output_idx = *cg_counter; + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(slot_contents.second)); + } + if (0 == lane_id) { (*cg_counter) += num_matches; } + } + if (g.any(slot_is_empty)) { + running = false; + if ((not found_match) && (lane_id == 0)) { + auto output_idx = (*cg_counter)++; + Key key = k; + output_buffer[output_idx] = + cuco::make_pair(std::move(key), std::move(this->get_empty_key_sentinel())); + } + } + + g.sync(); + + // Flush if the next iteration won't fit into buffer + if ((*cg_counter + cg_size) > buffer_size) { + flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { *cg_counter = 0; } + } + current_slot = next_slot(current_slot); + } // while running + } else { + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + pair slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); + auto const exists = g.ballot(equals); + + if (exists) { + auto num_matches = __popc(exists); + uint32_t output_idx = *cg_counter; + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(slot_contents.second)); + } + if (0 == lane_id) { (*cg_counter) += num_matches; } + } + if (g.any(slot_is_empty)) { running = false; } + + g.sync(); + + // Flush if the next iteration won't fit into buffer + if ((*cg_counter + cg_size) > buffer_size) { + flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { *cg_counter = 0; } + } + current_slot = next_slot(current_slot); + } // while running + } +} + } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 54457dfdb..baef8fe4c 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -24,125 +24,6 @@ namespace cuco { namespace detail { namespace cg = cooperative_groups; -/** - * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. - * - * @tparam cg_size The number of threads in the Cooperative Groups - * @tparam CG Cooperative Group type - * @tparam Key key type - * @tparam Value value type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param g The Cooperative Group used to flush output buffer - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ -template -__inline__ __device__ std::enable_if_t::value, void> -flush_output_buffer(CG const& g, - uint32_t const num_outputs, - cuco::pair_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) -{ - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = g.shfl(offset, 0); - - cg::memcpy_async(g, - output_begin + offset, - output_buffer, - cuda::aligned_size_t)>( - sizeof(cuco::pair_type) * num_outputs)); -} - -/** - * @brief Flushes per-CG shared memory buffer into the output sequence. - * - * @tparam cg_size The number of threads in the Cooperative Groups - * @tparam CG Cooperative Group type - * @tparam Key key type - * @tparam Value value type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param g The Cooperative Group used to flush output buffer - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ -template -__inline__ __device__ std::enable_if_t::value, void> -flush_output_buffer(CG const& g, - uint32_t const num_outputs, - cuco::pair_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) -{ - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = g.shfl(offset, 0); - - for (auto index = lane_id; index < num_outputs; index += cg_size) { - *(output_begin + offset + index) = output_buffer[index]; - } -} - -/** - * @brief Flushes per-warp shared memory buffer into the output sequence. - * - * @tparam Key key type - * @tparam Value value type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param activemask Mask of active threads in the warp - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ -template -__inline__ __device__ void flush_output_buffer(const unsigned int activemask, - uint32_t const num_outputs, - cuco::pair_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) -{ - int num_threads = __popc(activemask); - - std::size_t offset; - const auto lane_id = threadIdx.x % 32; - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = __shfl_sync(activemask, offset, 0); - - for (auto index = lane_id; index < num_outputs; index += num_threads) { - *(output_begin + offset + index) = output_buffer[index]; - } -} - /** * @brief Initializes each slot in the flat `slots` storage to contain `k` and `v`. * @@ -447,7 +328,6 @@ __global__ std::enable_if_t retrieve(InputIt first, constexpr uint32_t num_warps = block_size / 32; const uint32_t warp_id = threadIdx.x / 32; const uint32_t warp_lane_id = threadIdx.x % 32; - const uint32_t tile_lane_id = tile.thread_rank(); __shared__ cuco::pair_type output_buffer[num_warps][buffer_size]; __shared__ uint32_t warp_counter[num_warps]; @@ -457,140 +337,21 @@ __global__ std::enable_if_t retrieve(InputIt first, const unsigned int activemask = __ballot_sync(0xffffffff, first + key_idx < last); while (first + key_idx < last) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key); - - bool running = true; - if constexpr (is_outer) { - bool found_match = false; - - while (__any_sync(activemask, running)) { - if (running) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - auto const first_exists = tile.ballot(first_equals); - auto const second_exists = tile.ballot(second_equals); - - if (first_exists or second_exists) { - found_match = true; - - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); - - uint32_t output_idx; - if (0 == tile_lane_id) { - output_idx = - atomicAdd(&warp_counter[warp_id], (num_first_matches + num_second_matches)); - } - output_idx = tile.shfl(output_idx, 0); - - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << tile_lane_id) - 1)); - Key k = key; - output_buffer[warp_id][output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[0].second)); - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << tile_lane_id) - 1)); - Key k = key; - output_buffer[warp_id][output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[1].second)); - } - } - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { - running = false; - if ((not found_match) && (tile_lane_id == 0)) { - auto output_idx = atomicAdd(&warp_counter[warp_id], 1); - output_buffer[warp_id][output_idx] = - cuco::make_pair(key, view.get_empty_key_sentinel()); - } - } - } // if running - - __syncwarp(activemask); - if (warp_counter[warp_id] + 32 * 2 > buffer_size) { - flush_output_buffer( - activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); - // First lane reset warp-level counter - if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } - } - - current_slot = view.next_slot(current_slot); - } // while running - } else { - while (__any_sync(activemask, running)) { - if (running) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } - - auto const first_slot_is_empty = (arr[0].first == view.get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == view.get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, key)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, key)); - auto const first_exists = tile.ballot(first_equals); - auto const second_exists = tile.ballot(second_equals); - - if (first_exists or second_exists) { - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); - - uint32_t output_idx; - if (0 == tile_lane_id) { - output_idx = - atomicAdd(&warp_counter[warp_id], (num_first_matches + num_second_matches)); - } - output_idx = tile.shfl(output_idx, 0); - - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << tile_lane_id) - 1)); - Key k = key; - output_buffer[warp_id][output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[0].second)); - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << tile_lane_id) - 1)); - Key k = key; - output_buffer[warp_id][output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(k), std::move(arr[1].second)); - } - } - if (tile.any(first_slot_is_empty or second_slot_is_empty)) { running = false; } - } // if running - - __syncwarp(activemask); - if (warp_counter[warp_id] + 32 * 2 > buffer_size) { - flush_output_buffer( - activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); - // First lane reset warp-level counter - if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } - } - - current_slot = view.next_slot(current_slot); - } // while running - } + auto key = *(first + key_idx); + view.retrieve(activemask, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); key_idx += (gridDim.x * block_size) / tile_size; } // Final flush of output buffer if (warp_counter[warp_id] > 0) { - flush_output_buffer( + view.flush_output_buffer( activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); } } @@ -661,102 +422,15 @@ __global__ std::enable_if_t retrieve(InputIt first, if (lane_id == 0) { cg_counter[cg_id] = 0; } while (first + key_idx < last) { - auto key = *(first + key_idx); - auto current_slot = view.initial_slot(tile, key); - - bool running = true; - - if constexpr (is_outer) { - bool found_match = false; - - while (running) { - // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation - // is unsafe! - static_assert(sizeof(Key) == sizeof(cuda::atomic)); - static_assert(sizeof(Value) == sizeof(cuda::atomic)); - pair slot_contents = *reinterpret_cast const*>(current_slot); - - auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, key)); - auto const exists = tile.ballot(equals); - - if (exists) { - found_match = true; - auto num_matches = __popc(exists); - uint32_t output_idx = cg_counter[cg_id]; - if (equals) { - // Each match computes its lane-level offset - auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); - Key k = key; - output_buffer[cg_id][output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(slot_contents.second)); - } - if (0 == lane_id) { cg_counter[cg_id] += num_matches; } - } - if (tile.any(slot_is_empty)) { - running = false; - if ((not found_match) && (lane_id == 0)) { - auto output_idx = cg_counter[cg_id]++; - output_buffer[cg_id][output_idx] = - cuco::make_pair(key, view.get_empty_key_sentinel()); - } - } - - tile.sync(); - - // Flush if the next iteration won't fit into buffer - if ((cg_counter[cg_id] + tile_size) > buffer_size) { - flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { cg_counter[cg_id] = 0; } - } - current_slot = view.next_slot(current_slot); - } // while running - } else { - while (running) { - // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation - // is unsafe! - static_assert(sizeof(Key) == sizeof(cuda::atomic)); - static_assert(sizeof(Value) == sizeof(cuda::atomic)); - pair slot_contents = *reinterpret_cast const*>(current_slot); - - auto const slot_is_empty = (slot_contents.first == view.get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, key)); - auto const exists = tile.ballot(equals); - - if (exists) { - auto num_matches = __popc(exists); - uint32_t output_idx = cg_counter[cg_id]; - if (equals) { - // Each match computes its lane-level offset - auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); - Key k = key; - output_buffer[cg_id][output_idx + lane_offset] = - cuco::make_pair(std::move(k), std::move(slot_contents.second)); - } - if (0 == lane_id) { cg_counter[cg_id] += num_matches; } - } - if (tile.any(slot_is_empty)) { running = false; } - - tile.sync(); - - // Flush if the next iteration won't fit into buffer - if ((cg_counter[cg_id] + tile_size) > buffer_size) { - flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { cg_counter[cg_id] = 0; } - } - current_slot = view.next_slot(current_slot); - } // while running - } + auto key = *(first + key_idx); + view.retrieve( + tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); key_idx += (gridDim.x * block_size) / tile_size; } // Final flush of output buffer if (cg_counter[cg_id] > 0) { - flush_output_buffer( + view.flush_output_buffer( tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 6ed96c820..9dd097886 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -322,7 +322,7 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}); /** - * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * @brief Finds all the matches corresponding to all keys in the range `[first, last)`. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value @@ -670,6 +670,70 @@ class static_multimap { source_device_view.get_empty_value_sentinel()); } + /** + * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. + * + * @tparam cg_size The number of threads in the Cooperative Groups + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ + template + __inline__ __device__ std::enable_if_t::value, void> + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; + + /** + * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. + * + * @tparam cg_size The number of threads in the Cooperative Groups + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ + template + __inline__ __device__ + std::enable_if_t::value, void> + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; + + /** + * @brief Flushes per-warp shared memory buffer into the output sequence. + * + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param activemask Mask of active threads in the warp + * @param num_outputs Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ + template + __inline__ __device__ void flush_output_buffer(const unsigned int activemask, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; + /** * @brief Indicates whether the key `k` was inserted into the map using vector loads. * @@ -802,6 +866,92 @@ class static_multimap { value_type const& pair, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; + + /** + * @brief Find all the matches of a given key contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and + * the empty value sentinel into the output only if `is_outer` is true. + * + * @tparam buffer_size Size of the output buffer + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam KeyEqual Binary callable type + * @param activemask Mask of active threads in the warp + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param warp_counter Pointer to the warp counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ std::enable_if_t retrieve( + const unsigned int activemask, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Find all the matches of a given key contained in multimap using scalar + * loads with per-cg shared memory buffer. + * + * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and + * the empty value sentinel into the output only if `is_outer` is true. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param cg_counter Pointer to the CG counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ std::enable_if_t retrieve( + CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device_view /** From cddc18564f1a7e33a4ae68ecaf6139f6462367b4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 16 Jun 2021 17:30:00 -0400 Subject: [PATCH 142/267] Correction: update copyright to 2021 --- include/cuco/detail/probe_sequences.cuh | 2 +- include/cuco/detail/static_multimap_kernels.cuh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 7782e2c8a..fdfa2ff30 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. + * Copyright (c) 2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index baef8fe4c..354aa4918 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. + * Copyright (c) 2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From d61cbad0925034d341ca58b08803f77e3f8ef85a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 17 Jun 2021 15:36:39 -0400 Subject: [PATCH 143/267] Add TODO comments: use cuda::atomic when it's ready --- include/cuco/detail/static_multimap_kernels.cuh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 354aa4918..a58b13255 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -330,6 +330,8 @@ __global__ std::enable_if_t retrieve(InputIt first, const uint32_t warp_lane_id = threadIdx.x % 32; __shared__ cuco::pair_type output_buffer[num_warps][buffer_size]; + // TODO: replace this with shared memory cuda::atomic variables once the dynamiic initialization + // warning issue is solved __shared__ atomicT toto_countter[num_warps]; __shared__ uint32_t warp_counter[num_warps]; if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } From 80bd3256e937aaf95c537ed0f09c49223ab2b57b Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 21 Jun 2021 10:53:01 -0400 Subject: [PATCH 144/267] Update docs --- .../static_multimap/static_multimap_example.cu | 2 +- include/cuco/static_multimap.cuh | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/static_multimap/static_multimap_example.cu b/examples/static_multimap/static_multimap_example.cu index 98d821462..430dba292 100644 --- a/examples/static_multimap/static_multimap_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -27,7 +27,7 @@ int main(void) int empty_key_sentinel = -1; int empty_value_sentinel = -1; - // Constructs a map with 100,000 slots using -1 and -1 as the empty key/value + // Constructs a multimap with 100,000 slots using -1 and -1 as the empty key/value // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, // for an load factor of 50%. cuco::static_multimap map{100'000, empty_key_sentinel, empty_value_sentinel}; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 9dd097886..5aebd9d81 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -43,7 +43,7 @@ namespace cuco { /** * @brief A GPU-accelerated, unordered, associative container of key-value - * pairs with unique keys. + * pairs that supports equivalent keys. * * Allows constant time concurrent inserts or concurrent find operations (not * concurrent insert and find) from threads in device code. @@ -62,16 +62,16 @@ namespace cuco { * - Host-side "bulk" operations * - Device-side "singular" operations * - * The host-side bulk operations include `insert`, `find`, and `contains`. These - * APIs should be used when there are a large number of keys to insert or lookup - * in the map. For example, given a range of keys specified by device-accessible - * iterators, the bulk `insert` function will insert all keys into the map. + * The host-side bulk operations include `insert`, `contains`, `count`, `retrieve` and their + * variants. These APIs should be used when there are a large number of keys to insert or lookup in + * the map. For example, given a range of keys specified by device-accessible iterators, the bulk + * `insert` function will insert all keys into the map. * * The singular device-side operations allow individual threads to perform * independent insert or find/contains operations from device code. These * operations are accessed through non-owning, trivially copyable "view" types: * `device_view` and `mutable_device_view`. The `device_view` class is an - * immutable view that allows only non-modifying operations such as `find` or + * immutable view that allows only non-modifying operations such as `count` or * `contains`. The `mutable_device_view` class only allows `insert` operations. * The two types are separate to prevent erroneous concurrent insert/find * operations. @@ -81,7 +81,7 @@ namespace cuco { * int empty_key_sentinel = -1; * int empty_value_sentinel = -1; * - * // Constructs a map with 100,000 slots using -1 and -1 as the empty key/value + * // Constructs a multimap with 100,000 slots using -1 and -1 as the empty key/value * // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, * // for an load factor of 50%. * static_multimap m{100'000, empty_key_sentinel, empty_value_sentinel}; @@ -98,7 +98,7 @@ namespace cuco { * m.insert(pairs.begin(), pairs.end()); * * // Get a `device_view` and passes it to a kernel where threads may perform - * // `find/contains` lookups + * // `contains/count/retrieve` lookups * kernel<<<...>>>(m.get_device_view()); * \endcode * From 68bf47d416e1cd0a19b2770442dfd99016d8987a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 21 Jun 2021 11:03:24 -0400 Subject: [PATCH 145/267] Use lightweight stream sync instead of device sync --- include/cuco/detail/static_multimap.inl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 8e412689f..7dcfaa541 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -83,7 +83,7 @@ void static_multimap::insert(InputI detail::insert <<>>(first, first + num_keys, view, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } template ::contains( detail::contains <<>>(first, last, output_begin, view, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } template ::count( detail::count <<>>(first, last, num_matches, view, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); size_t result = *num_matches; CUCO_CUDA_TRY(cudaFree(num_matches)); @@ -166,7 +166,7 @@ std::size_t static_multimap::count_ detail::count <<>>(first, last, num_matches, view, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); size_t result = *num_matches; CUCO_CUDA_TRY(cudaFree(num_matches)); @@ -198,7 +198,7 @@ std::size_t static_multimap::pair_c detail::pair_count <<>>(first, last, num_matches, view, pair_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); size_t result = *num_matches; CUCO_CUDA_TRY(cudaFree(num_matches)); @@ -232,7 +232,7 @@ std::size_t static_multimap::pair_c detail::pair_count <<>>(first, last, num_matches, view, pair_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); size_t result = *num_matches; CUCO_CUDA_TRY(cudaFree(num_matches)); @@ -266,7 +266,7 @@ OutputIt static_multimap::retrieve( detail::retrieve <<>>(first, last, output_begin, num_matches, view, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + *num_matches; CUCO_CUDA_TRY(cudaFree(num_matches)); @@ -302,7 +302,7 @@ OutputIt static_multimap::retrieve_ detail::retrieve <<>>(first, last, output_begin, num_matches, view, key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + *num_matches; CUCO_CUDA_TRY(cudaFree(num_matches)); From b817c3428e5dc9bc215acb45e55f911b9ef9deeb Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 21 Jun 2021 11:59:30 -0400 Subject: [PATCH 146/267] Fix a cuda barrier bug: use CUCO_HAS_CUDA_BARRIER logic --- include/cuco/detail/static_multimap.inl | 5 +++++ include/cuco/detail/static_multimap_kernels.cuh | 1 - include/cuco/static_multimap.cuh | 4 +--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 7dcfaa541..9496fbcb1 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -508,11 +508,16 @@ static_multimap::device_view::flush } offset = g.shfl(offset, 0); +#if defined(CUCO_HAS_CUDA_BARRIER) cooperative_groups::memcpy_async(g, output_begin + offset, output_buffer, cuda::aligned_size_t)>( sizeof(cuco::pair_type) * num_outputs)); +#else + cooperative_groups::memcpy_async( + g, output_begin + offset, output_buffer, sizeof(cuco::pair_type) * num_outputs); +#endif } template #include -#include #include diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 5aebd9d81..d816246a5 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -639,9 +639,7 @@ class static_multimap { pair_atomic_type* const memory_to_use, device_view source_device_view) noexcept { -#ifndef CUDART_VERSION -#error CUDART_VERSION Undefined! -#elif (CUDART_VERSION >= 11000) +#if defined(CUCO_HAS_CUDA_BARRIER) __shared__ cuda::barrier barrier; if (g.thread_rank() == 0) { init(&barrier, g.size()); } g.sync(); From a75b4ff4bc8a3ff6d6918091e7cdcc65ba6bc8d3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 21 Jun 2021 12:05:33 -0400 Subject: [PATCH 147/267] Remove different signedness warnings --- include/cuco/detail/prime.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/prime.hpp b/include/cuco/detail/prime.hpp index 6dd96fa71..5042fabbd 100644 --- a/include/cuco/detail/prime.hpp +++ b/include/cuco/detail/prime.hpp @@ -32,10 +32,10 @@ constexpr bool is_prime(std::size_t num) noexcept { bool flag = true; // 0 and 1 are not prime numbers - if (num == 0 || num == 1) { + if (num == 0lu || num == 1lu) { flag = false; } else { - for (auto i = 2; i <= num / 2; ++i) { + for (auto i = 2lu; i <= num / 2lu; ++i) { if (num % i == 0) { flag = false; break; From df8f1ba1758d5c701bd0ae37690527317b8e31ba Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 6 Jul 2021 16:03:00 -0400 Subject: [PATCH 148/267] Remove redundant codes --- include/cuco/detail/static_multimap.inl | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 6fc47f7fe..1473d552f 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -18,16 +18,6 @@ namespace cuco { -/**---------------------------------------------------------------------------* - * @brief Enumeration of the possible results of attempting to insert into - *a hash bucket - *---------------------------------------------------------------------------**/ -enum class insert_result { - CONTINUE, ///< Insert did not succeed, continue trying to insert - SUCCESS, ///< New pair inserted successfully - DUPLICATE ///< Insert did not succeed, key is already present -}; - template Date: Wed, 7 Jul 2021 13:04:52 -0400 Subject: [PATCH 149/267] Use uses_vector_load instead of is_vector_load --- include/cuco/detail/probe_sequences.cuh | 6 +- include/cuco/detail/static_multimap.inl | 62 +++++++-------- .../cuco/detail/static_multimap_kernels.cuh | 74 ++++++++--------- include/cuco/static_multimap.cuh | 79 +++++++++++-------- 4 files changed, 116 insertions(+), 105 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index fdfa2ff30..73aebc4af 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -41,7 +41,7 @@ class probe_sequence_base { public: __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } - __host__ __device__ static constexpr bool is_vector_load() noexcept { return IsVectorLoad; } + __host__ __device__ static constexpr bool uses_vector_load() noexcept { return IsVectorLoad; } __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) : slots_{slots}, capacity_{capacity} @@ -71,7 +71,7 @@ class double_hashing : public probe_sequence_base::capacity_; using probe_sequence_base::slots_; using probe_sequence_base::cg_size; - using probe_sequence_base::is_vector_load; + using probe_sequence_base::uses_vector_load; __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) noexcept : probe_sequence_base{slots, capacity} @@ -116,7 +116,7 @@ class linear_probing : public probe_sequence_base::capacity_; using probe_sequence_base::slots_; using probe_sequence_base::cg_size; - using probe_sequence_base::is_vector_load; + using probe_sequence_base::uses_vector_load; __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) : probe_sequence_base{slots, capacity} diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 1473d552f..d589d6e87 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -29,7 +29,7 @@ static_multimap::static_multimap( empty_value_sentinel_{empty_value_sentinel}, slot_allocator_{alloc} { - if constexpr (is_vector_load()) { + if constexpr (uses_vector_load()) { capacity_ = cuco::detail::get_valid_capacity(capacity); } else { capacity_ = cuco::detail::get_valid_capacity(capacity); @@ -71,7 +71,7 @@ void static_multimap::insert(InputI auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_mutable_view(); - detail::insert + detail::insert <<>>(first, first + num_keys, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } @@ -91,7 +91,7 @@ void static_multimap::contains( auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::contains + detail::contains <<>>(first, last, output_begin, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } @@ -120,7 +120,7 @@ std::size_t static_multimap::count( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::count + detail::count <<>>(first, last, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -154,7 +154,7 @@ std::size_t static_multimap::count_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::count + detail::count <<>>(first, last, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -186,7 +186,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::pair_count + detail::pair_count <<>>(first, last, num_matches, view, pair_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -220,7 +220,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::pair_count + detail::pair_count <<>>(first, last, num_matches, view, pair_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -242,7 +242,7 @@ OutputIt static_multimap::retrieve( auto num_keys = std::distance(first, last); auto const block_size = 128; // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = is_vector_load() ? (32u * 3u) : (cg_size() * 3u); + auto const buffer_size = uses_vector_load() ? (32u * 3u) : (cg_size() * 3u); auto const stride = 1; auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); @@ -254,7 +254,7 @@ OutputIt static_multimap::retrieve( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -276,7 +276,7 @@ OutputIt static_multimap::retrieve_ auto num_keys = std::distance(first, last); auto const block_size = 128; // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = is_vector_load() ? (32u * 3u) : (cg_size() * 3u); + auto const buffer_size = uses_vector_load() ? (32u * 3u) : (cg_size() * 3u); auto const stride = 1; auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); @@ -290,7 +290,7 @@ OutputIt static_multimap::retrieve_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -406,8 +406,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept { @@ -469,8 +469,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept { @@ -608,8 +608,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_view::contains( CG g, Key const& k, KeyEqual key_equal) noexcept { @@ -647,8 +647,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_view::contains( CG g, Key const& k, KeyEqual key_equal) noexcept { @@ -680,8 +680,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_view::count( CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { @@ -746,8 +746,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_view::count( CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { @@ -798,8 +798,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_view::pair_count( CG const& g, value_type const& pair, @@ -870,8 +870,8 @@ template -template -__device__ std::enable_if_t +template +__device__ std::enable_if_t static_multimap::device_view::pair_count( CG const& g, value_type const& pair, @@ -925,13 +925,13 @@ template template -__device__ std::enable_if_t +__device__ std::enable_if_t static_multimap::device_view::retrieve( const unsigned int activemask, CG const& g, @@ -1078,13 +1078,13 @@ template template -__device__ std::enable_if_t +__device__ std::enable_if_t static_multimap::device_view::retrieve( CG const& g, Key const& k, diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index b48b0e350..2ae6d791b 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -66,7 +66,7 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of device view allowing access of hash map storage @@ -78,7 +78,7 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s */ template @@ -91,7 +91,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - view.insert(tile, insert_pair, key_equal); + view.insert(tile, insert_pair, key_equal); it += (gridDim.x * block_size) / tile_size; } } @@ -106,7 +106,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -121,7 +121,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ */ template (tile, key, key_equal); + auto found = view.contains(tile, key, key_equal); /* * The ld.relaxed.gpu instruction used in view.find causes L1 to @@ -162,7 +162,7 @@ __global__ void contains( * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's @@ -180,7 +180,7 @@ template (tile, key, thread_num_matches, key_equal); + view.count(tile, key, thread_num_matches, key_equal); key_idx += (gridDim.x * block_size) / tile_size; } @@ -220,7 +220,7 @@ __global__ void count( * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam Input Device accesible input iterator of key/value pairs @@ -237,7 +237,7 @@ template (tile, pair, thread_num_matches, pair_equal); + view.pair_count(tile, pair, thread_num_matches, pair_equal); pair_idx += (gridDim.x * block_size) / tile_size; } @@ -284,7 +284,7 @@ __global__ void pair_count( * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -306,19 +306,19 @@ template -__global__ std::enable_if_t retrieve(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_matches, - viewT view, - KeyEqual key_equal) +__global__ std::enable_if_t retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_matches, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -339,14 +339,14 @@ __global__ std::enable_if_t retrieve(InputIt first, while (first + key_idx < last) { auto key = *(first + key_idx); - view.retrieve(activemask, - tile, - key, - &warp_counter[warp_id], - output_buffer[warp_id], - num_matches, - output_begin, - key_equal); + view.retrieve(activemask, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); key_idx += (gridDim.x * block_size) / tile_size; } @@ -373,7 +373,7 @@ __global__ std::enable_if_t retrieve(InputIt first, * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -395,19 +395,19 @@ template -__global__ std::enable_if_t retrieve(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_matches, - viewT view, - KeyEqual key_equal) +__global__ std::enable_if_t retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_matches, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -424,7 +424,7 @@ __global__ std::enable_if_t retrieve(InputIt first, while (first + key_idx < last) { auto key = *(first + key_idx); - view.retrieve( + view.retrieve( tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); key_idx += (gridDim.x * block_size) / tile_size; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index e28d92b23..051dcf381 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -143,8 +143,19 @@ class static_multimap { static_multimap& operator=(static_multimap const&) = delete; static_multimap& operator=(static_multimap&&) = delete; + /** + * @brief The size of the CUDA cooperative thread group. + * + * @return Boolean indicating if concurrent insert/find is supported. + */ static constexpr uint32_t cg_size() noexcept { return ProbeSequence::cg_size(); } - static constexpr bool is_vector_load() noexcept { return ProbeSequence::is_vector_load(); } + + /** + * @brief Indicate if vector load is used. + * + * @return Boolean indicating if vector load is used. + */ + static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } /** * @brief Construct a fixed-size map with the specified capacity and sentinel values. @@ -587,7 +598,7 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map using vector loads. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @@ -597,14 +608,14 @@ class static_multimap { * equality * @return void. */ - template > - __device__ std::enable_if_t insert( + template > + __device__ std::enable_if_t insert( CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Inserts the specified key/value pair into the map using scalar loads. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @@ -614,8 +625,8 @@ class static_multimap { * equality * @return void. */ - template > - __device__ std::enable_if_t insert( + template > + __device__ std::enable_if_t insert( CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device mutable view @@ -798,7 +809,7 @@ class static_multimap { * significant boost in throughput compared to the non Cooperative Group * `contains` at moderate to high load factors. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation @@ -808,8 +819,8 @@ class static_multimap { * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ - template > - __device__ std::enable_if_t contains( + template > + __device__ std::enable_if_t contains( CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** @@ -821,7 +832,7 @@ class static_multimap { * significant boost in throughput compared to the non Cooperative Group * `contains` at moderate to high load factors. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation @@ -831,14 +842,14 @@ class static_multimap { * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ - template > - __device__ std::enable_if_t contains( + template > + __device__ std::enable_if_t contains( CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap using vector loads. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type @@ -848,11 +859,11 @@ class static_multimap { * @param key_equal The binary callable used to compare two keys * for equality */ - template > - __device__ std::enable_if_t count( + __device__ std::enable_if_t count( CG const& g, Key const& k, std::size_t& thread_num_matches, @@ -861,7 +872,7 @@ class static_multimap { /** * @brief Counts the occurrence of a given key contained in multimap using scalar loads. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type @@ -871,11 +882,11 @@ class static_multimap { * @param key_equal The binary callable used to compare two keys * for equality */ - template > - __device__ std::enable_if_t count( + __device__ std::enable_if_t count( CG const& g, Key const& k, std::size_t& thread_num_matches, @@ -885,7 +896,7 @@ class static_multimap { * @brief Counts the occurrence of a given key/value pair contained in multimap using vector * loads. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type @@ -895,17 +906,17 @@ class static_multimap { * @param pair_equal The binary callable used to compare two pairs * for equality */ - template - __device__ std::enable_if_t pair_count(CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept; + template + __device__ std::enable_if_t pair_count(CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap using scalar * loads. * - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type @@ -915,8 +926,8 @@ class static_multimap { * @param pair_equal The binary callable used to compare two pairs * for equality */ - template - __device__ std::enable_if_t pair_count( + template + __device__ std::enable_if_t pair_count( CG const& g, value_type const& pair, std::size_t& thread_num_matches, @@ -931,7 +942,7 @@ class static_multimap { * the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -949,13 +960,13 @@ class static_multimap { * for equality */ template > - __device__ std::enable_if_t retrieve( + __device__ std::enable_if_t retrieve( const unsigned int activemask, CG const& g, Key const& k, @@ -975,7 +986,7 @@ class static_multimap { * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer - * @tparam is_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -993,13 +1004,13 @@ class static_multimap { */ template > - __device__ std::enable_if_t retrieve( + __device__ std::enable_if_t retrieve( CG const& g, Key const& k, uint32_t* cg_counter, From e978f155760024347d2874bdf7fc3ef0c811c188 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 7 Jul 2021 13:46:31 -0400 Subject: [PATCH 150/267] Update copyrights --- include/cuco/detail/bitwise_compare.cuh | 2 +- include/cuco/detail/pair.cuh | 2 +- include/cuco/detail/static_map.inl | 2 +- include/cuco/static_map.cuh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/bitwise_compare.cuh b/include/cuco/detail/bitwise_compare.cuh index 267f5b6d3..959e296bf 100644 --- a/include/cuco/detail/bitwise_compare.cuh +++ b/include/cuco/detail/bitwise_compare.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. + * Copyright (c) 2020-2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/include/cuco/detail/pair.cuh b/include/cuco/detail/pair.cuh index 01c33b600..0d8a85e3e 100644 --- a/include/cuco/detail/pair.cuh +++ b/include/cuco/detail/pair.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. + * Copyright (c) 2020-2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/include/cuco/detail/static_map.inl b/include/cuco/detail/static_map.inl index c44df3b63..4f0fffc51 100644 --- a/include/cuco/detail/static_map.inl +++ b/include/cuco/detail/static_map.inl @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. + * Copyright (c) 2020-2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 86fa825df..42b7021c0 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. + * Copyright (c) 2020-2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From cec11458ccae5b4766c7cb7d7ec4229588abb5ee Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 7 Jul 2021 14:47:11 -0400 Subject: [PATCH 151/267] Use is_packable logic to determine uses_vector_load --- include/cuco/detail/probe_sequences.cuh | 42 ++++++++++++------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 73aebc4af..ec5d03e86 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -26,7 +26,6 @@ namespace cuco { template class probe_sequence_base { protected: @@ -41,7 +40,10 @@ class probe_sequence_base { public: __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } - __host__ __device__ static constexpr bool uses_vector_load() noexcept { return IsVectorLoad; } + __host__ __device__ static constexpr bool uses_vector_load() noexcept + { + return cuco::detail::is_packable(); + } __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) : slots_{slots}, capacity_{capacity} @@ -61,20 +63,19 @@ class probe_sequence_base { template , typename Hash2 = cuco::detail::MurmurHash3_32, cuda::thread_scope Scope = cuda::thread_scope_device> -class double_hashing : public probe_sequence_base { +class double_hashing : public probe_sequence_base { public: - using iterator = typename probe_sequence_base::iterator; - using probe_sequence_base::capacity_; - using probe_sequence_base::slots_; - using probe_sequence_base::cg_size; - using probe_sequence_base::uses_vector_load; + using iterator = typename probe_sequence_base::iterator; + using probe_sequence_base::capacity_; + using probe_sequence_base::slots_; + using probe_sequence_base::cg_size; + using probe_sequence_base::uses_vector_load; __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) noexcept - : probe_sequence_base{slots, capacity} + : probe_sequence_base{slots, capacity} { } @@ -82,7 +83,7 @@ class double_hashing : public probe_sequence_base, cuda::thread_scope Scope = cuda::thread_scope_device> -class linear_probing : public probe_sequence_base { +class linear_probing : public probe_sequence_base { public: - using iterator = typename probe_sequence_base::iterator; - using probe_sequence_base::capacity_; - using probe_sequence_base::slots_; - using probe_sequence_base::cg_size; - using probe_sequence_base::uses_vector_load; + using iterator = typename probe_sequence_base::iterator; + using probe_sequence_base::capacity_; + using probe_sequence_base::slots_; + using probe_sequence_base::cg_size; + using probe_sequence_base::uses_vector_load; __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) - : probe_sequence_base{slots, capacity} + : probe_sequence_base{slots, capacity} { } template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { - if constexpr (IsVectorLoad) { + if constexpr (uses_vector_load()) { return &slots_[(hash_(k) + g.thread_rank() * 2) % capacity_]; } else { return &slots_[(hash_(k) + g.thread_rank()) % capacity_]; @@ -136,7 +136,7 @@ class linear_probing : public probe_sequence_base Date: Thu, 8 Jul 2021 18:39:45 -0400 Subject: [PATCH 152/267] Get rid of enable_if in public APIs --- include/cuco/detail/static_multimap.inl | 384 +++++++++++---- .../cuco/detail/static_multimap_kernels.cuh | 67 ++- include/cuco/static_multimap.cuh | 461 ++++++++++++++---- 3 files changed, 692 insertions(+), 220 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index d589d6e87..7e903ad3f 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -71,7 +71,7 @@ void static_multimap::insert(InputI auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_mutable_view(); - detail::insert + detail::insert <<>>(first, first + num_keys, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } @@ -91,7 +91,7 @@ void static_multimap::contains( auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); - detail::contains + detail::contains <<>>(first, last, output_begin, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } @@ -113,6 +113,8 @@ std::size_t static_multimap::count( auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); + constexpr bool is_outer = false; + atomic_ctr_type* num_matches; CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); *num_matches = 0; @@ -120,7 +122,7 @@ std::size_t static_multimap::count( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::count + detail::count <<>>(first, last, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -154,7 +156,7 @@ std::size_t static_multimap::count_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::count + detail::count <<>>(first, last, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -179,6 +181,8 @@ std::size_t static_multimap::pair_c auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); + constexpr bool is_outer = false; + atomic_ctr_type* num_matches; CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); *num_matches = 0; @@ -186,7 +190,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::pair_count + detail::pair_count <<>>(first, last, num_matches, view, pair_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -220,7 +224,7 @@ std::size_t static_multimap::pair_c CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::pair_count + detail::pair_count <<>>(first, last, num_matches, view, pair_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -247,6 +251,8 @@ OutputIt static_multimap::retrieve( auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); + constexpr bool is_outer = false; + atomic_ctr_type* num_matches; CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); *num_matches = 0; @@ -254,7 +260,7 @@ OutputIt static_multimap::retrieve( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -408,7 +414,7 @@ template template __device__ std::enable_if_t -static_multimap::device_mutable_view::insert( +static_multimap::device_mutable_view::insert_impl( CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, insert_pair.first); @@ -471,7 +477,7 @@ template template __device__ std::enable_if_t -static_multimap::device_mutable_view::insert( +static_multimap::device_mutable_view::insert_impl( CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, insert_pair.first); @@ -523,84 +529,12 @@ template -template -__inline__ __device__ std::enable_if_t::value, void> -static_multimap::device_view::flush_output_buffer( - CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept -{ - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = g.shfl(offset, 0); - -#if defined(CUCO_HAS_CUDA_BARRIER) - cooperative_groups::memcpy_async(g, - output_begin + offset, - output_buffer, - cuda::aligned_size_t)>( - sizeof(cuco::pair_type) * num_outputs)); -#else - cooperative_groups::memcpy_async( - g, output_begin + offset, output_buffer, sizeof(cuco::pair_type) * num_outputs); -#endif -} - -template -template -__inline__ __device__ std::enable_if_t::value, void> -static_multimap::device_view::flush_output_buffer( - CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_items, - OutputIt output_begin) noexcept +template +__device__ void +static_multimap::device_mutable_view::insert( + CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept { - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } - offset = g.shfl(offset, 0); - - for (auto index = lane_id; index < num_outputs; index += cg_size) { - *(output_begin + offset + index) = output_buffer[index]; - } -} - -template -template -__inline__ __device__ void -static_multimap::device_view::flush_output_buffer( - const unsigned int activemask, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept -{ - int num_threads = __popc(activemask); - - std::size_t offset; - const auto lane_id = threadIdx.x % 32; - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = __shfl_sync(activemask, offset, 0); - - for (auto index = lane_id; index < num_outputs; index += num_threads) { - *(output_begin + offset + index) = output_buffer[index]; - } + insert_impl(g, insert_pair, key_equal); } template template __device__ std::enable_if_t -static_multimap::device_view::contains( +static_multimap::device_view::contains_impl( CG g, Key const& k, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -649,7 +583,7 @@ template template __device__ std::enable_if_t -static_multimap::device_view::contains( +static_multimap::device_view::contains_impl( CG g, Key const& k, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -682,7 +616,7 @@ template template __device__ std::enable_if_t -static_multimap::device_view::count( +static_multimap::device_view::count_impl( CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -748,7 +682,7 @@ template template __device__ std::enable_if_t -static_multimap::device_view::count( +static_multimap::device_view::count_impl( CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -800,7 +734,7 @@ template template __device__ std::enable_if_t -static_multimap::device_view::pair_count( +static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, std::size_t& thread_num_matches, @@ -872,7 +806,7 @@ template template __device__ std::enable_if_t -static_multimap::device_view::pair_count( +static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, std::size_t& thread_num_matches, @@ -925,14 +859,13 @@ template template -__device__ std::enable_if_t -static_multimap::device_view::retrieve( +__device__ void +static_multimap::device_view::warp_retrieve_impl( const unsigned int activemask, CG const& g, Key const& k, @@ -1078,14 +1011,13 @@ template template -__device__ std::enable_if_t -static_multimap::device_view::retrieve( +__device__ void +static_multimap::device_view::cg_retrieve_impl( CG const& g, Key const& k, uint32_t* cg_counter, @@ -1186,4 +1118,260 @@ static_multimap::device_view::retri } } +// public APIs + +template +template +__inline__ __device__ std::enable_if_t::value, void> +static_multimap::device_view::flush_output_buffer( + CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + offset = g.shfl(offset, 0); + +#if defined(CUCO_HAS_CUDA_BARRIER) + cooperative_groups::memcpy_async(g, + output_begin + offset, + output_buffer, + cuda::aligned_size_t)>( + sizeof(cuco::pair_type) * num_outputs)); +#else + cooperative_groups::memcpy_async( + g, output_begin + offset, output_buffer, sizeof(cuco::pair_type) * num_outputs); +#endif +} + +template +template +__inline__ __device__ std::enable_if_t::value, void> +static_multimap::device_view::flush_output_buffer( + CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_items, + OutputIt output_begin) noexcept +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } + offset = g.shfl(offset, 0); + + for (auto index = lane_id; index < num_outputs; index += cg_size) { + *(output_begin + offset + index) = output_buffer[index]; + } +} + +template +template +__inline__ __device__ void +static_multimap::device_view::flush_output_buffer( + const unsigned int activemask, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept +{ + int num_threads = __popc(activemask); + + std::size_t offset; + const auto lane_id = threadIdx.x % 32; + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + offset = __shfl_sync(activemask, offset, 0); + + for (auto index = lane_id; index < num_outputs; index += num_threads) { + *(output_begin + offset + index) = output_buffer[index]; + } +} + +template +template +__device__ bool static_multimap::device_view::contains( + CG g, Key const& k, KeyEqual key_equal) noexcept +{ + return contains_impl(g, k, key_equal); +} + +template +template +__device__ void static_multimap::device_view::count( + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept +{ + constexpr bool is_outer = false; + count_impl(g, k, thread_num_matches, key_equal); +} + +template +template +__device__ void +static_multimap::device_view::count_outer( + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept +{ + constexpr bool is_outer = true; + count_impl(g, k, thread_num_matches, key_equal); +} + +template +template +__device__ void +static_multimap::device_view::pair_count( + CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept +{ + constexpr bool is_outer = false; + pair_count_impl(g, pair, thread_num_matches, pair_equal); +} + +template +template +__device__ void +static_multimap::device_view::pair_count_outer( + CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept +{ + constexpr bool is_outer = true; + pair_count_impl(g, pair, thread_num_matches, pair_equal); +} + +template +template +__device__ void +static_multimap::device_view::warp_retrieve( + const unsigned int activemask, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept +{ + constexpr bool is_outer = false; + warp_retrieve_impl( + activemask, g, k, warp_counter, output_buffer, num_matches, output_begin); +} + +template +template +__device__ void +static_multimap::device_view::warp_retrieve_outer( + const unsigned int activemask, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept +{ + constexpr bool is_outer = true; + warp_retrieve_impl( + activemask, g, k, warp_counter, output_buffer, num_matches, output_begin); +} + +template +template +__device__ void +static_multimap::device_view::cg_retrieve( + CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept +{ + constexpr bool is_outer = false; + cg_retrieve_impl( + g, k, cg_counter, output_buffer, num_matches, output_begin); +} + +template +template +__device__ void +static_multimap::device_view::cg_retrieve_outer( + CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept +{ + constexpr bool is_outer = true; + cg_retrieve_impl( + g, k, cg_counter, output_buffer, num_matches, output_begin); +} + } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 2ae6d791b..4d51fb512 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -66,7 +66,6 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam viewT Type of device view allowing access of hash map storage @@ -78,7 +77,6 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s */ template @@ -91,7 +89,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - view.insert(tile, insert_pair, key_equal); + view.insert(tile, insert_pair, key_equal); it += (gridDim.x * block_size) / tile_size; } } @@ -106,7 +104,6 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -121,7 +118,6 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ */ template (tile, key, key_equal); + auto found = view.contains(tile, key, key_equal); /* * The ld.relaxed.gpu instruction used in view.find causes L1 to @@ -180,8 +176,7 @@ template (tile, key, thread_num_matches, key_equal); + if constexpr (is_outer) { + view.count_outer(tile, key, thread_num_matches, key_equal); + } else { + view.count(tile, key, thread_num_matches, key_equal); + } key_idx += (gridDim.x * block_size) / tile_size; } @@ -220,7 +219,6 @@ __global__ void count( * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam Input Device accesible input iterator of key/value pairs @@ -237,8 +235,7 @@ template (tile, pair, thread_num_matches, pair_equal); + if constexpr (is_outer) { + view.pair_count_outer(tile, pair, thread_num_matches, pair_equal); + } else { + view.pair_count(tile, pair, thread_num_matches, pair_equal); + } pair_idx += (gridDim.x * block_size) / tile_size; } @@ -307,7 +308,7 @@ template retrieve(InputIt first, while (first + key_idx < last) { auto key = *(first + key_idx); - view.retrieve(activemask, - tile, - key, - &warp_counter[warp_id], - output_buffer[warp_id], - num_matches, - output_begin, - key_equal); + if constexpr (is_outer) { + view.warp_retrieve_outer(activemask, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); + } else { + view.warp_retrieve(activemask, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); + } key_idx += (gridDim.x * block_size) / tile_size; } @@ -396,7 +408,7 @@ template retrieve(InputIt first, while (first + key_idx < last) { auto key = *(first + key_idx); - view.retrieve( - tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); + if constexpr (is_outer) { + view.cg_retrieve_outer( + tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); + } else { + view.cg_retrieve( + tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); + } key_idx += (gridDim.x * block_size) / tile_size; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 051dcf381..1e03a0738 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -371,6 +371,13 @@ class static_multimap { using iterator = pair_atomic_type*; using const_iterator = pair_atomic_type const*; + /** + * @brief Indicate if vector load is used. + * + * @return Boolean indicating if vector load is used. + */ + static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + private: ProbeSequence probe_sequence_; Key empty_key_sentinel_{}; ///< Key value that represents an empty slot @@ -519,6 +526,8 @@ class static_multimap { using iterator = typename device_view_base::iterator; using const_iterator = typename device_view_base::const_iterator; + using device_view_base::uses_vector_load; + /** * @brief Construct a mutable view of the first `capacity` slots of the * slots array pointed to by `slots`. @@ -594,7 +603,6 @@ class static_multimap { value_type const& insert_pair, KeyEqual key_equal) noexcept; - public: /** * @brief Inserts the specified key/value pair into the map using vector loads. * @@ -609,7 +617,7 @@ class static_multimap { * @return void. */ template > - __device__ std::enable_if_t insert( + __device__ std::enable_if_t insert_impl( CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; /** @@ -626,8 +634,26 @@ class static_multimap { * @return void. */ template > - __device__ std::enable_if_t insert( + __device__ std::enable_if_t insert_impl( CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; + + public: + /** + * @brief Inserts the specified key/value pair into the map. + * + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * + * @param g The Cooperative Group that performs the insert + * @param insert_pair The pair to insert + * @param key_equal The binary callable used to compare two keys for + * equality + * @return void. + */ + template > + __device__ void insert(CG g, + value_type const& insert_pair, + KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device mutable view /** @@ -646,6 +672,8 @@ class static_multimap { using iterator = typename device_view_base::iterator; using const_iterator = typename device_view_base::const_iterator; + using device_view_base::uses_vector_load; + /** * @brief Construct a view of the first `capacity` slots of the * slots array pointed to by `slots`. @@ -736,70 +764,7 @@ class static_multimap { source_device_view.get_empty_value_sentinel()); } - /** - * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. - * - * @tparam cg_size The number of threads in the Cooperative Groups - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param g The Cooperative Group used to flush output buffer - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ - template - __inline__ __device__ std::enable_if_t::value, void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; - - /** - * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. - * - * @tparam cg_size The number of threads in the Cooperative Groups - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param g The Cooperative Group used to flush output buffer - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ - template - __inline__ __device__ - std::enable_if_t::value, void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; - - /** - * @brief Flushes per-warp shared memory buffer into the output sequence. - * - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param activemask Mask of active threads in the warp - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ - template - __inline__ __device__ void flush_output_buffer(const unsigned int activemask, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; - + private: /** * @brief Indicates whether the key `k` was inserted into the map using vector loads. * @@ -820,7 +785,7 @@ class static_multimap { * containing `k` was inserted */ template > - __device__ std::enable_if_t contains( + __device__ std::enable_if_t contains_impl( CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** @@ -843,7 +808,7 @@ class static_multimap { * containing `k` was inserted */ template > - __device__ std::enable_if_t contains( + __device__ std::enable_if_t contains_impl( CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** @@ -863,7 +828,7 @@ class static_multimap { bool is_outer, typename CG, typename KeyEqual = thrust::equal_to> - __device__ std::enable_if_t count( + __device__ std::enable_if_t count_impl( CG const& g, Key const& k, std::size_t& thread_num_matches, @@ -886,7 +851,7 @@ class static_multimap { bool is_outer, typename CG, typename KeyEqual = thrust::equal_to> - __device__ std::enable_if_t count( + __device__ std::enable_if_t count_impl( CG const& g, Key const& k, std::size_t& thread_num_matches, @@ -907,10 +872,11 @@ class static_multimap { * for equality */ template - __device__ std::enable_if_t pair_count(CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept; + __device__ std::enable_if_t pair_count_impl( + CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap using scalar @@ -927,7 +893,7 @@ class static_multimap { * for equality */ template - __device__ std::enable_if_t pair_count( + __device__ std::enable_if_t pair_count_impl( CG const& g, value_type const& pair, std::size_t& thread_num_matches, @@ -942,7 +908,6 @@ class static_multimap { * the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -960,21 +925,19 @@ class static_multimap { * for equality */ template > - __device__ std::enable_if_t retrieve( - const unsigned int activemask, - CG const& g, - Key const& k, - uint32_t* warp_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void warp_retrieve_impl(const unsigned int activemask, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Find all the matches of a given key contained in multimap using scalar @@ -986,7 +949,6 @@ class static_multimap { * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -1004,20 +966,325 @@ class static_multimap { */ template > - __device__ std::enable_if_t retrieve( - CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void cg_retrieve_impl(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; + + public: + /** + * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. + * + * @tparam cg_size The number of threads in the Cooperative Groups + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ + template + __inline__ __device__ std::enable_if_t::value, void> + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; + + /** + * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. + * + * @tparam cg_size The number of threads in the Cooperative Groups + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ + template + __inline__ __device__ + std::enable_if_t::value, void> + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; + + /** + * @brief Flushes per-warp shared memory buffer into the output sequence. + * + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @param activemask Mask of active threads in the warp + * @param num_outputs Number of valid output in the buffer + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ + template + __inline__ __device__ void flush_output_buffer(const unsigned int activemask, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; + + /** + * @brief Indicates whether the key `k` was inserted into the map. + * + * If the key `k` was inserted into the map, find returns + * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single contains operation. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `contains` at moderate to high load factors. + * + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the contains operation + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A boolean indicating whether the key/value pair + * containing `k` was inserted + */ + template > + __device__ bool contains(CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the occurrence of a given key contained in multimap. + * + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the count operation + * @param k The key to search for + * @param thread_num_matches Number of matches found by the current thread + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ void count(CG const& g, + Key const& k, + std::size_t& thread_num_matches, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the occurrence of a given key contained in multimap. If no + * matches can be found for a given key, the corresponding occurrence is 1. + * + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the count operation + * @param k The key to search for + * @param thread_num_matches Number of matches found by the current thread + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ void count_outer(CG const& g, + Key const& k, + std::size_t& thread_num_matches, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Counts the occurrence of a given key/value pair contained in multimap. + * + * @tparam CG Cooperative Group type + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to perform the pair_count operation + * @param pair The pair to search for + * @param thread_num_matches Number of matches found by the current thread + * @param pair_equal The binary callable used to compare two pairs + * for equality + */ + template + __device__ void pair_count(CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept; + + /** + * @brief Counts the occurrence of a given key/value pair contained in multimap. + * If no matches can be found for a given key, the corresponding occurrence is 1. + * + * @tparam CG Cooperative Group type + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to perform the pair_count operation + * @param pair The pair to search for + * @param thread_num_matches Number of matches found by the current thread + * @param pair_equal The binary callable used to compare two pairs + * for equality + */ + template + __device__ void pair_count_outer(CG const& g, + value_type const& pair, + std::size_t& thread_num_matches, + PairEqual pair_equal) noexcept; + + /** + * @brief Find all the matches of a given key contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and + * the empty value sentinel into the output only if `is_outer` is true. + * + * @tparam buffer_size Size of the output buffer + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam KeyEqual Binary callable type + * @param activemask Mask of active threads in the warp + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param warp_counter Pointer to the warp counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ void warp_retrieve(const unsigned int activemask, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Find all the matches of a given key contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and + * the empty value sentinel into the output only if `is_outer` is true. + * + * @tparam buffer_size Size of the output buffer + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam KeyEqual Binary callable type + * @param activemask Mask of active threads in the warp + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param warp_counter Pointer to the warp counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ void warp_retrieve_outer(const unsigned int activemask, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Find all the matches of a given key contained in multimap using scalar + * loads with per-cg shared memory buffer. + * + * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param cg_counter Pointer to the CG counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ void cg_retrieve(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Find all the matches of a given key contained in multimap using scalar + * loads with per-cg shared memory buffer. + * + * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and + * the empty value sentinel into the output. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * convertible to the map's `mapped_type` + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param cg_counter Pointer to the CG counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template > + __device__ void cg_retrieve_outer(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device_view /** From b8b523c9e0258f16dae0b691db17d50a96ead1d1 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 9 Jul 2021 13:39:19 -0400 Subject: [PATCH 153/267] Fix a key comparison bug --- include/cuco/detail/static_multimap.inl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 7e903ad3f..ef2e5b901 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -419,7 +419,6 @@ static_multimap::device_mutable_vie { auto current_slot = initial_slot(g, insert_pair.first); while (true) { - // key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); pair arr[2]; if constexpr (sizeof(Key) == 4) { auto const tmp = *reinterpret_cast(current_slot); @@ -487,7 +486,8 @@ static_multimap::device_mutable_vie // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); auto const window_contains_empty = g.ballot(slot_is_empty); if (window_contains_empty) { From b4b6c934b03cf4b99df4350a81554830af5d2aa3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 9 Jul 2021 14:25:46 -0400 Subject: [PATCH 154/267] Simplify multimap insert_impl --- include/cuco/detail/static_multimap.inl | 42 ++++++++----------------- 1 file changed, 13 insertions(+), 29 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index ef2e5b901..12f98823b 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -419,13 +419,13 @@ static_multimap::device_mutable_vie { auto current_slot = initial_slot(g, insert_pair.first); while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + value_type arr[2]; + if constexpr (sizeof(cuco::detail::packed_t) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); } // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as @@ -435,24 +435,15 @@ static_multimap::device_mutable_vie auto const second_slot_is_empty = (detail::bitwise_compare(arr[1].first, this->get_empty_value_sentinel())); auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); + if (window_contains_empty) { // the first lane in the group with an empty slot will attempt the insert insert_result status{insert_result::CONTINUE}; uint32_t src_lane = __ffs(window_contains_empty) - 1; if (g.thread_rank() == src_lane) { auto insert_location = first_slot_is_empty ? current_slot : current_slot + 1; - // One single CAS operation if `value_type` is packable - if constexpr (cuco::detail::is_packable()) { - status = packed_cas(insert_location, insert_pair, key_equal); - } - // Otherwise, two back-to-back CAS operations - else { -#if __CUDA_ARCH__ < 700 - status = cas_dependent_write(insert_location, insert_pair, key_equal); -#else - status = back_to_back_cas(insert_location, insert_pair, key_equal); -#endif - } + // One single CAS operation since vector loads are dedicated to packable pairs + status = packed_cas(insert_location, insert_pair, key_equal); } // successful insert @@ -466,7 +457,7 @@ static_multimap::device_mutable_vie else { current_slot = next_slot(current_slot); } - } + } // while true } template ::device_mutable_vie uint32_t src_lane = __ffs(window_contains_empty) - 1; if (g.thread_rank() == src_lane) { - // One single CAS operation if `value_type` is packable - if constexpr (cuco::detail::is_packable()) { - status = packed_cas(current_slot, insert_pair, key_equal); - } - // Otherwise, two back-to-back CAS operations - else { #if __CUDA_ARCH__ < 700 - status = cas_dependent_write(current_slot, insert_pair, key_equal); + status = cas_dependent_write(current_slot, insert_pair, key_equal); #else - status = back_to_back_cas(current_slot, insert_pair, key_equal); + status = back_to_back_cas(current_slot, insert_pair, key_equal); #endif - } } // successful insert @@ -521,7 +505,7 @@ static_multimap::device_mutable_vie else { current_slot = next_slot(current_slot); } - } + } // while true } template Date: Fri, 9 Jul 2021 15:16:20 -0400 Subject: [PATCH 155/267] Use bitwise compare instead of naive = --- include/cuco/detail/static_multimap.inl | 106 ++++++++++++++---------- include/cuco/static_multimap.cuh | 4 - 2 files changed, 63 insertions(+), 47 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 12f98823b..0490fc9c3 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -534,19 +534,21 @@ static_multimap::device_view::conta auto current_slot = initial_slot(g, k); while (true) { - pair arr[2]; + value_type arr[2]; if constexpr (sizeof(Key) == 4) { auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); } else { auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); } - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); // the key we were searching for was found by one of the threads, so we return true if (g.any(first_equals or second_equals)) { return true; } @@ -577,7 +579,8 @@ static_multimap::device_view::conta // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = (existing_key == this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); auto const equals = (not slot_is_empty and key_equal(existing_key, k)); @@ -618,10 +621,12 @@ static_multimap::device_view::count memcpy(&arr[0], &tmp, 2 * sizeof(pair)); } - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); if (g.any(first_equals or second_equals)) { found_match = true; } @@ -645,10 +650,12 @@ static_multimap::device_view::count memcpy(&arr[0], &tmp, 2 * sizeof(pair)); } - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); thread_num_matches += (first_equals + second_equals); @@ -679,8 +686,9 @@ static_multimap::device_view::count *reinterpret_cast const*>(current_slot); auto const& current_key = slot_contents.first; - auto const slot_is_empty = (current_key == this->get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, k); + auto const slot_is_empty = + detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, k); if (g.any(equals)) { found_match = true; } @@ -699,8 +707,9 @@ static_multimap::device_view::count *reinterpret_cast const*>(current_slot); auto const& current_key = slot_contents.first; - auto const slot_is_empty = (current_key == this->get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, k); + auto const slot_is_empty = + detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, k); thread_num_matches += equals; @@ -740,8 +749,10 @@ static_multimap::device_view::pair_ memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); } - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); @@ -768,8 +779,10 @@ static_multimap::device_view::pair_ memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); } - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); @@ -824,7 +837,8 @@ static_multimap::device_view::pair_ while (true) { auto slot_contents = *reinterpret_cast const*>(current_slot); - auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); @@ -879,12 +893,14 @@ static_multimap::device_view::warp_ memcpy(&arr[0], &tmp, 2 * sizeof(pair)); } - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); if (first_exists or second_exists) { found_match = true; @@ -943,12 +959,14 @@ static_multimap::device_view::warp_ memcpy(&arr[0], &tmp, 2 * sizeof(pair)); } - auto const first_slot_is_empty = (arr[0].first == this->get_empty_key_sentinel()); - auto const second_slot_is_empty = (arr[1].first == this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); if (first_exists or second_exists) { auto num_first_matches = __popc(first_exists); @@ -1026,9 +1044,10 @@ static_multimap::device_view::cg_re static_assert(sizeof(Value) == sizeof(cuda::atomic)); pair slot_contents = *reinterpret_cast const*>(current_slot); - auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); - auto const exists = g.ballot(equals); + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); + auto const exists = g.ballot(equals); if (exists) { found_match = true; @@ -1071,9 +1090,10 @@ static_multimap::device_view::cg_re static_assert(sizeof(Value) == sizeof(cuda::atomic)); pair slot_contents = *reinterpret_cast const*>(current_slot); - auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); - auto const exists = g.ballot(equals); + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); + auto const exists = g.ballot(equals); if (exists) { auto num_matches = __popc(exists); diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 1e03a0738..d01d9823b 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -526,8 +526,6 @@ class static_multimap { using iterator = typename device_view_base::iterator; using const_iterator = typename device_view_base::const_iterator; - using device_view_base::uses_vector_load; - /** * @brief Construct a mutable view of the first `capacity` slots of the * slots array pointed to by `slots`. @@ -672,8 +670,6 @@ class static_multimap { using iterator = typename device_view_base::iterator; using const_iterator = typename device_view_base::const_iterator; - using device_view_base::uses_vector_load; - /** * @brief Construct a view of the first `capacity` slots of the * slots array pointed to by `slots`. From f125ef398a90791ac8783df4a477eb183b6c4d62 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 9 Jul 2021 17:24:45 -0400 Subject: [PATCH 156/267] Cleanups: use load_pair_array function --- include/cuco/detail/static_multimap.inl | 94 +++++++++---------------- include/cuco/static_multimap.cuh | 8 +++ 2 files changed, 40 insertions(+), 62 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 0490fc9c3..9fa32f754 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -306,6 +306,24 @@ OutputIt static_multimap::retrieve_ return output_end; } +template +__device__ void +static_multimap::device_view_base::load_pair_array( + value_type* arr, const_iterator current_slot) noexcept +{ + if constexpr (sizeof(value_type) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); + } +} + template ::device_mutable_vie auto current_slot = initial_slot(g, insert_pair.first); while (true) { value_type arr[2]; - if constexpr (sizeof(cuco::detail::packed_t) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); - } + load_pair_array(&arr[0], current_slot); // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as // the sentinel is not a valid key value. Therefore, first check for the sentinel @@ -535,13 +547,7 @@ static_multimap::device_view::conta while (true) { value_type arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); - } + load_pair_array(&arr[0], current_slot); auto const first_slot_is_empty = detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); @@ -612,14 +618,8 @@ static_multimap::device_view::count bool found_match = false; while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } + value_type arr[2]; + load_pair_array(&arr[0], current_slot); auto const first_slot_is_empty = detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); @@ -641,14 +641,8 @@ static_multimap::device_view::count } } else { while (true) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } + value_type arr[2]; + load_pair_array(&arr[0], current_slot); auto const first_slot_is_empty = detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); @@ -740,14 +734,8 @@ static_multimap::device_view::pair_ bool found_match = false; while (true) { - cuco::pair_type arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } + value_type arr[2]; + load_pair_array(&arr[0], current_slot); auto const first_slot_is_empty = detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); @@ -770,14 +758,8 @@ static_multimap::device_view::pair_ } } else { while (true) { - cuco::pair_type arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(cuco::pair_type)); - } + value_type arr[2]; + load_pair_array(&arr[0], current_slot); auto const first_slot_is_empty = detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); @@ -884,14 +866,8 @@ static_multimap::device_view::warp_ while (__any_sync(activemask, running)) { if (running) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } + value_type arr[2]; + load_pair_array(&arr[0], current_slot); auto const first_slot_is_empty = detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); @@ -950,14 +926,8 @@ static_multimap::device_view::warp_ } else { while (__any_sync(activemask, running)) { if (running) { - pair arr[2]; - if constexpr (sizeof(Key) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(pair)); - } + value_type arr[2]; + load_pair_array(&arr[0], current_slot); auto const first_slot_is_empty = detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index d01d9823b..1ef7994bd 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -378,6 +378,14 @@ class static_multimap { */ static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + /** + * @brief Load two key/value pairs from the given slot to the target pair array. + * + * @param arr The pair array to be loaded + * @param current_slot The given slot to load from + */ + __device__ void load_pair_array(value_type* arr, const_iterator current_slot) noexcept; + private: ProbeSequence probe_sequence_; Key empty_key_sentinel_{}; ///< Key value that represents an empty slot From 6acf1483804d02a4235e00c12202d5d1ed47a542 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 12 Jul 2021 08:50:34 -0400 Subject: [PATCH 157/267] Rename flush buffer functions --- include/cuco/detail/static_multimap.inl | 14 ++++----- .../cuco/detail/static_multimap_kernels.cuh | 4 +-- include/cuco/static_multimap.cuh | 30 +++++++++---------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 9fa32f754..025a24c1c 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -916,7 +916,7 @@ static_multimap::device_view::warp_ __syncwarp(activemask); if (*warp_counter + 32 * 2 > buffer_size) { - flush_output_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); + flush_warp_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); // First lane reset warp-level counter if (warp_lane_id == 0) { *warp_counter = 0; } } @@ -966,7 +966,7 @@ static_multimap::device_view::warp_ __syncwarp(activemask); if (*warp_counter + 32 * 2 > buffer_size) { - flush_output_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); + flush_warp_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); // First lane reset warp-level counter if (warp_lane_id == 0) { *warp_counter = 0; } } @@ -1046,7 +1046,7 @@ static_multimap::device_view::cg_re // Flush if the next iteration won't fit into buffer if ((*cg_counter + cg_size) > buffer_size) { - flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); + flush_cg_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); // First lane reset CG-level counter if (lane_id == 0) { *cg_counter = 0; } } @@ -1083,7 +1083,7 @@ static_multimap::device_view::cg_re // Flush if the next iteration won't fit into buffer if ((*cg_counter + cg_size) > buffer_size) { - flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); + flush_cg_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); // First lane reset CG-level counter if (lane_id == 0) { *cg_counter = 0; } } @@ -1101,7 +1101,7 @@ template template __inline__ __device__ std::enable_if_t::value, void> -static_multimap::device_view::flush_output_buffer( +static_multimap::device_view::flush_cg_buffer( CG const& g, uint32_t const num_outputs, value_type* output_buffer, @@ -1134,7 +1134,7 @@ template template __inline__ __device__ std::enable_if_t::value, void> -static_multimap::device_view::flush_output_buffer( +static_multimap::device_view::flush_cg_buffer( CG const& g, uint32_t const num_outputs, value_type* output_buffer, @@ -1158,7 +1158,7 @@ template template __inline__ __device__ void -static_multimap::device_view::flush_output_buffer( +static_multimap::device_view::flush_warp_buffer( const unsigned int activemask, uint32_t const num_outputs, value_type* output_buffer, diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 4d51fb512..7cb85e862 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -364,7 +364,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Final flush of output buffer if (warp_counter[warp_id] > 0) { - view.flush_output_buffer( + view.flush_warp_buffer( activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); } } @@ -448,7 +448,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Final flush of output buffer if (cg_counter[cg_id] > 0) { - view.flush_output_buffer( + view.flush_cg_buffer( tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 1ef7994bd..2ebd51f48 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -1000,11 +1000,11 @@ class static_multimap { */ template __inline__ __device__ std::enable_if_t::value, void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + flush_cg_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. @@ -1023,11 +1023,11 @@ class static_multimap { template __inline__ __device__ std::enable_if_t::value, void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + flush_cg_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Flushes per-warp shared memory buffer into the output sequence. @@ -1042,11 +1042,11 @@ class static_multimap { * @param output_begin Beginning of the output sequence of key/value pairs */ template - __inline__ __device__ void flush_output_buffer(const unsigned int activemask, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + __inline__ __device__ void flush_warp_buffer(const unsigned int activemask, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map. From 52f3a3a3883a1b17b6603149bd101953704ffdc3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 13 Jul 2021 11:53:25 -0400 Subject: [PATCH 158/267] Cleanups: remove duplcates by using maybe_unused --- include/cuco/detail/static_multimap.inl | 453 ++++++++---------------- 1 file changed, 152 insertions(+), 301 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 025a24c1c..cf93f7701 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -614,49 +614,33 @@ static_multimap::device_view::count { auto current_slot = initial_slot(g, k); - if constexpr (is_outer) { - bool found_match = false; + [[maybe_unused]] bool found_match = false; - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); + while (true) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + if constexpr (is_outer) { if (g.any(first_equals or second_equals)) { found_match = true; } + } - thread_num_matches += (first_equals + second_equals); + thread_num_matches += (first_equals + second_equals); - if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if constexpr (is_outer) { if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } - break; } - - current_slot = next_slot(current_slot); + break; } - } else { - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - - thread_num_matches += (first_equals + second_equals); - - if (g.any(first_slot_is_empty or second_slot_is_empty)) { break; } - - current_slot = next_slot(current_slot); - } + current_slot = next_slot(current_slot); } } @@ -672,45 +656,30 @@ static_multimap::device_view::count { auto current_slot = initial_slot(g, k); - if constexpr (is_outer) { - bool found_match = false; + [[maybe_unused]] bool found_match = false; - while (true) { - pair slot_contents = - *reinterpret_cast const*>(current_slot); - auto const& current_key = slot_contents.first; + while (true) { + pair slot_contents = + *reinterpret_cast const*>(current_slot); + auto const& current_key = slot_contents.first; - auto const slot_is_empty = - detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, k); + auto const slot_is_empty = detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, k); + if constexpr (is_outer) { if (g.any(equals)) { found_match = true; } + } - thread_num_matches += equals; + thread_num_matches += equals; - if (g.any(slot_is_empty)) { + if (g.any(slot_is_empty)) { + if constexpr (is_outer) { if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } - break; } - - current_slot = next_slot(current_slot); + break; } - } else { - while (true) { - pair slot_contents = - *reinterpret_cast const*>(current_slot); - auto const& current_key = slot_contents.first; - - auto const slot_is_empty = - detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, k); - - thread_num_matches += equals; - if (g.any(slot_is_empty)) { break; } - - current_slot = next_slot(current_slot); - } + current_slot = next_slot(current_slot); } } @@ -730,51 +699,34 @@ static_multimap::device_view::pair_ auto key = pair.first; auto current_slot = initial_slot(g, key); - if constexpr (is_outer) { - bool found_match = false; + [[maybe_unused]] bool found_match = false; - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); + while (true) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); - auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); + auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); + if constexpr (is_outer) { if (g.any(first_slot_equals or second_slot_equals)) { found_match = true; } + } - thread_num_matches += (first_slot_equals + second_slot_equals); + thread_num_matches += (first_slot_equals + second_slot_equals); - if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if constexpr (is_outer) { if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } - break; } - - current_slot = next_slot(current_slot); + break; } - } else { - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - - auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); - auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - - thread_num_matches += (first_slot_equals + second_slot_equals); - - if (g.any(first_slot_is_empty or second_slot_is_empty)) { break; } - current_slot = next_slot(current_slot); - } + current_slot = next_slot(current_slot); } } @@ -794,42 +746,29 @@ static_multimap::device_view::pair_ auto key = pair.first; auto current_slot = initial_slot(g, key); - if constexpr (is_outer) { - bool found_match = false; + [[maybe_unused]] bool found_match = false; - while (true) { - auto slot_contents = *reinterpret_cast const*>(current_slot); + while (true) { + auto slot_contents = *reinterpret_cast const*>(current_slot); - auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); + auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); - auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); + auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); + if constexpr (is_outer) { if (g.any(equals)) { found_match = true; } + } - thread_num_matches += equals; + thread_num_matches += equals; - if (g.any(slot_is_empty)) { + if (g.any(slot_is_empty)) { + if constexpr (is_outer) { if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } - break; } - - current_slot = next_slot(current_slot); + break; } - } else { - while (true) { - auto slot_contents = *reinterpret_cast const*>(current_slot); - - auto const slot_is_empty = - detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - - auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); - thread_num_matches += equals; - - if (g.any(slot_is_empty)) { break; } - - current_slot = next_slot(current_slot); - } + current_slot = next_slot(current_slot); } } @@ -860,51 +799,51 @@ static_multimap::device_view::warp_ auto current_slot = initial_slot(g, k); - bool running = true; - if constexpr (is_outer) { - bool found_match = false; - - while (__any_sync(activemask, running)) { - if (running) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); - - if (first_exists or second_exists) { - found_match = true; - - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); - - uint32_t output_idx; - if (0 == cg_lane_id) { - output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); - } - output_idx = g.shfl(output_idx, 0); + bool running = true; + [[maybe_unused]] bool found_match = false; - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); - Key key = k; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(key), std::move(arr[0].second)); - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); - Key key = k; - output_buffer[output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(key), std::move(arr[1].second)); - } + while (__any_sync(activemask, running)) { + if (running) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); + + if (first_exists or second_exists) { + if constexpr (is_outer) { found_match = true; } + + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == cg_lane_id) { + output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + } + output_idx = g.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[0].second)); } - if (g.any(first_slot_is_empty or second_slot_is_empty)) { - running = false; + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[1].second)); + } + } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if constexpr (is_outer) { if ((not found_match) && (cg_lane_id == 0)) { auto output_idx = atomicAdd(warp_counter, 1); Key key = k; @@ -912,68 +851,18 @@ static_multimap::device_view::warp_ std::move(key), std::move(this->get_empty_key_sentinel())); } } - } // if running - - __syncwarp(activemask); - if (*warp_counter + 32 * 2 > buffer_size) { - flush_warp_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); - // First lane reset warp-level counter - if (warp_lane_id == 0) { *warp_counter = 0; } } + } // if running - current_slot = next_slot(current_slot); - } // while running - } else { - while (__any_sync(activemask, running)) { - if (running) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); - - if (first_exists or second_exists) { - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); - - uint32_t output_idx; - if (0 == cg_lane_id) { - output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); - } - output_idx = g.shfl(output_idx, 0); - - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); - Key key = k; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(key), std::move(arr[0].second)); - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); - Key key = k; - output_buffer[output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(key), std::move(arr[1].second)); - } - } - if (g.any(first_slot_is_empty or second_slot_is_empty)) { running = false; } - } // if running - - __syncwarp(activemask); - if (*warp_counter + 32 * 2 > buffer_size) { - flush_warp_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); - // First lane reset warp-level counter - if (warp_lane_id == 0) { *warp_counter = 0; } - } + __syncwarp(activemask); + if (*warp_counter + 32 * 2 > buffer_size) { + flush_warp_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); + // First lane reset warp-level counter + if (warp_lane_id == 0) { *warp_counter = 0; } + } - current_slot = next_slot(current_slot); - } // while running - } + current_slot = next_slot(current_slot); + } // while running } template ::device_view::cg_re auto current_slot = initial_slot(g, k); - bool running = true; - - if constexpr (is_outer) { - bool found_match = false; - - while (running) { - // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation - // is unsafe! - static_assert(sizeof(Key) == sizeof(cuda::atomic)); - static_assert(sizeof(Value) == sizeof(cuda::atomic)); - pair slot_contents = *reinterpret_cast const*>(current_slot); - - auto const slot_is_empty = - detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); - auto const exists = g.ballot(equals); - - if (exists) { - found_match = true; - auto num_matches = __popc(exists); - uint32_t output_idx = *cg_counter; - if (equals) { - // Each match computes its lane-level offset - auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); - Key key = k; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(key), std::move(slot_contents.second)); - } - if (0 == lane_id) { (*cg_counter) += num_matches; } + bool running = true; + [[maybe_unused]] bool found_match = false; + + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + pair slot_contents = *reinterpret_cast const*>(current_slot); + + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); + auto const exists = g.ballot(equals); + + if (exists) { + if constexpr (is_outer) { found_match = true; } + auto num_matches = __popc(exists); + uint32_t output_idx = *cg_counter; + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(slot_contents.second)); } - if (g.any(slot_is_empty)) { - running = false; + if (0 == lane_id) { (*cg_counter) += num_matches; } + } + if (g.any(slot_is_empty)) { + running = false; + if constexpr (is_outer) { if ((not found_match) && (lane_id == 0)) { auto output_idx = (*cg_counter)++; Key key = k; @@ -1041,55 +929,18 @@ static_multimap::device_view::cg_re cuco::make_pair(std::move(key), std::move(this->get_empty_key_sentinel())); } } + } - g.sync(); - - // Flush if the next iteration won't fit into buffer - if ((*cg_counter + cg_size) > buffer_size) { - flush_cg_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { *cg_counter = 0; } - } - current_slot = next_slot(current_slot); - } // while running - } else { - while (running) { - // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation - // is unsafe! - static_assert(sizeof(Key) == sizeof(cuda::atomic)); - static_assert(sizeof(Value) == sizeof(cuda::atomic)); - pair slot_contents = *reinterpret_cast const*>(current_slot); - - auto const slot_is_empty = - detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); - auto const exists = g.ballot(equals); - - if (exists) { - auto num_matches = __popc(exists); - uint32_t output_idx = *cg_counter; - if (equals) { - // Each match computes its lane-level offset - auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); - Key key = k; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(key), std::move(slot_contents.second)); - } - if (0 == lane_id) { (*cg_counter) += num_matches; } - } - if (g.any(slot_is_empty)) { running = false; } - - g.sync(); + g.sync(); - // Flush if the next iteration won't fit into buffer - if ((*cg_counter + cg_size) > buffer_size) { - flush_cg_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { *cg_counter = 0; } - } - current_slot = next_slot(current_slot); - } // while running - } + // Flush if the next iteration won't fit into buffer + if ((*cg_counter + cg_size) > buffer_size) { + flush_cg_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { *cg_counter = 0; } + } + current_slot = next_slot(current_slot); + } // while running } // public APIs From 9163acd11ddf3fca6e85dbd76b928399a24fad64 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 15 Jul 2021 10:50:04 -0400 Subject: [PATCH 159/267] Replace warp logic with cooperative group --- .../static_multimap/find_all_bench.cu | 4 +- include/cuco/detail/static_multimap.inl | 96 +++++++++------ .../cuco/detail/static_multimap_kernels.cuh | 56 ++++----- include/cuco/static_multimap.cuh | 113 ++++++++++-------- 4 files changed, 153 insertions(+), 116 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 5a0ab0fa8..b8b46a321 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -88,6 +88,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( auto view = map.get_device_view(); auto const block_size = 128; + auto const warp_size = 32; auto const buffer_size = CGSize * BufferSize; auto const stride = 1; auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); @@ -105,7 +106,8 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); // Use timers to explicitly mark the target region - cuco::detail::retrieve + cuco::detail:: + retrieve <<>>(d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index cf93f7701..c914f7149 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -246,7 +246,7 @@ OutputIt static_multimap::retrieve( auto num_keys = std::distance(first, last); auto const block_size = 128; // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = uses_vector_load() ? (32u * 3u) : (cg_size() * 3u); + auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); auto const stride = 1; auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); @@ -260,7 +260,14 @@ OutputIt static_multimap::retrieve( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -282,7 +289,7 @@ OutputIt static_multimap::retrieve_ auto num_keys = std::distance(first, last); auto const block_size = 128; // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = uses_vector_load() ? (32u * 3u) : (cg_size() * 3u); + auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); auto const stride = 1; auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); auto view = get_device_view(); @@ -296,7 +303,14 @@ OutputIt static_multimap::retrieve_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, num_matches, view, key_equal); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -779,13 +793,14 @@ template template __device__ void -static_multimap::device_view::warp_retrieve_impl( - const unsigned int activemask, +static_multimap::device_view::retrieve_impl( + warpT const& warp, CG const& g, Key const& k, uint32_t* warp_counter, @@ -794,15 +809,14 @@ static_multimap::device_view::warp_ OutputIt output_begin, KeyEqual key_equal) noexcept { - const uint32_t warp_lane_id = threadIdx.x % 32; - const uint32_t cg_lane_id = g.thread_rank(); + const uint32_t cg_lane_id = g.thread_rank(); auto current_slot = initial_slot(g, k); bool running = true; [[maybe_unused]] bool found_match = false; - while (__any_sync(activemask, running)) { + while (warp.any(running)) { if (running) { value_type arr[2]; load_pair_array(&arr[0], current_slot); @@ -854,11 +868,11 @@ static_multimap::device_view::warp_ } } // if running - __syncwarp(activemask); - if (*warp_counter + 32 * 2 > buffer_size) { - flush_warp_buffer(activemask, *warp_counter, output_buffer, num_matches, output_begin); + warp.sync(); + if (*warp_counter + warp.size() * 2u > buffer_size) { + flush_warp_buffer(warp, *warp_counter, output_buffer, num_matches, output_begin); // First lane reset warp-level counter - if (warp_lane_id == 0) { *warp_counter = 0; } + if (warp.thread_rank() == 0) { *warp_counter = 0; } } current_slot = next_slot(current_slot); @@ -878,7 +892,7 @@ template __device__ void -static_multimap::device_view::cg_retrieve_impl( +static_multimap::device_view::retrieve_impl( CG const& g, Key const& k, uint32_t* cg_counter, @@ -997,7 +1011,7 @@ static_multimap::device_view::flush if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } offset = g.shfl(offset, 0); - for (auto index = lane_id; index < num_outputs; index += cg_size) { + for (auto index = lane_id; index < num_outputs; index += g.size()) { *(output_begin + offset + index) = output_buffer[index]; } } @@ -1007,25 +1021,23 @@ template -template +template __inline__ __device__ void static_multimap::device_view::flush_warp_buffer( - const unsigned int activemask, + CG const& g, uint32_t const num_outputs, value_type* output_buffer, atomicT* num_matches, OutputIt output_begin) noexcept { - int num_threads = __popc(activemask); - std::size_t offset; - const auto lane_id = threadIdx.x % 32; + const auto lane_id = g.thread_rank(); if (0 == lane_id) { offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } - offset = __shfl_sync(activemask, offset, 0); + offset = g.shfl(offset, 0); - for (auto index = lane_id; index < num_outputs; index += num_threads) { + for (auto index = lane_id; index < num_outputs; index += g.size()) { *(output_begin + offset + index) = output_buffer[index]; } } @@ -1108,10 +1120,14 @@ template -template -__device__ void -static_multimap::device_view::warp_retrieve( - const unsigned int activemask, +template +__device__ void static_multimap::device_view::retrieve( + warpT const& warp, CG const& g, Key const& k, uint32_t* warp_counter, @@ -1121,8 +1137,8 @@ static_multimap::device_view::warp_ KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - warp_retrieve_impl( - activemask, g, k, warp_counter, output_buffer, num_matches, output_begin); + retrieve_impl( + warp, g, k, warp_counter, output_buffer, num_matches, output_begin); } template -template +template __device__ void -static_multimap::device_view::warp_retrieve_outer( - const unsigned int activemask, +static_multimap::device_view::retrieve_outer( + warpT const& warp, CG const& g, Key const& k, uint32_t* warp_counter, @@ -1143,8 +1164,8 @@ static_multimap::device_view::warp_ KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - warp_retrieve_impl( - activemask, g, k, warp_counter, output_buffer, num_matches, output_begin); + retrieve_impl( + warp, g, k, warp_counter, output_buffer, num_matches, output_begin); } template -__device__ void -static_multimap::device_view::cg_retrieve( +__device__ void static_multimap::device_view::retrieve( CG const& g, Key const& k, uint32_t* cg_counter, @@ -1169,7 +1189,7 @@ static_multimap::device_view::cg_re KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - cg_retrieve_impl( + retrieve_impl( g, k, cg_counter, output_buffer, num_matches, output_begin); } @@ -1185,7 +1205,7 @@ template __device__ void -static_multimap::device_view::cg_retrieve_outer( +static_multimap::device_view::retrieve_outer( CG const& g, Key const& k, uint32_t* cg_counter, @@ -1195,7 +1215,7 @@ static_multimap::device_view::cg_re KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - cg_retrieve_impl( + retrieve_impl( g, k, cg_counter, output_buffer, num_matches, output_begin); } diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 7cb85e862..fd8bc9a52 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -281,6 +281,7 @@ __global__ void pair_count( * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block + * @tparam warp_size The size of the warp * @tparam tile_size The number of threads in the Cooperative Groups * @tparam buffer_size Size of the output buffer * @tparam Key key type @@ -303,6 +304,7 @@ __global__ void pair_count( * @param key_equal The binary function to compare two keys for equality */ template retrieve(InputIt first, viewT view, KeyEqual key_equal) { + constexpr uint32_t num_warps = block_size / warp_size; + const uint32_t warp_id = threadIdx.x / warp_size; + + auto warp = cg::tiled_partition(cg::this_thread_block()); auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; - constexpr uint32_t num_warps = block_size / 32; - const uint32_t warp_id = threadIdx.x / 32; - const uint32_t warp_lane_id = threadIdx.x % 32; - __shared__ cuco::pair_type output_buffer[num_warps][buffer_size]; // TODO: replace this with shared memory cuda::atomic variables once the dynamiic initialization // warning issue is solved __shared__ atomicT toto_countter[num_warps]; __shared__ uint32_t warp_counter[num_warps]; - if (warp_lane_id == 0) { warp_counter[warp_id] = 0; } + if (warp.thread_rank() == 0) { warp_counter[warp_id] = 0; } - const unsigned int activemask = __ballot_sync(0xffffffff, first + key_idx < last); - - while (first + key_idx < last) { + while (warp.any(first + key_idx < last)) { auto key = *(first + key_idx); if constexpr (is_outer) { - view.warp_retrieve_outer(activemask, - tile, - key, - &warp_counter[warp_id], - output_buffer[warp_id], - num_matches, - output_begin, - key_equal); + view.retrieve_outer(warp, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); } else { - view.warp_retrieve(activemask, - tile, - key, - &warp_counter[warp_id], - output_buffer[warp_id], - num_matches, - output_begin, - key_equal); + view.retrieve(warp, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); } key_idx += (gridDim.x * block_size) / tile_size; } @@ -365,7 +365,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Final flush of output buffer if (warp_counter[warp_id] > 0) { view.flush_warp_buffer( - activemask, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); + warp, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); } } @@ -381,6 +381,7 @@ __global__ std::enable_if_t retrieve(InputIt first, * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. * * @tparam block_size The size of the thread block + * @tparam warp_size The size of the warp * @tparam tile_size The number of threads in the Cooperative Groups * @tparam buffer_size Size of the output buffer * @tparam Key key type @@ -403,6 +404,7 @@ __global__ std::enable_if_t retrieve(InputIt first, * @param key_equal The binary function to compare two keys for equality */ template retrieve(InputIt first, while (first + key_idx < last) { auto key = *(first + key_idx); if constexpr (is_outer) { - view.cg_retrieve_outer( + view.retrieve_outer( tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); } else { - view.cg_retrieve( + view.retrieve( tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); } key_idx += (gridDim.x * block_size) / tile_size; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 2ebd51f48..5eb18dd6b 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -143,6 +143,13 @@ class static_multimap { static_multimap& operator=(static_multimap const&) = delete; static_multimap& operator=(static_multimap&&) = delete; + /** + * @brief Indicate the warp size. + * + * @return The warp size. + */ + static constexpr uint32_t warp_size() noexcept { return 32u; } + /** * @brief The size of the CUDA cooperative thread group. * @@ -913,12 +920,13 @@ class static_multimap { * * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam KeyEqual Binary callable type - * @param activemask Mask of active threads in the warp + * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for * @param warp_counter Pointer to the warp counter @@ -930,18 +938,19 @@ class static_multimap { */ template > - __device__ void warp_retrieve_impl(const unsigned int activemask, - CG const& g, - Key const& k, - uint32_t* warp_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void retrieve_impl(warpT const& warp, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Find all the matches of a given key contained in multimap using scalar @@ -975,13 +984,13 @@ class static_multimap { typename atomicT, typename OutputIt, typename KeyEqual = thrust::equal_to> - __device__ void cg_retrieve_impl(CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void retrieve_impl(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; public: /** @@ -1041,8 +1050,8 @@ class static_multimap { * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ - template - __inline__ __device__ void flush_warp_buffer(const unsigned int activemask, + template + __inline__ __device__ void flush_warp_buffer(CG const& g, uint32_t const num_outputs, value_type* output_buffer, atomicT* num_matches, @@ -1148,12 +1157,13 @@ class static_multimap { * the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer + * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam KeyEqual Binary callable type - * @param activemask Mask of active threads in the warp + * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for * @param warp_counter Pointer to the warp counter @@ -1164,18 +1174,19 @@ class static_multimap { * for equality */ template > - __device__ void warp_retrieve(const unsigned int activemask, - CG const& g, - Key const& k, - uint32_t* warp_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void retrieve(warpT const& warp, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Find all the matches of a given key contained in multimap using vector @@ -1186,12 +1197,13 @@ class static_multimap { * the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer + * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam KeyEqual Binary callable type - * @param activemask Mask of active threads in the warp + * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for * @param warp_counter Pointer to the warp counter @@ -1202,18 +1214,19 @@ class static_multimap { * for equality */ template > - __device__ void warp_retrieve_outer(const unsigned int activemask, - CG const& g, - Key const& k, - uint32_t* warp_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void retrieve_outer(warpT const& warp, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Find all the matches of a given key contained in multimap using scalar @@ -1244,13 +1257,13 @@ class static_multimap { typename atomicT, typename OutputIt, typename KeyEqual = thrust::equal_to> - __device__ void cg_retrieve(CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void retrieve(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Find all the matches of a given key contained in multimap using scalar @@ -1282,13 +1295,13 @@ class static_multimap { typename atomicT, typename OutputIt, typename KeyEqual = thrust::equal_to> - __device__ void cg_retrieve_outer(CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ void retrieve_outer(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device_view /** From f2262c4da6fc504e555f736ce46a7f3a0ee38b2e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 15 Jul 2021 11:06:08 -0400 Subject: [PATCH 160/267] Refactor flush_output_buffer function --- include/cuco/detail/static_multimap.inl | 36 +++---------- .../cuco/detail/static_multimap_kernels.cuh | 4 +- include/cuco/static_multimap.cuh | 53 ++++++------------- 3 files changed, 24 insertions(+), 69 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index c914f7149..ad525fc11 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -870,7 +870,7 @@ static_multimap::device_view::retri warp.sync(); if (*warp_counter + warp.size() * 2u > buffer_size) { - flush_warp_buffer(warp, *warp_counter, output_buffer, num_matches, output_begin); + flush_output_buffer(warp, *warp_counter, output_buffer, num_matches, output_begin); // First lane reset warp-level counter if (warp.thread_rank() == 0) { *warp_counter = 0; } } @@ -949,7 +949,7 @@ static_multimap::device_view::retri // Flush if the next iteration won't fit into buffer if ((*cg_counter + cg_size) > buffer_size) { - flush_cg_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); + flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); // First lane reset CG-level counter if (lane_id == 0) { *cg_counter = 0; } } @@ -964,9 +964,9 @@ template -template +template __inline__ __device__ std::enable_if_t::value, void> -static_multimap::device_view::flush_cg_buffer( +static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, value_type* output_buffer, @@ -992,38 +992,14 @@ static_multimap::device_view::flush #endif } -template -template -__inline__ __device__ std::enable_if_t::value, void> -static_multimap::device_view::flush_cg_buffer( - CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_items, - OutputIt output_begin) noexcept -{ - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { offset = num_items->fetch_add(num_outputs, cuda::std::memory_order_relaxed); } - offset = g.shfl(offset, 0); - - for (auto index = lane_id; index < num_outputs; index += g.size()) { - *(output_begin + offset + index) = output_buffer[index]; - } -} - template template -__inline__ __device__ void -static_multimap::device_view::flush_warp_buffer( +__inline__ __device__ std::enable_if_t::value, void> +static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, value_type* output_buffer, diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index fd8bc9a52..98268a0bd 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -364,7 +364,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Final flush of output buffer if (warp_counter[warp_id] > 0) { - view.flush_warp_buffer( + view.flush_output_buffer( warp, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); } } @@ -450,7 +450,7 @@ __global__ std::enable_if_t retrieve(InputIt first, // Final flush of output buffer if (cg_counter[cg_id] > 0) { - view.flush_cg_buffer( + view.flush_output_buffer( tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 5eb18dd6b..d2af719b8 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -994,68 +994,47 @@ class static_multimap { public: /** - * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. + * @brief Flushes per-CG buffer into the output sequence using CG memcpy_async. * - * @tparam cg_size The number of threads in the Cooperative Groups * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @param g The Cooperative Group used to flush output buffer * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param output_buffer Buffer of the key/value pair sequence * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ - template + template __inline__ __device__ std::enable_if_t::value, void> - flush_cg_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** - * @brief Flushes per-CG shared memory buffer into the output sequence using CG memcpy_async. + * @brief Flushes per-CG buffer into the output sequence. * - * @tparam cg_size The number of threads in the Cooperative Groups * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @param g The Cooperative Group used to flush output buffer * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param output_buffer Buffer of the key/value pair sequence * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs */ - template + template __inline__ __device__ std::enable_if_t::value, void> - flush_cg_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; - - /** - * @brief Flushes per-warp shared memory buffer into the output sequence. - * - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param activemask Mask of active threads in the warp - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ - template - __inline__ __device__ void flush_warp_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map. From ee649ebfab60f2ecf61f61a04961c118011c5ff4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 15 Jul 2021 11:28:30 -0700 Subject: [PATCH 161/267] Fix the build error related to CUDA 11.0 --- include/cuco/detail/static_multimap.inl | 20 ++++++++------ include/cuco/static_multimap.cuh | 36 ++++++++++++++++--------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index ad525fc11..98111905b 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -965,13 +965,15 @@ template template -__inline__ __device__ std::enable_if_t::value, void> -static_multimap::device_view::flush_output_buffer( - CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept +__inline__ __device__ + std::enable_if_t::value and SUPPORTS_CG_MEMCPY_ASYNC, + void> + static_multimap::device_view::flush_output_buffer( + CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept { std::size_t offset; const auto lane_id = g.thread_rank(); @@ -998,7 +1000,9 @@ template template -__inline__ __device__ std::enable_if_t::value, void> +__inline__ __device__ std::enable_if_t::value and + SUPPORTS_CG_MEMCPY_ASYNC), + void> static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index d2af719b8..cc7caf77c 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -29,6 +29,13 @@ #define CUCO_HAS_CUDA_BARRIER #endif +// cg::memcpy_aysnc is supported for CUDA 11.1 and up +#if defined(CUDART_VERSION) && (CUDART_VERSION >= 11100) +#define SUPPORTS_CG_MEMCPY_ASYNC 1 +#else +#define SUPPORTS_CG_MEMCPY_ASYNC 0 +#endif + #if defined(CUCO_HAS_CUDA_BARRIER) #include #endif @@ -1007,12 +1014,14 @@ class static_multimap { * @param output_begin Beginning of the output sequence of key/value pairs */ template - __inline__ __device__ std::enable_if_t::value, void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + __inline__ __device__ + std::enable_if_t::value and SUPPORTS_CG_MEMCPY_ASYNC, + void> + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Flushes per-CG buffer into the output sequence. @@ -1028,13 +1037,14 @@ class static_multimap { * @param output_begin Beginning of the output sequence of key/value pairs */ template - __inline__ __device__ - std::enable_if_t::value, void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + __inline__ __device__ std::enable_if_t::value and + SUPPORTS_CG_MEMCPY_ASYNC), + void> + flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map. From f23c9e1473f202f4c19d5413f723549b99a816f7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 19 Jul 2021 13:07:37 -0400 Subject: [PATCH 162/267] Update docs + move uses_vector_load to private --- include/cuco/static_multimap.cuh | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index cc7caf77c..c2cc8f3ed 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -75,7 +75,7 @@ namespace cuco { * `insert` function will insert all keys into the map. * * The singular device-side operations allow individual threads to perform - * independent insert or find/contains operations from device code. These + * independent operations (e.g. `insert`, etc.) from device code. These * operations are accessed through non-owning, trivially copyable "view" types: * `device_view` and `mutable_device_view`. The `device_view` class is an * immutable view that allows only non-modifying operations such as `count` or @@ -83,6 +83,11 @@ namespace cuco { * The two types are separate to prevent erroneous concurrent insert/find * operations. * + * Loading two consecutive slots instead of one for small pairs can improve cache utilization since + * 16B memory loads are natively supported at the SASS/hardware level. This `vector load` method is + * implicitly applied to all involved operations (e.g. `insert`, `count`, and `retrieve`, etc.) if + * the pair is packable (see `multimap::uses_vector_load` logic). + * * Example: * \code{.cpp} * int empty_key_sentinel = -1; @@ -164,13 +169,6 @@ class static_multimap { */ static constexpr uint32_t cg_size() noexcept { return ProbeSequence::cg_size(); } - /** - * @brief Indicate if vector load is used. - * - * @return Boolean indicating if vector load is used. - */ - static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } - /** * @brief Construct a fixed-size map with the specified capacity and sentinel values. * @brief Construct a statically sized map with the specified number of slots @@ -376,6 +374,13 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}); private: + /** + * @brief Indicate if vector load is used. + * + * @return Boolean indicating if vector load is used. + */ + static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + class device_view_base { protected: // Import member type definitions from `static_multimap` From 14be940cd014cc04fd49c8808bf998ee0bec2d3c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 19 Jul 2021 14:12:14 -0400 Subject: [PATCH 163/267] Add tests for 4B/8B pairs --- tests/static_multimap/static_multimap_test.cu | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index f0bc79398..32c891f1d 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -84,13 +84,11 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) TEMPLATE_TEST_CASE_SIG("Each key appears twice", "", - ((typename T, dist_type Dist), T, Dist), - (int32_t, dist_type::DUAL), - (int64_t, dist_type::DUAL)) + ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), + (int32_t, int32_t, dist_type::DUAL), + (int32_t, int64_t, dist_type::DUAL), + (int64_t, int64_t, dist_type::DUAL)) { - using Key = T; - using Value = T; - constexpr std::size_t num_items{400}; cuco::static_multimap map{500, -1, -1}; @@ -173,13 +171,11 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", TEMPLATE_TEST_CASE_SIG("Handling of non-matches", "", - ((typename T, dist_type Dist), T, Dist), - (int32_t, dist_type::UNIQUE), - (int64_t, dist_type::UNIQUE)) + ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), + (int32_t, int32_t, dist_type::UNIQUE), + (int32_t, int64_t, dist_type::UNIQUE), + (int64_t, int64_t, dist_type::UNIQUE)) { - using Key = T; - using Value = T; - constexpr std::size_t num_keys{1'000'000}; cuco::static_multimap map{2'000'000, -1, -1}; @@ -255,13 +251,11 @@ TEMPLATE_TEST_CASE_SIG("Handling of non-matches", TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", "", - ((typename T, dist_type Dist), T, Dist), - (int32_t, dist_type::UNIQUE), - (int64_t, dist_type::UNIQUE)) + ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), + (int32_t, int32_t, dist_type::UNIQUE), + (int32_t, int64_t, dist_type::UNIQUE), + (int64_t, int64_t, dist_type::UNIQUE)) { - using Key = T; - using Value = T; - constexpr std::size_t num_pairs{5'000'000}; cuco::static_multimap map{10'000'000, -1, -1}; From ace127303805f05c3bf2316e9be43b4d64e8b05f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 19 Jul 2021 14:45:08 -0400 Subject: [PATCH 164/267] Use vector_width logic --- include/cuco/detail/probe_sequences.cuh | 15 +++++++++++---- include/cuco/detail/static_multimap.inl | 4 ++-- include/cuco/static_multimap.cuh | 14 ++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index ec5d03e86..bc71bfceb 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -40,6 +40,9 @@ class probe_sequence_base { public: __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } + + __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + __host__ __device__ static constexpr bool uses_vector_load() noexcept { return cuco::detail::is_packable(); @@ -72,6 +75,7 @@ class double_hashing : public probe_sequence_base { using probe_sequence_base::capacity_; using probe_sequence_base::slots_; using probe_sequence_base::cg_size; + using probe_sequence_base::vector_width; using probe_sequence_base::uses_vector_load; __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) noexcept @@ -84,8 +88,10 @@ class double_hashing : public probe_sequence_base { { std::size_t index; if constexpr (uses_vector_load()) { - step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * 2) - 1) + 1) * cg_size() * 2; - index = hash1_(k) % (capacity_ / (cg_size() * 2)) * cg_size() * 2 + g.thread_rank() * 2; + step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * + cg_size() * vector_width(); + index = hash1_(k) % (capacity_ / (cg_size() * vector_width())) * cg_size() * vector_width() + + g.thread_rank() * vector_width(); } else { step_size_ = (hash2_(k + 1) % (capacity_ / cg_size() - 1) + 1) * cg_size(); index = (hash1_(k) + g.thread_rank()) % capacity_; @@ -116,6 +122,7 @@ class linear_probing : public probe_sequence_base { using probe_sequence_base::capacity_; using probe_sequence_base::slots_; using probe_sequence_base::cg_size; + using probe_sequence_base::vector_width; using probe_sequence_base::uses_vector_load; __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) @@ -127,7 +134,7 @@ class linear_probing : public probe_sequence_base { __device__ iterator initial_slot(CG const& g, Key const k) noexcept { if constexpr (uses_vector_load()) { - return &slots_[(hash_(k) + g.thread_rank() * 2) % capacity_]; + return &slots_[(hash_(k) + g.thread_rank() * vector_width()) % capacity_]; } else { return &slots_[(hash_(k) + g.thread_rank()) % capacity_]; } @@ -137,7 +144,7 @@ class linear_probing : public probe_sequence_base { { std::size_t index = s - slots_; if constexpr (uses_vector_load()) { - return &slots_[(index + cg_size() * 2) % capacity_]; + return &slots_[(index + cg_size() * vector_width()) % capacity_]; } else { return &slots_[(index + cg_size()) % capacity_]; } diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 98111905b..cce22d103 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -30,7 +30,7 @@ static_multimap::static_multimap( slot_allocator_{alloc} { if constexpr (uses_vector_load()) { - capacity_ = cuco::detail::get_valid_capacity(capacity); + capacity_ = cuco::detail::get_valid_capacity(capacity); } else { capacity_ = cuco::detail::get_valid_capacity(capacity); } @@ -869,7 +869,7 @@ static_multimap::device_view::retri } // if running warp.sync(); - if (*warp_counter + warp.size() * 2u > buffer_size) { + if (*warp_counter + warp.size() * vector_width() > buffer_size) { flush_output_buffer(warp, *warp_counter, output_buffer, num_matches, output_begin); // First lane reset warp-level counter if (warp.thread_rank() == 0) { *warp_counter = 0; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index c2cc8f3ed..a1541691b 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -381,6 +381,13 @@ class static_multimap { */ static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + /** + * @brief The number of elements for each vector load + * + * @return The number of elements for each vector load. + */ + static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } + class device_view_base { protected: // Import member type definitions from `static_multimap` @@ -397,6 +404,13 @@ class static_multimap { */ static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + /** + * @brief The number of elements for each vector load + * + * @return The number of elements for each vector load. + */ + static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } + /** * @brief Load two key/value pairs from the given slot to the target pair array. * From 843d83f2c8a89003d3aed532a6ce390dbd4a8937 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 20 Jul 2021 09:40:13 -0400 Subject: [PATCH 165/267] Fix empty key/value sentinel bugs --- include/cuco/detail/static_multimap.inl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index cce22d103..ac1a06950 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -457,9 +457,9 @@ static_multimap::device_mutable_vie // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as // the sentinel is not a valid key value. Therefore, first check for the sentinel auto const first_slot_is_empty = - (detail::bitwise_compare(arr[0].first, this->get_empty_value_sentinel())); + (detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel())); auto const second_slot_is_empty = - (detail::bitwise_compare(arr[1].first, this->get_empty_value_sentinel())); + (detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel())); auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); if (window_contains_empty) { @@ -862,7 +862,7 @@ static_multimap::device_view::retri auto output_idx = atomicAdd(warp_counter, 1); Key key = k; output_buffer[output_idx] = cuco::make_pair( - std::move(key), std::move(this->get_empty_key_sentinel())); + std::move(key), std::move(this->get_empty_value_sentinel())); } } } @@ -937,10 +937,10 @@ static_multimap::device_view::retri running = false; if constexpr (is_outer) { if ((not found_match) && (lane_id == 0)) { - auto output_idx = (*cg_counter)++; - Key key = k; - output_buffer[output_idx] = - cuco::make_pair(std::move(key), std::move(this->get_empty_key_sentinel())); + auto output_idx = (*cg_counter)++; + Key key = k; + output_buffer[output_idx] = cuco::make_pair( + std::move(key), std::move(this->get_empty_value_sentinel())); } } } From af10fcaf5808bfb2416a0b3126befd542a1b02c0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 26 Jul 2021 09:37:05 -0400 Subject: [PATCH 166/267] Cleanup: move self-defined enum types to the key generator header file --- .../static_multimap/static_multimap_bench.cu | 32 +++---------------- benchmarks/key_generator.hpp | 21 ++++++++++++ 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 87ff31d7e..47fd4c81b 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -22,27 +22,6 @@ #include #include -NVBENCH_DECLARE_ENUM_TYPE_STRINGS( - // Enum type: - dist_type, - // Callable to generate input strings: - // Short identifier used for tables, command-line args, etc. - // Used when context is available to figure out the enum type. - [](dist_type d) { - switch (d) { - case dist_type::GAUSSIAN: return "GAUSSIAN"; - case dist_type::GEOMETRIC: return "GEOMETRIC"; - case dist_type::UNIFORM: return "UNIFORM"; - default: return "ERROR"; - } - }, - // Callable to generate descriptions: - // If non-empty, these are used in `--list` to describe values. - // Used when context may not be available to figure out the type from the - // input string. - // Just use `[](auto) { return std::string{}; }` if you don't want these. - [](auto) { return std::string{}; }) - /** * @brief A benchmark evaluating multi-value `insert` performance: * - Total number of insertions: 100'000'000 @@ -204,6 +183,11 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_f state.skip("Key should be the same type as Value."); } +/** + * @brief A benchmark evaluating multi-value retrieve (`count` + `find_all`) performance: + * - Total number of insertions: 100'000'000 + * - CG size: 8 + */ template std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_retrieve( nvbench::state& state, @@ -257,12 +241,6 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_r state.skip("Key should be the same type as Value."); } -/** - * @brief A benchmark evaluating multi-value retrieve (`count` + `find_all`) performance: - * - Total number of insertions: 100'000'000 - * - CG size: 8 - */ - using key_type = nvbench::type_list; using value_type = nvbench::type_list; using d_type = diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 29b7a5d5d..9f0d8d8a6 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -21,6 +21,27 @@ enum class dist_type { GAUSSIAN, GEOMETRIC, UNIFORM }; +NVBENCH_DECLARE_ENUM_TYPE_STRINGS( + // Enum type: + dist_type, + // Callable to generate input strings: + // Short identifier used for tables, command-line args, etc. + // Used when context is available to figure out the enum type. + [](dist_type d) { + switch (d) { + case dist_type::GAUSSIAN: return "GAUSSIAN"; + case dist_type::GEOMETRIC: return "GEOMETRIC"; + case dist_type::UNIFORM: return "UNIFORM"; + default: return "ERROR"; + } + }, + // Callable to generate descriptions: + // If non-empty, these are used in `--list` to describe values. + // Used when context may not be available to figure out the type from the + // input string. + // Just use `[](auto) { return std::string{}; }` if you don't want these. + [](auto) { return std::string{}; }) + template static void generate_keys(OutputIt output_begin, OutputIt output_end) { From c65a03438e71b0d47a3af40985a4d3fb0aded910 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 26 Jul 2021 10:07:18 -0400 Subject: [PATCH 167/267] Use distinct names instead of SFINAE --- .../static_multimap/find_all_bench.cu | 5 +-- include/cuco/detail/static_multimap.inl | 38 ++++++++++--------- .../cuco/detail/static_multimap_kernels.cuh | 28 ++++++-------- 3 files changed, 34 insertions(+), 37 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index b8b46a321..e030f4cc6 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -53,8 +53,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( std::size_t const size = num_keys / occupancy; std::size_t const num_reps = state.get_int64("NumReps"); - constexpr bool is_vector_load = true; - constexpr bool is_outer = true; + constexpr bool is_outer = true; std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -107,7 +106,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( // Use timers to explicitly mark the target region cuco::detail:: - retrieve + vectorized_retrieve <<>>(d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index ac1a06950..6776159c5 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -260,15 +260,16 @@ OutputIt static_multimap::retrieve( CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::retrieve - <<>>(first, last, output_begin, num_matches, view, key_equal); + if constexpr (uses_vector_load()) { + detail:: + vectorized_retrieve + <<>>( + first, last, output_begin, num_matches, view, key_equal); + } else { + detail::retrieve + <<>>( + first, last, output_begin, num_matches, view, key_equal); + } CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + *num_matches; @@ -303,15 +304,16 @@ OutputIt static_multimap::retrieve_ CUCO_CUDA_TRY(cudaGetDevice(&device_id)); CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); - detail::retrieve - <<>>(first, last, output_begin, num_matches, view, key_equal); + if constexpr (uses_vector_load()) { + detail:: + vectorized_retrieve + <<>>( + first, last, output_begin, num_matches, view, key_equal); + } else { + detail::retrieve + <<>>( + first, last, output_begin, num_matches, view, key_equal); + } CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + *num_matches; diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 98268a0bd..c30a72e16 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -286,7 +286,6 @@ __global__ void pair_count( * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -309,19 +308,18 @@ template -__global__ std::enable_if_t retrieve(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_matches, - viewT view, - KeyEqual key_equal) +__global__ void vectorized_retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_matches, + viewT view, + KeyEqual key_equal) { constexpr uint32_t num_warps = block_size / warp_size; const uint32_t warp_id = threadIdx.x / warp_size; @@ -386,7 +384,6 @@ __global__ std::enable_if_t retrieve(InputIt first, * @tparam buffer_size Size of the output buffer * @tparam Key key type * @tparam Value The type of the mapped value for the map - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -409,19 +406,18 @@ template -__global__ std::enable_if_t retrieve(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_matches, - viewT view, - KeyEqual key_equal) +__global__ void retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_matches, + viewT view, + KeyEqual key_equal) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; From 7a66714bf9bcb41dc73f2f2996075d59bf526e23 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 26 Jul 2021 10:32:32 -0400 Subject: [PATCH 168/267] Move is_bitwise_comparable logic to bitwise_compare header file --- include/cuco/detail/bitwise_compare.cuh | 35 ++++++++++++++++ include/cuco/detail/static_map.inl | 2 - include/cuco/detail/static_multimap.inl | 2 - include/cuco/detail/traits.hpp | 54 ------------------------- include/cuco/static_map.cuh | 23 +++-------- include/cuco/static_multimap.cuh | 16 ++++---- 6 files changed, 49 insertions(+), 83 deletions(-) delete mode 100644 include/cuco/detail/traits.hpp diff --git a/include/cuco/detail/bitwise_compare.cuh b/include/cuco/detail/bitwise_compare.cuh index 959e296bf..160e36921 100644 --- a/include/cuco/detail/bitwise_compare.cuh +++ b/include/cuco/detail/bitwise_compare.cuh @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + #pragma once #include @@ -74,5 +75,39 @@ __host__ __device__ constexpr bool bitwise_compare(T const& lhs, T const& rhs) reinterpret_cast(&rhs)); } +/** + * @brief Customization point that can be specialized to indicate that it is safe to perform bitwise + * equality comparisons on objects of type `T`. + * + * By default, only types where `std::has_unique_object_representations_v` is true are safe for + * bitwise equality. However, this can be too restrictive for some types, e.g., floating point + * types. + * + * User-defined specializations of `is_bitwise_comparable` are allowed, but it is the users + * responsibility to ensure values do not occur that would lead to unexpected behavior. For example, + * if a `NaN` bit pattern were used as the empty sentinel value, it may not compare bitwise equal to + * other `NaN` bit patterns. + * + */ +template +struct is_bitwise_comparable : std::false_type { +}; + +/// By default, only types with unique object representations are allowed +template +struct is_bitwise_comparable>> + : std::true_type { +}; + +/** + * @brief Declares that a type `Type` is bitwise comparable. + * + */ +#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ + namespace cuco { \ + template <> \ + struct is_bitwise_comparable : std::true_type { \ + }; \ + } } // namespace detail } // namespace cuco diff --git a/include/cuco/detail/static_map.inl b/include/cuco/detail/static_map.inl index 4f0fffc51..96081fff5 100644 --- a/include/cuco/detail/static_map.inl +++ b/include/cuco/detail/static_map.inl @@ -14,8 +14,6 @@ * limitations under the License. */ -#include - namespace cuco { template diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 6776159c5..913025aa6 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -14,8 +14,6 @@ * limitations under the License. */ -#include - namespace cuco { template ` is true are safe for - * bitwise equality. However, this can be too restrictive for some types, e.g., floating point - * types. - * - * User-defined specializations of `is_bitwise_comparable` are allowed, but it is the users - * responsibility to ensure values do not occur that would lead to unexpected behavior. For example, - * if a `NaN` bit pattern were used as the empty sentinel value, it may not compare bitwise equal to - * other `NaN` bit patterns. - * - */ -template -struct is_bitwise_comparable : std::false_type { -}; - -/// By default, only types with unique object representations are allowed -template -struct is_bitwise_comparable>> - : std::true_type { -}; - -/** - * @brief Declares that a type `Type` is bitwise comparable. - * - */ -#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ - namespace cuco { \ - template <> \ - struct is_bitwise_comparable : std::true_type { \ - }; \ - } - -} // namespace cuco diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index 42b7021c0..885356872 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -34,28 +34,17 @@ #include #endif +#include #include #include #include #include -#include namespace cuco { template class dynamic_map; -/** - * @brief Declares that a type `Type` is bitwise comparable. - * - */ -#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ - namespace cuco { \ - template <> \ - struct is_bitwise_comparable : std::true_type { \ - }; \ - } - /** * @brief A GPU-accelerated, unordered, associative container of key-value * pairs with unique keys. @@ -65,7 +54,7 @@ class dynamic_map; * `cuco::detail::is_packable` constexpr). * * Current limitations: - * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true + * - Requires keys and values that where `cuco::detail::is_bitwise_comparable::value` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons. * - Does not support erasing keys * - Capacity is fixed and will not grow automatically @@ -130,14 +119,14 @@ template > class static_map { static_assert( - is_bitwise_comparable::value, + detail::is_bitwise_comparable::value, "Key type must have unique object representations or have been explicitly declared as safe for " - "bitwise comparison via specialization of cuco::is_bitwise_comparable."); + "bitwise comparison via specialization of cuco::detail::is_bitwise_comparable."); - static_assert(is_bitwise_comparable::value, + static_assert(detail::is_bitwise_comparable::value, "Value type must have unique object representations or have been explicitly " "declared as safe for bitwise comparison via specialization of " - "cuco::is_bitwise_comparable."); + "cuco::detail::is_bitwise_comparable."); friend class dynamic_map; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index a1541691b..097b85277 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -40,11 +40,11 @@ #include #endif +#include #include #include #include #include -#include namespace cuco { @@ -56,7 +56,7 @@ namespace cuco { * concurrent insert and find) from threads in device code. * * Current limitations: - * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true + * - Requires keys and values that where `cuco::detail::is_bitwise_comparable::value` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons * Therefore, the objects must have unique, bitwise object representations (e.g., no padding bits). * - Does not support erasing keys @@ -129,14 +129,14 @@ template > class static_multimap { static_assert( - is_bitwise_comparable::value, + detail::is_bitwise_comparable::value, "Key type must have unique object representations or have been explicitly declared as safe for " - "bitwise comparison via specialization of cuco::is_bitwise_comparable."); + "bitwise comparison via specialization of cuco::detail::is_bitwise_comparable."); - static_assert(is_bitwise_comparable::value, - "Value type must have unique object representations or have been explicitly " - "declared as safe for " - "bitwise comparison via specialization of cuco::is_bitwise_comparable."); + static_assert( + detail::is_bitwise_comparable::value, + "Value type must have unique object representations or have been explicitly declared as safe " + "for bitwise comparison via specialization of cuco::detail::is_bitwise_comparable."); public: using value_type = cuco::pair_type; From f95cc83a8cf72622b2c6117961836a6f9ebc80b2 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 26 Jul 2021 10:48:51 -0400 Subject: [PATCH 169/267] Prefetch the dedicated stream --- include/cuco/detail/static_multimap.inl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 913025aa6..64236f894 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -118,7 +118,7 @@ std::size_t static_multimap::count( *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); detail::count <<>>(first, last, num_matches, view, key_equal); @@ -152,7 +152,7 @@ std::size_t static_multimap::count_ *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); detail::count <<>>(first, last, num_matches, view, key_equal); @@ -186,7 +186,7 @@ std::size_t static_multimap::pair_c *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); detail::pair_count <<>>(first, last, num_matches, view, pair_equal); @@ -220,7 +220,7 @@ std::size_t static_multimap::pair_c *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); detail::pair_count <<>>(first, last, num_matches, view, pair_equal); @@ -256,7 +256,7 @@ OutputIt static_multimap::retrieve( *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); if constexpr (uses_vector_load()) { detail:: @@ -300,7 +300,7 @@ OutputIt static_multimap::retrieve_ *num_matches = 0; int device_id; CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id)); + CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); if constexpr (uses_vector_load()) { detail:: From f0943bc70744995748aa5ec82264814cfbaf5683 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 26 Jul 2021 14:58:51 -0400 Subject: [PATCH 170/267] Use counter allocator instead of unified memory --- include/cuco/detail/static_multimap.inl | 145 ++++++++++++++---------- include/cuco/static_multimap.cuh | 17 +-- 2 files changed, 98 insertions(+), 64 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 64236f894..82dbaa675 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -25,7 +25,8 @@ static_multimap::static_multimap( std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel, Allocator const& alloc) : empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, - slot_allocator_{alloc} + slot_allocator_{alloc}, + counter_allocator_{alloc} { if constexpr (uses_vector_load()) { capacity_ = cuco::detail::get_valid_capacity(capacity); @@ -113,19 +114,24 @@ std::size_t static_multimap::count( constexpr bool is_outer = false; - atomic_ctr_type* num_matches; - CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); - *num_matches = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + + h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); detail::count - <<>>(first, last, num_matches, view, key_equal); + <<>>(first, last, d_num_matches, view, key_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - size_t result = *num_matches; - CUCO_CUDA_TRY(cudaFree(num_matches)); + auto result = h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); return result; } @@ -147,19 +153,24 @@ std::size_t static_multimap::count_ constexpr bool is_outer = true; - atomic_ctr_type* num_matches; - CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); - *num_matches = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + + h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); detail::count - <<>>(first, last, num_matches, view, key_equal); + <<>>(first, last, d_num_matches, view, key_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - size_t result = *num_matches; - CUCO_CUDA_TRY(cudaFree(num_matches)); + auto result = h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); return result; } @@ -181,19 +192,24 @@ std::size_t static_multimap::pair_c constexpr bool is_outer = false; - atomic_ctr_type* num_matches; - CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); - *num_matches = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + + h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); detail::pair_count - <<>>(first, last, num_matches, view, pair_equal); + <<>>(first, last, d_num_matches, view, pair_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - size_t result = *num_matches; - CUCO_CUDA_TRY(cudaFree(num_matches)); + auto result = h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); return result; } @@ -215,19 +231,24 @@ std::size_t static_multimap::pair_c constexpr bool is_outer = true; - atomic_ctr_type* num_matches; - CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); - *num_matches = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + + h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); detail::pair_count - <<>>(first, last, num_matches, view, pair_equal); + <<>>(first, last, d_num_matches, view, pair_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - size_t result = *num_matches; - CUCO_CUDA_TRY(cudaFree(num_matches)); + auto result = h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); return result; } @@ -251,27 +272,32 @@ OutputIt static_multimap::retrieve( constexpr bool is_outer = false; - atomic_ctr_type* num_matches; - CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); - *num_matches = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + + h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); if constexpr (uses_vector_load()) { detail:: vectorized_retrieve <<>>( - first, last, output_begin, num_matches, view, key_equal); + first, last, output_begin, d_num_matches, view, key_equal); } else { detail::retrieve <<>>( - first, last, output_begin, num_matches, view, key_equal); + first, last, output_begin, d_num_matches, view, key_equal); } + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto output_end = output_begin + *num_matches; - CUCO_CUDA_TRY(cudaFree(num_matches)); + auto output_end = output_begin + h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); return output_end; } @@ -295,27 +321,32 @@ OutputIt static_multimap::retrieve_ constexpr bool is_outer = true; - atomic_ctr_type* num_matches; - CUCO_CUDA_TRY(cudaMallocManaged(&num_matches, sizeof(atomic_ctr_type))); - *num_matches = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_matches, sizeof(atomic_ctr_type), device_id, stream)); + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + + h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); if constexpr (uses_vector_load()) { detail:: vectorized_retrieve <<>>( - first, last, output_begin, num_matches, view, key_equal); + first, last, output_begin, d_num_matches, view, key_equal); } else { detail::retrieve <<>>( - first, last, output_begin, num_matches, view, key_equal); + first, last, output_begin, d_num_matches, view, key_equal); } + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto output_end = output_begin + *num_matches; - CUCO_CUDA_TRY(cudaFree(num_matches)); + auto output_end = output_begin + h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); return output_end; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 097b85277..faac19002 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -149,6 +149,8 @@ class static_multimap { using allocator_type = Allocator; using slot_allocator_type = typename std::allocator_traits::rebind_alloc; + using counter_allocator_type = + typename std::allocator_traits::rebind_alloc; static_multimap(static_multimap const&) = delete; static_multimap(static_multimap&&) = delete; @@ -1369,13 +1371,14 @@ class static_multimap { } private: - pair_atomic_type* slots_{nullptr}; ///< Pointer to flat slots storage - std::size_t capacity_{}; ///< Total number of slots - std::size_t size_{}; ///< Number of keys in map - Key empty_key_sentinel_{}; ///< Key value that represents an empty slot - Value empty_value_sentinel_{}; ///< Initial value of empty slot - slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots -}; // class static_multimap + pair_atomic_type* slots_{nullptr}; ///< Pointer to flat slots storage + std::size_t capacity_{}; ///< Total number of slots + std::size_t size_{}; ///< Number of keys in map + Key empty_key_sentinel_{}; ///< Key value that represents an empty slot + Value empty_value_sentinel_{}; ///< Initial value of empty slot + slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots + counter_allocator_type counter_allocator_{}; ///< Allocator used to allocate counters +}; // class static_multimap } // namespace cuco #include From 88fa92bf19764feb130a61e933474617ed32de6f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 27 Jul 2021 13:10:13 -0400 Subject: [PATCH 171/267] Add insert_if bulk function --- include/cuco/detail/static_multimap.inl | 20 ++++++++ .../cuco/detail/static_multimap_kernels.cuh | 51 +++++++++++++++++-- include/cuco/static_multimap.cuh | 22 ++++++-- 3 files changed, 85 insertions(+), 8 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 82dbaa675..cd112dda1 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -75,6 +75,26 @@ void static_multimap::insert(InputI CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } +template +template +void static_multimap::insert_if( + InputIt first, InputIt last, Predicate pred, cudaStream_t stream, KeyEqual key_equal) +{ + auto num_keys = std::distance(first, last); + auto const block_size = 128; + auto const stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto view = get_device_mutable_view(); + + detail::insert_if + <<>>(first, first + num_keys, view, pred, key_equal); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); +} + template +__global__ void insert_if( + InputIt first, InputIt last, viewT view, Predicate pred, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; + + while (it < last) { + if (pred(*it)) { + // force conversion to value_type + typename viewT::value_type const insert_pair{*it}; + view.insert(tile, insert_pair, key_equal); + } + it += (gridDim.x * block_size) / tile_size; + } +} + /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. * diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index faac19002..a9b5a6494 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -208,9 +208,6 @@ class static_multimap { /** * @brief Inserts all key/value pairs in the range `[first, last)`. * - * If multiple keys in `[first, last)` compare equal, it is unspecified which - * element is inserted. - * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` * @tparam KeyEqual Binary callable type @@ -225,6 +222,25 @@ class static_multimap { cudaStream_t stream = 0, KeyEqual key_equal = KeyEqual{}); + /** + * @brief Inserts key/value pairs in the range `[first, last)` if `pred` returns true. + * + * @tparam InputIt Device accessible input iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam Predicate Unary predicate function type + * @tparam KeyEqual Binary callable type + * @param first Beginning of the sequence of key/value pairs + * @param last End of the sequence of key/value pairs + * @param stream CUDA stream used for insert + * @param key_equal The binary function to compare two keys for equality + */ + template > + void insert_if(InputIt first, + InputIt last, + Predicate pred, + cudaStream_t stream = 0, + KeyEqual key_equal = KeyEqual{}); + /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. * From b1adea6b45a3c972a95006e1b55fc43da56a33e3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 27 Jul 2021 13:46:55 -0400 Subject: [PATCH 172/267] Add insert_if unit tests --- tests/static_multimap/static_multimap_test.cu | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 32c891f1d..d0ae8a7fb 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -54,6 +54,7 @@ struct pair_equal { return lhs.first == rhs.first; } }; + } // namespace enum class dist_type { UNIQUE, DUAL, UNIFORM, GAUSSIAN }; @@ -249,6 +250,42 @@ TEMPLATE_TEST_CASE_SIG("Handling of non-matches", } } +TEMPLATE_TEST_CASE_SIG("Test of insert_if", + "", + ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), + (int32_t, int32_t, dist_type::UNIQUE), + (int32_t, int64_t, dist_type::UNIQUE), + (int64_t, int64_t, dist_type::UNIQUE)) +{ + constexpr std::size_t num_keys{1'000'000}; + cuco::static_multimap map{2'000'000, -1, -1}; + + auto m_view = map.get_device_mutable_view(); + auto view = map.get_device_view(); + + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); + + generate_keys(h_keys.begin(), h_keys.end()); + + for (auto i = 0; i < num_keys; ++i) { + h_pairs[i].first = h_keys[i]; + h_pairs[i].second = h_keys[i]; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_pairs(h_pairs); + + auto pred_lambda = [] __device__(cuco::pair_type pair) { + return pair.first % 2 == 0; + }; + map.insert_if(d_pairs.begin(), d_pairs.end(), pred_lambda); + + auto num = map.count(d_keys.begin(), d_keys.end()); + + REQUIRE(num * 2 == num_keys); +} + TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", "", ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), From 12dc7a1ff1806fce010283ea5c82c26528f5e2e3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 28 Jul 2021 16:30:01 -0400 Subject: [PATCH 173/267] Make all immutable functions constant --- include/cuco/detail/static_multimap.inl | 54 +++++++++++++++---------- include/cuco/static_multimap.cuh | 14 +++---- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index cd112dda1..df32c3c78 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -102,7 +102,7 @@ template template void static_multimap::contains( - InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) + InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -121,10 +121,8 @@ template template -std::size_t static_multimap::count(InputIt first, - InputIt last, - cudaStream_t stream, - KeyEqual key_equal) +std::size_t static_multimap::count( + InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -137,7 +135,8 @@ std::size_t static_multimap::count( atomic_ctr_type *h_num_matches, *d_num_matches; CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); h_num_matches->store(0ull, cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -151,7 +150,8 @@ std::size_t static_multimap::count( auto result = h_num_matches->load(cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); return result; } @@ -163,7 +163,7 @@ template template std::size_t static_multimap::count_outer( - InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) + InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -176,7 +176,8 @@ std::size_t static_multimap::count_ atomic_ctr_type *h_num_matches, *d_num_matches; CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); h_num_matches->store(0ull, cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -190,7 +191,8 @@ std::size_t static_multimap::count_ auto result = h_num_matches->load(cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); return result; } @@ -202,7 +204,7 @@ template template std::size_t static_multimap::pair_count( - InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) + InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -215,7 +217,8 @@ std::size_t static_multimap::pair_c atomic_ctr_type *h_num_matches, *d_num_matches; CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); h_num_matches->store(0ull, cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -229,7 +232,8 @@ std::size_t static_multimap::pair_c auto result = h_num_matches->load(cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); return result; } @@ -241,7 +245,7 @@ template template std::size_t static_multimap::pair_count_outer( - InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) + InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -254,7 +258,8 @@ std::size_t static_multimap::pair_c atomic_ctr_type *h_num_matches, *d_num_matches; CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); h_num_matches->store(0ull, cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -268,7 +273,8 @@ std::size_t static_multimap::pair_c auto result = h_num_matches->load(cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); return result; } @@ -280,7 +286,7 @@ template template OutputIt static_multimap::retrieve( - InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) + InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -295,7 +301,8 @@ OutputIt static_multimap::retrieve( atomic_ctr_type *h_num_matches, *d_num_matches; CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); h_num_matches->store(0ull, cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -317,7 +324,8 @@ OutputIt static_multimap::retrieve( auto output_end = output_begin + h_num_matches->load(cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); return output_end; } @@ -329,7 +337,7 @@ template template OutputIt static_multimap::retrieve_outer( - InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) + InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); auto const block_size = 128; @@ -344,7 +352,8 @@ OutputIt static_multimap::retrieve_ atomic_ctr_type *h_num_matches, *d_num_matches; CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - d_num_matches = std::allocator_traits::allocate(counter_allocator_, 1); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); h_num_matches->store(0ull, cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -366,7 +375,8 @@ OutputIt static_multimap::retrieve_ auto output_end = output_begin + h_num_matches->load(cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate(counter_allocator_, d_num_matches, 1); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); return output_end; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index a9b5a6494..70bbef245 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -262,7 +262,7 @@ class static_multimap { InputIt last, OutputIt output_begin, cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + KeyEqual key_equal = KeyEqual{}) const; /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. @@ -279,7 +279,7 @@ class static_multimap { std::size_t count(InputIt first, InputIt last, cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + KeyEqual key_equal = KeyEqual{}) const; /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If no @@ -297,7 +297,7 @@ class static_multimap { std::size_t count_outer(InputIt first, InputIt last, cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + KeyEqual key_equal = KeyEqual{}) const; /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. @@ -314,7 +314,7 @@ class static_multimap { std::size_t pair_count(InputIt first, InputIt last, PairEqual pair_equal, - cudaStream_t stream = 0); + cudaStream_t stream = 0) const; /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. @@ -332,7 +332,7 @@ class static_multimap { std::size_t pair_count_outer(InputIt first, InputIt last, PairEqual pair_equal, - cudaStream_t stream = 0); + cudaStream_t stream = 0) const; /** * @brief Finds all the values corresponding to all keys in the range `[first, last)`. @@ -360,7 +360,7 @@ class static_multimap { InputIt last, OutputIt output_begin, cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + KeyEqual key_equal = KeyEqual{}) const; /** * @brief Finds all the matches corresponding to all keys in the range `[first, last)`. @@ -389,7 +389,7 @@ class static_multimap { InputIt last, OutputIt output_begin, cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + KeyEqual key_equal = KeyEqual{}) const; private: /** From 8cb913b0891e2b64c62f12565e5700f2a98d4b63 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 29 Jul 2021 12:14:58 -0400 Subject: [PATCH 174/267] Add pair_retrieve API in multimap header --- include/cuco/static_multimap.cuh | 66 +++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 70bbef245..dc4c85230 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -370,7 +370,7 @@ class static_multimap { * sentinel. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_end)`. Use `count()` to determine the number of matching keys. + * output_end)`. Use `count_outer()` to determine the number of matching keys. * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` @@ -391,6 +391,70 @@ class static_multimap { cudaStream_t stream = 0, KeyEqual key_equal = KeyEqual{}) const; + /** + * @brief Finds all pairs matching the input probe pair in the range `[first, last)`. + * + * if pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to + * `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. + * + * Behavior is undefined if the total number of matching pairs exceeds + * `std::distance(probe_output_begin, probe_output_end)` (or + * `std::distance(contained_output_begin, contained_output_end)`). Use + * `pair_count()` to determine the number of matching pairs. + * + * @tparam InputIt Device accessible input iterator for probe pairs + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param first Beginning of the sequence of pairs + * @param last End of the sequence of pairs + * @param probe_output_begin Beginning of the sequence of the matched probe pairs + * @param probe_output_begin Beginning of the sequence of the matched contained pairs + * @param pair_equal The binary function to compare two pairs for equality + * @param stream CUDA stream used for retrieve_outer + * @return The total number of matches + */ + template + std::size_t pair_retrieve(InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal, + cudaStream_t stream = 0) const; + + /** + * @brief Finds all pairs matching the input probe pair in the range `[first, last)`. + * + * if pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to + * `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. If *(first+i) doesn't + * have matches in the map, copies *(first + i) in `probe_output_begin` and a pair of + * `empty_key_sentinel` and `empty_value_sentinel` in `contained_output_begin`. + * + * Behavior is undefined if the total number of matching pairs exceeds + * `std::distance(probe_output_begin, probe_output_end)` (or + * `std::distance(contained_output_begin, contained_output_end)`). Use + * `pair_count()` to determine the number of matching pairs. + * + * @tparam InputIt Device accessible input iterator for probe pairs + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param first Beginning of the sequence of pairs + * @param last End of the sequence of pairs + * @param probe_output_begin Beginning of the sequence of the matched probe pairs + * @param probe_output_begin Beginning of the sequence of the matched contained pairs + * @param pair_equal The binary function to compare two pairs for equality + * @param stream CUDA stream used for retrieve_outer + * @return The total number of matches + */ + template + std::size_t pair_retrieve_outer(InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal, + cudaStream_t stream = 0) const; + private: /** * @brief Indicate if vector load is used. From ef249a5ecda3a1610ac32dd0f6b834ab0f8a49fe Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 29 Jul 2021 12:39:49 -0400 Subject: [PATCH 175/267] Fix a typo --- include/cuco/static_multimap.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index dc4c85230..2fb8ae395 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -447,7 +447,7 @@ class static_multimap { * @param stream CUDA stream used for retrieve_outer * @return The total number of matches */ - template + template std::size_t pair_retrieve_outer(InputIt first, InputIt last, OutputIt1 probe_output_begin, From 9631ea05ca40f2161b9b25d527c9dc56f0b7da23 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 29 Jul 2021 12:40:58 -0400 Subject: [PATCH 176/267] Add pair_retrieve member functions --- include/cuco/detail/static_multimap.inl | 132 +++++++++++++++++- .../cuco/detail/static_multimap_kernels.cuh | 46 ++++++ 2 files changed, 172 insertions(+), 6 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index df32c3c78..2b8a6f4cc 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -138,7 +138,7 @@ std::size_t static_multimap::count( auto tmp_counter_allocator = counter_allocator_; d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); @@ -179,7 +179,7 @@ std::size_t static_multimap::count_ auto tmp_counter_allocator = counter_allocator_; d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); @@ -220,7 +220,7 @@ std::size_t static_multimap::pair_c auto tmp_counter_allocator = counter_allocator_; d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); @@ -261,7 +261,7 @@ std::size_t static_multimap::pair_c auto tmp_counter_allocator = counter_allocator_; d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); @@ -304,7 +304,7 @@ OutputIt static_multimap::retrieve( auto tmp_counter_allocator = counter_allocator_; d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); @@ -355,7 +355,7 @@ OutputIt static_multimap::retrieve_ auto tmp_counter_allocator = counter_allocator_; d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - h_num_matches->store(0ull, cuda::std::memory_order_relaxed); + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); CUCO_CUDA_TRY(cudaMemcpyAsync( d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); @@ -381,6 +381,126 @@ OutputIt static_multimap::retrieve_ return output_end; } +template +template +std::size_t static_multimap::pair_retrieve( + InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal, + cudaStream_t stream) const +{ + auto num_pairs = std::distance(first, last); + auto const block_size = 128; + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads + auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + auto const stride = 1; + auto const grid_size = (cg_size() * num_pairs + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + constexpr bool is_outer = false; + + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); + + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + + if constexpr (uses_vector_load()) { + detail::vectorized_pair_retrieve<<>>( + first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + } else { + detail::pair_retrieve + <<>>( + first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + } + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); + + auto res = h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); + + return res; +} + +template +template +std::size_t static_multimap::pair_retrieve_outer( + InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal, + cudaStream_t stream) const +{ + auto num_pairs = std::distance(first, last); + auto const block_size = 128; + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads + auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + auto const stride = 1; + auto const grid_size = (cg_size() * num_pairs + stride * block_size - 1) / (stride * block_size); + auto view = get_device_view(); + + constexpr bool is_outer = true; + + atomic_ctr_type *h_num_matches, *d_num_matches; + + CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); + auto tmp_counter_allocator = counter_allocator_; + d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); + + h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaMemcpyAsync( + d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + + if constexpr (uses_vector_load()) { + detail::vectorized_pair_retrieve<<>>( + first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + } else { + detail::pair_retrieve + <<>>( + first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + } + CUCO_CUDA_TRY(cudaMemcpyAsync( + h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); + + auto res = h_num_matches->load(cuda::std::memory_order_relaxed); + CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); + std::allocator_traits::deallocate( + tmp_counter_allocator, d_num_matches, 1); + + return res; +} + template +__global__ void vectorized_pair_retrieve(InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt1 contained_output_begin, + atomicT* num_matches, + viewT view, + PairEqual pair_equal) +{ +} + +template +__global__ void pair_retrieve(InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt1 contained_output_begin, + atomicT* num_matches, + viewT view, + PairEqual pair_equal) +{ +} + } // namespace detail } // namespace cuco From 0d46747dca2a9680475ce339f3e6fb7cb5a7b465 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 29 Jul 2021 17:39:41 -0400 Subject: [PATCH 177/267] Fix typos --- include/cuco/detail/static_multimap_kernels.cuh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index f3096a336..d2ca5a49f 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -508,7 +508,7 @@ template Date: Thu, 29 Jul 2021 19:04:01 -0400 Subject: [PATCH 178/267] Add a new flush_output_buffer API + minor doc corrections --- include/cuco/static_multimap.cuh | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 2fb8ae395..6eb1dad78 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -409,7 +409,7 @@ class static_multimap { * @param first Beginning of the sequence of pairs * @param last End of the sequence of pairs * @param probe_output_begin Beginning of the sequence of the matched probe pairs - * @param probe_output_begin Beginning of the sequence of the matched contained pairs + * @param contained_output_begin Beginning of the sequence of the matched contained pairs * @param pair_equal The binary function to compare two pairs for equality * @param stream CUDA stream used for retrieve_outer * @return The total number of matches @@ -442,7 +442,7 @@ class static_multimap { * @param first Beginning of the sequence of pairs * @param last End of the sequence of pairs * @param probe_output_begin Beginning of the sequence of the matched probe pairs - * @param probe_output_begin Beginning of the sequence of the matched contained pairs + * @param contained_output_begin Beginning of the sequence of the matched contained pairs * @param pair_equal The binary function to compare two pairs for equality * @param stream CUDA stream used for retrieve_outer * @return The total number of matches @@ -1147,6 +1147,30 @@ class static_multimap { atomicT* num_matches, OutputIt output_begin) noexcept; + /** + * @brief Flushes per-CG buffer into the output sequence. + * + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator for probe pairs + * @tparam OutputIt2 Device accessible output iterator for contained pairs + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + */ + template + __inline__ __device__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin) noexcept; + /** * @brief Indicates whether the key `k` was inserted into the map. * From 652cbe13c4bde503dcefcb82d3f3783b885a15ef Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 29 Jul 2021 20:50:45 -0400 Subject: [PATCH 179/267] Add pair_retrieve device functions --- include/cuco/detail/static_multimap.inl | 366 ++++++++++++++++++ .../cuco/detail/static_multimap_kernels.cuh | 104 +++++ include/cuco/static_multimap.cuh | 269 ++++++++++++- 3 files changed, 738 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 2b8a6f4cc..2165456f3 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1138,6 +1138,195 @@ static_multimap::device_view::retri } // while running } +template +template +__device__ void +static_multimap::device_view::pair_retrieve_impl( + warpT const& warp, + CG const& g, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept +{ + const uint32_t cg_lane_id = g.thread_rank(); + + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + bool running = true; + [[maybe_unused]] bool found_match = false; + + while (warp.any(running)) { + if (running) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); + + if (first_exists or second_exists) { + if constexpr (is_outer) { found_match = true; } + + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == cg_lane_id) { + output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + } + output_idx = g.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); + probe_output_buffer[output_idx + lane_offset] = pair; + contained_output_buffer[output_idx + lane_offset] = arr[0]; + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); + probe_output_buffer[output_idx + lane_offset] = pair; + contained_output_buffer[output_idx + lane_offset] = arr[1]; + } + } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if constexpr (is_outer) { + if ((not found_match) && (cg_lane_id == 0)) { + auto output_idx = atomicAdd(warp_counter, 1); + probe_output_buffer[output_idx] = pair; + contained_output_buffer[output_idx] = + cuco::make_pair(std::move(this->get_empty_key_sentinel()), + std::move(this->get_empty_value_sentinel())); + } + } + } + } // if running + + warp.sync(); + if (*warp_counter + warp.size() * vector_width() > buffer_size) { + flush_output_buffer(warp, + *warp_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin); + // First lane reset warp-level counter + if (warp.thread_rank() == 0) { *warp_counter = 0; } + } + + current_slot = next_slot(current_slot); + } // while running +} + +template +template +__device__ void +static_multimap::device_view::pair_retrieve_impl( + CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept +{ + const uint32_t lane_id = g.thread_rank(); + + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + bool running = true; + [[maybe_unused]] bool found_match = false; + + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + value_type slot_contents = *reinterpret_cast(current_slot); + + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and pair_equal(slot_contents, pair)); + auto const exists = g.ballot(equals); + + if (exists) { + if constexpr (is_outer) { found_match = true; } + auto num_matches = __popc(exists); + uint32_t output_idx = *cg_counter; + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + probe_output_buffer[output_idx + lane_offset] = pair; + contained_output_buffer[output_idx + lane_offset] = slot_contents; + } + if (0 == lane_id) { (*cg_counter) += num_matches; } + } + if (g.any(slot_is_empty)) { + running = false; + if constexpr (is_outer) { + if ((not found_match) && (lane_id == 0)) { + auto output_idx = (*cg_counter)++; + probe_output_buffer[output_idx] = pair; + contained_output_buffer[output_idx] = cuco::make_pair( + std::move(this->get_empty_key_sentinel()), std::move(this->get_empty_value_sentinel())); + } + } + } + + g.sync(); + + // Flush if the next iteration won't fit into buffer + if ((*cg_counter + cg_size) > buffer_size) { + flush_output_buffer(g, + *cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { *cg_counter = 0; } + } + current_slot = next_slot(current_slot); + } // while running +} + // public APIs template ::device_view::flush } } +template +template +__inline__ __device__ void +static_multimap::device_view::flush_output_buffer( + CG const& g, + uint32_t const num_outputs, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin) noexcept +{ + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + offset = g.shfl(offset, 0); + + for (auto index = lane_id; index < num_outputs; index += g.size()) { + *(probe_output_begin + offset + index) = probe_output_buffer[index]; + *(contained_output_begin + offset + index) = contained_output_buffer[index]; + } +} + template ::device_view::retri g, k, cg_counter, output_buffer, num_matches, output_begin); } +template +template +__device__ void +static_multimap::device_view::pair_retrieve( + warpT const& warp, + CG const& g, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept +{ + constexpr bool is_outer = false; + pair_retrieve_impl(warp, + g, + pair, + warp_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); +} + +template +template +__device__ void +static_multimap::device_view::pair_retrieve_outer( + warpT const& warp, + CG const& g, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept +{ + constexpr bool is_outer = true; + pair_retrieve_impl(warp, + g, + pair, + warp_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); +} + +template +template +__device__ void +static_multimap::device_view::pair_retrieve( + CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept +{ + constexpr bool is_outer = false; + pair_retrieve_impl(g, + pair, + cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); +} + +template +template +__device__ void +static_multimap::device_view::pair_retrieve_outer( + CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept +{ + constexpr bool is_outer = true; + pair_retrieve_impl(g, + pair, + cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); +} + } // namespace cuco diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index d2ca5a49f..8b77fece7 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -513,6 +513,60 @@ __global__ void vectorized_pair_retrieve(InputIt first, viewT view, PairEqual pair_equal) { + constexpr uint32_t num_warps = block_size / warp_size; + const uint32_t warp_id = threadIdx.x / warp_size; + + auto warp = cg::tiled_partition(cg::this_thread_block()); + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto pair_idx = tid / tile_size; + + __shared__ cuco::pair_type probe_output_buffer[num_warps][buffer_size]; + __shared__ cuco::pair_type contained_output_buffer[num_warps][buffer_size]; + // TODO: replace this with shared memory cuda::atomic variables once the dynamiic initialization + // warning issue is solved __shared__ atomicT toto_countter[num_warps]; + __shared__ uint32_t warp_counter[num_warps]; + + if (warp.thread_rank() == 0) { warp_counter[warp_id] = 0; } + + while (warp.any(first + pair_idx < last)) { + typename viewT::value_type pair = *(first + pair_idx); + if constexpr (is_outer) { + view.pair_retrieve_outer(warp, + tile, + pair, + &warp_counter[warp_id], + probe_output_buffer[warp_id], + contained_output_buffer[warp_id], + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } else { + view.pair_retrieve(warp, + tile, + pair, + &warp_counter[warp_id], + probe_output_buffer[warp_id], + contained_output_buffer[warp_id], + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } + pair_idx += (gridDim.x * block_size) / tile_size; + } + + // Final flush of output buffer + if (warp_counter[warp_id] > 0) { + view.flush_output_buffer(warp, + warp_counter[warp_id], + probe_output_buffer[warp_id], + contained_output_buffer[warp_id], + num_matches, + probe_output_begin, + contained_output_begin); + } } template (cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto pair_idx = tid / tile_size; + + constexpr uint32_t num_cgs = block_size / tile_size; + const uint32_t cg_id = threadIdx.x / tile_size; + const uint32_t lane_id = tile.thread_rank(); + + __shared__ cuco::pair_type probe_output_buffer[num_cgs][buffer_size]; + __shared__ cuco::pair_type contained_output_buffer[num_cgs][buffer_size]; + __shared__ uint32_t cg_counter[num_cgs]; + + if (lane_id == 0) { cg_counter[cg_id] = 0; } + + while (first + pair_idx < last) { + typename viewT::value_type pair = *(first + pair_idx); + if constexpr (is_outer) { + view.pair_retrieve_outer(tile, + pair, + &cg_counter[cg_id], + probe_output_buffer[cg_id], + contained_output_buffer[cg_id], + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } else { + view.pair_retrieve(tile, + pair, + &cg_counter[cg_id], + probe_output_buffer[cg_id], + contained_output_buffer[cg_id], + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } + pair_idx += (gridDim.x * block_size) / tile_size; + } + + // Final flush of output buffer + if (cg_counter[cg_id] > 0) { + view.flush_output_buffer(tile, + cg_counter[cg_id], + probe_output_begin[cg_id], + contained_output_buffer[cg_id], + num_matches, + probe_output_begin, + contained_output_begin); + } } } // namespace detail diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 6eb1dad78..1911d618a 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -1100,6 +1100,98 @@ class static_multimap { OutputIt output_begin, KeyEqual key_equal = KeyEqual{}) noexcept; + /** + * @brief Find all the matches of a given pair contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and the + * empty value sentinels into the output only if `is_outer` is true. + * + * @tparam buffer_size Size of the output buffer + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam warpT Warp (Cooperative Group) type + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param warp The Cooperative Group (or warp) used to flush output buffer + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param warp_counter Pointer to the warp counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve_impl(warpT const& warp, + CG const& g, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; + + /** + * @brief Find all the matches of a given pair contained in multimap using scalar + * loads with per-cg shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and the + * empty value sentinels into the output only if `is_outer` is true. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param cg_counter Pointer to the CG counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve_impl(CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; + public: /** * @brief Flushes per-CG buffer into the output sequence using CG memcpy_async. @@ -1148,7 +1240,7 @@ class static_multimap { OutputIt output_begin) noexcept; /** - * @brief Flushes per-CG buffer into the output sequence. + * @brief Flushes per-CG buffer into the output sequences. * * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -1416,6 +1508,181 @@ class static_multimap { atomicT* num_matches, OutputIt output_begin, KeyEqual key_equal = KeyEqual{}) noexcept; + + /** + * @brief Find all the matches of a given pair contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. + * + * @tparam buffer_size Size of the output buffer + * @tparam warpT Warp (Cooperative Group) type + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param warp The Cooperative Group (or warp) used to flush output buffer + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param warp_counter Pointer to the warp counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve(warpT const& warp, + CG const& g, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; + + /** + * @brief Find all the matches of a given pair contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and the + * empty value sentinels into the output. + * + * @tparam buffer_size Size of the output buffer + * @tparam warpT Warp (Cooperative Group) type + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param warp The Cooperative Group (or warp) used to flush output buffer + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param warp_counter Pointer to the warp counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve_outer(warpT const& warp, + CG const& g, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; + + /** + * @brief Find all the matches of a given pair contained in multimap using scalar + * loads with per-cg shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param cg_counter Pointer to the CG counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve(CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; + + /** + * @brief Find all the matches of a given pair contained in multimap using scalar + * loads with per-cg shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and the + * empty value sentinels into the output. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator for probe matches + * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param cg_counter Pointer to the CG counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve_outer(CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; + }; // class device_view /** From f1b94a96c3acc1becdf76bcb79d431f22fb09a3a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 30 Jul 2021 13:06:18 -0400 Subject: [PATCH 180/267] Use zip iterator for pair_retrieve functions --- include/cuco/detail/static_multimap.inl | 74 +++++++++-------- include/cuco/static_multimap.cuh | 102 ++++++++++++------------ 2 files changed, 90 insertions(+), 86 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 2165456f3..42b7460c7 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -386,12 +386,12 @@ template -template +template std::size_t static_multimap::pair_retrieve( InputIt first, InputIt last, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal, cudaStream_t stream) const { @@ -446,12 +446,12 @@ template -template +template std::size_t static_multimap::pair_retrieve_outer( InputIt first, InputIt last, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal, cudaStream_t stream) const { @@ -1148,8 +1148,8 @@ template __device__ void static_multimap::device_view::pair_retrieve_impl( @@ -1160,8 +1160,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept { const uint32_t cg_lane_id = g.thread_rank(); @@ -1250,8 +1250,8 @@ template __device__ void static_multimap::device_view::pair_retrieve_impl( @@ -1261,8 +1261,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept { const uint32_t lane_id = g.thread_rank(); @@ -1397,7 +1397,7 @@ template -template +template __inline__ __device__ void static_multimap::device_view::flush_output_buffer( CG const& g, @@ -1405,8 +1405,8 @@ static_multimap::device_view::flush value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin) noexcept + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin) noexcept { std::size_t offset; const auto lane_id = g.thread_rank(); @@ -1416,8 +1416,12 @@ static_multimap::device_view::flush offset = g.shfl(offset, 0); for (auto index = lane_id; index < num_outputs; index += g.size()) { - *(probe_output_begin + offset + index) = probe_output_buffer[index]; - *(contained_output_begin + offset + index) = contained_output_buffer[index]; + auto& probe_pair = probe_output_buffer[index]; + auto& contained_pair = contained_output_buffer[index]; + thrust::get<0>(probe_output_begin + offset + index) = probe_pair.first; + thrust::get<1>(probe_output_begin + offset + index) = probe_pair.second; + thrust::get<0>(contained_output_begin + offset + index) = contained_pair.first; + thrust::get<1>(contained_output_begin + offset + index) = contained_pair.second; } } @@ -1607,8 +1611,8 @@ template __device__ void static_multimap::device_view::pair_retrieve( @@ -1619,8 +1623,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; @@ -1645,8 +1649,8 @@ template __device__ void static_multimap::device_view::pair_retrieve_outer( @@ -1657,8 +1661,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; @@ -1683,8 +1687,8 @@ template __device__ void static_multimap::device_view::pair_retrieve( @@ -1694,8 +1698,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; @@ -1719,8 +1723,8 @@ template __device__ void static_multimap::device_view::pair_retrieve_outer( @@ -1730,8 +1734,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 1911d618a..4694c780b 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -403,8 +403,8 @@ class static_multimap { * `pair_count()` to determine the number of matching pairs. * * @tparam InputIt Device accessible input iterator for probe pairs - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param first Beginning of the sequence of pairs * @param last End of the sequence of pairs @@ -414,11 +414,11 @@ class static_multimap { * @param stream CUDA stream used for retrieve_outer * @return The total number of matches */ - template + template std::size_t pair_retrieve(InputIt first, InputIt last, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal, cudaStream_t stream = 0) const; @@ -436,8 +436,8 @@ class static_multimap { * `pair_count()` to determine the number of matching pairs. * * @tparam InputIt Device accessible input iterator for probe pairs - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param first Beginning of the sequence of pairs * @param last End of the sequence of pairs @@ -447,11 +447,11 @@ class static_multimap { * @param stream CUDA stream used for retrieve_outer * @return The total number of matches */ - template + template std::size_t pair_retrieve_outer(InputIt first, InputIt last, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal, cudaStream_t stream = 0) const; @@ -1114,8 +1114,8 @@ class static_multimap { * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1133,8 +1133,8 @@ class static_multimap { typename warpT, typename CG, typename atomicT, - typename OutputIt1, - typename OutputIt2, + typename OutputZipIt1, + typename OutputZipIt2, typename PairEqual> __device__ void pair_retrieve_impl(warpT const& warp, CG const& g, @@ -1143,8 +1143,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1161,8 +1161,8 @@ class static_multimap { * @tparam is_outer Boolean flag indicating whether outer join is peformed or not * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for @@ -1179,8 +1179,8 @@ class static_multimap { bool is_outer, typename CG, typename atomicT, - typename OutputIt1, - typename OutputIt2, + typename OutputZipIt1, + typename OutputZipIt2, typename PairEqual> __device__ void pair_retrieve_impl(CG const& g, value_type const& pair, @@ -1188,8 +1188,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept; public: @@ -1244,8 +1244,8 @@ class static_multimap { * * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator for probe pairs - * @tparam OutputIt2 Device accessible output iterator for contained pairs + * @tparam OutputZipIt1 Device accessible output zip iterator for probe pairs + * @tparam OutputZipIt2 Device accessible output zip iterator for contained pairs * @param g The Cooperative Group used to flush output buffer * @param num_outputs Number of valid output in the buffer * @param probe_output_buffer Buffer of the matched probe pair sequence @@ -1254,14 +1254,14 @@ class static_multimap { * @param probe_output_begin Beginning of the output sequence of the matched probe pairs * @param contained_output_begin Beginning of the output sequence of the matched contained pairs */ - template + template __inline__ __device__ void flush_output_buffer(CG const& g, uint32_t const num_outputs, value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin) noexcept; + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map. @@ -1521,8 +1521,8 @@ class static_multimap { * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1539,8 +1539,8 @@ class static_multimap { typename warpT, typename CG, typename atomicT, - typename OutputIt1, - typename OutputIt2, + typename OutputZipIt1, + typename OutputZipIt2, typename PairEqual> __device__ void pair_retrieve(warpT const& warp, CG const& g, @@ -1549,8 +1549,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1566,8 +1566,8 @@ class static_multimap { * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1584,8 +1584,8 @@ class static_multimap { typename warpT, typename CG, typename atomicT, - typename OutputIt1, - typename OutputIt2, + typename OutputZipIt1, + typename OutputZipIt2, typename PairEqual> __device__ void pair_retrieve_outer(warpT const& warp, CG const& g, @@ -1594,8 +1594,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1610,8 +1610,8 @@ class static_multimap { * @tparam buffer_size Size of the output buffer * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for @@ -1627,8 +1627,8 @@ class static_multimap { uint32_t buffer_size, typename CG, typename atomicT, - typename OutputIt1, - typename OutputIt2, + typename OutputZipIt1, + typename OutputZipIt2, typename PairEqual> __device__ void pair_retrieve(CG const& g, value_type const& pair, @@ -1636,8 +1636,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1653,8 +1653,8 @@ class static_multimap { * @tparam buffer_size Size of the output buffer * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator for probe matches - * @tparam OutputIt2 Device accessible output iterator for contained matches + * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches + * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for @@ -1670,8 +1670,8 @@ class static_multimap { uint32_t buffer_size, typename CG, typename atomicT, - typename OutputIt1, - typename OutputIt2, + typename OutputZipIt1, + typename OutputZipIt2, typename PairEqual> __device__ void pair_retrieve_outer(CG const& g, value_type const& pair, @@ -1679,8 +1679,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, + OutputZipIt1 probe_output_begin, + OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept; }; // class device_view From 62dc120e2f309f63684e7dca171df398e12525b3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 30 Jul 2021 13:16:59 -0400 Subject: [PATCH 181/267] Include thrust tuple header --- include/cuco/detail/static_multimap.inl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 42b7460c7..6f4a4a1ce 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -14,6 +14,8 @@ * limitations under the License. */ +#include + namespace cuco { template Date: Fri, 30 Jul 2021 13:22:05 -0400 Subject: [PATCH 182/267] Dereference zip iterator --- include/cuco/detail/static_multimap.inl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 6f4a4a1ce..6e76395ee 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1420,10 +1420,10 @@ static_multimap::device_view::flush for (auto index = lane_id; index < num_outputs; index += g.size()) { auto& probe_pair = probe_output_buffer[index]; auto& contained_pair = contained_output_buffer[index]; - thrust::get<0>(probe_output_begin + offset + index) = probe_pair.first; - thrust::get<1>(probe_output_begin + offset + index) = probe_pair.second; - thrust::get<0>(contained_output_begin + offset + index) = contained_pair.first; - thrust::get<1>(contained_output_begin + offset + index) = contained_pair.second; + thrust::get<0>(*(probe_output_begin + offset + index)) = probe_pair.first; + thrust::get<1>(*(probe_output_begin + offset + index)) = probe_pair.second; + thrust::get<0>(*(contained_output_begin + offset + index)) = contained_pair.first; + thrust::get<1>(*(contained_output_begin + offset + index)) = contained_pair.second; } } From 438f8131a92fd66e99c2d5de1a790b57c4adbee6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 4 Aug 2021 11:36:13 -0400 Subject: [PATCH 183/267] Minor cleanups --- include/cuco/detail/static_multimap_kernels.cuh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 8b77fece7..9dac5cfdd 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -126,9 +126,9 @@ __global__ void insert_if( auto it = first + tid / tile_size; while (it < last) { - if (pred(*it)) { + typename viewT::value_type const insert_pair{*it}; + if (pred(insert_pair)) { // force conversion to value_type - typename viewT::value_type const insert_pair{*it}; view.insert(tile, insert_pair, key_equal); } it += (gridDim.x * block_size) / tile_size; From 4909e7963c33af7d40f897737e9ba91402062f07 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 5 Aug 2021 10:05:57 -0400 Subject: [PATCH 184/267] Fix a bug in pair retrieve: offset for second equals --- include/cuco/detail/static_multimap.inl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 6e76395ee..e2dfe31fd 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1207,8 +1207,8 @@ static_multimap::device_view::pair_ } if (second_equals) { auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); - probe_output_buffer[output_idx + lane_offset] = pair; - contained_output_buffer[output_idx + lane_offset] = arr[1]; + probe_output_buffer[output_idx + num_first_matches + lane_offset] = pair; + contained_output_buffer[output_idx + num_first_matches + lane_offset] = arr[1]; } } if (g.any(first_slot_is_empty or second_slot_is_empty)) { @@ -1418,8 +1418,8 @@ static_multimap::device_view::flush offset = g.shfl(offset, 0); for (auto index = lane_id; index < num_outputs; index += g.size()) { - auto& probe_pair = probe_output_buffer[index]; - auto& contained_pair = contained_output_buffer[index]; + auto& probe_pair = probe_output_buffer[index]; + auto& contained_pair = contained_output_buffer[index]; thrust::get<0>(*(probe_output_begin + offset + index)) = probe_pair.first; thrust::get<1>(*(probe_output_begin + offset + index)) = probe_pair.second; thrust::get<0>(*(contained_output_begin + offset + index)) = contained_pair.first; From fe309f54106dedc147c3c0201958b7811a36d122 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 5 Aug 2021 10:28:48 -0400 Subject: [PATCH 185/267] Add unit tests for pair retrieve function + fix a typo --- .../cuco/detail/static_multimap_kernels.cuh | 2 +- tests/static_multimap/static_multimap_test.cu | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 9dac5cfdd..95f5962fd 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -634,7 +634,7 @@ __global__ void pair_retrieve(InputIt first, if (cg_counter[cg_id] > 0) { view.flush_output_buffer(tile, cg_counter[cg_id], - probe_output_begin[cg_id], + probe_output_buffer[cg_id], contained_output_buffer[cg_id], num_matches, probe_output_begin, diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index d0ae8a7fb..bfbfb8819 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -326,4 +327,38 @@ TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", REQUIRE(num_outer == (num + num_pairs / 2)); } + + SECTION("Output of pair_count and pair_retrieve should be coherent.") + { + auto num = map.pair_count(d_pairs.begin(), d_pairs.end(), pair_equal{}); + + auto out1_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + auto out2_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + + REQUIRE(num == num_pairs); + + auto size = map.pair_retrieve( + d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); + + REQUIRE(num == size); + } + + SECTION("Output of pair_count_outer and pair_retrieve_outer should be coherent.") + { + auto num = map.pair_count_outer(d_pairs.begin(), d_pairs.end(), pair_equal{}); + + auto out1_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + auto out2_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + + REQUIRE(num == num_pairs * 1.5); + + auto size = map.pair_retrieve_outer( + d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); + + REQUIRE(num == size); + } } From 32e551bdaaa1943dd97b4ea928280175d03270c6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 5 Aug 2021 12:46:39 -0400 Subject: [PATCH 186/267] Add unit tests for small test cases --- tests/static_multimap/static_multimap_test.cu | 107 +++++++++++++++--- 1 file changed, 94 insertions(+), 13 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index bfbfb8819..6291ac506 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -94,9 +94,6 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", constexpr std::size_t num_items{400}; cuco::static_multimap map{500, -1, -1}; - auto m_view = map.get_device_mutable_view(); - auto view = map.get_device_view(); - std::vector h_keys(num_items); std::vector> h_pairs(num_items); @@ -181,9 +178,6 @@ TEMPLATE_TEST_CASE_SIG("Handling of non-matches", constexpr std::size_t num_keys{1'000'000}; cuco::static_multimap map{2'000'000, -1, -1}; - auto m_view = map.get_device_mutable_view(); - auto view = map.get_device_view(); - std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -251,7 +245,7 @@ TEMPLATE_TEST_CASE_SIG("Handling of non-matches", } } -TEMPLATE_TEST_CASE_SIG("Test of insert_if", +TEMPLATE_TEST_CASE_SIG("Tests of insert_if", "", ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), (int32_t, int32_t, dist_type::UNIQUE), @@ -261,9 +255,6 @@ TEMPLATE_TEST_CASE_SIG("Test of insert_if", constexpr std::size_t num_keys{1'000'000}; cuco::static_multimap map{2'000'000, -1, -1}; - auto m_view = map.get_device_mutable_view(); - auto view = map.get_device_view(); - std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -297,9 +288,6 @@ TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", constexpr std::size_t num_pairs{5'000'000}; cuco::static_multimap map{10'000'000, -1, -1}; - auto m_view = map.get_device_mutable_view(); - auto view = map.get_device_view(); - std::vector h_keys(num_pairs); std::vector> h_pairs(num_pairs); @@ -362,3 +350,96 @@ TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", REQUIRE(num == size); } } + +TEMPLATE_TEST_CASE_SIG("Evaluation of small test cases", + "", + ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), + (int32_t, int32_t, dist_type::UNIQUE), + (int32_t, int64_t, dist_type::UNIQUE), + (int64_t, int64_t, dist_type::UNIQUE)) +{ + constexpr std::size_t num_items{3}; + cuco::static_multimap map{2 * num_items, -1, -1}; + + std::vector h_keys(num_items); + std::vector> h_pairs(num_items); + + generate_keys(h_keys.begin(), h_keys.end()); + + for (auto i = 0; i < num_items; ++i) { + h_pairs[i].first = h_keys[i] / 2; + h_pairs[i].second = h_keys[i]; + } + + thrust::device_vector d_keys(h_keys); + thrust::device_vector> d_pairs(h_pairs); + + map.insert(d_pairs.begin(), d_pairs.end()); + + for (auto i = 0; i < num_items; ++i) { + h_pairs[i].first = h_keys[i]; + } + d_pairs = h_pairs; + + SECTION("Output of count and retrieve should be coherent.") + { + auto num = map.count(d_keys.begin(), d_keys.end()); + thrust::device_vector> d_results(num); + + REQUIRE(num == num_items); + + auto output_begin = d_results.data().get(); + auto output_end = map.retrieve(d_keys.begin(), d_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); + + REQUIRE(num == size); + } + + SECTION("Output of count_outer and retrieve_outer should be coherent.") + { + auto num = map.count_outer(d_keys.begin(), d_keys.end()); + thrust::device_vector> d_results(num); + + REQUIRE(num == num_items + 1); + + auto output_begin = d_results.data().get(); + auto output_end = map.retrieve_outer(d_keys.begin(), d_keys.end(), output_begin); + auto size = thrust::distance(output_begin, output_end); + + REQUIRE(num == size); + } + + SECTION("Output of pair_count and pair_retrieve should be coherent.") + { + auto num = map.pair_count(d_pairs.begin(), d_pairs.end(), pair_equal{}); + + auto out1_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + auto out2_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + + REQUIRE(num == num_items); + + auto size = map.pair_retrieve( + d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); + + REQUIRE(num == size); + } + + SECTION("Output of pair_count_outer and pair_retrieve_outer should be coherent.") + { + auto num = map.pair_count_outer(d_pairs.begin(), d_pairs.end(), pair_equal{}); + + auto out1_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + auto out2_zip = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + + REQUIRE(num == num_items + 1); + + auto size = map.pair_retrieve_outer( + d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); + + REQUIRE(num == size); + } +} From b1e2cd95c0081219035fc0d806ecf0d5a82c57c1 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 5 Aug 2021 14:25:47 -0400 Subject: [PATCH 187/267] Fix a warp cg synchronization bug --- .../cuco/detail/static_multimap_kernels.cuh | 94 ++++++++++--------- 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 95f5962fd..8b1d6af79 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -378,25 +378,30 @@ __global__ void vectorized_retrieve(InputIt first, if (warp.thread_rank() == 0) { warp_counter[warp_id] = 0; } while (warp.any(first + key_idx < last)) { - auto key = *(first + key_idx); - if constexpr (is_outer) { - view.retrieve_outer(warp, - tile, - key, - &warp_counter[warp_id], - output_buffer[warp_id], - num_matches, - output_begin, - key_equal); - } else { - view.retrieve(warp, - tile, - key, - &warp_counter[warp_id], - output_buffer[warp_id], - num_matches, - output_begin, - key_equal); + bool active_flag = first + key_idx < last; + auto active_warp = cg::binary_partition(warp, active_flag); + + if (active_flag) { + auto key = *(first + key_idx); + if constexpr (is_outer) { + view.retrieve_outer(active_warp, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); + } else { + view.retrieve(active_warp, + tile, + key, + &warp_counter[warp_id], + output_buffer[warp_id], + num_matches, + output_begin, + key_equal); + } } key_idx += (gridDim.x * block_size) / tile_size; } @@ -530,29 +535,34 @@ __global__ void vectorized_pair_retrieve(InputIt first, if (warp.thread_rank() == 0) { warp_counter[warp_id] = 0; } while (warp.any(first + pair_idx < last)) { - typename viewT::value_type pair = *(first + pair_idx); - if constexpr (is_outer) { - view.pair_retrieve_outer(warp, - tile, - pair, - &warp_counter[warp_id], - probe_output_buffer[warp_id], - contained_output_buffer[warp_id], - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); - } else { - view.pair_retrieve(warp, - tile, - pair, - &warp_counter[warp_id], - probe_output_buffer[warp_id], - contained_output_buffer[warp_id], - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); + bool active_flag = first + pair_idx < last; + auto active_warp = cg::binary_partition(warp, active_flag); + + if (active_flag) { + typename viewT::value_type pair = *(first + pair_idx); + if constexpr (is_outer) { + view.pair_retrieve_outer(active_warp, + tile, + pair, + &warp_counter[warp_id], + probe_output_buffer[warp_id], + contained_output_buffer[warp_id], + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } else { + view.pair_retrieve(active_warp, + tile, + pair, + &warp_counter[warp_id], + probe_output_buffer[warp_id], + contained_output_buffer[warp_id], + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } } pair_idx += (gridDim.x * block_size) / tile_size; } From ec28dd0623cc2faabe6a1c67ab55da9b50ebf2cc Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 9 Aug 2021 19:05:41 -0400 Subject: [PATCH 188/267] Add stream argument to multimap constructor --- include/cuco/detail/static_multimap.inl | 10 +++++++--- include/cuco/static_multimap.cuh | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index e2dfe31fd..7337af4aa 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -24,7 +24,11 @@ template static_multimap::static_multimap( - std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel, Allocator const& alloc) + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel, + cudaStream_t stream, + Allocator const& alloc) : empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, slot_allocator_{alloc}, @@ -41,8 +45,8 @@ static_multimap::static_multimap( auto constexpr block_size = 256; auto constexpr stride = 4; auto const grid_size = (get_capacity() + stride * block_size - 1) / (stride * block_size); - detail::initialize - <<>>(slots_, empty_key_sentinel, empty_value_sentinel, get_capacity()); + detail::initialize<<>>( + slots_, empty_key_sentinel, empty_value_sentinel, get_capacity()); } template Date: Wed, 11 Aug 2021 17:53:47 -0400 Subject: [PATCH 189/267] Add optional precomputed hash argument --- include/cuco/detail/probe_sequences.cuh | 10 +- include/cuco/detail/static_multimap.inl | 111 ++++++++++++----- .../cuco/detail/static_multimap_kernels.cuh | 40 +++++-- include/cuco/static_multimap.cuh | 112 ++++++++++++++++-- 4 files changed, 218 insertions(+), 55 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index bc71bfceb..906133d99 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -84,17 +84,21 @@ class double_hashing : public probe_sequence_base { } template - __device__ iterator initial_slot(CG const& g, Key const k) noexcept + __device__ iterator initial_slot( + CG const& g, + Key const k, + thrust::optional::result_type> precomputed_hash) noexcept { std::size_t index; + auto const hash_value = precomputed_hash.value_or(hash1_(k)); if constexpr (uses_vector_load()) { step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * cg_size() * vector_width(); - index = hash1_(k) % (capacity_ / (cg_size() * vector_width())) * cg_size() * vector_width() + + index = hash_value % (capacity_ / (cg_size() * vector_width())) * cg_size() * vector_width() + g.thread_rank() * vector_width(); } else { step_size_ = (hash2_(k + 1) % (capacity_ / cg_size() - 1) + 1) * cg_size(); - index = (hash1_(k) + g.thread_rank()) % capacity_; + index = (hash_value + g.thread_rank()) % capacity_; } return slots_ + index; } diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 7337af4aa..4e58dc673 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -634,9 +634,12 @@ template __device__ std::enable_if_t static_multimap::device_mutable_view::insert_impl( - CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept + CG g, + value_type const& insert_pair, + optional_hash_type precomputed_hash, + KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, insert_pair.first); + auto current_slot = initial_slot(g, insert_pair.first, precomputed_hash); while (true) { value_type arr[2]; load_pair_array(&arr[0], current_slot); @@ -681,9 +684,12 @@ template __device__ std::enable_if_t static_multimap::device_mutable_view::insert_impl( - CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept + CG g, + value_type const& insert_pair, + optional_hash_type precomputed_hash, + KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, insert_pair.first); + auto current_slot = initial_slot(g, insert_pair.first, precomputed_hash); while (true) { key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); @@ -729,9 +735,12 @@ template __device__ void static_multimap::device_mutable_view::insert( - CG g, value_type const& insert_pair, KeyEqual key_equal) noexcept + CG g, + value_type const& insert_pair, + optional_hash_type precomputed_hash, + KeyEqual key_equal) noexcept { - insert_impl(g, insert_pair, key_equal); + insert_impl(g, insert_pair, precomputed_hash, key_equal); } template __device__ std::enable_if_t static_multimap::device_view::contains_impl( - CG g, Key const& k, KeyEqual key_equal) noexcept + CG g, Key const& k, optional_hash_type precomputed_hash, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k); + auto current_slot = initial_slot(g, k, precomputed_hash); while (true) { value_type arr[2]; @@ -777,9 +786,9 @@ template __device__ std::enable_if_t static_multimap::device_view::contains_impl( - CG g, Key const& k, KeyEqual key_equal) noexcept + CG g, Key const& k, optional_hash_type precomputed_hash, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k); + auto current_slot = initial_slot(g, k, precomputed_hash); while (true) { key_type const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); @@ -811,9 +820,13 @@ template __device__ std::enable_if_t static_multimap::device_view::count_impl( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept + CG const& g, + Key const& k, + optional_hash_type precomputed_hash, + std::size_t& thread_num_matches, + KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k); + auto current_slot = initial_slot(g, k, precomputed_hash); [[maybe_unused]] bool found_match = false; @@ -853,9 +866,13 @@ template __device__ std::enable_if_t static_multimap::device_view::count_impl( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept + CG const& g, + Key const& k, + optional_hash_type precomputed_hash, + std::size_t& thread_num_matches, + KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k); + auto current_slot = initial_slot(g, k, precomputed_hash); [[maybe_unused]] bool found_match = false; @@ -894,11 +911,12 @@ __device__ std::enable_if_t static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { auto key = pair.first; - auto current_slot = initial_slot(g, key); + auto current_slot = initial_slot(g, key, precomputed_hash); [[maybe_unused]] bool found_match = false; @@ -941,11 +959,12 @@ __device__ std::enable_if_t static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { auto key = pair.first; - auto current_slot = initial_slot(g, key); + auto current_slot = initial_slot(g, key, precomputed_hash); [[maybe_unused]] bool found_match = false; @@ -990,6 +1009,7 @@ static_multimap::device_view::retri warpT const& warp, CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -998,7 +1018,7 @@ static_multimap::device_view::retri { const uint32_t cg_lane_id = g.thread_rank(); - auto current_slot = initial_slot(g, k); + auto current_slot = initial_slot(g, k, precomputed_hash); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1082,6 +1102,7 @@ __device__ void static_multimap::device_view::retrieve_impl( CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1090,7 +1111,7 @@ static_multimap::device_view::retri { const uint32_t lane_id = g.thread_rank(); - auto current_slot = initial_slot(g, k); + auto current_slot = initial_slot(g, k, precomputed_hash); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1162,6 +1183,7 @@ static_multimap::device_view::pair_ warpT const& warp, CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1173,7 +1195,7 @@ static_multimap::device_view::pair_ const uint32_t cg_lane_id = g.thread_rank(); auto key = pair.first; - auto current_slot = initial_slot(g, key); + auto current_slot = initial_slot(g, key, precomputed_hash); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1263,6 +1285,7 @@ __device__ void static_multimap::device_view::pair_retrieve_impl( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1274,7 +1297,7 @@ static_multimap::device_view::pair_ const uint32_t lane_id = g.thread_rank(); auto key = pair.first; - auto current_slot = initial_slot(g, key); + auto current_slot = initial_slot(g, key, precomputed_hash); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1438,9 +1461,9 @@ template template __device__ bool static_multimap::device_view::contains( - CG g, Key const& k, KeyEqual key_equal) noexcept + CG g, Key const& k, optional_hash_type precomputed_hash, KeyEqual key_equal) noexcept { - return contains_impl(g, k, key_equal); + return contains_impl(g, k, precomputed_hash, key_equal); } template template __device__ void static_multimap::device_view::count( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept + CG const& g, + Key const& k, + optional_hash_type precomputed_hash, + std::size_t& thread_num_matches, + KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - count_impl(g, k, thread_num_matches, key_equal); + count_impl(g, k, precomputed_hash, thread_num_matches, key_equal); } template __device__ void static_multimap::device_view::count_outer( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept + CG const& g, + Key const& k, + optional_hash_type precomputed_hash, + std::size_t& thread_num_matches, + KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - count_impl(g, k, thread_num_matches, key_equal); + count_impl(g, k, precomputed_hash, thread_num_matches, key_equal); } template ::device_view::pair_count( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; - pair_count_impl(g, pair, thread_num_matches, pair_equal); + pair_count_impl( + g, pair, precomputed_hash, thread_num_matches, pair_equal); } template ::device_view::pair_count_outer( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; - pair_count_impl(g, pair, thread_num_matches, pair_equal); + pair_count_impl( + g, pair, precomputed_hash, thread_num_matches, pair_equal); } template ::de warpT const& warp, CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1527,7 +1563,7 @@ __device__ void static_multimap::de { constexpr bool is_outer = false; retrieve_impl( - warp, g, k, warp_counter, output_buffer, num_matches, output_begin); + warp, g, k, precomputed_hash, warp_counter, output_buffer, num_matches, output_begin); } template ::device_view::retri warpT const& warp, CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1554,7 +1591,7 @@ static_multimap::device_view::retri { constexpr bool is_outer = true; retrieve_impl( - warp, g, k, warp_counter, output_buffer, num_matches, output_begin); + warp, g, k, precomputed_hash, warp_counter, output_buffer, num_matches, output_begin); } template ::device_view::retrieve( CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1579,7 +1617,7 @@ __device__ void static_multimap::de { constexpr bool is_outer = false; retrieve_impl( - g, k, cg_counter, output_buffer, num_matches, output_begin); + g, k, precomputed_hash, cg_counter, output_buffer, num_matches, output_begin); } template ::device_view::retrieve_outer( CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1605,7 +1644,7 @@ static_multimap::device_view::retri { constexpr bool is_outer = true; retrieve_impl( - g, k, cg_counter, output_buffer, num_matches, output_begin); + g, k, precomputed_hash, cg_counter, output_buffer, num_matches, output_begin); } template ::device_view::pair_ warpT const& warp, CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1637,6 +1677,7 @@ static_multimap::device_view::pair_ pair_retrieve_impl(warp, g, pair, + precomputed_hash, warp_counter, probe_output_buffer, contained_output_buffer, @@ -1663,6 +1704,7 @@ static_multimap::device_view::pair_ warpT const& warp, CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1675,6 +1717,7 @@ static_multimap::device_view::pair_ pair_retrieve_impl(warp, g, pair, + precomputed_hash, warp_counter, probe_output_buffer, contained_output_buffer, @@ -1700,6 +1743,7 @@ __device__ void static_multimap::device_view::pair_retrieve( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1711,6 +1755,7 @@ static_multimap::device_view::pair_ constexpr bool is_outer = false; pair_retrieve_impl(g, pair, + precomputed_hash, cg_counter, probe_output_buffer, contained_output_buffer, @@ -1736,6 +1781,7 @@ __device__ void static_multimap::device_view::pair_retrieve_outer( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1747,6 +1793,7 @@ static_multimap::device_view::pair_ constexpr bool is_outer = true; pair_retrieve_impl(g, pair, + precomputed_hash, cg_counter, probe_output_buffer, contained_output_buffer, diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 8b1d6af79..d92ab91fc 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -87,7 +87,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - view.insert(tile, insert_pair, key_equal); + view.insert(tile, insert_pair, thrust::nullopt, key_equal); it += (gridDim.x * block_size) / tile_size; } } @@ -129,7 +129,7 @@ __global__ void insert_if( typename viewT::value_type const insert_pair{*it}; if (pred(insert_pair)) { // force conversion to value_type - view.insert(tile, insert_pair, key_equal); + view.insert(tile, insert_pair, thrust::nullopt, key_equal); } it += (gridDim.x * block_size) / tile_size; } @@ -173,7 +173,7 @@ __global__ void contains( while (first + key_idx < last) { auto key = *(first + key_idx); - auto found = view.contains(tile, key, key_equal); + auto found = view.contains(tile, key, thrust::nullopt, key_equal); /* * The ld.relaxed.gpu instruction used in view.find causes L1 to @@ -236,9 +236,9 @@ __global__ void count( while (first + key_idx < last) { auto key = *(first + key_idx); if constexpr (is_outer) { - view.count_outer(tile, key, thread_num_matches, key_equal); + view.count_outer(tile, key, thrust::nullopt, thread_num_matches, key_equal); } else { - view.count(tile, key, thread_num_matches, key_equal); + view.count(tile, key, thrust::nullopt, thread_num_matches, key_equal); } key_idx += (gridDim.x * block_size) / tile_size; } @@ -295,9 +295,9 @@ __global__ void pair_count( while (first + pair_idx < last) { typename viewT::value_type const pair = *(first + pair_idx); if constexpr (is_outer) { - view.pair_count_outer(tile, pair, thread_num_matches, pair_equal); + view.pair_count_outer(tile, pair, thrust::nullopt, thread_num_matches, pair_equal); } else { - view.pair_count(tile, pair, thread_num_matches, pair_equal); + view.pair_count(tile, pair, thrust::nullopt, thread_num_matches, pair_equal); } pair_idx += (gridDim.x * block_size) / tile_size; } @@ -387,6 +387,7 @@ __global__ void vectorized_retrieve(InputIt first, view.retrieve_outer(active_warp, tile, key, + thrust::nullopt, &warp_counter[warp_id], output_buffer[warp_id], num_matches, @@ -396,6 +397,7 @@ __global__ void vectorized_retrieve(InputIt first, view.retrieve(active_warp, tile, key, + thrust::nullopt, &warp_counter[warp_id], output_buffer[warp_id], num_matches, @@ -481,11 +483,23 @@ __global__ void retrieve(InputIt first, while (first + key_idx < last) { auto key = *(first + key_idx); if constexpr (is_outer) { - view.retrieve_outer( - tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); + view.retrieve_outer(tile, + key, + thrust::nullopt, + &cg_counter[cg_id], + output_buffer[cg_id], + num_matches, + output_begin, + key_equal); } else { - view.retrieve( - tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); + view.retrieve(tile, + key, + thrust::nullopt, + &cg_counter[cg_id], + output_buffer[cg_id], + num_matches, + output_begin, + key_equal); } key_idx += (gridDim.x * block_size) / tile_size; } @@ -544,6 +558,7 @@ __global__ void vectorized_pair_retrieve(InputIt first, view.pair_retrieve_outer(active_warp, tile, pair, + thrust::nullopt, &warp_counter[warp_id], probe_output_buffer[warp_id], contained_output_buffer[warp_id], @@ -555,6 +570,7 @@ __global__ void vectorized_pair_retrieve(InputIt first, view.pair_retrieve(active_warp, tile, pair, + thrust::nullopt, &warp_counter[warp_id], probe_output_buffer[warp_id], contained_output_buffer[warp_id], @@ -619,6 +635,7 @@ __global__ void pair_retrieve(InputIt first, if constexpr (is_outer) { view.pair_retrieve_outer(tile, pair, + thrust::nullopt, &cg_counter[cg_id], probe_output_buffer[cg_id], contained_output_buffer[cg_id], @@ -629,6 +646,7 @@ __global__ void pair_retrieve(InputIt first, } else { view.pair_retrieve(tile, pair, + thrust::nullopt, &cg_counter[cg_id], probe_output_buffer[cg_id], contained_output_buffer[cg_id], diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 0de4ae0c3..cf0e9e973 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -151,6 +152,7 @@ class static_multimap { typename std::allocator_traits::rebind_alloc; using counter_allocator_type = typename std::allocator_traits::rebind_alloc; + using optional_hash_type = thrust::optional::result_type>; static_multimap(static_multimap const&) = delete; static_multimap(static_multimap&&) = delete; @@ -547,9 +549,11 @@ class static_multimap { * @return Pointer to the initial slot for `k` */ template - __device__ iterator initial_slot(CG const& g, Key const& k) noexcept + __device__ iterator initial_slot(CG const& g, + Key const& k, + optional_hash_type precomputed_hash) noexcept { - return probe_sequence_.initial_slot(g, k); + return probe_sequence_.initial_slot(g, k, precomputed_hash); } /** @@ -563,9 +567,11 @@ class static_multimap { * @return Pointer to the initial slot for `k` */ template - __device__ const_iterator initial_slot(CG g, Key const& k) const noexcept + __device__ const_iterator initial_slot(CG g, + Key const& k, + optional_hash_type precomputed_hash) const noexcept { - return probe_sequence_.initial_slot(g, k); + return probe_sequence_.initial_slot(g, k, precomputed_hash); } /** @@ -735,13 +741,18 @@ class static_multimap { * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param key_equal The binary callable used to compare two keys for * equality * @return void. */ template > __device__ std::enable_if_t insert_impl( - CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, + value_type const& insert_pair, + optional_hash_type precomputed_hash, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Inserts the specified key/value pair into the map using scalar loads. @@ -752,13 +763,18 @@ class static_multimap { * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param key_equal The binary callable used to compare two keys for * equality * @return void. */ template > __device__ std::enable_if_t insert_impl( - CG g, value_type const& insert_pair, KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, + value_type const& insert_pair, + optional_hash_type precomputed_hash, + KeyEqual key_equal = KeyEqual{}) noexcept; public: /** @@ -769,6 +785,8 @@ class static_multimap { * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param key_equal The binary callable used to compare two keys for * equality * @return void. @@ -776,6 +794,7 @@ class static_multimap { template > __device__ void insert(CG g, value_type const& insert_pair, + optional_hash_type precomputed_hash, KeyEqual key_equal = KeyEqual{}) noexcept; }; // class device mutable view @@ -900,6 +919,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair @@ -907,7 +928,10 @@ class static_multimap { */ template > __device__ std::enable_if_t contains_impl( - CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, + Key const& k, + optional_hash_type precomputed_hash, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map using scalar loads. @@ -923,6 +947,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair @@ -930,7 +956,10 @@ class static_multimap { */ template > __device__ std::enable_if_t contains_impl( - CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, + Key const& k, + optional_hash_type precomputed_hash, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap using vector loads. @@ -941,6 +970,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -952,6 +983,7 @@ class static_multimap { __device__ std::enable_if_t count_impl( CG const& g, Key const& k, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -964,6 +996,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -975,6 +1009,7 @@ class static_multimap { __device__ std::enable_if_t count_impl( CG const& g, Key const& k, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -988,6 +1023,8 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -996,6 +1033,7 @@ class static_multimap { __device__ std::enable_if_t pair_count_impl( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1009,6 +1047,8 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -1017,6 +1057,7 @@ class static_multimap { __device__ std::enable_if_t pair_count_impl( CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1039,6 +1080,8 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param warp_counter Pointer to the warp counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1056,6 +1099,7 @@ class static_multimap { __device__ void retrieve_impl(warpT const& warp, CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1080,6 +1124,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param cg_counter Pointer to the CG counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1096,6 +1142,7 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ void retrieve_impl(CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1122,6 +1169,8 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param warp_counter Pointer to the warp counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1141,6 +1190,7 @@ class static_multimap { __device__ void pair_retrieve_impl(warpT const& warp, CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1168,6 +1218,8 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param cg_counter Pointer to the CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1186,6 +1238,7 @@ class static_multimap { typename PairEqual> __device__ void pair_retrieve_impl(CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1278,13 +1331,18 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ template > - __device__ bool contains(CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ bool contains(CG g, + Key const& k, + optional_hash_type precomputed_hash, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap. @@ -1293,6 +1351,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -1300,6 +1360,7 @@ class static_multimap { template > __device__ void count(CG const& g, Key const& k, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -1311,6 +1372,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -1318,6 +1381,7 @@ class static_multimap { template > __device__ void count_outer(CG const& g, Key const& k, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -1328,6 +1392,8 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -1335,6 +1401,7 @@ class static_multimap { template __device__ void pair_count(CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1346,6 +1413,8 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -1353,6 +1422,7 @@ class static_multimap { template __device__ void pair_count_outer(CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1374,6 +1444,8 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param warp_counter Pointer to the warp counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1390,6 +1462,7 @@ class static_multimap { __device__ void retrieve(warpT const& warp, CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1414,6 +1487,8 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param warp_counter Pointer to the warp counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1430,6 +1505,7 @@ class static_multimap { __device__ void retrieve_outer(warpT const& warp, CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1452,6 +1528,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param cg_counter Pointer to the CG counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1467,6 +1545,7 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ void retrieve(CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1490,6 +1569,8 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param cg_counter Pointer to the CG counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1505,6 +1586,7 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ void retrieve_outer(CG const& g, Key const& k, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1529,6 +1611,8 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param warp_counter Pointer to the warp counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1547,6 +1631,7 @@ class static_multimap { __device__ void pair_retrieve(warpT const& warp, CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1574,6 +1659,8 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param warp_counter Pointer to the warp counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1592,6 +1679,7 @@ class static_multimap { __device__ void pair_retrieve_outer(warpT const& warp, CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1617,6 +1705,8 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param cg_counter Pointer to the CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1634,6 +1724,7 @@ class static_multimap { typename PairEqual> __device__ void pair_retrieve(CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1660,6 +1751,8 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for + * @param precomputed_hash Optional value which allows users to specify the precomputed hash + * value * @param cg_counter Pointer to the CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1677,6 +1770,7 @@ class static_multimap { typename PairEqual> __device__ void pair_retrieve_outer(CG const& g, value_type const& pair, + optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, From 12c3701fe198b663eacb5aa6a382ad4507306035 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 13 Aug 2021 12:11:49 -0400 Subject: [PATCH 190/267] Cleanups: add d_counter as a memeber variable --- include/cuco/detail/static_multimap.inl | 189 ++++++------------------ include/cuco/static_multimap.cuh | 3 +- 2 files changed, 49 insertions(+), 143 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 4e58dc673..b25d72ac0 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -34,6 +34,8 @@ static_multimap::static_multimap( slot_allocator_{alloc}, counter_allocator_{alloc} { + d_counter = std::allocator_traits::allocate(counter_allocator_, 1); + if constexpr (uses_vector_load()) { capacity_ = cuco::detail::get_valid_capacity(capacity); } else { @@ -56,6 +58,7 @@ template static_multimap::~static_multimap() { + std::allocator_traits::deallocate(counter_allocator_, d_counter, 1); std::allocator_traits::deallocate(slot_allocator_, slots_, capacity_); } @@ -138,28 +141,16 @@ std::size_t static_multimap::count( constexpr bool is_outer = false; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; detail::count - <<>>(first, last, d_num_matches, view, key_equal); + <<>>(first, last, d_counter, view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto result = h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - - return result; + return h_counter; } template ::count_ constexpr bool is_outer = true; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; detail::count - <<>>(first, last, d_num_matches, view, key_equal); + <<>>(first, last, d_counter, view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto result = h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - - return result; + return h_counter; } template ::pair_c constexpr bool is_outer = false; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; detail::pair_count - <<>>(first, last, d_num_matches, view, pair_equal); + <<>>(first, last, d_counter, view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto result = h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - - return result; + return h_counter; } template ::pair_c constexpr bool is_outer = true; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; detail::pair_count - <<>>(first, last, d_num_matches, view, pair_equal); + <<>>(first, last, d_counter, view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto result = h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - - return result; + return h_counter; } template ::retrieve( constexpr bool is_outer = false; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; if constexpr (uses_vector_load()) { detail:: vectorized_retrieve - <<>>( - first, last, output_begin, d_num_matches, view, key_equal); + <<>>(first, last, output_begin, d_counter, view, key_equal); } else { detail::retrieve - <<>>( - first, last, output_begin, d_num_matches, view, key_equal); + <<>>(first, last, output_begin, d_counter, view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto output_end = output_begin + h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - + auto output_end = output_begin + h_counter; return output_end; } @@ -355,35 +297,22 @@ OutputIt static_multimap::retrieve_ constexpr bool is_outer = true; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; if constexpr (uses_vector_load()) { detail:: vectorized_retrieve - <<>>( - first, last, output_begin, d_num_matches, view, key_equal); + <<>>(first, last, output_begin, d_counter, view, key_equal); } else { detail::retrieve - <<>>( - first, last, output_begin, d_num_matches, view, key_equal); + <<>>(first, last, output_begin, d_counter, view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto output_end = output_begin + h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - + auto output_end = output_begin + h_counter; return output_end; } @@ -411,15 +340,8 @@ std::size_t static_multimap::pair_r constexpr bool is_outer = false; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_pair_retrieve::pair_r Key, Value, is_outer><<>>( - first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } else { detail::pair_retrieve <<>>( - first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto res = h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - - return res; + return h_counter; } template ::pair_r constexpr bool is_outer = true; - atomic_ctr_type *h_num_matches, *d_num_matches; - - CUCO_CUDA_TRY(cudaMallocHost((void**)&h_num_matches, sizeof(atomic_ctr_type))); - auto tmp_counter_allocator = counter_allocator_; - d_num_matches = std::allocator_traits::allocate(tmp_counter_allocator, 1); - - h_num_matches->store(static_cast(0), cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaMemcpyAsync( - d_num_matches, h_num_matches, sizeof(atomic_ctr_type), cudaMemcpyHostToDevice, stream)); + cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_pair_retrieve::pair_r Key, Value, is_outer><<>>( - first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } else { detail::pair_retrieve <<>>( - first, last, probe_output_begin, contained_output_begin, d_num_matches, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - h_num_matches, d_num_matches, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - auto res = h_num_matches->load(cuda::std::memory_order_relaxed); - CUCO_CUDA_TRY(cudaFreeHost(h_num_matches)); - std::allocator_traits::deallocate( - tmp_counter_allocator, d_num_matches, 1); - - return res; + return h_counter; } template From be58a9ac7f43be023fb0b0e13c87ba6d2fc06eeb Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 17 Aug 2021 12:33:32 -0400 Subject: [PATCH 191/267] Cleanups: remove unused template parameters --- .../static_multimap/find_all_bench.cu | 3 +- include/cuco/detail/static_multimap.inl | 44 +++++++------------ .../cuco/detail/static_multimap_kernels.cuh | 42 +++++++----------- 3 files changed, 32 insertions(+), 57 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index e030f4cc6..8a6332ae9 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -105,8 +105,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); // Use timers to explicitly mark the target region - cuco::detail:: - vectorized_retrieve + cuco::detail::vectorized_retrieve <<>>(d_unique_keys.begin(), d_unique_keys.end(), d_results.data().get(), diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index b25d72ac0..de49fca49 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -144,7 +144,7 @@ std::size_t static_multimap::count( cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - detail::count + detail::count <<>>(first, last, d_counter, view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); @@ -173,7 +173,7 @@ std::size_t static_multimap::count_ cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - detail::count + detail::count <<>>(first, last, d_counter, view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); @@ -202,7 +202,7 @@ std::size_t static_multimap::pair_c cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - detail::pair_count + detail::pair_count <<>>(first, last, d_counter, view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); @@ -231,7 +231,7 @@ std::size_t static_multimap::pair_c cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - detail::pair_count + detail::pair_count <<>>(first, last, d_counter, view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); @@ -263,11 +263,10 @@ OutputIt static_multimap::retrieve( std::size_t h_counter; if constexpr (uses_vector_load()) { - detail:: - vectorized_retrieve + detail::vectorized_retrieve <<>>(first, last, output_begin, d_counter, view, key_equal); } else { - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, d_counter, view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -301,11 +300,10 @@ OutputIt static_multimap::retrieve_ std::size_t h_counter; if constexpr (uses_vector_load()) { - detail:: - vectorized_retrieve + detail::vectorized_retrieve <<>>(first, last, output_begin, d_counter, view, key_equal); } else { - detail::retrieve + detail::retrieve <<>>(first, last, output_begin, d_counter, view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( @@ -344,16 +342,11 @@ std::size_t static_multimap::pair_r std::size_t h_counter; if constexpr (uses_vector_load()) { - detail::vectorized_pair_retrieve<<>>( - first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); + detail::vectorized_pair_retrieve + <<>>( + first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } else { - detail::pair_retrieve + detail::pair_retrieve <<>>( first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } @@ -392,16 +385,11 @@ std::size_t static_multimap::pair_r std::size_t h_counter; if constexpr (uses_vector_load()) { - detail::vectorized_pair_retrieve<<>>( - first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); + detail::vectorized_pair_retrieve + <<>>( + first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } else { - detail::pair_retrieve + detail::pair_retrieve <<>>( first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); } diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index d92ab91fc..2629abdfc 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -197,8 +197,6 @@ __global__ void contains( * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts - * @tparam Key key type - * @tparam Value The type of the mapped value for the map * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not @@ -215,8 +213,6 @@ __global__ void contains( */ template output_buffer[num_warps][buffer_size]; + __shared__ pair_type output_buffer[num_warps][buffer_size]; // TODO: replace this with shared memory cuda::atomic variables once the dynamiic initialization // warning issue is solved __shared__ atomicT toto_countter[num_warps]; __shared__ uint32_t warp_counter[num_warps]; @@ -430,8 +420,6 @@ __global__ void vectorized_retrieve(InputIt first, * @tparam warp_size The size of the warp * @tparam tile_size The number of threads in the Cooperative Groups * @tparam buffer_size Size of the output buffer - * @tparam Key key type - * @tparam Value The type of the mapped value for the map * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join * operations or not * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -452,8 +440,6 @@ template (cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; @@ -475,7 +463,7 @@ __global__ void retrieve(InputIt first, const uint32_t cg_id = threadIdx.x / tile_size; const uint32_t lane_id = tile.thread_rank(); - __shared__ cuco::pair_type output_buffer[num_cgs][buffer_size]; + __shared__ pair_type output_buffer[num_cgs][buffer_size]; __shared__ uint32_t cg_counter[num_cgs]; if (lane_id == 0) { cg_counter[cg_id] = 0; } @@ -515,8 +503,6 @@ template probe_output_buffer[num_warps][buffer_size]; - __shared__ cuco::pair_type contained_output_buffer[num_warps][buffer_size]; + __shared__ pair_type probe_output_buffer[num_warps][buffer_size]; + __shared__ pair_type contained_output_buffer[num_warps][buffer_size]; // TODO: replace this with shared memory cuda::atomic variables once the dynamiic initialization // warning issue is solved __shared__ atomicT toto_countter[num_warps]; __shared__ uint32_t warp_counter[num_warps]; @@ -553,7 +541,7 @@ __global__ void vectorized_pair_retrieve(InputIt first, auto active_warp = cg::binary_partition(warp, active_flag); if (active_flag) { - typename viewT::value_type pair = *(first + pair_idx); + pair_type pair = *(first + pair_idx); if constexpr (is_outer) { view.pair_retrieve_outer(active_warp, tile, @@ -599,8 +587,6 @@ template (cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; auto pair_idx = tid / tile_size; @@ -624,8 +612,8 @@ __global__ void pair_retrieve(InputIt first, const uint32_t cg_id = threadIdx.x / tile_size; const uint32_t lane_id = tile.thread_rank(); - __shared__ cuco::pair_type probe_output_buffer[num_cgs][buffer_size]; - __shared__ cuco::pair_type contained_output_buffer[num_cgs][buffer_size]; + __shared__ pair_type probe_output_buffer[num_cgs][buffer_size]; + __shared__ pair_type contained_output_buffer[num_cgs][buffer_size]; __shared__ uint32_t cg_counter[num_cgs]; if (lane_id == 0) { cg_counter[cg_id] = 0; } From 0735c19d2fcab47e854b38d2d0561ab399673b7b Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 17 Aug 2021 13:40:27 -0400 Subject: [PATCH 192/267] Add stream as allocator argument + cleanups --- include/cuco/allocator.hpp | 7 ++- include/cuco/detail/static_multimap.inl | 72 +++++++++++++------------ include/cuco/static_multimap.cuh | 3 +- 3 files changed, 45 insertions(+), 37 deletions(-) diff --git a/include/cuco/allocator.hpp b/include/cuco/allocator.hpp index 71d590384..634e90423 100644 --- a/include/cuco/allocator.hpp +++ b/include/cuco/allocator.hpp @@ -32,14 +32,17 @@ class cuda_allocator { { } - value_type* allocate(std::size_t n) + value_type* allocate(std::size_t n, cudaStream_t stream = 0) { value_type* p; CUCO_CUDA_TRY(cudaMalloc(&p, sizeof(value_type) * n)); return p; } - void deallocate(value_type* p, std::size_t) { CUCO_CUDA_TRY(cudaFree(p)); } + void deallocate(value_type* p, std::size_t, cudaStream_t stream = 0) + { + CUCO_CUDA_TRY(cudaFree(p)); + } }; template diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index de49fca49..0b043b9db 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -32,17 +32,17 @@ static_multimap::static_multimap( : empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, slot_allocator_{alloc}, - counter_allocator_{alloc} + counter_allocator_{alloc}, + stream_{stream} { - d_counter = std::allocator_traits::allocate(counter_allocator_, 1); - if constexpr (uses_vector_load()) { capacity_ = cuco::detail::get_valid_capacity(capacity); } else { capacity_ = cuco::detail::get_valid_capacity(capacity); } - slots_ = std::allocator_traits::allocate(slot_allocator_, get_capacity()); + d_counter_ = counter_allocator_.allocate(1, stream_); + slots_ = slot_allocator_.allocate(get_capacity(), stream_); auto constexpr block_size = 256; auto constexpr stride = 4; @@ -58,8 +58,8 @@ template static_multimap::~static_multimap() { - std::allocator_traits::deallocate(counter_allocator_, d_counter, 1); - std::allocator_traits::deallocate(slot_allocator_, slots_, capacity_); + counter_allocator_.deallocate(d_counter_, 1, stream_); + slot_allocator_.deallocate(slots_, get_capacity(), stream_); } template ::count( constexpr bool is_outer = false; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::count - <<>>(first, last, d_counter, view, key_equal); + <<>>(first, last, d_counter_, view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -170,13 +170,13 @@ std::size_t static_multimap::count_ constexpr bool is_outer = true; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::count - <<>>(first, last, d_counter, view, key_equal); + <<>>(first, last, d_counter_, view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -199,13 +199,13 @@ std::size_t static_multimap::pair_c constexpr bool is_outer = false; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::pair_count - <<>>(first, last, d_counter, view, pair_equal); + <<>>(first, last, d_counter_, view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -228,13 +228,13 @@ std::size_t static_multimap::pair_c constexpr bool is_outer = true; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::pair_count - <<>>(first, last, d_counter, view, pair_equal); + <<>>(first, last, d_counter_, view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -259,18 +259,20 @@ OutputIt static_multimap::retrieve( constexpr bool is_outer = false; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_retrieve - <<>>(first, last, output_begin, d_counter, view, key_equal); + <<>>( + first, last, output_begin, d_counter_, view, key_equal); } else { detail::retrieve - <<>>(first, last, output_begin, d_counter, view, key_equal); + <<>>( + first, last, output_begin, d_counter_, view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + h_counter; @@ -296,18 +298,20 @@ OutputIt static_multimap::retrieve_ constexpr bool is_outer = true; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_retrieve - <<>>(first, last, output_begin, d_counter, view, key_equal); + <<>>( + first, last, output_begin, d_counter_, view, key_equal); } else { detail::retrieve - <<>>(first, last, output_begin, d_counter, view, key_equal); + <<>>( + first, last, output_begin, d_counter_, view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + h_counter; @@ -338,20 +342,20 @@ std::size_t static_multimap::pair_r constexpr bool is_outer = false; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_pair_retrieve <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); } else { detail::pair_retrieve <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -381,20 +385,20 @@ std::size_t static_multimap::pair_r constexpr bool is_outer = true; - cudaMemsetAsync(d_counter, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_pair_retrieve <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); } else { detail::pair_retrieve <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter, view, pair_equal); + first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index db606bfd2..221e634cd 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -1845,7 +1845,8 @@ class static_multimap { Value empty_value_sentinel_{}; ///< Initial value of empty slot slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots counter_allocator_type counter_allocator_{}; ///< Allocator used to allocate counters - atomic_ctr_type* d_counter; + atomic_ctr_type* d_counter_; + cudaStream_t const& stream_; }; // class static_multimap } // namespace cuco From 7476735c583f0d920a5ab780c4ca03eed79ed730 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 17 Aug 2021 16:59:57 -0400 Subject: [PATCH 193/267] Member variable stream: const value instead of const reference --- include/cuco/static_multimap.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 221e634cd..1092a3411 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -1846,7 +1846,7 @@ class static_multimap { slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots counter_allocator_type counter_allocator_{}; ///< Allocator used to allocate counters atomic_ctr_type* d_counter_; - cudaStream_t const& stream_; + cudaStream_t const stream_; }; // class static_multimap } // namespace cuco From 0b4eeeb8ab443bf2829b20ffa4848a8064a5eef6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 23 Aug 2021 13:36:42 -0400 Subject: [PATCH 194/267] Use cudaOccupancyMaxActiveBlocksPerMultiprocessor to determine grid size --- include/cuco/detail/static_multimap.inl | 354 +++++++++++++++++++----- 1 file changed, 288 insertions(+), 66 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 0b043b9db..d04a98342 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -44,9 +44,19 @@ static_multimap::static_multimap( d_counter_ = counter_allocator_.allocate(1, stream_); slots_ = slot_allocator_.allocate(get_capacity(), stream_); - auto constexpr block_size = 256; - auto constexpr stride = 4; - auto const grid_size = (get_capacity() + stride * block_size - 1) / (stride * block_size); + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail::initialize, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; + detail::initialize<<>>( slots_, empty_key_sentinel, empty_value_sentinel, get_capacity()); } @@ -73,11 +83,21 @@ void static_multimap::insert(InputI cudaStream_t stream, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_mutable_view(); + auto num_keys = std::distance(first, last); + auto view = get_device_mutable_view(); + + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail::insert, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; detail::insert <<>>(first, first + num_keys, view, key_equal); @@ -93,11 +113,21 @@ template void static_multimap::insert_if( InputIt first, InputIt last, Predicate pred, cudaStream_t stream, KeyEqual key_equal) { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_mutable_view(); + auto num_keys = std::distance(first, last); + auto view = get_device_mutable_view(); + + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail::insert_if, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; detail::insert_if <<>>(first, first + num_keys, view, pred, key_equal); @@ -113,11 +143,21 @@ template void static_multimap::contains( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto view = get_device_view(); + + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail::contains, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; detail::contains <<>>(first, last, output_begin, view, key_equal); @@ -133,14 +173,24 @@ template std::size_t static_multimap::count( InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto view = get_device_view(); constexpr bool is_outer = false; + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail::count, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -162,14 +212,24 @@ template std::size_t static_multimap::count_outer( InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto view = get_device_view(); constexpr bool is_outer = true; + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail::count, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -191,14 +251,25 @@ template std::size_t static_multimap::pair_count( InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto view = get_device_view(); constexpr bool is_outer = false; + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail:: + pair_count, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -220,14 +291,25 @@ template std::size_t static_multimap::pair_count_outer( InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { - auto num_keys = std::distance(first, last); - auto const block_size = 128; - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + auto num_keys = std::distance(first, last); + auto view = get_device_view(); constexpr bool is_outer = true; + auto constexpr block_size = 128; + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &grid_size, + detail:: + pair_count, + block_size, + 0); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; + cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -249,15 +331,49 @@ template OutputIt static_multimap::retrieve( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { - auto num_keys = std::distance(first, last); - auto const block_size = 128; + auto num_keys = std::distance(first, last); + auto view = get_device_view(); + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr bool is_outer = false; - constexpr bool is_outer = false; + auto constexpr block_size = 128; + int grid_size{-1}; + if constexpr (uses_vector_load()) { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::vectorized_retrieve, + block_size, + 0); + } else { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::retrieve, + block_size, + 0); + } + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -288,15 +404,49 @@ template OutputIt static_multimap::retrieve_outer( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { - auto num_keys = std::distance(first, last); - auto const block_size = 128; + auto num_keys = std::distance(first, last); + auto view = get_device_view(); + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); - auto const stride = 1; - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr bool is_outer = true; - constexpr bool is_outer = true; + auto constexpr block_size = 128; + int grid_size{-1}; + if constexpr (uses_vector_load()) { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::vectorized_retrieve, + block_size, + 0); + } else { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::retrieve, + block_size, + 0); + } + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -332,15 +482,51 @@ std::size_t static_multimap::pair_r PairEqual pair_equal, cudaStream_t stream) const { - auto num_pairs = std::distance(first, last); - auto const block_size = 128; + auto num_pairs = std::distance(first, last); + auto view = get_device_view(); + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); - auto const stride = 1; - auto const grid_size = (cg_size() * num_pairs + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr bool is_outer = false; - constexpr bool is_outer = false; + auto constexpr block_size = 128; + int grid_size{-1}; + if constexpr (uses_vector_load()) { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::vectorized_pair_retrieve, + block_size, + 0); + } else { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::pair_retrieve, + block_size, + 0); + } + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -375,15 +561,51 @@ std::size_t static_multimap::pair_r PairEqual pair_equal, cudaStream_t stream) const { - auto num_pairs = std::distance(first, last); - auto const block_size = 128; + auto num_pairs = std::distance(first, last); + auto view = get_device_view(); + // Using per-warp buffer for vector loads and per-CG buffer for scalar loads - auto const buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); - auto const stride = 1; - auto const grid_size = (cg_size() * num_pairs + stride * block_size - 1) / (stride * block_size); - auto view = get_device_view(); + constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr bool is_outer = true; - constexpr bool is_outer = true; + auto constexpr block_size = 128; + int grid_size{-1}; + if constexpr (uses_vector_load()) { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::vectorized_pair_retrieve, + block_size, + 0); + } else { + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, + detail::pair_retrieve, + block_size, + 0); + } + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; From d9d92ee3e3fd09a0e60a772a7a7c71d5ce47dff5 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 23 Aug 2021 13:40:33 -0400 Subject: [PATCH 195/267] Fix a minor bug: use bitwise_compare to compare against sentinel --- include/cuco/detail/static_multimap.inl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index d04a98342..af791dfdc 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1090,7 +1090,8 @@ static_multimap::device_view::pair_ while (true) { auto slot_contents = *reinterpret_cast const*>(current_slot); - auto const slot_is_empty = (slot_contents.first == this->get_empty_key_sentinel()); + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); From e152871936254fb22121bdfad6e06988d9de6cbf Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 23 Aug 2021 13:54:49 -0400 Subject: [PATCH 196/267] Remove unused key_equal in insert functions --- include/cuco/detail/static_multimap.inl | 66 +++++++------------ .../cuco/detail/static_multimap_kernels.cuh | 23 ++----- include/cuco/static_multimap.cuh | 64 ++++-------------- 3 files changed, 44 insertions(+), 109 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index af791dfdc..1487a71cb 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -77,11 +77,10 @@ template -template +template void static_multimap::insert(InputIt first, InputIt last, - cudaStream_t stream, - KeyEqual key_equal) + cudaStream_t stream) { auto num_keys = std::distance(first, last); auto view = get_device_mutable_view(); @@ -89,10 +88,7 @@ void static_multimap::insert(InputI auto constexpr block_size = 128; int grid_size{-1}; cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, - detail::insert, - block_size, - 0); + &grid_size, detail::insert, block_size, 0); int dev_id{-1}; cudaGetDevice(&dev_id); int num_sms{-1}; @@ -100,7 +96,7 @@ void static_multimap::insert(InputI grid_size *= num_sms; detail::insert - <<>>(first, first + num_keys, view, key_equal); + <<>>(first, first + num_keys, view); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } @@ -109,9 +105,11 @@ template -template -void static_multimap::insert_if( - InputIt first, InputIt last, Predicate pred, cudaStream_t stream, KeyEqual key_equal) +template +void static_multimap::insert_if(InputIt first, + InputIt last, + Predicate pred, + cudaStream_t stream) { auto num_keys = std::distance(first, last); auto view = get_device_mutable_view(); @@ -120,7 +118,7 @@ void static_multimap::insert_if( int grid_size{-1}; cudaOccupancyMaxActiveBlocksPerMultiprocessor( &grid_size, - detail::insert_if, + detail::insert_if, block_size, 0); int dev_id{-1}; @@ -130,7 +128,7 @@ void static_multimap::insert_if( grid_size *= num_sms; detail::insert_if - <<>>(first, first + num_keys, view, pred, key_equal); + <<>>(first, first + num_keys, view, pred); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } @@ -649,11 +647,10 @@ template -template __device__ static_multimap::device_mutable_view::insert_result static_multimap::device_mutable_view::packed_cas( - iterator current_slot, value_type const& insert_pair, KeyEqual key_equal) noexcept + iterator current_slot, value_type const& insert_pair) noexcept { auto expected_key = this->get_empty_key_sentinel(); auto expected_value = this->get_empty_value_sentinel(); @@ -678,13 +675,10 @@ template -template __device__ static_multimap::device_mutable_view::insert_result static_multimap::device_mutable_view:: - back_to_back_cas(iterator current_slot, - value_type const& insert_pair, - KeyEqual key_equal) noexcept + back_to_back_cas(iterator current_slot, value_type const& insert_pair) noexcept { using cuda::std::memory_order_relaxed; @@ -720,13 +714,10 @@ template -template __device__ static_multimap::device_mutable_view::insert_result static_multimap::device_mutable_view:: - cas_dependent_write(iterator current_slot, - value_type const& insert_pair, - KeyEqual key_equal) noexcept + cas_dependent_write(iterator current_slot, value_type const& insert_pair) noexcept { using cuda::std::memory_order_relaxed; auto expected_key = this->get_empty_key_sentinel(); @@ -750,13 +741,10 @@ template -template +template __device__ std::enable_if_t static_multimap::device_mutable_view::insert_impl( - CG g, - value_type const& insert_pair, - optional_hash_type precomputed_hash, - KeyEqual key_equal) noexcept + CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept { auto current_slot = initial_slot(g, insert_pair.first, precomputed_hash); while (true) { @@ -778,7 +766,7 @@ static_multimap::device_mutable_vie if (g.thread_rank() == src_lane) { auto insert_location = first_slot_is_empty ? current_slot : current_slot + 1; // One single CAS operation since vector loads are dedicated to packable pairs - status = packed_cas(insert_location, insert_pair, key_equal); + status = packed_cas(insert_location, insert_pair); } // successful insert @@ -800,13 +788,10 @@ template -template +template __device__ std::enable_if_t static_multimap::device_mutable_view::insert_impl( - CG g, - value_type const& insert_pair, - optional_hash_type precomputed_hash, - KeyEqual key_equal) noexcept + CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept { auto current_slot = initial_slot(g, insert_pair.first, precomputed_hash); @@ -826,9 +811,9 @@ static_multimap::device_mutable_vie if (g.thread_rank() == src_lane) { #if __CUDA_ARCH__ < 700 - status = cas_dependent_write(current_slot, insert_pair, key_equal); + status = cas_dependent_write(current_slot, insert_pair); #else - status = back_to_back_cas(current_slot, insert_pair, key_equal); + status = back_to_back_cas(current_slot, insert_pair); #endif } @@ -851,15 +836,12 @@ template -template +template __device__ void static_multimap::device_mutable_view::insert( - CG g, - value_type const& insert_pair, - optional_hash_type precomputed_hash, - KeyEqual key_equal) noexcept + CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept { - insert_impl(g, insert_pair, precomputed_hash, key_equal); + insert_impl(g, insert_pair, precomputed_hash); } template -__global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equal) +template +__global__ void insert(InputIt first, InputIt last, viewT view) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -87,7 +82,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - view.insert(tile, insert_pair, thrust::nullopt, key_equal); + view.insert(tile, insert_pair, thrust::nullopt); it += (gridDim.x * block_size) / tile_size; } } @@ -106,20 +101,16 @@ __global__ void insert(InputIt first, InputIt last, viewT view, KeyEqual key_equ * convertible to the map's `value_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Predicate Unary predicate function type - * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs * @param view Mutable device view used to access the hash map's slot storage - * @param key_equal The binary function used to compare two keys for equality */ template -__global__ void insert_if( - InputIt first, InputIt last, viewT view, Predicate pred, KeyEqual key_equal) + typename Predicate> +__global__ void insert_if(InputIt first, InputIt last, viewT view, Predicate pred) { auto tile = cg::tiled_partition(cg::this_thread_block()); auto tid = block_size * blockIdx.x + threadIdx.x; @@ -129,7 +120,7 @@ __global__ void insert_if( typename viewT::value_type const insert_pair{*it}; if (pred(insert_pair)) { // force conversion to value_type - view.insert(tile, insert_pair, thrust::nullopt, key_equal); + view.insert(tile, insert_pair, thrust::nullopt); } it += (gridDim.x * block_size) / tile_size; } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 1092a3411..85df36500 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -214,17 +214,12 @@ class static_multimap { * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` - * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs * @param stream CUDA stream used for insert - * @param key_equal The binary function to compare two keys for equality */ - template > - void insert(InputIt first, - InputIt last, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + template + void insert(InputIt first, InputIt last, cudaStream_t stream = 0); /** * @brief Inserts key/value pairs in the range `[first, last)` if `pred` returns true. @@ -238,12 +233,8 @@ class static_multimap { * @param stream CUDA stream used for insert * @param key_equal The binary function to compare two keys for equality */ - template > - void insert_if(InputIt first, - InputIt last, - Predicate pred, - cudaStream_t stream = 0, - KeyEqual key_equal = KeyEqual{}); + template + void insert_if(InputIt first, InputIt last, Predicate pred, cudaStream_t stream = 0); /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. @@ -689,113 +680,84 @@ class static_multimap { /** * @brief Inserts the specified key/value pair with one single CAS operation. * - * @tparam KeyEqual Binary callable type * @param current_slot The slot to insert * @param insert_pair The pair to insert * @param key_equal The binary callable used to compare two keys for * equality * @return An insert result from the `insert_resullt` enumeration. */ - template __device__ insert_result packed_cas(iterator current_slot, - value_type const& insert_pair, - KeyEqual key_equal) noexcept; + value_type const& insert_pair) noexcept; /** * @brief Inserts the specified key/value pair with two back-to-back CAS operations. * - * @tparam KeyEqual Binary callable type * @param current_slot The slot to insert * @param insert_pair The pair to insert - * @param key_equal The binary callable used to compare two keys for - * equality * @return An insert result from the `insert_resullt` enumeration. */ - template __device__ insert_result back_to_back_cas(iterator current_slot, - value_type const& insert_pair, - KeyEqual key_equal) noexcept; + value_type const& insert_pair) noexcept; /** * @brief Inserts the specified key/value pair with a CAS of the key and a dependent write of * the value. * - * @tparam KeyEqual Binary callable type * @param current_slot The slot to insert * @param insert_pair The pair to insert - * @param key_equal The binary callable used to compare two keys for - * equality * @return An insert result from the `insert_resullt` enumeration. */ - template __device__ insert_result cas_dependent_write(iterator current_slot, - value_type const& insert_pair, - KeyEqual key_equal) noexcept; + value_type const& insert_pair) noexcept; /** * @brief Inserts the specified key/value pair into the map using vector loads. * * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type - * @tparam KeyEqual Binary callable type * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert * @param precomputed_hash Optional value which allows users to specify the precomputed hash * value - * @param key_equal The binary callable used to compare two keys for - * equality * @return void. */ - template > + template __device__ std::enable_if_t insert_impl( - CG g, - value_type const& insert_pair, - optional_hash_type precomputed_hash, - KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept; /** * @brief Inserts the specified key/value pair into the map using scalar loads. * * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not * @tparam CG Cooperative Group type - * @tparam KeyEqual Binary callable type * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert * @param precomputed_hash Optional value which allows users to specify the precomputed hash * value - * @param key_equal The binary callable used to compare two keys for - * equality * @return void. */ - template > + template __device__ std::enable_if_t insert_impl( - CG g, - value_type const& insert_pair, - optional_hash_type precomputed_hash, - KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept; public: /** * @brief Inserts the specified key/value pair into the map. * * @tparam CG Cooperative Group type - * @tparam KeyEqual Binary callable type * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert * @param precomputed_hash Optional value which allows users to specify the precomputed hash * value - * @param key_equal The binary callable used to compare two keys for - * equality * @return void. */ - template > + template __device__ void insert(CG g, value_type const& insert_pair, - optional_hash_type precomputed_hash, - KeyEqual key_equal = KeyEqual{}) noexcept; + optional_hash_type precomputed_hash) noexcept; }; // class device mutable view /** From 72e95b4ddbcaa19b687a80b86edde9078882e54a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 23 Aug 2021 14:17:24 -0400 Subject: [PATCH 197/267] Remove precomputed_hash logic + fix a bug in vectorized linear probing --- include/cuco/detail/probe_sequences.cuh | 22 ++-- include/cuco/detail/static_multimap.inl | 102 +++++----------- .../cuco/detail/static_multimap_kernels.cuh | 40 ++----- include/cuco/static_multimap.cuh | 109 ++---------------- 4 files changed, 66 insertions(+), 207 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 906133d99..f83a8c2a3 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -84,13 +84,10 @@ class double_hashing : public probe_sequence_base { } template - __device__ iterator initial_slot( - CG const& g, - Key const k, - thrust::optional::result_type> precomputed_hash) noexcept + __device__ iterator initial_slot(CG const& g, Key const k) noexcept { std::size_t index; - auto const hash_value = precomputed_hash.value_or(hash1_(k)); + auto const hash_value = hash1_(k); if constexpr (uses_vector_load()) { step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * cg_size() * vector_width(); @@ -137,21 +134,28 @@ class linear_probing : public probe_sequence_base { template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { + auto hash_value = hash_(k); + hash_value = hash_value % 2 ? hash_value + 1 : hash_value; + + std::size_t offset; if constexpr (uses_vector_load()) { - return &slots_[(hash_(k) + g.thread_rank() * vector_width()) % capacity_]; + offset = g.thread_rank() * vector_width(); } else { - return &slots_[(hash_(k) + g.thread_rank()) % capacity_]; + offset = g.thread_rank(); } + return &slots_[(hash_value + offset) % capacity_]; } __device__ iterator next_slot(iterator s) noexcept { std::size_t index = s - slots_; + std::size_t offset; if constexpr (uses_vector_load()) { - return &slots_[(index + cg_size() * vector_width()) % capacity_]; + offset = cg_size() * vector_width(); } else { - return &slots_[(index + cg_size()) % capacity_]; + offset = cg_size(); } + return &slots_[(index + offset) % capacity_]; } private: diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 1487a71cb..47df44f60 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -744,9 +744,9 @@ template __device__ std::enable_if_t static_multimap::device_mutable_view::insert_impl( - CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept + CG g, value_type const& insert_pair) noexcept { - auto current_slot = initial_slot(g, insert_pair.first, precomputed_hash); + auto current_slot = initial_slot(g, insert_pair.first); while (true) { value_type arr[2]; load_pair_array(&arr[0], current_slot); @@ -791,9 +791,9 @@ template __device__ std::enable_if_t static_multimap::device_mutable_view::insert_impl( - CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept + CG g, value_type const& insert_pair) noexcept { - auto current_slot = initial_slot(g, insert_pair.first, precomputed_hash); + auto current_slot = initial_slot(g, insert_pair.first); while (true) { key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); @@ -839,9 +839,9 @@ template __device__ void static_multimap::device_mutable_view::insert( - CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept + CG g, value_type const& insert_pair) noexcept { - insert_impl(g, insert_pair, precomputed_hash); + insert_impl(g, insert_pair); } template __device__ std::enable_if_t static_multimap::device_view::contains_impl( - CG g, Key const& k, optional_hash_type precomputed_hash, KeyEqual key_equal) noexcept + CG g, Key const& k, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k, precomputed_hash); + auto current_slot = initial_slot(g, k); while (true) { value_type arr[2]; @@ -887,9 +887,9 @@ template __device__ std::enable_if_t static_multimap::device_view::contains_impl( - CG g, Key const& k, optional_hash_type precomputed_hash, KeyEqual key_equal) noexcept + CG g, Key const& k, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k, precomputed_hash); + auto current_slot = initial_slot(g, k); while (true) { key_type const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); @@ -921,13 +921,9 @@ template __device__ std::enable_if_t static_multimap::device_view::count_impl( - CG const& g, - Key const& k, - optional_hash_type precomputed_hash, - std::size_t& thread_num_matches, - KeyEqual key_equal) noexcept + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k, precomputed_hash); + auto current_slot = initial_slot(g, k); [[maybe_unused]] bool found_match = false; @@ -967,13 +963,9 @@ template __device__ std::enable_if_t static_multimap::device_view::count_impl( - CG const& g, - Key const& k, - optional_hash_type precomputed_hash, - std::size_t& thread_num_matches, - KeyEqual key_equal) noexcept + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { - auto current_slot = initial_slot(g, k, precomputed_hash); + auto current_slot = initial_slot(g, k); [[maybe_unused]] bool found_match = false; @@ -1012,12 +1004,11 @@ __device__ std::enable_if_t static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { auto key = pair.first; - auto current_slot = initial_slot(g, key, precomputed_hash); + auto current_slot = initial_slot(g, key); [[maybe_unused]] bool found_match = false; @@ -1060,12 +1051,11 @@ __device__ std::enable_if_t static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { auto key = pair.first; - auto current_slot = initial_slot(g, key, precomputed_hash); + auto current_slot = initial_slot(g, key); [[maybe_unused]] bool found_match = false; @@ -1111,7 +1101,6 @@ static_multimap::device_view::retri warpT const& warp, CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1120,7 +1109,7 @@ static_multimap::device_view::retri { const uint32_t cg_lane_id = g.thread_rank(); - auto current_slot = initial_slot(g, k, precomputed_hash); + auto current_slot = initial_slot(g, k); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1204,7 +1193,6 @@ __device__ void static_multimap::device_view::retrieve_impl( CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1213,7 +1201,7 @@ static_multimap::device_view::retri { const uint32_t lane_id = g.thread_rank(); - auto current_slot = initial_slot(g, k, precomputed_hash); + auto current_slot = initial_slot(g, k); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1285,7 +1273,6 @@ static_multimap::device_view::pair_ warpT const& warp, CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1297,7 +1284,7 @@ static_multimap::device_view::pair_ const uint32_t cg_lane_id = g.thread_rank(); auto key = pair.first; - auto current_slot = initial_slot(g, key, precomputed_hash); + auto current_slot = initial_slot(g, key); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1387,7 +1374,6 @@ __device__ void static_multimap::device_view::pair_retrieve_impl( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1399,7 +1385,7 @@ static_multimap::device_view::pair_ const uint32_t lane_id = g.thread_rank(); auto key = pair.first; - auto current_slot = initial_slot(g, key, precomputed_hash); + auto current_slot = initial_slot(g, key); bool running = true; [[maybe_unused]] bool found_match = false; @@ -1563,9 +1549,9 @@ template template __device__ bool static_multimap::device_view::contains( - CG g, Key const& k, optional_hash_type precomputed_hash, KeyEqual key_equal) noexcept + CG g, Key const& k, KeyEqual key_equal) noexcept { - return contains_impl(g, k, precomputed_hash, key_equal); + return contains_impl(g, k, key_equal); } template template __device__ void static_multimap::device_view::count( - CG const& g, - Key const& k, - optional_hash_type precomputed_hash, - std::size_t& thread_num_matches, - KeyEqual key_equal) noexcept + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - count_impl(g, k, precomputed_hash, thread_num_matches, key_equal); + count_impl(g, k, thread_num_matches, key_equal); } template __device__ void static_multimap::device_view::count_outer( - CG const& g, - Key const& k, - optional_hash_type precomputed_hash, - std::size_t& thread_num_matches, - KeyEqual key_equal) noexcept + CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - count_impl(g, k, precomputed_hash, thread_num_matches, key_equal); + count_impl(g, k, thread_num_matches, key_equal); } template ::device_view::pair_count( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; - pair_count_impl( - g, pair, precomputed_hash, thread_num_matches, pair_equal); + pair_count_impl(g, pair, thread_num_matches, pair_equal); } template ::device_view::pair_count_outer( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; - pair_count_impl( - g, pair, precomputed_hash, thread_num_matches, pair_equal); + pair_count_impl(g, pair, thread_num_matches, pair_equal); } template ::de warpT const& warp, CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1665,7 +1638,7 @@ __device__ void static_multimap::de { constexpr bool is_outer = false; retrieve_impl( - warp, g, k, precomputed_hash, warp_counter, output_buffer, num_matches, output_begin); + warp, g, k, warp_counter, output_buffer, num_matches, output_begin); } template ::device_view::retri warpT const& warp, CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1693,7 +1665,7 @@ static_multimap::device_view::retri { constexpr bool is_outer = true; retrieve_impl( - warp, g, k, precomputed_hash, warp_counter, output_buffer, num_matches, output_begin); + warp, g, k, warp_counter, output_buffer, num_matches, output_begin); } template ::device_view::retrieve( CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1719,7 +1690,7 @@ __device__ void static_multimap::de { constexpr bool is_outer = false; retrieve_impl( - g, k, precomputed_hash, cg_counter, output_buffer, num_matches, output_begin); + g, k, cg_counter, output_buffer, num_matches, output_begin); } template ::device_view::retrieve_outer( CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1746,7 +1716,7 @@ static_multimap::device_view::retri { constexpr bool is_outer = true; retrieve_impl( - g, k, precomputed_hash, cg_counter, output_buffer, num_matches, output_begin); + g, k, cg_counter, output_buffer, num_matches, output_begin); } template ::device_view::pair_ warpT const& warp, CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1779,7 +1748,6 @@ static_multimap::device_view::pair_ pair_retrieve_impl(warp, g, pair, - precomputed_hash, warp_counter, probe_output_buffer, contained_output_buffer, @@ -1806,7 +1774,6 @@ static_multimap::device_view::pair_ warpT const& warp, CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1819,7 +1786,6 @@ static_multimap::device_view::pair_ pair_retrieve_impl(warp, g, pair, - precomputed_hash, warp_counter, probe_output_buffer, contained_output_buffer, @@ -1845,7 +1811,6 @@ __device__ void static_multimap::device_view::pair_retrieve( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1857,7 +1822,6 @@ static_multimap::device_view::pair_ constexpr bool is_outer = false; pair_retrieve_impl(g, pair, - precomputed_hash, cg_counter, probe_output_buffer, contained_output_buffer, @@ -1883,7 +1847,6 @@ __device__ void static_multimap::device_view::pair_retrieve_outer( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1895,7 +1858,6 @@ static_multimap::device_view::pair_ constexpr bool is_outer = true; pair_retrieve_impl(g, pair, - precomputed_hash, cg_counter, probe_output_buffer, contained_output_buffer, diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index a95117f64..ce656a5a0 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -82,7 +82,7 @@ __global__ void insert(InputIt first, InputIt last, viewT view) while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; - view.insert(tile, insert_pair, thrust::nullopt); + view.insert(tile, insert_pair); it += (gridDim.x * block_size) / tile_size; } } @@ -120,7 +120,7 @@ __global__ void insert_if(InputIt first, InputIt last, viewT view, Predicate pre typename viewT::value_type const insert_pair{*it}; if (pred(insert_pair)) { // force conversion to value_type - view.insert(tile, insert_pair, thrust::nullopt); + view.insert(tile, insert_pair); } it += (gridDim.x * block_size) / tile_size; } @@ -164,7 +164,7 @@ __global__ void contains( while (first + key_idx < last) { auto key = *(first + key_idx); - auto found = view.contains(tile, key, thrust::nullopt, key_equal); + auto found = view.contains(tile, key, key_equal); /* * The ld.relaxed.gpu instruction used in view.find causes L1 to @@ -223,9 +223,9 @@ __global__ void count( while (first + key_idx < last) { auto key = *(first + key_idx); if constexpr (is_outer) { - view.count_outer(tile, key, thrust::nullopt, thread_num_matches, key_equal); + view.count_outer(tile, key, thread_num_matches, key_equal); } else { - view.count(tile, key, thrust::nullopt, thread_num_matches, key_equal); + view.count(tile, key, thread_num_matches, key_equal); } key_idx += (gridDim.x * block_size) / tile_size; } @@ -278,9 +278,9 @@ __global__ void pair_count( while (first + pair_idx < last) { typename viewT::value_type const pair = *(first + pair_idx); if constexpr (is_outer) { - view.pair_count_outer(tile, pair, thrust::nullopt, thread_num_matches, pair_equal); + view.pair_count_outer(tile, pair, thread_num_matches, pair_equal); } else { - view.pair_count(tile, pair, thrust::nullopt, thread_num_matches, pair_equal); + view.pair_count(tile, pair, thread_num_matches, pair_equal); } pair_idx += (gridDim.x * block_size) / tile_size; } @@ -368,7 +368,6 @@ __global__ void vectorized_retrieve(InputIt first, view.retrieve_outer(active_warp, tile, key, - thrust::nullopt, &warp_counter[warp_id], output_buffer[warp_id], num_matches, @@ -378,7 +377,6 @@ __global__ void vectorized_retrieve(InputIt first, view.retrieve(active_warp, tile, key, - thrust::nullopt, &warp_counter[warp_id], output_buffer[warp_id], num_matches, @@ -462,23 +460,11 @@ __global__ void retrieve(InputIt first, while (first + key_idx < last) { auto key = *(first + key_idx); if constexpr (is_outer) { - view.retrieve_outer(tile, - key, - thrust::nullopt, - &cg_counter[cg_id], - output_buffer[cg_id], - num_matches, - output_begin, - key_equal); + view.retrieve_outer( + tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); } else { - view.retrieve(tile, - key, - thrust::nullopt, - &cg_counter[cg_id], - output_buffer[cg_id], - num_matches, - output_begin, - key_equal); + view.retrieve( + tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); } key_idx += (gridDim.x * block_size) / tile_size; } @@ -537,7 +523,6 @@ __global__ void vectorized_pair_retrieve(InputIt first, view.pair_retrieve_outer(active_warp, tile, pair, - thrust::nullopt, &warp_counter[warp_id], probe_output_buffer[warp_id], contained_output_buffer[warp_id], @@ -549,7 +534,6 @@ __global__ void vectorized_pair_retrieve(InputIt first, view.pair_retrieve(active_warp, tile, pair, - thrust::nullopt, &warp_counter[warp_id], probe_output_buffer[warp_id], contained_output_buffer[warp_id], @@ -614,7 +598,6 @@ __global__ void pair_retrieve(InputIt first, if constexpr (is_outer) { view.pair_retrieve_outer(tile, pair, - thrust::nullopt, &cg_counter[cg_id], probe_output_buffer[cg_id], contained_output_buffer[cg_id], @@ -625,7 +608,6 @@ __global__ void pair_retrieve(InputIt first, } else { view.pair_retrieve(tile, pair, - thrust::nullopt, &cg_counter[cg_id], probe_output_buffer[cg_id], contained_output_buffer[cg_id], diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 85df36500..d93fa6f13 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -19,7 +19,6 @@ #include #include #include -#include #include #include @@ -152,7 +151,6 @@ class static_multimap { typename std::allocator_traits::rebind_alloc; using counter_allocator_type = typename std::allocator_traits::rebind_alloc; - using optional_hash_type = thrust::optional::result_type>; static_multimap(static_multimap const&) = delete; static_multimap(static_multimap&&) = delete; @@ -540,11 +538,9 @@ class static_multimap { * @return Pointer to the initial slot for `k` */ template - __device__ iterator initial_slot(CG const& g, - Key const& k, - optional_hash_type precomputed_hash) noexcept + __device__ iterator initial_slot(CG const& g, Key const& k) noexcept { - return probe_sequence_.initial_slot(g, k, precomputed_hash); + return probe_sequence_.initial_slot(g, k); } /** @@ -558,11 +554,9 @@ class static_multimap { * @return Pointer to the initial slot for `k` */ template - __device__ const_iterator initial_slot(CG g, - Key const& k, - optional_hash_type precomputed_hash) const noexcept + __device__ const_iterator initial_slot(CG g, Key const& k) const noexcept { - return probe_sequence_.initial_slot(g, k, precomputed_hash); + return probe_sequence_.initial_slot(g, k); } /** @@ -718,13 +712,11 @@ class static_multimap { * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @return void. */ template __device__ std::enable_if_t insert_impl( - CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept; + CG g, value_type const& insert_pair) noexcept; /** * @brief Inserts the specified key/value pair into the map using scalar loads. @@ -734,13 +726,11 @@ class static_multimap { * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @return void. */ template __device__ std::enable_if_t insert_impl( - CG g, value_type const& insert_pair, optional_hash_type precomputed_hash) noexcept; + CG g, value_type const& insert_pair) noexcept; public: /** @@ -750,14 +740,10 @@ class static_multimap { * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @return void. */ template - __device__ void insert(CG g, - value_type const& insert_pair, - optional_hash_type precomputed_hash) noexcept; + __device__ void insert(CG g, value_type const& insert_pair) noexcept; }; // class device mutable view /** @@ -881,8 +867,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair @@ -890,10 +874,7 @@ class static_multimap { */ template > __device__ std::enable_if_t contains_impl( - CG g, - Key const& k, - optional_hash_type precomputed_hash, - KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map using scalar loads. @@ -909,8 +890,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair @@ -918,10 +897,7 @@ class static_multimap { */ template > __device__ std::enable_if_t contains_impl( - CG g, - Key const& k, - optional_hash_type precomputed_hash, - KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap using vector loads. @@ -932,8 +908,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -945,7 +919,6 @@ class static_multimap { __device__ std::enable_if_t count_impl( CG const& g, Key const& k, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -958,8 +931,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -971,7 +942,6 @@ class static_multimap { __device__ std::enable_if_t count_impl( CG const& g, Key const& k, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -985,8 +955,6 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -995,7 +963,6 @@ class static_multimap { __device__ std::enable_if_t pair_count_impl( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1009,8 +976,6 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -1019,7 +984,6 @@ class static_multimap { __device__ std::enable_if_t pair_count_impl( CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1042,8 +1006,6 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param warp_counter Pointer to the warp counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1061,7 +1023,6 @@ class static_multimap { __device__ void retrieve_impl(warpT const& warp, CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1086,8 +1047,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param cg_counter Pointer to the CG counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1104,7 +1063,6 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ void retrieve_impl(CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1131,8 +1089,6 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param warp_counter Pointer to the warp counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1152,7 +1108,6 @@ class static_multimap { __device__ void pair_retrieve_impl(warpT const& warp, CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1180,8 +1135,6 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param cg_counter Pointer to the CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1200,7 +1153,6 @@ class static_multimap { typename PairEqual> __device__ void pair_retrieve_impl(CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1293,18 +1245,13 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param key_equal The binary callable used to compare two keys * for equality * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ template > - __device__ bool contains(CG g, - Key const& k, - optional_hash_type precomputed_hash, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ bool contains(CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap. @@ -1313,8 +1260,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -1322,7 +1267,6 @@ class static_multimap { template > __device__ void count(CG const& g, Key const& k, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -1334,8 +1278,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality @@ -1343,7 +1285,6 @@ class static_multimap { template > __device__ void count_outer(CG const& g, Key const& k, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, KeyEqual key_equal = KeyEqual{}) noexcept; @@ -1354,8 +1295,6 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -1363,7 +1302,6 @@ class static_multimap { template __device__ void pair_count(CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1375,8 +1313,6 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality @@ -1384,7 +1320,6 @@ class static_multimap { template __device__ void pair_count_outer(CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, std::size_t& thread_num_matches, PairEqual pair_equal) noexcept; @@ -1406,8 +1341,6 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param warp_counter Pointer to the warp counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1424,7 +1357,6 @@ class static_multimap { __device__ void retrieve(warpT const& warp, CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1449,8 +1381,6 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param warp_counter Pointer to the warp counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1467,7 +1397,6 @@ class static_multimap { __device__ void retrieve_outer(warpT const& warp, CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* output_buffer, atomicT* num_matches, @@ -1490,8 +1419,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param cg_counter Pointer to the CG counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1507,7 +1434,6 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ void retrieve(CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1531,8 +1457,6 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param cg_counter Pointer to the CG counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence @@ -1548,7 +1472,6 @@ class static_multimap { typename KeyEqual = thrust::equal_to> __device__ void retrieve_outer(CG const& g, Key const& k, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, @@ -1573,8 +1496,6 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param warp_counter Pointer to the warp counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1593,7 +1514,6 @@ class static_multimap { __device__ void pair_retrieve(warpT const& warp, CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1621,8 +1541,6 @@ class static_multimap { * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param warp_counter Pointer to the warp counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1641,7 +1559,6 @@ class static_multimap { __device__ void pair_retrieve_outer(warpT const& warp, CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* warp_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1667,8 +1584,6 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param cg_counter Pointer to the CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1686,7 +1601,6 @@ class static_multimap { typename PairEqual> __device__ void pair_retrieve(CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, @@ -1713,8 +1627,6 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for - * @param precomputed_hash Optional value which allows users to specify the precomputed hash - * value * @param cg_counter Pointer to the CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence @@ -1732,7 +1644,6 @@ class static_multimap { typename PairEqual> __device__ void pair_retrieve_outer(CG const& g, value_type const& pair, - optional_hash_type precomputed_hash, uint32_t* cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, From f4565c07ebd14ac96ab71ad8c0a388fe645f9a5f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 23 Aug 2021 16:47:33 -0400 Subject: [PATCH 198/267] Use precomputed prime instead of on-the-fly calculation --- include/cuco/detail/prime.hpp | 20119 +++++++++++++++++++++++++++++++- 1 file changed, 20115 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/prime.hpp b/include/cuco/detail/prime.hpp index 5042fabbd..6452b4a02 100644 --- a/include/cuco/detail/prime.hpp +++ b/include/cuco/detail/prime.hpp @@ -17,10 +17,20117 @@ #pragma once namespace cuco { + namespace detail { -// safe division -#define SDIV(x, y) (((x) + (y)-1) / (y)) +// prime numbers with ~131072 offset +constexpr std::array primes = { + 2, 3, 5, 7, 13, 19, 29, + 37, 43, 53, 59, 67, 73, 79, + 89, 97, 103, 109, 127, 137, 149, + 157, 163, 173, 179, 191, 197, 211, + 223, 229, 239, 251, 257, 263, 269, + 277, 283, 293, 307, 313, 331, 337, + 347, 353, 359, 367, 373, 379, 389, + 397, 409, 419, 431, 439, 449, 457, + 463, 479, 487, 499, 509, 521, 541, + 547, 557, 563, 569, 577, 587, 593, + 599, 607, 613, 619, 631, 641, 647, + 653, 659, 673, 683, 691, 701, 709, + 719, 727, 733, 739, 751, 757, 769, + 787, 797, 809, 821, 827, 839, 853, + 859, 877, 883, 907, 919, 929, 937, + 947, 953, 967, 977, 983, 991, 997, + 1009, 1019, 1031, 1039, 1049, 1061, 1069, + 1087, 1093, 1103, 1109, 1117, 1123, 1129, + 1151, 1163, 1171, 1181, 1187, 1193, 1201, + 1213, 1223, 1229, 1237, 1249, 1259, 1277, + 1283, 1289, 1297, 1303, 1319, 1327, 1361, + 1367, 1373, 1381, 1399, 1409, 1423, 1429, + 1439, 1447, 1453, 1459, 1471, 1481, 1487, + 1493, 1499, 1511, 1523, 1531, 1543, 1549, + 1559, 1567, 1579, 1597, 1607, 1613, 1619, + 1627, 1637, 1657, 1663, 1669, 1693, 1699, + 1709, 1721, 1733, 1741, 1747, 1753, 1759, + 1777, 1783, 1789, 1801, 1811, 1823, 1831, + 1847, 1861, 1867, 1873, 1879, 1889, 1901, + 1907, 1913, 1931, 1949, 1973, 1979, 1987, + 1993, 1999, 2011, 2017, 2027, 2039, 2053, + 2063, 2069, 2081, 2087, 2099, 2111, 2129, + 2137, 2143, 2153, 2161, 2179, 2203, 2213, + 2221, 2237, 2243, 2251, 2267, 2273, 2281, + 2287, 2293, 2309, 2333, 2339, 2347, 2357, + 2371, 2377, 2383, 2389, 2399, 2411, 2417, + 2423, 2437, 2447, 2459, 2467, 2473, 2503, + 2521, 2531, 2539, 2549, 2557, 2579, 2591, + 2609, 2617, 2633, 2647, 2657, 2663, 2671, + 2677, 2683, 2689, 2699, 2707, 2713, 2719, + 2729, 2741, 2749, 2767, 2777, 2789, 2797, + 2803, 2819, 2833, 2843, 2851, 2857, 2879, + 2887, 2897, 2903, 2909, 2917, 2927, 2939, + 2953, 2963, 2969, 2999, 3011, 3019, 3037, + 3049, 3061, 3067, 3079, 3089, 3109, 3119, + 3137, 3163, 3169, 3181, 3187, 3203, 3209, + 3217, 3229, 3251, 3257, 3271, 3299, 3307, + 3313, 3319, 3329, 3343, 3359, 3371, 3389, + 3407, 3413, 3433, 3449, 3457, 3463, 3469, + 3491, 3499, 3511, 3517, 3527, 3533, 3539, + 3547, 3557, 3571, 3581, 3593, 3607, 3613, + 3623, 3631, 3637, 3643, 3659, 3671, 3677, + 3691, 3697, 3709, 3719, 3727, 3733, 3739, + 3761, 3767, 3779, 3793, 3803, 3821, 3833, + 3847, 3853, 3863, 3877, 3889, 3907, 3917, + 3923, 3929, 3943, 3967, 3989, 4001, 4007, + 4013, 4019, 4027, 4049, 4057, 4073, 4079, + 4091, 4099, 4111, 4127, 4133, 4139, 4153, + 4159, 4177, 4201, 4211, 4217, 4229, 4241, + 4253, 4259, 4271, 4283, 4289, 4297, 4327, + 4337, 4349, 4357, 4363, 4373, 4391, 4397, + 4409, 4421, 4441, 4447, 4457, 4463, 4481, + 4493, 4507, 4513, 4519, 4547, 4561, 4567, + 4583, 4591, 4597, 4603, 4621, 4637, 4643, + 4649, 4657, 4663, 4673, 4679, 4691, 4703, + 4721, 4729, 4751, 4759, 4783, 4789, 4799, + 4813, 4831, 4861, 4871, 4877, 4889, 4903, + 4909, 4919, 4931, 4937, 4943, 4951, 4957, + 4967, 4973, 4987, 4993, 4999, 5009, 5021, + 5039, 5051, 5059, 5077, 5087, 5099, 5107, + 5113, 5119, 5147, 5153, 5167, 5179, 5189, + 5197, 5209, 5227, 5233, 5261, 5273, 5279, + 5297, 5303, 5309, 5323, 5333, 5347, 5381, + 5387, 5393, 5399, 5407, 5413, 5419, 5431, + 5437, 5443, 5449, 5471, 5477, 5483, 5501, + 5507, 5519, 5527, 5557, 5563, 5569, 5581, + 5591, 5623, 5639, 5647, 5653, 5659, 5669, + 5683, 5689, 5701, 5711, 5717, 5737, 5743, + 5749, 5779, 5791, 5801, 5807, 5813, 5821, + 5827, 5839, 5849, 5857, 5867, 5879, 5897, + 5903, 5923, 5939, 5953, 5981, 5987, 6007, + 6029, 6037, 6043, 6053, 6067, 6073, 6079, + 6089, 6101, 6113, 6121, 6131, 6143, 6151, + 6163, 6173, 6197, 6203, 6211, 6217, 6229, + 6247, 6257, 6263, 6269, 6277, 6287, 6299, + 6311, 6317, 6323, 6329, 6337, 6343, 6353, + 6359, 6367, 6373, 6379, 6389, 6397, 6421, + 6427, 6449, 6469, 6481, 6491, 6521, 6529, + 6547, 6553, 6563, 6569, 6577, 6599, 6607, + 6619, 6637, 6653, 6659, 6673, 6679, 6689, + 6701, 6709, 6719, 6733, 6761, 6779, 6791, + 6803, 6823, 6829, 6841, 6857, 6863, 6869, + 6883, 6899, 6907, 6917, 6947, 6959, 6967, + 6977, 6983, 6991, 6997, 7013, 7019, 7027, + 7039, 7057, 7069, 7079, 7103, 7109, 7121, + 7127, 7151, 7159, 7177, 7187, 7193, 7207, + 7213, 7219, 7229, 7237, 7243, 7253, 7283, + 7297, 7307, 7321, 7331, 7349, 7369, 7393, + 7411, 7417, 7433, 7451, 7457, 7477, 7487, + 7499, 7507, 7517, 7523, 7529, 7537, 7547, + 7559, 7573, 7583, 7589, 7603, 7621, 7639, + 7649, 7669, 7681, 7687, 7699, 7717, 7723, + 7741, 7753, 7759, 7789, 7817, 7823, 7829, + 7841, 7853, 7867, 7873, 7879, 7901, 7907, + 7919, 7927, 7933, 7949, 7963, 7993, 8009, + 8017, 8039, 8053, 8059, 8069, 8081, 8087, + 8093, 8101, 8111, 8117, 8123, 8147, 8161, + 8167, 8179, 8191, 8209, 8219, 8231, 8237, + 8243, 8263, 8269, 8287, 8293, 8311, 8317, + 8329, 8353, 8363, 8369, 8377, 8387, 8419, + 8429, 8443, 8461, 8467, 8501, 8513, 8521, + 8527, 8537, 8543, 8563, 8573, 8581, 8597, + 8609, 8623, 8629, 8641, 8647, 8663, 8669, + 8677, 8689, 8699, 8707, 8713, 8719, 8731, + 8737, 8747, 8753, 8761, 8779, 8803, 8819, + 8831, 8837, 8849, 8861, 8867, 8887, 8893, + 8923, 8929, 8941, 8951, 8963, 8969, 8999, + 9007, 9013, 9029, 9041, 9049, 9059, 9067, + 9091, 9103, 9109, 9127, 9133, 9151, 9157, + 9173, 9181, 9187, 9199, 9209, 9221, 9227, + 9239, 9257, 9277, 9283, 9293, 9311, 9319, + 9337, 9343, 9349, 9371, 9377, 9391, 9397, + 9403, 9413, 9419, 9431, 9437, 9461, 9467, + 9473, 9479, 9491, 9497, 9511, 9521, 9533, + 9539, 9547, 9587, 9601, 9613, 9619, 9629, + 9643, 9649, 9661, 9677, 9689, 9697, 9719, + 9733, 9739, 9749, 9767, 9781, 9787, 9803, + 9811, 9817, 9829, 9839, 9851, 9857, 9871, + 9883, 9901, 9907, 9923, 9929, 9941, 9949, + 9967, 9973, 10007, 10037, 10061, 10067, 10079, + 10091, 10099, 10111, 10133, 10139, 10151, 10159, + 10169, 10177, 10193, 10211, 10223, 10243, 10253, + 10259, 10267, 10273, 10289, 10301, 10313, 10321, + 10331, 10337, 10343, 10357, 10369, 10391, 10399, + 10427, 10433, 10453, 10459, 10477, 10487, 10499, + 10513, 10529, 10559, 10567, 10589, 10597, 10607, + 10613, 10627, 10639, 10651, 10657, 10663, 10687, + 10709, 10723, 10729, 10739, 10753, 10771, 10781, + 10789, 10799, 10831, 10837, 10847, 10853, 10859, + 10867, 10883, 10889, 10903, 10909, 10937, 10949, + 10957, 10973, 10979, 10987, 10993, 11003, 11027, + 11047, 11057, 11069, 11083, 11093, 11113, 11119, + 11131, 11149, 11159, 11171, 11177, 11197, 11213, + 11239, 11251, 11257, 11273, 11279, 11287, 11299, + 11311, 11317, 11329, 11351, 11369, 11383, 11393, + 11399, 11411, 11423, 11437, 11443, 11467, 11483, + 11489, 11497, 11503, 11519, 11527, 11549, 11579, + 11587, 11593, 11617, 11633, 11657, 11677, 11689, + 11699, 11717, 11731, 11743, 11777, 11783, 11789, + 11801, 11807, 11813, 11821, 11827, 11833, 11839, + 11863, 11887, 11897, 11903, 11909, 11923, 11933, + 11939, 11953, 11959, 11969, 11981, 11987, 12007, + 12037, 12043, 12049, 12071, 12097, 12107, 12113, + 12119, 12143, 12149, 12157, 12163, 12197, 12203, + 12211, 12227, 12239, 12251, 12263, 12269, 12277, + 12289, 12301, 12323, 12329, 12343, 12373, 12379, + 12391, 12401, 12409, 12421, 12433, 12451, 12457, + 12473, 12479, 12487, 12497, 12503, 12511, 12517, + 12527, 12539, 12547, 12553, 12569, 12577, 12583, + 12589, 12601, 12611, 12619, 12637, 12647, 12653, + 12659, 12671, 12689, 12697, 12703, 12713, 12721, + 12739, 12757, 12763, 12781, 12791, 12799, 12809, + 12821, 12829, 12841, 12853, 12889, 12899, 12907, + 12917, 12923, 12941, 12953, 12959, 12967, 12973, + 12979, 13001, 13007, 13033, 13043, 13049, 13063, + 13093, 13099, 13109, 13121, 13127, 13147, 13159, + 13171, 13177, 13183, 13217, 13229, 13241, 13249, + 13259, 13267, 13291, 13297, 13309, 13327, 13337, + 13367, 13381, 13397, 13411, 13417, 13441, 13451, + 13457, 13463, 13469, 13477, 13487, 13499, 13513, + 13523, 13537, 13553, 13567, 13577, 13591, 13597, + 13613, 13619, 13627, 13633, 13649, 13669, 13679, + 13687, 13693, 13709, 13721, 13729, 13751, 13757, + 13763, 13781, 13789, 13799, 13807, 13829, 13841, + 13859, 13873, 13879, 13901, 13907, 13913, 13921, + 13931, 13963, 13997, 14009, 14029, 14051, 14057, + 14071, 14081, 14087, 14107, 14143, 14149, 14159, + 14173, 14197, 14207, 14221, 14243, 14249, 14281, + 14293, 14303, 14321, 14327, 14341, 14347, 14369, + 14387, 14401, 14407, 14419, 14431, 14437, 14447, + 14461, 14479, 14489, 14503, 14519, 14533, 14543, + 14549, 14557, 14563, 14591, 14621, 14627, 14633, + 14639, 14653, 14669, 14683, 14699, 14713, 14723, + 14731, 14737, 14747, 14753, 14759, 14767, 14779, + 14797, 14813, 14821, 14827, 14843, 14851, 14867, + 14879, 14887, 14897, 14923, 14929, 14939, 14947, + 14957, 14969, 14983, 15013, 15031, 15053, 15061, + 15073, 15083, 15091, 15101, 15107, 15121, 15131, + 15137, 15149, 15161, 15173, 15187, 15193, 15199, + 15217, 15227, 15233, 15241, 15259, 15269, 15277, + 15287, 15299, 15307, 15313, 15319, 15329, 15349, + 15359, 15373, 15383, 15391, 15401, 15413, 15427, + 15439, 15451, 15461, 15467, 15473, 15493, 15511, + 15527, 15541, 15551, 15559, 15569, 15581, 15601, + 15607, 15619, 15629, 15641, 15647, 15661, 15667, + 15679, 15727, 15733, 15739, 15749, 15761, 15767, + 15773, 15787, 15797, 15803, 15809, 15817, 15823, + 15859, 15877, 15887, 15901, 15907, 15913, 15919, + 15937, 15959, 15971, 15991, 16001, 16007, 16033, + 16057, 16063, 16069, 16087, 16097, 16103, 16111, + 16127, 16139, 16183, 16189, 16217, 16223, 16229, + 16249, 16267, 16273, 16301, 16319, 16333, 16339, + 16349, 16361, 16369, 16381, 16411, 16417, 16427, + 16433, 16447, 16453, 16477, 16487, 16493, 16519, + 16529, 16547, 16553, 16561, 16567, 16573, 16603, + 16619, 16631, 16649, 16657, 16673, 16691, 16699, + 16729, 16741, 16747, 16759, 16787, 16811, 16823, + 16829, 16843, 16871, 16879, 16889, 16901, 16921, + 16927, 16937, 16943, 16963, 16979, 16987, 16993, + 17011, 17021, 17027, 17033, 17041, 17047, 17053, + 17077, 17093, 17099, 17107, 17117, 17123, 17137, + 17159, 17167, 17183, 17189, 17203, 17209, 17231, + 17239, 17257, 17291, 17299, 17317, 17327, 17333, + 17341, 17351, 17359, 17377, 17383, 17389, 17401, + 17417, 17431, 17443, 17449, 17467, 17477, 17483, + 17489, 17497, 17509, 17519, 17539, 17551, 17569, + 17579, 17597, 17609, 17623, 17657, 17669, 17681, + 17707, 17713, 17729, 17737, 17747, 17761, 17783, + 17789, 17807, 17827, 17837, 17851, 17863, 17881, + 17891, 17903, 17909, 17921, 17929, 17939, 17957, + 17971, 17977, 17987, 18013, 18041, 18047, 18059, + 18077, 18089, 18097, 18119, 18127, 18133, 18143, + 18149, 18169, 18181, 18191, 18199, 18211, 18217, + 18223, 18229, 18251, 18257, 18269, 18287, 18301, + 18307, 18313, 18329, 18341, 18353, 18367, 18379, + 18397, 18413, 18427, 18433, 18439, 18451, 18457, + 18481, 18493, 18503, 18517, 18523, 18539, 18553, + 18583, 18593, 18617, 18637, 18661, 18671, 18679, + 18691, 18701, 18713, 18719, 18731, 18743, 18749, + 18757, 18773, 18787, 18793, 18803, 18839, 18859, + 18869, 18899, 18911, 18917, 18947, 18959, 18973, + 18979, 19001, 19009, 19031, 19037, 19051, 19069, + 19079, 19087, 19121, 19139, 19157, 19163, 19181, + 19207, 19213, 19219, 19231, 19237, 19249, 19259, + 19267, 19273, 19289, 19301, 19309, 19319, 19333, + 19373, 19379, 19387, 19403, 19417, 19423, 19429, + 19441, 19447, 19457, 19463, 19469, 19477, 19483, + 19489, 19501, 19507, 19531, 19541, 19553, 19559, + 19571, 19577, 19583, 19597, 19603, 19609, 19661, + 19681, 19687, 19697, 19709, 19717, 19727, 19739, + 19751, 19759, 19777, 19793, 19801, 19813, 19819, + 19841, 19853, 19861, 19867, 19889, 19913, 19919, + 19927, 19937, 19949, 19961, 19973, 19979, 19991, + 19997, 20011, 20021, 20029, 20047, 20063, 20071, + 20089, 20101, 20107, 20113, 20123, 20129, 20143, + 20149, 20161, 20173, 20183, 20201, 20219, 20231, + 20249, 20261, 20269, 20287, 20297, 20323, 20333, + 20341, 20347, 20353, 20359, 20369, 20389, 20399, + 20407, 20431, 20441, 20477, 20483, 20507, 20521, + 20533, 20543, 20549, 20563, 20593, 20599, 20611, + 20627, 20639, 20663, 20681, 20693, 20707, 20717, + 20731, 20743, 20749, 20759, 20771, 20789, 20807, + 20849, 20857, 20873, 20879, 20887, 20897, 20903, + 20921, 20929, 20939, 20947, 20959, 20981, 21001, + 21011, 21017, 21023, 21031, 21059, 21067, 21089, + 21101, 21107, 21121, 21139, 21149, 21157, 21163, + 21169, 21179, 21187, 21193, 21211, 21221, 21227, + 21247, 21269, 21277, 21283, 21313, 21319, 21341, + 21347, 21377, 21383, 21391, 21397, 21407, 21419, + 21433, 21467, 21481, 21487, 21493, 21499, 21517, + 21523, 21529, 21557, 21563, 21569, 21577, 21587, + 21599, 21611, 21617, 21647, 21661, 21673, 21683, + 21701, 21713, 21727, 21737, 21751, 21757, 21767, + 21773, 21787, 21799, 21817, 21839, 21851, 21859, + 21871, 21881, 21893, 21911, 21929, 21937, 21943, + 21961, 21977, 21991, 21997, 22003, 22013, 22027, + 22037, 22051, 22063, 22073, 22079, 22091, 22109, + 22123, 22129, 22147, 22153, 22159, 22171, 22189, + 22229, 22247, 22259, 22271, 22277, 22283, 22291, + 22303, 22343, 22349, 22367, 22381, 22391, 22397, + 22409, 22433, 22441, 22447, 22453, 22469, 22481, + 22501, 22511, 22531, 22541, 22549, 22567, 22573, + 22613, 22619, 22637, 22643, 22651, 22669, 22679, + 22691, 22697, 22709, 22717, 22727, 22739, 22751, + 22769, 22777, 22783, 22807, 22817, 22853, 22859, + 22871, 22877, 22901, 22907, 22921, 22937, 22943, + 22961, 22973, 22993, 23003, 23011, 23017, 23027, + 23039, 23053, 23059, 23071, 23081, 23087, 23099, + 23117, 23131, 23143, 23159, 23167, 23173, 23189, + 23197, 23203, 23209, 23227, 23251, 23269, 23279, + 23291, 23297, 23311, 23321, 23327, 23333, 23339, + 23357, 23369, 23399, 23417, 23431, 23447, 23459, + 23473, 23497, 23509, 23531, 23537, 23549, 23557, + 23563, 23581, 23593, 23599, 23609, 23623, 23629, + 23663, 23669, 23677, 23687, 23719, 23741, 23747, + 23753, 23761, 23767, 23773, 23789, 23801, 23813, + 23819, 23827, 23833, 23857, 23869, 23879, 23887, + 23893, 23899, 23909, 23917, 23929, 23957, 23971, + 23977, 23993, 24001, 24007, 24019, 24029, 24043, + 24049, 24061, 24071, 24077, 24083, 24091, 24097, + 24103, 24109, 24121, 24133, 24151, 24169, 24179, + 24197, 24203, 24223, 24229, 24239, 24247, 24281, + 24317, 24329, 24337, 24359, 24371, 24379, 24391, + 24407, 24413, 24419, 24439, 24469, 24481, 24499, + 24509, 24517, 24527, 24533, 24547, 24571, 24593, + 24611, 24623, 24631, 24659, 24671, 24677, 24683, + 24691, 24697, 24709, 24733, 24749, 24763, 24781, + 24793, 24799, 24809, 24821, 24841, 24847, 24859, + 24877, 24889, 24907, 24917, 24923, 24943, 24953, + 24967, 24977, 24989, 25013, 25031, 25037, 25057, + 25073, 25087, 25097, 25111, 25117, 25127, 25147, + 25153, 25163, 25169, 25183, 25189, 25219, 25229, + 25237, 25243, 25253, 25261, 25301, 25307, 25321, + 25339, 25349, 25357, 25367, 25373, 25391, 25409, + 25423, 25439, 25447, 25453, 25463, 25469, 25523, + 25537, 25561, 25577, 25583, 25589, 25601, 25609, + 25621, 25633, 25639, 25657, 25667, 25673, 25679, + 25693, 25703, 25717, 25733, 25741, 25747, 25759, + 25771, 25793, 25799, 25819, 25841, 25847, 25867, + 25873, 25889, 25903, 25913, 25919, 25931, 25939, + 25951, 25969, 25981, 25997, 26003, 26017, 26029, + 26041, 26053, 26083, 26099, 26107, 26113, 26119, + 26141, 26153, 26161, 26171, 26177, 26183, 26189, + 26203, 26209, 26227, 26237, 26249, 26261, 26267, + 26293, 26309, 26317, 26339, 26347, 26357, 26371, + 26387, 26393, 26399, 26407, 26417, 26423, 26431, + 26437, 26449, 26459, 26479, 26489, 26497, 26513, + 26539, 26557, 26573, 26591, 26597, 26627, 26633, + 26641, 26647, 26669, 26681, 26687, 26693, 26699, + 26711, 26717, 26723, 26729, 26737, 26759, 26777, + 26783, 26801, 26813, 26821, 26833, 26839, 26849, + 26861, 26879, 26891, 26903, 26921, 26927, 26947, + 26953, 26959, 26981, 26987, 26993, 27011, 27017, + 27031, 27043, 27059, 27067, 27073, 27091, 27103, + 27109, 27127, 27143, 27179, 27191, 27197, 27211, + 27239, 27253, 27259, 27271, 27277, 27283, 27299, + 27329, 27337, 27361, 27367, 27397, 27407, 27427, + 27437, 27449, 27457, 27479, 27487, 27509, 27527, + 27539, 27551, 27581, 27611, 27617, 27631, 27647, + 27653, 27673, 27689, 27697, 27733, 27739, 27749, + 27763, 27773, 27779, 27791, 27799, 27809, 27817, + 27823, 27847, 27883, 27893, 27901, 27917, 27941, + 27947, 27953, 27961, 27967, 27983, 27997, 28019, + 28027, 28051, 28057, 28069, 28081, 28087, 28097, + 28109, 28123, 28151, 28163, 28181, 28201, 28211, + 28219, 28229, 28277, 28283, 28289, 28297, 28307, + 28319, 28349, 28387, 28393, 28403, 28409, 28429, + 28439, 28447, 28463, 28477, 28493, 28499, 28513, + 28537, 28547, 28559, 28571, 28579, 28591, 28597, + 28603, 28619, 28627, 28643, 28649, 28657, 28663, + 28669, 28687, 28697, 28703, 28711, 28723, 28729, + 28751, 28759, 28771, 28789, 28807, 28813, 28837, + 28843, 28859, 28867, 28879, 28901, 28909, 28921, + 28927, 28933, 28949, 28961, 28979, 29009, 29017, + 29023, 29033, 29059, 29077, 29101, 29123, 29129, + 29137, 29147, 29153, 29167, 29173, 29179, 29191, + 29201, 29207, 29221, 29231, 29243, 29251, 29269, + 29287, 29297, 29303, 29311, 29327, 29333, 29339, + 29347, 29363, 29383, 29389, 29399, 29411, 29423, + 29429, 29437, 29443, 29453, 29473, 29483, 29501, + 29527, 29537, 29567, 29573, 29581, 29587, 29599, + 29611, 29629, 29641, 29663, 29669, 29683, 29717, + 29723, 29741, 29753, 29759, 29789, 29803, 29819, + 29833, 29851, 29863, 29873, 29879, 29917, 29927, + 29947, 29959, 29983, 29989, 30011, 30029, 30047, + 30059, 30071, 30089, 30097, 30103, 30109, 30119, + 30133, 30139, 30161, 30169, 30181, 30187, 30197, + 30203, 30211, 30223, 30241, 30253, 30259, 30269, + 30293, 30307, 30313, 30319, 30341, 30347, 30367, + 30389, 30403, 30427, 30449, 30467, 30491, 30497, + 30509, 30517, 30529, 30539, 30553, 30559, 30577, + 30593, 30631, 30637, 30643, 30649, 30661, 30671, + 30677, 30689, 30697, 30703, 30713, 30727, 30757, + 30763, 30773, 30781, 30803, 30809, 30817, 30829, + 30839, 30851, 30859, 30869, 30881, 30893, 30911, + 30931, 30937, 30949, 30971, 30977, 30983, 31013, + 31019, 31033, 31039, 31051, 31063, 31069, 31079, + 31091, 31121, 31139, 31147, 31153, 31159, 31177, + 31183, 31189, 31219, 31231, 31237, 31247, 31253, + 31259, 31267, 31277, 31307, 31319, 31327, 31333, + 31357, 31379, 31387, 31393, 31469, 31477, 31489, + 31511, 31517, 31531, 31541, 31547, 31567, 31573, + 31583, 31601, 31607, 31627, 31643, 31649, 31657, + 31663, 31687, 31699, 31721, 31727, 31741, 31751, + 31769, 31793, 31799, 31817, 31847, 31859, 31873, + 31883, 31891, 31907, 31957, 31963, 31973, 31981, + 31991, 32003, 32009, 32027, 32051, 32057, 32063, + 32069, 32077, 32083, 32089, 32099, 32117, 32141, + 32159, 32173, 32183, 32189, 32203, 32213, 32233, + 32251, 32257, 32297, 32303, 32309, 32321, 32327, + 32341, 32353, 32359, 32369, 32377, 32401, 32411, + 32423, 32429, 32441, 32467, 32479, 32491, 32497, + 32503, 32531, 32537, 32561, 32569, 32579, 32587, + 32603, 32609, 32621, 32633, 32647, 32653, 32687, + 32693, 32707, 32713, 32719, 32749, 32771, 32779, + 32789, 32797, 32803, 32831, 32839, 32869, 32887, + 32909, 32917, 32933, 32939, 32957, 32969, 32983, + 32993, 32999, 33013, 33023, 33029, 33037, 33049, + 33071, 33083, 33091, 33107, 33113, 33119, 33149, + 33161, 33179, 33191, 33199, 33211, 33223, 33247, + 33287, 33301, 33311, 33317, 33329, 33343, 33349, + 33359, 33377, 33391, 33403, 33409, 33427, 33457, + 33469, 33479, 33487, 33493, 33503, 33521, 33529, + 33547, 33563, 33569, 33577, 33587, 33599, 33613, + 33619, 33629, 33637, 33647, 33679, 33703, 33713, + 33721, 33739, 33749, 33757, 33767, 33773, 33791, + 33797, 33809, 33827, 33851, 33857, 33863, 33871, + 33889, 33911, 33923, 33931, 33937, 33961, 33967, + 33997, 34019, 34031, 34039, 34057, 34123, 34129, + 34141, 34147, 34157, 34171, 34183, 34211, 34217, + 34231, 34253, 34259, 34267, 34273, 34283, 34297, + 34303, 34313, 34319, 34327, 34337, 34351, 34361, + 34367, 34381, 34403, 34421, 34429, 34439, 34457, + 34469, 34483, 34499, 34511, 34519, 34537, 34543, + 34549, 34583, 34589, 34603, 34613, 34631, 34649, + 34667, 34673, 34679, 34687, 34693, 34703, 34721, + 34729, 34739, 34747, 34757, 34763, 34781, 34807, + 34819, 34841, 34847, 34871, 34877, 34883, 34897, + 34913, 34919, 34939, 34949, 34961, 34981, 35023, + 35051, 35059, 35069, 35081, 35089, 35099, 35107, + 35117, 35129, 35141, 35149, 35159, 35171, 35201, + 35221, 35227, 35251, 35257, 35267, 35279, 35291, + 35311, 35317, 35323, 35339, 35353, 35363, 35381, + 35393, 35401, 35407, 35419, 35437, 35447, 35461, + 35491, 35507, 35521, 35527, 35533, 35543, 35569, + 35591, 35597, 35603, 35617, 35671, 35677, 35729, + 35747, 35753, 35759, 35771, 35797, 35803, 35809, + 35831, 35837, 35851, 35863, 35869, 35879, 35897, + 35911, 35923, 35933, 35951, 35963, 35969, 35977, + 35983, 35993, 35999, 36007, 36013, 36037, 36061, + 36067, 36073, 36083, 36097, 36107, 36131, 36137, + 36151, 36161, 36187, 36209, 36217, 36229, 36241, + 36251, 36263, 36269, 36277, 36293, 36299, 36307, + 36313, 36319, 36341, 36353, 36373, 36383, 36389, + 36433, 36451, 36457, 36467, 36473, 36479, 36493, + 36523, 36529, 36541, 36551, 36559, 36571, 36583, + 36599, 36607, 36629, 36637, 36643, 36653, 36671, + 36677, 36683, 36691, 36697, 36709, 36721, 36739, + 36749, 36761, 36767, 36779, 36787, 36793, 36809, + 36821, 36833, 36847, 36857, 36871, 36877, 36887, + 36899, 36913, 36919, 36929, 36943, 36973, 36979, + 36997, 37003, 37013, 37019, 37039, 37049, 37057, + 37087, 37097, 37117, 37123, 37139, 37159, 37171, + 37181, 37189, 37199, 37217, 37223, 37243, 37253, + 37273, 37307, 37313, 37321, 37337, 37357, 37363, + 37369, 37379, 37397, 37409, 37423, 37441, 37447, + 37463, 37483, 37489, 37501, 37507, 37517, 37529, + 37537, 37547, 37561, 37567, 37573, 37579, 37589, + 37607, 37619, 37633, 37643, 37649, 37657, 37663, + 37691, 37699, 37717, 37747, 37781, 37799, 37811, + 37831, 37847, 37853, 37861, 37871, 37879, 37889, + 37897, 37907, 37951, 37957, 37963, 37987, 37993, + 38011, 38039, 38047, 38053, 38069, 38083, 38113, + 38119, 38149, 38167, 38177, 38183, 38189, 38197, + 38219, 38231, 38237, 38261, 38273, 38281, 38287, + 38299, 38317, 38327, 38333, 38351, 38371, 38377, + 38393, 38431, 38447, 38453, 38459, 38501, 38543, + 38557, 38567, 38593, 38603, 38609, 38629, 38639, + 38651, 38669, 38677, 38693, 38699, 38707, 38713, + 38723, 38729, 38737, 38747, 38767, 38783, 38791, + 38803, 38821, 38833, 38839, 38851, 38861, 38867, + 38873, 38891, 38903, 38917, 38923, 38933, 38953, + 38959, 38971, 38977, 38993, 39019, 39041, 39047, + 39079, 39089, 39097, 39103, 39113, 39119, 39133, + 39139, 39157, 39163, 39181, 39191, 39199, 39209, + 39217, 39227, 39233, 39239, 39251, 39293, 39301, + 39313, 39323, 39341, 39359, 39367, 39373, 39383, + 39397, 39409, 39419, 39439, 39451, 39461, 39499, + 39509, 39521, 39541, 39551, 39563, 39569, 39581, + 39607, 39619, 39631, 39659, 39667, 39679, 39703, + 39709, 39719, 39727, 39733, 39749, 39761, 39769, + 39779, 39791, 39799, 39821, 39827, 39839, 39847, + 39857, 39863, 39869, 39877, 39883, 39901, 39929, + 39937, 39953, 39971, 39979, 39989, 40009, 40031, + 40037, 40063, 40087, 40093, 40099, 40111, 40123, + 40129, 40151, 40163, 40169, 40177, 40189, 40213, + 40231, 40237, 40253, 40277, 40283, 40289, 40343, + 40351, 40357, 40387, 40423, 40429, 40459, 40471, + 40483, 40493, 40499, 40507, 40519, 40529, 40543, + 40559, 40577, 40583, 40591, 40597, 40609, 40627, + 40637, 40693, 40699, 40709, 40739, 40751, 40759, + 40771, 40787, 40801, 40813, 40819, 40829, 40841, + 40847, 40853, 40867, 40879, 40897, 40903, 40927, + 40933, 40939, 40949, 40961, 40973, 40993, 41011, + 41017, 41023, 41039, 41047, 41057, 41077, 41113, + 41131, 41141, 41149, 41161, 41177, 41183, 41189, + 41201, 41213, 41221, 41227, 41233, 41243, 41257, + 41263, 41269, 41281, 41299, 41333, 41341, 41351, + 41357, 41381, 41387, 41399, 41411, 41443, 41453, + 41467, 41479, 41491, 41507, 41513, 41519, 41539, + 41549, 41579, 41593, 41603, 41609, 41617, 41627, + 41641, 41647, 41659, 41669, 41681, 41687, 41719, + 41729, 41737, 41759, 41771, 41777, 41801, 41809, + 41843, 41849, 41863, 41879, 41887, 41893, 41903, + 41911, 41927, 41941, 41947, 41953, 41959, 41969, + 41981, 41999, 42013, 42019, 42043, 42061, 42071, + 42083, 42089, 42101, 42131, 42139, 42157, 42169, + 42179, 42187, 42193, 42209, 42221, 42227, 42239, + 42257, 42281, 42293, 42299, 42307, 42323, 42331, + 42337, 42349, 42359, 42373, 42379, 42391, 42397, + 42403, 42409, 42433, 42443, 42451, 42457, 42463, + 42473, 42487, 42499, 42509, 42533, 42557, 42569, + 42577, 42589, 42611, 42641, 42649, 42667, 42677, + 42683, 42689, 42697, 42703, 42709, 42719, 42727, + 42737, 42743, 42751, 42767, 42773, 42787, 42793, + 42821, 42829, 42839, 42853, 42859, 42899, 42923, + 42929, 42937, 42943, 42953, 42961, 42967, 42979, + 42989, 43003, 43013, 43019, 43037, 43049, 43063, + 43093, 43103, 43117, 43133, 43151, 43159, 43177, + 43189, 43201, 43207, 43223, 43237, 43261, 43271, + 43283, 43291, 43313, 43319, 43331, 43391, 43397, + 43403, 43411, 43427, 43441, 43451, 43457, 43481, + 43487, 43499, 43517, 43541, 43573, 43579, 43591, + 43597, 43607, 43613, 43627, 43633, 43649, 43661, + 43669, 43691, 43711, 43717, 43753, 43759, 43777, + 43783, 43789, 43801, 43853, 43867, 43889, 43913, + 43933, 43943, 43951, 43961, 43969, 43987, 43997, + 44017, 44027, 44041, 44053, 44059, 44071, 44087, + 44101, 44111, 44119, 44129, 44159, 44171, 44179, + 44189, 44201, 44207, 44221, 44249, 44257, 44263, + 44269, 44279, 44293, 44351, 44357, 44371, 44381, + 44389, 44417, 44449, 44483, 44491, 44497, 44507, + 44519, 44531, 44537, 44543, 44549, 44563, 44579, + 44587, 44617, 44623, 44633, 44641, 44647, 44657, + 44683, 44699, 44711, 44729, 44741, 44753, 44771, + 44777, 44789, 44797, 44809, 44819, 44839, 44851, + 44867, 44879, 44887, 44893, 44909, 44917, 44927, + 44939, 44953, 44959, 44971, 44983, 45007, 45013, + 45053, 45061, 45077, 45083, 45119, 45127, 45137, + 45161, 45179, 45191, 45197, 45233, 45247, 45259, + 45281, 45289, 45307, 45317, 45329, 45337, 45343, + 45361, 45377, 45389, 45403, 45413, 45427, 45433, + 45439, 45481, 45491, 45497, 45503, 45523, 45533, + 45541, 45553, 45569, 45587, 45599, 45613, 45631, + 45641, 45659, 45667, 45673, 45691, 45697, 45707, + 45737, 45751, 45757, 45763, 45779, 45817, 45823, + 45833, 45841, 45853, 45863, 45869, 45887, 45893, + 45943, 45949, 45959, 45971, 45979, 45989, 46021, + 46027, 46049, 46061, 46073, 46091, 46099, 46133, + 46141, 46147, 46153, 46171, 46181, 46187, 46199, + 46219, 46229, 46237, 46261, 46271, 46279, 46301, + 46307, 46327, 46337, 46349, 46381, 46399, 46411, + 46439, 46447, 46457, 46471, 46477, 46489, 46499, + 46507, 46523, 46549, 46559, 46567, 46573, 46589, + 46601, 46619, 46633, 46639, 46649, 46663, 46679, + 46687, 46703, 46723, 46747, 46757, 46769, 46807, + 46817, 46829, 46853, 46861, 46867, 46877, 46889, + 46901, 46919, 46933, 46957, 46993, 47017, 47041, + 47051, 47057, 47087, 47093, 47111, 47119, 47129, + 47137, 47143, 47149, 47161, 47189, 47207, 47221, + 47237, 47251, 47269, 47279, 47287, 47293, 47303, + 47309, 47317, 47339, 47351, 47363, 47381, 47387, + 47407, 47417, 47431, 47441, 47459, 47491, 47497, + 47507, 47513, 47521, 47527, 47533, 47543, 47563, + 47569, 47581, 47591, 47599, 47609, 47623, 47629, + 47639, 47653, 47659, 47681, 47699, 47711, 47717, + 47737, 47743, 47777, 47791, 47797, 47807, 47819, + 47837, 47843, 47857, 47869, 47881, 47903, 47911, + 47917, 47933, 47939, 47947, 47963, 47969, 47977, + 48017, 48023, 48029, 48049, 48073, 48079, 48091, + 48109, 48119, 48131, 48157, 48163, 48179, 48187, + 48193, 48221, 48239, 48247, 48259, 48271, 48281, + 48299, 48311, 48337, 48353, 48371, 48383, 48397, + 48407, 48413, 48437, 48449, 48463, 48473, 48479, + 48487, 48497, 48523, 48533, 48539, 48563, 48571, + 48589, 48611, 48619, 48647, 48661, 48673, 48679, + 48731, 48751, 48757, 48767, 48779, 48787, 48799, + 48809, 48817, 48823, 48847, 48857, 48869, 48883, + 48889, 48907, 48947, 48953, 48973, 48989, 49003, + 49009, 49019, 49031, 49037, 49043, 49057, 49069, + 49081, 49103, 49109, 49117, 49123, 49139, 49157, + 49169, 49177, 49193, 49199, 49207, 49223, 49253, + 49261, 49277, 49297, 49307, 49331, 49339, 49363, + 49369, 49391, 49409, 49417, 49429, 49451, 49459, + 49477, 49499, 49523, 49529, 49537, 49547, 49559, + 49597, 49603, 49613, 49627, 49633, 49639, 49663, + 49669, 49681, 49697, 49711, 49727, 49739, 49747, + 49757, 49783, 49789, 49801, 49807, 49823, 49831, + 49843, 49853, 49871, 49877, 49891, 49919, 49927, + 49937, 49943, 49957, 49991, 49999, 50021, 50033, + 50047, 50053, 50069, 50077, 50087, 50093, 50101, + 50111, 50119, 50129, 50147, 50153, 50159, 50177, + 50207, 50221, 50227, 50261, 50273, 50287, 50311, + 50321, 50329, 50341, 50359, 50377, 50383, 50411, + 50417, 50423, 50441, 50459, 50497, 50503, 50513, + 50527, 50539, 50549, 50581, 50587, 50593, 50599, + 50627, 50647, 50671, 50683, 50707, 50723, 50741, + 50753, 50767, 50773, 50789, 50821, 50833, 50839, + 50849, 50857, 50867, 50873, 50891, 50909, 50923, + 50929, 50951, 50957, 50969, 50989, 51001, 51031, + 51043, 51059, 51071, 51109, 51131, 51137, 51151, + 51157, 51169, 51193, 51199, 51217, 51229, 51239, + 51257, 51263, 51283, 51307, 51329, 51341, 51347, + 51361, 51383, 51407, 51413, 51419, 51427, 51437, + 51449, 51461, 51473, 51479, 51487, 51503, 51511, + 51517, 51539, 51551, 51563, 51577, 51593, 51599, + 51607, 51613, 51631, 51637, 51647, 51659, 51673, + 51679, 51691, 51713, 51719, 51749, 51767, 51787, + 51797, 51803, 51817, 51827, 51839, 51853, 51859, + 51869, 51893, 51899, 51907, 51913, 51929, 51941, + 51949, 51971, 51977, 51991, 52009, 52021, 52027, + 52051, 52057, 52067, 52081, 52103, 52121, 52127, + 52147, 52153, 52163, 52177, 52183, 52189, 52201, + 52223, 52237, 52249, 52259, 52267, 52289, 52301, + 52313, 52321, 52361, 52369, 52379, 52387, 52433, + 52453, 52489, 52501, 52511, 52517, 52529, 52541, + 52553, 52561, 52567, 52579, 52609, 52627, 52639, + 52667, 52673, 52691, 52697, 52709, 52721, 52727, + 52733, 52747, 52757, 52769, 52783, 52807, 52813, + 52837, 52859, 52879, 52889, 52901, 52919, 52937, + 52951, 52957, 52963, 52973, 52981, 52999, 53017, + 53047, 53069, 53077, 53087, 53093, 53101, 53113, + 53129, 53147, 53161, 53171, 53189, 53197, 53231, + 53239, 53267, 53279, 53299, 53309, 53323, 53353, + 53359, 53377, 53401, 53407, 53419, 53437, 53453, + 53479, 53503, 53527, 53549, 53569, 53591, 53597, + 53609, 53617, 53623, 53629, 53639, 53653, 53681, + 53693, 53699, 53717, 53731, 53759, 53773, 53783, + 53791, 53813, 53819, 53831, 53849, 53857, 53881, + 53887, 53897, 53917, 53923, 53939, 53951, 53959, + 53987, 53993, 54001, 54011, 54037, 54049, 54059, + 54083, 54091, 54101, 54121, 54133, 54139, 54151, + 54163, 54181, 54193, 54217, 54251, 54269, 54277, + 54287, 54293, 54311, 54319, 54331, 54347, 54361, + 54367, 54377, 54401, 54409, 54419, 54437, 54443, + 54449, 54469, 54493, 54499, 54517, 54539, 54547, + 54559, 54577, 54583, 54601, 54617, 54623, 54629, + 54647, 54667, 54673, 54679, 54709, 54721, 54727, + 54751, 54767, 54773, 54779, 54787, 54799, 54829, + 54851, 54869, 54877, 54907, 54917, 54941, 54949, + 54959, 54973, 54979, 55001, 55009, 55021, 55049, + 55057, 55073, 55079, 55103, 55109, 55117, 55127, + 55147, 55163, 55171, 55201, 55207, 55213, 55219, + 55229, 55243, 55249, 55259, 55291, 55313, 55331, + 55337, 55343, 55351, 55373, 55381, 55399, 55411, + 55439, 55457, 55469, 55487, 55501, 55511, 55529, + 55541, 55547, 55579, 55589, 55603, 55609, 55619, + 55631, 55639, 55661, 55667, 55673, 55681, 55691, + 55697, 55711, 55717, 55733, 55763, 55787, 55793, + 55799, 55807, 55813, 55819, 55829, 55837, 55843, + 55849, 55871, 55889, 55897, 55903, 55921, 55927, + 55933, 55949, 55967, 55987, 55997, 56003, 56009, + 56039, 56053, 56081, 56087, 56093, 56099, 56113, + 56123, 56131, 56149, 56167, 56179, 56197, 56207, + 56237, 56249, 56263, 56269, 56299, 56311, 56333, + 56359, 56369, 56377, 56383, 56393, 56401, 56417, + 56431, 56437, 56443, 56453, 56467, 56473, 56479, + 56489, 56501, 56509, 56519, 56527, 56533, 56543, + 56569, 56591, 56597, 56611, 56629, 56659, 56671, + 56681, 56687, 56701, 56711, 56731, 56737, 56747, + 56767, 56773, 56779, 56807, 56813, 56821, 56827, + 56843, 56857, 56873, 56891, 56897, 56909, 56921, + 56929, 56941, 56951, 56957, 56963, 56983, 56989, + 56999, 57037, 57047, 57059, 57073, 57089, 57097, + 57107, 57119, 57131, 57139, 57149, 57163, 57173, + 57179, 57191, 57203, 57221, 57241, 57251, 57259, + 57269, 57283, 57301, 57329, 57347, 57367, 57373, + 57383, 57389, 57397, 57413, 57427, 57457, 57467, + 57487, 57493, 57503, 57527, 57557, 57571, 57587, + 57593, 57601, 57637, 57649, 57667, 57679, 57689, + 57697, 57709, 57719, 57727, 57737, 57751, 57773, + 57781, 57787, 57793, 57803, 57809, 57829, 57839, + 57847, 57853, 57859, 57881, 57899, 57917, 57923, + 57943, 57973, 57991, 58013, 58027, 58043, 58049, + 58057, 58067, 58073, 58099, 58109, 58129, 58147, + 58153, 58169, 58189, 58199, 58207, 58217, 58229, + 58237, 58243, 58271, 58309, 58321, 58337, 58363, + 58369, 58379, 58391, 58403, 58411, 58417, 58427, + 58439, 58451, 58477, 58511, 58537, 58543, 58549, + 58567, 58573, 58579, 58601, 58613, 58631, 58657, + 58679, 58687, 58693, 58699, 58711, 58727, 58733, + 58741, 58757, 58763, 58771, 58787, 58831, 58889, + 58897, 58907, 58913, 58921, 58937, 58943, 58963, + 58979, 58991, 58997, 59009, 59021, 59029, 59051, + 59063, 59069, 59077, 59083, 59093, 59107, 59113, + 59119, 59141, 59149, 59159, 59167, 59183, 59197, + 59207, 59219, 59233, 59239, 59263, 59273, 59281, + 59333, 59341, 59351, 59357, 59369, 59377, 59387, + 59393, 59399, 59407, 59417, 59441, 59447, 59453, + 59467, 59473, 59497, 59509, 59539, 59557, 59567, + 59581, 59611, 59617, 59627, 59651, 59659, 59669, + 59693, 59699, 59707, 59723, 59729, 59743, 59753, + 59771, 59779, 59791, 59797, 59809, 59833, 59863, + 59879, 59887, 59921, 59929, 59951, 59957, 59971, + 59981, 59999, 60013, 60029, 60037, 60077, 60083, + 60089, 60101, 60107, 60127, 60133, 60139, 60149, + 60161, 60167, 60209, 60217, 60223, 60251, 60257, + 60271, 60289, 60317, 60331, 60337, 60343, 60353, + 60373, 60383, 60397, 60413, 60427, 60443, 60449, + 60457, 60493, 60509, 60521, 60527, 60539, 60589, + 60601, 60607, 60617, 60623, 60631, 60637, 60647, + 60659, 60679, 60689, 60703, 60719, 60727, 60733, + 60757, 60763, 60773, 60779, 60793, 60811, 60821, + 60859, 60869, 60887, 60899, 60913, 60919, 60937, + 60943, 60953, 60961, 61001, 61007, 61027, 61043, + 61051, 61057, 61091, 61099, 61121, 61129, 61141, + 61151, 61169, 61211, 61223, 61231, 61253, 61261, + 61283, 61291, 61297, 61331, 61339, 61357, 61363, + 61379, 61403, 61409, 61417, 61441, 61463, 61469, + 61483, 61493, 61507, 61519, 61543, 61553, 61559, + 61583, 61603, 61609, 61627, 61637, 61643, 61651, + 61657, 61667, 61673, 61681, 61687, 61703, 61717, + 61723, 61729, 61751, 61757, 61781, 61813, 61819, + 61837, 61843, 61861, 61871, 61879, 61909, 61927, + 61933, 61949, 61961, 61967, 61979, 61987, 62003, + 62011, 62017, 62039, 62047, 62053, 62071, 62081, + 62099, 62119, 62129, 62137, 62143, 62171, 62189, + 62201, 62207, 62213, 62219, 62233, 62273, 62297, + 62303, 62311, 62323, 62347, 62383, 62401, 62417, + 62423, 62459, 62467, 62473, 62483, 62497, 62507, + 62533, 62539, 62549, 62563, 62581, 62591, 62597, + 62603, 62617, 62627, 62633, 62639, 62653, 62659, + 62683, 62701, 62723, 62731, 62743, 62753, 62761, + 62773, 62791, 62801, 62819, 62827, 62851, 62861, + 62869, 62897, 62903, 62921, 62927, 62939, 62969, + 62981, 62987, 63029, 63059, 63067, 63073, 63079, + 63097, 63103, 63113, 63127, 63149, 63179, 63197, + 63211, 63241, 63247, 63277, 63299, 63311, 63317, + 63331, 63337, 63347, 63353, 63361, 63367, 63377, + 63389, 63397, 63409, 63419, 63439, 63463, 63473, + 63487, 63493, 63499, 63521, 63527, 63533, 63541, + 63559, 63577, 63587, 63599, 63607, 63617, 63629, + 63647, 63659, 63667, 63689, 63697, 63703, 63709, + 63719, 63727, 63737, 63743, 63761, 63773, 63781, + 63793, 63799, 63809, 63823, 63839, 63853, 63863, + 63901, 63907, 63913, 63929, 63949, 63977, 63997, + 64007, 64013, 64019, 64033, 64063, 64081, 64091, + 64109, 64123, 64151, 64157, 64171, 64187, 64217, + 64223, 64231, 64237, 64271, 64279, 64301, 64319, + 64327, 64333, 64373, 64381, 64399, 64433, 64439, + 64451, 64483, 64489, 64499, 64513, 64553, 64567, + 64577, 64591, 64601, 64609, 64621, 64627, 64633, + 64661, 64667, 64679, 64693, 64709, 64717, 64747, + 64763, 64781, 64793, 64811, 64817, 64849, 64871, + 64877, 64891, 64901, 64919, 64927, 64937, 64951, + 64969, 64997, 65003, 65011, 65027, 65033, 65053, + 65063, 65071, 65089, 65099, 65111, 65119, 65129, + 65141, 65147, 65167, 65173, 65179, 65203, 65213, + 65239, 65257, 65267, 65287, 65293, 65309, 65323, + 65353, 65371, 65381, 65393, 65407, 65413, 65419, + 65437, 65447, 65479, 65497, 65519, 65537, 65543, + 65551, 65557, 65563, 65579, 65587, 65599, 65609, + 65617, 65629, 65647, 65657, 65677, 65687, 65699, + 65707, 65713, 65719, 65729, 65761, 65777, 65789, + 65809, 65827, 65837, 65843, 65851, 65867, 65881, + 65899, 65921, 65927, 65951, 65957, 65963, 65981, + 65993, 66029, 66037, 66047, 66067, 66083, 66089, + 66103, 66109, 66137, 66161, 66169, 66179, 66191, + 66221, 66239, 66271, 66293, 66301, 66337, 66343, + 66359, 66373, 66383, 66403, 66413, 66431, 66449, + 66457, 66463, 66491, 66499, 66509, 66523, 66529, + 66541, 66553, 66569, 66587, 66593, 66601, 66617, + 66629, 66643, 66653, 66683, 66697, 66713, 66721, + 66733, 66739, 66749, 66763, 66791, 66797, 66809, + 66821, 66841, 66851, 66863, 66877, 66883, 66889, + 66919, 66931, 66943, 66949, 66959, 66973, 67003, + 67021, 67033, 67043, 67049, 67057, 67073, 67079, + 67103, 67121, 67129, 67139, 67153, 67169, 67181, + 67187, 67211, 67217, 67231, 67247, 67261, 67271, + 67289, 67307, 67339, 67349, 67369, 67391, 67399, + 67409, 67421, 67427, 67433, 67447, 67453, 67477, + 67489, 67499, 67511, 67523, 67531, 67537, 67547, + 67559, 67567, 67577, 67589, 67601, 67607, 67619, + 67631, 67651, 67679, 67699, 67709, 67723, 67733, + 67741, 67751, 67757, 67763, 67777, 67783, 67789, + 67801, 67807, 67819, 67829, 67843, 67853, 67867, + 67883, 67891, 67901, 67927, 67933, 67939, 67957, + 67967, 67979, 67987, 67993, 68023, 68041, 68053, + 68059, 68071, 68087, 68099, 68111, 68141, 68147, + 68161, 68171, 68207, 68213, 68219, 68227, 68239, + 68261, 68279, 68311, 68329, 68351, 68371, 68389, + 68399, 68437, 68443, 68449, 68473, 68483, 68489, + 68501, 68507, 68521, 68531, 68539, 68567, 68581, + 68597, 68611, 68633, 68639, 68659, 68669, 68683, + 68699, 68711, 68729, 68737, 68743, 68749, 68767, + 68777, 68791, 68813, 68819, 68863, 68879, 68891, + 68897, 68903, 68909, 68917, 68927, 68947, 68963, + 68993, 69001, 69011, 69019, 69029, 69061, 69067, + 69073, 69109, 69119, 69127, 69143, 69149, 69163, + 69191, 69197, 69203, 69221, 69233, 69239, 69247, + 69257, 69263, 69313, 69337, 69371, 69379, 69389, + 69401, 69427, 69439, 69457, 69463, 69473, 69481, + 69491, 69497, 69539, 69557, 69593, 69623, 69653, + 69661, 69677, 69691, 69697, 69709, 69737, 69761, + 69767, 69779, 69809, 69821, 69827, 69833, 69847, + 69857, 69877, 69899, 69911, 69929, 69941, 69959, + 69991, 69997, 70003, 70009, 70019, 70039, 70051, + 70061, 70067, 70079, 70099, 70111, 70117, 70123, + 70139, 70157, 70163, 70177, 70183, 70199, 70207, + 70223, 70229, 70237, 70249, 70271, 70289, 70297, + 70309, 70321, 70327, 70351, 70373, 70379, 70393, + 70423, 70429, 70439, 70451, 70457, 70481, 70487, + 70501, 70507, 70529, 70537, 70549, 70571, 70583, + 70589, 70607, 70619, 70627, 70639, 70657, 70663, + 70687, 70709, 70717, 70729, 70753, 70769, 70783, + 70793, 70823, 70841, 70849, 70867, 70877, 70891, + 70901, 70913, 70919, 70937, 70949, 70957, 70969, + 70979, 70991, 70997, 71011, 71023, 71039, 71059, + 71069, 71081, 71089, 71119, 71129, 71143, 71153, + 71161, 71167, 71191, 71209, 71233, 71249, 71257, + 71263, 71287, 71293, 71317, 71327, 71333, 71339, + 71347, 71353, 71359, 71387, 71399, 71411, 71419, + 71429, 71437, 71443, 71453, 71471, 71479, 71503, + 71527, 71537, 71549, 71563, 71569, 71593, 71633, + 71647, 71663, 71671, 71693, 71699, 71707, 71713, + 71719, 71741, 71761, 71777, 71789, 71807, 71821, + 71837, 71843, 71849, 71861, 71867, 71879, 71887, + 71899, 71909, 71917, 71933, 71941, 71947, 71963, + 71971, 71983, 71993, 71999, 72019, 72031, 72043, + 72053, 72073, 72089, 72101, 72109, 72139, 72161, + 72167, 72173, 72211, 72221, 72227, 72251, 72269, + 72277, 72287, 72307, 72313, 72337, 72353, 72367, + 72379, 72421, 72431, 72461, 72467, 72481, 72493, + 72503, 72533, 72547, 72559, 72577, 72613, 72623, + 72643, 72649, 72661, 72671, 72679, 72689, 72701, + 72707, 72719, 72727, 72733, 72739, 72763, 72797, + 72817, 72823, 72859, 72869, 72883, 72889, 72901, + 72907, 72923, 72931, 72937, 72949, 72959, 72973, + 72997, 73009, 73019, 73037, 73043, 73061, 73079, + 73091, 73121, 73127, 73133, 73141, 73181, 73189, + 73237, 73243, 73259, 73277, 73291, 73303, 73309, + 73327, 73351, 73361, 73369, 73379, 73387, 73417, + 73433, 73453, 73459, 73471, 73477, 73483, 73517, + 73523, 73529, 73547, 73553, 73561, 73571, 73583, + 73589, 73597, 73607, 73613, 73637, 73643, 73651, + 73673, 73679, 73693, 73699, 73709, 73721, 73727, + 73751, 73757, 73771, 73783, 73819, 73847, 73859, + 73867, 73877, 73883, 73897, 73907, 73939, 73951, + 73961, 73973, 73999, 74017, 74027, 74047, 74071, + 74077, 74093, 74099, 74131, 74143, 74149, 74159, + 74167, 74177, 74189, 74197, 74203, 74209, 74219, + 74231, 74257, 74279, 74287, 74293, 74311, 74317, + 74323, 74353, 74363, 74377, 74383, 74411, 74419, + 74441, 74449, 74471, 74489, 74507, 74521, 74527, + 74551, 74561, 74567, 74573, 74587, 74597, 74609, + 74623, 74653, 74687, 74699, 74707, 74713, 74719, + 74729, 74747, 74759, 74771, 74779, 74797, 74821, + 74827, 74843, 74857, 74869, 74887, 74897, 74903, + 74923, 74929, 74941, 74959, 75011, 75017, 75029, + 75037, 75079, 75109, 75133, 75149, 75161, 75167, + 75181, 75193, 75209, 75217, 75223, 75239, 75253, + 75269, 75277, 75289, 75307, 75323, 75329, 75337, + 75347, 75353, 75367, 75377, 75389, 75401, 75407, + 75431, 75437, 75479, 75503, 75511, 75521, 75527, + 75533, 75539, 75553, 75571, 75577, 75583, 75611, + 75617, 75629, 75641, 75653, 75659, 75679, 75689, + 75703, 75709, 75721, 75731, 75743, 75767, 75773, + 75781, 75787, 75793, 75821, 75833, 75853, 75869, + 75883, 75913, 75931, 75937, 75967, 75979, 75989, + 75997, 76003, 76031, 76039, 76079, 76091, 76099, + 76123, 76129, 76147, 76157, 76163, 76207, 76213, + 76231, 76243, 76249, 76259, 76283, 76289, 76303, + 76333, 76343, 76367, 76379, 76387, 76403, 76421, + 76441, 76463, 76471, 76481, 76487, 76493, 76507, + 76519, 76537, 76543, 76561, 76579, 76597, 76603, + 76631, 76649, 76667, 76673, 76679, 76697, 76717, + 76733, 76753, 76771, 76777, 76801, 76819, 76829, + 76837, 76847, 76871, 76883, 76907, 76913, 76919, + 76943, 76949, 76961, 76991, 77003, 77017, 77023, + 77029, 77041, 77047, 77069, 77081, 77093, 77101, + 77137, 77153, 77167, 77191, 77201, 77213, 77237, + 77243, 77249, 77261, 77267, 77279, 77291, 77317, + 77323, 77339, 77347, 77359, 77369, 77377, 77383, + 77417, 77431, 77447, 77471, 77477, 77489, 77509, + 77521, 77527, 77543, 77549, 77557, 77563, 77569, + 77587, 77611, 77617, 77641, 77647, 77659, 77681, + 77687, 77699, 77711, 77719, 77731, 77743, 77761, + 77773, 77783, 77797, 77813, 77839, 77849, 77863, + 77893, 77899, 77929, 77951, 77969, 77977, 77983, + 77999, 78007, 78017, 78031, 78041, 78049, 78059, + 78079, 78101, 78121, 78137, 78157, 78163, 78173, + 78179, 78191, 78203, 78229, 78241, 78259, 78277, + 78283, 78301, 78307, 78317, 78341, 78347, 78367, + 78401, 78427, 78437, 78467, 78479, 78487, 78497, + 78509, 78517, 78539, 78553, 78569, 78577, 78583, + 78593, 78607, 78623, 78643, 78649, 78691, 78697, + 78707, 78713, 78721, 78737, 78779, 78787, 78797, + 78803, 78809, 78823, 78839, 78853, 78877, 78887, + 78893, 78901, 78919, 78929, 78941, 78977, 78989, + 79031, 79039, 79063, 79087, 79103, 79111, 79133, + 79139, 79147, 79153, 79159, 79181, 79187, 79193, + 79201, 79229, 79241, 79259, 79273, 79279, 79301, + 79309, 79319, 79333, 79349, 79357, 79367, 79379, + 79393, 79399, 79411, 79423, 79433, 79451, 79481, + 79493, 79531, 79537, 79549, 79559, 79579, 79589, + 79601, 79609, 79621, 79627, 79633, 79657, 79669, + 79687, 79693, 79699, 79757, 79769, 79777, 79801, + 79811, 79817, 79823, 79829, 79841, 79847, 79861, + 79867, 79873, 79889, 79901, 79907, 79939, 79967, + 79973, 79979, 79987, 79997, 80021, 80039, 80051, + 80071, 80077, 80107, 80141, 80147, 80153, 80167, + 80173, 80191, 80207, 80221, 80231, 80239, 80251, + 80263, 80273, 80279, 80287, 80309, 80317, 80329, + 80341, 80347, 80363, 80369, 80387, 80407, 80429, + 80447, 80471, 80489, 80513, 80527, 80537, 80557, + 80567, 80599, 80611, 80621, 80627, 80651, 80657, + 80669, 80677, 80683, 80701, 80713, 80737, 80747, + 80761, 80777, 80783, 80789, 80803, 80809, 80819, + 80831, 80849, 80863, 80897, 80909, 80917, 80923, + 80929, 80953, 80963, 80989, 81001, 81013, 81019, + 81031, 81041, 81047, 81071, 81077, 81083, 81097, + 81119, 81131, 81157, 81163, 81173, 81181, 81197, + 81203, 81223, 81233, 81239, 81281, 81293, 81299, + 81307, 81331, 81343, 81349, 81359, 81371, 81401, + 81409, 81421, 81439, 81457, 81463, 81509, 81517, + 81527, 81533, 81547, 81553, 81559, 81569, 81611, + 81619, 81629, 81637, 81647, 81667, 81677, 81689, + 81701, 81707, 81727, 81737, 81749, 81761, 81769, + 81799, 81817, 81839, 81847, 81853, 81869, 81883, + 81899, 81919, 81929, 81937, 81943, 81953, 81967, + 81973, 82003, 82009, 82021, 82031, 82037, 82051, + 82067, 82073, 82129, 82139, 82153, 82163, 82171, + 82183, 82189, 82207, 82217, 82223, 82231, 82237, + 82261, 82267, 82279, 82301, 82307, 82339, 82349, + 82361, 82373, 82387, 82393, 82421, 82457, 82463, + 82469, 82483, 82493, 82499, 82507, 82529, 82549, + 82559, 82567, 82591, 82601, 82609, 82619, 82633, + 82651, 82657, 82699, 82721, 82727, 82757, 82763, + 82781, 82787, 82793, 82799, 82811, 82837, 82847, + 82883, 82889, 82903, 82913, 82939, 82963, 82981, + 82997, 83003, 83009, 83023, 83047, 83059, 83071, + 83077, 83089, 83101, 83117, 83137, 83177, 83203, + 83219, 83227, 83233, 83243, 83257, 83267, 83273, + 83299, 83311, 83339, 83357, 83383, 83389, 83399, + 83407, 83417, 83423, 83431, 83437, 83443, 83449, + 83459, 83471, 83477, 83497, 83537, 83557, 83563, + 83579, 83591, 83597, 83609, 83617, 83639, 83653, + 83663, 83689, 83701, 83717, 83737, 83761, 83773, + 83791, 83813, 83833, 83843, 83857, 83869, 83891, + 83903, 83911, 83921, 83933, 83939, 83969, 83983, + 84011, 84017, 84047, 84053, 84059, 84067, 84089, + 84121, 84127, 84137, 84143, 84163, 84179, 84191, + 84199, 84211, 84221, 84229, 84239, 84247, 84263, + 84299, 84307, 84313, 84319, 84347, 84377, 84389, + 84401, 84407, 84421, 84431, 84437, 84443, 84449, + 84457, 84463, 84481, 84499, 84509, 84521, 84533, + 84551, 84559, 84589, 84629, 84649, 84659, 84673, + 84691, 84697, 84713, 84719, 84731, 84737, 84751, + 84761, 84787, 84793, 84809, 84827, 84857, 84869, + 84913, 84919, 84947, 84961, 84967, 84977, 84991, + 85009, 85021, 85027, 85037, 85049, 85061, 85081, + 85087, 85093, 85103, 85109, 85121, 85133, 85147, + 85159, 85193, 85199, 85213, 85223, 85229, 85237, + 85243, 85259, 85297, 85303, 85313, 85331, 85361, + 85369, 85381, 85411, 85427, 85439, 85447, 85453, + 85469, 85487, 85513, 85523, 85531, 85549, 85571, + 85577, 85597, 85607, 85619, 85627, 85639, 85661, + 85667, 85691, 85703, 85711, 85717, 85733, 85751, + 85781, 85793, 85817, 85829, 85837, 85843, 85853, + 85889, 85903, 85909, 85931, 85991, 85999, 86011, + 86017, 86027, 86069, 86077, 86083, 86111, 86117, + 86131, 86137, 86143, 86161, 86171, 86179, 86197, + 86209, 86239, 86249, 86257, 86263, 86269, 86287, + 86293, 86311, 86323, 86341, 86351, 86357, 86369, + 86381, 86389, 86399, 86413, 86423, 86441, 86453, + 86461, 86467, 86477, 86491, 86501, 86509, 86531, + 86539, 86561, 86573, 86579, 86587, 86599, 86627, + 86677, 86689, 86711, 86719, 86729, 86743, 86753, + 86767, 86783, 86813, 86837, 86843, 86851, 86857, + 86869, 86923, 86929, 86939, 86951, 86959, 86969, + 86981, 86993, 87011, 87037, 87049, 87071, 87083, + 87103, 87119, 87133, 87149, 87179, 87187, 87211, + 87221, 87251, 87257, 87277, 87293, 87299, 87313, + 87323, 87337, 87359, 87383, 87403, 87421, 87427, + 87433, 87443, 87473, 87481, 87491, 87509, 87517, + 87523, 87539, 87547, 87553, 87559, 87583, 87589, + 87613, 87623, 87629, 87641, 87649, 87671, 87679, + 87691, 87697, 87719, 87739, 87751, 87767, 87793, + 87803, 87811, 87833, 87853, 87869, 87877, 87887, + 87911, 87917, 87931, 87943, 87959, 87973, 87991, + 88001, 88007, 88019, 88037, 88069, 88079, 88093, + 88117, 88129, 88169, 88177, 88211, 88223, 88237, + 88259, 88289, 88301, 88321, 88327, 88337, 88379, + 88397, 88411, 88423, 88463, 88469, 88493, 88499, + 88513, 88523, 88547, 88589, 88607, 88643, 88651, + 88657, 88663, 88681, 88721, 88729, 88741, 88747, + 88771, 88789, 88799, 88807, 88813, 88819, 88843, + 88853, 88861, 88867, 88873, 88883, 88897, 88903, + 88919, 88937, 88951, 88969, 88993, 89003, 89009, + 89017, 89041, 89051, 89057, 89069, 89083, 89101, + 89107, 89113, 89119, 89137, 89153, 89189, 89203, + 89209, 89227, 89237, 89261, 89269, 89293, 89303, + 89317, 89329, 89363, 89371, 89381, 89387, 89393, + 89399, 89413, 89431, 89443, 89449, 89459, 89477, + 89491, 89501, 89513, 89519, 89527, 89533, 89561, + 89567, 89591, 89597, 89603, 89611, 89627, 89633, + 89653, 89659, 89669, 89681, 89689, 89753, 89759, + 89767, 89779, 89797, 89809, 89819, 89833, 89839, + 89849, 89867, 89891, 89897, 89909, 89917, 89923, + 89939, 89959, 89977, 89983, 89989, 90001, 90007, + 90017, 90023, 90031, 90053, 90059, 90067, 90073, + 90089, 90107, 90121, 90127, 90149, 90163, 90173, + 90187, 90197, 90203, 90217, 90227, 90239, 90247, + 90263, 90271, 90281, 90289, 90313, 90353, 90359, + 90371, 90379, 90397, 90403, 90437, 90469, 90481, + 90499, 90511, 90523, 90529, 90547, 90583, 90599, + 90617, 90631, 90641, 90647, 90659, 90677, 90697, + 90703, 90709, 90731, 90749, 90787, 90793, 90803, + 90821, 90833, 90841, 90847, 90863, 90887, 90901, + 90907, 90917, 90931, 90947, 90971, 90977, 90989, + 90997, 91009, 91019, 91033, 91079, 91097, 91121, + 91127, 91139, 91151, 91159, 91183, 91193, 91199, + 91229, 91237, 91243, 91249, 91283, 91291, 91297, + 91303, 91309, 91331, 91367, 91373, 91381, 91387, + 91393, 91411, 91423, 91433, 91453, 91459, 91493, + 91499, 91513, 91529, 91541, 91571, 91577, 91583, + 91591, 91621, 91631, 91639, 91673, 91691, 91703, + 91711, 91733, 91753, 91771, 91781, 91801, 91807, + 91813, 91823, 91837, 91867, 91873, 91909, 91921, + 91939, 91951, 91957, 91967, 91997, 92003, 92009, + 92033, 92041, 92051, 92077, 92083, 92107, 92119, + 92143, 92153, 92173, 92179, 92189, 92203, 92219, + 92227, 92233, 92243, 92251, 92269, 92297, 92311, + 92317, 92333, 92347, 92353, 92363, 92369, 92377, + 92383, 92399, 92413, 92419, 92431, 92459, 92467, + 92479, 92489, 92503, 92551, 92557, 92567, 92581, + 92593, 92623, 92639, 92647, 92657, 92669, 92681, + 92693, 92699, 92707, 92717, 92723, 92737, 92753, + 92761, 92767, 92779, 92789, 92801, 92809, 92821, + 92831, 92849, 92857, 92863, 92893, 92899, 92921, + 92927, 92941, 92951, 92957, 92987, 92993, 93001, + 93047, 93053, 93059, 93077, 93083, 93089, 93097, + 93103, 93113, 93131, 93139, 93151, 93169, 93179, + 93187, 93199, 93229, 93239, 93251, 93257, 93263, + 93281, 93287, 93307, 93319, 93329, 93337, 93371, + 93377, 93383, 93407, 93419, 93427, 93463, 93479, + 93487, 93493, 93503, 93523, 93529, 93553, 93559, + 93581, 93601, 93607, 93629, 93637, 93683, 93701, + 93719, 93739, 93761, 93787, 93809, 93827, 93851, + 93871, 93887, 93893, 93901, 93911, 93923, 93937, + 93949, 93967, 93979, 93997, 94007, 94033, 94049, + 94057, 94063, 94079, 94099, 94109, 94117, 94151, + 94169, 94201, 94207, 94219, 94229, 94253, 94261, + 94273, 94291, 94307, 94321, 94327, 94343, 94349, + 94379, 94397, 94421, 94427, 94433, 94439, 94447, + 94463, 94477, 94483, 94513, 94529, 94541, 94547, + 94559, 94573, 94583, 94597, 94603, 94613, 94621, + 94649, 94687, 94693, 94709, 94723, 94747, 94771, + 94777, 94789, 94811, 94819, 94837, 94847, 94873, + 94889, 94903, 94933, 94949, 94961, 94993, 94999, + 95009, 95021, 95027, 95063, 95071, 95083, 95089, + 95101, 95107, 95131, 95143, 95153, 95177, 95189, + 95203, 95213, 95219, 95231, 95239, 95257, 95267, + 95273, 95279, 95287, 95311, 95317, 95327, 95339, + 95369, 95383, 95393, 95401, 95413, 95419, 95429, + 95441, 95461, 95467, 95479, 95507, 95527, 95539, + 95549, 95561, 95569, 95581, 95597, 95603, 95617, + 95629, 95651, 95701, 95707, 95713, 95723, 95731, + 95737, 95747, 95773, 95783, 95789, 95801, 95813, + 95819, 95857, 95869, 95881, 95891, 95911, 95917, + 95923, 95929, 95947, 95957, 95971, 95987, 96001, + 96013, 96043, 96053, 96059, 96079, 96097, 96137, + 96149, 96157, 96167, 96179, 96199, 96211, 96221, + 96233, 96259, 96269, 96281, 96289, 96323, 96329, + 96337, 96353, 96377, 96401, 96419, 96431, 96443, + 96451, 96457, 96469, 96479, 96487, 96493, 96517, + 96527, 96553, 96581, 96587, 96601, 96643, 96661, + 96667, 96697, 96703, 96731, 96737, 96749, 96757, + 96763, 96769, 96779, 96787, 96797, 96821, 96827, + 96847, 96857, 96893, 96907, 96931, 96953, 96959, + 96973, 96979, 96989, 96997, 97003, 97021, 97039, + 97073, 97081, 97103, 97117, 97127, 97151, 97157, + 97169, 97177, 97187, 97213, 97231, 97241, 97259, + 97283, 97301, 97327, 97367, 97373, 97379, 97387, + 97397, 97423, 97429, 97441, 97453, 97459, 97499, + 97511, 97523, 97547, 97553, 97561, 97571, 97577, + 97583, 97607, 97613, 97649, 97673, 97687, 97711, + 97729, 97771, 97777, 97787, 97813, 97829, 97841, + 97847, 97859, 97871, 97879, 97919, 97927, 97943, + 97961, 97967, 97973, 97987, 98009, 98017, 98041, + 98047, 98057, 98081, 98101, 98123, 98129, 98143, + 98179, 98207, 98213, 98221, 98227, 98251, 98257, + 98269, 98297, 98317, 98323, 98347, 98369, 98377, + 98387, 98407, 98419, 98429, 98443, 98453, 98459, + 98467, 98473, 98479, 98491, 98507, 98519, 98533, + 98543, 98561, 98573, 98597, 98621, 98627, 98639, + 98663, 98669, 98689, 98711, 98717, 98729, 98737, + 98773, 98779, 98801, 98807, 98837, 98849, 98867, + 98873, 98887, 98893, 98899, 98909, 98927, 98939, + 98947, 98953, 98963, 98981, 98993, 98999, 99013, + 99023, 99041, 99053, 99079, 99089, 99103, 99109, + 99119, 99131, 99137, 99149, 99173, 99181, 99191, + 99223, 99233, 99241, 99251, 99257, 99277, 99289, + 99317, 99347, 99367, 99377, 99391, 99397, 99409, + 99431, 99439, 99469, 99487, 99497, 99523, 99529, + 99551, 99559, 99571, 99577, 99607, 99623, 99643, + 99661, 99667, 99679, 99689, 99707, 99713, 99719, + 99733, 99761, 99767, 99787, 99793, 99809, 99817, + 99823, 99829, 99839, 99859, 99871, 99877, 99901, + 99907, 99923, 99929, 99961, 99971, 99989, 100003, + 100019, 100043, 100049, 100057, 100069, 100103, 100109, + 100129, 100151, 100169, 100183, 100189, 100207, 100213, + 100237, 100267, 100279, 100291, 100297, 100313, 100333, + 100343, 100357, 100363, 100379, 100391, 100403, 100411, + 100417, 100447, 100459, 100469, 100483, 100493, 100501, + 100511, 100517, 100523, 100537, 100547, 100559, 100591, + 100609, 100621, 100649, 100669, 100693, 100699, 100733, + 100741, 100747, 100769, 100787, 100799, 100811, 100823, + 100829, 100847, 100853, 100907, 100913, 100927, 100937, + 100943, 100957, 100981, 100987, 100999, 101009, 101021, + 101027, 101051, 101063, 101081, 101089, 101107, 101113, + 101119, 101141, 101149, 101159, 101173, 101183, 101197, + 101203, 101209, 101221, 101267, 101273, 101279, 101287, + 101293, 101323, 101333, 101341, 101347, 101359, 101377, + 101383, 101399, 101411, 101419, 101429, 101449, 101467, + 101477, 101483, 101489, 101501, 101513, 101527, 101533, + 101561, 101573, 101581, 101599, 101611, 101627, 101641, + 101653, 101663, 101681, 101693, 101701, 101719, 101737, + 101747, 101771, 101789, 101797, 101807, 101833, 101839, + 101863, 101869, 101879, 101891, 101917, 101929, 101939, + 101957, 101963, 101977, 101987, 101999, 102013, 102019, + 102031, 102043, 102059, 102071, 102077, 102101, 102107, + 102121, 102139, 102149, 102161, 102181, 102191, 102197, + 102203, 102217, 102229, 102241, 102251, 102259, 102293, + 102299, 102317, 102329, 102337, 102359, 102367, 102397, + 102407, 102433, 102451, 102461, 102481, 102497, 102503, + 102523, 102533, 102539, 102547, 102559, 102587, 102593, + 102607, 102643, 102653, 102667, 102673, 102679, 102701, + 102761, 102769, 102793, 102811, 102829, 102841, 102859, + 102871, 102877, 102911, 102929, 102953, 102967, 102983, + 103001, 103007, 103043, 103049, 103067, 103079, 103087, + 103093, 103099, 103123, 103141, 103171, 103177, 103183, + 103217, 103231, 103237, 103289, 103307, 103319, 103333, + 103349, 103357, 103387, 103393, 103399, 103409, 103421, + 103451, 103457, 103471, 103483, 103511, 103529, 103549, + 103561, 103567, 103573, 103583, 103591, 103613, 103619, + 103643, 103651, 103657, 103669, 103681, 103687, 103699, + 103723, 103769, 103787, 103801, 103811, 103837, 103843, + 103867, 103889, 103903, 103913, 103919, 103951, 103963, + 103969, 103979, 103991, 103997, 104003, 104009, 104021, + 104033, 104047, 104053, 104059, 104087, 104107, 104113, + 104119, 104147, 104161, 104173, 104179, 104207, 104231, + 104239, 104281, 104287, 104297, 104309, 104323, 104347, + 104369, 104381, 104393, 104399, 104417, 104459, 104471, + 104479, 104491, 104513, 104527, 104537, 104543, 104549, + 104561, 104579, 104593, 104623, 104639, 104651, 104659, + 104677, 104683, 104693, 104701, 104707, 104717, 104723, + 104729, 104743, 104759, 104773, 104779, 104789, 104801, + 104827, 104849, 104869, 104879, 104891, 104911, 104917, + 104933, 104947, 104953, 104959, 104971, 104987, 104999, + 105019, 105031, 105037, 105071, 105097, 105107, 105137, + 105143, 105167, 105173, 105199, 105211, 105227, 105239, + 105251, 105263, 105269, 105277, 105319, 105331, 105337, + 105359, 105367, 105373, 105379, 105389, 105397, 105407, + 105437, 105449, 105467, 105491, 105499, 105509, 105517, + 105527, 105533, 105541, 105557, 105563, 105601, 105607, + 105613, 105619, 105649, 105667, 105673, 105683, 105691, + 105701, 105727, 105733, 105751, 105761, 105767, 105817, + 105829, 105863, 105871, 105883, 105899, 105907, 105913, + 105929, 105943, 105953, 105967, 105977, 105983, 105997, + 106013, 106019, 106031, 106087, 106103, 106109, 106121, + 106129, 106163, 106181, 106187, 106207, 106213, 106219, + 106243, 106261, 106273, 106279, 106291, 106297, 106303, + 106319, 106331, 106349, 106357, 106363, 106373, 106391, + 106397, 106411, 106417, 106427, 106433, 106441, 106451, + 106487, 106501, 106531, 106537, 106543, 106591, 106619, + 106627, 106637, 106649, 106657, 106663, 106669, 106681, + 106693, 106699, 106721, 106727, 106739, 106747, 106753, + 106759, 106781, 106787, 106801, 106823, 106853, 106859, + 106867, 106877, 106903, 106921, 106937, 106949, 106957, + 106963, 106979, 106993, 107021, 107033, 107053, 107069, + 107077, 107089, 107099, 107119, 107137, 107171, 107183, + 107197, 107209, 107227, 107243, 107251, 107269, 107279, + 107309, 107323, 107339, 107347, 107357, 107377, 107441, + 107449, 107467, 107473, 107507, 107563, 107581, 107599, + 107609, 107621, 107641, 107647, 107671, 107687, 107693, + 107699, 107713, 107719, 107741, 107747, 107761, 107773, + 107791, 107827, 107837, 107843, 107857, 107867, 107873, + 107881, 107897, 107903, 107923, 107941, 107951, 107971, + 107981, 107999, 108007, 108013, 108023, 108037, 108061, + 108079, 108089, 108107, 108127, 108139, 108161, 108179, + 108187, 108193, 108203, 108211, 108217, 108223, 108233, + 108247, 108263, 108271, 108287, 108293, 108301, 108343, + 108359, 108377, 108401, 108413, 108421, 108439, 108457, + 108463, 108497, 108503, 108517, 108529, 108541, 108553, + 108571, 108587, 108631, 108637, 108643, 108649, 108677, + 108707, 108727, 108739, 108751, 108761, 108769, 108791, + 108799, 108821, 108827, 108863, 108869, 108877, 108883, + 108893, 108907, 108917, 108923, 108929, 108943, 108949, + 108959, 108967, 108991, 109001, 109013, 109037, 109049, + 109063, 109073, 109097, 109103, 109111, 109121, 109133, + 109139, 109147, 109159, 109169, 109199, 109211, 109229, + 109253, 109267, 109279, 109297, 109303, 109313, 109321, + 109331, 109357, 109363, 109379, 109387, 109397, 109423, + 109433, 109441, 109451, 109469, 109481, 109507, 109517, + 109537, 109547, 109567, 109579, 109589, 109597, 109609, + 109619, 109639, 109661, 109673, 109717, 109741, 109751, + 109789, 109807, 109819, 109829, 109841, 109847, 109859, + 109873, 109883, 109891, 109897, 109903, 109913, 109919, + 109937, 109943, 109961, 109987, 110017, 110023, 110039, + 110051, 110059, 110069, 110083, 110119, 110129, 110161, + 110183, 110221, 110233, 110251, 110261, 110269, 110281, + 110291, 110311, 110321, 110339, 110359, 110419, 110431, + 110437, 110459, 110477, 110491, 110501, 110527, 110533, + 110543, 110557, 110563, 110569, 110581, 110587, 110597, + 110603, 110609, 110623, 110629, 110641, 110647, 110681, + 110711, 110729, 110749, 110771, 110777, 110807, 110813, + 110819, 110849, 110863, 110879, 110899, 110909, 110917, + 110923, 110933, 110939, 110947, 110969, 110977, 110989, + 111029, 111043, 111049, 111091, 111103, 111109, 111119, + 111127, 111143, 111149, 111187, 111211, 111217, 111227, + 111253, 111263, 111269, 111301, 111317, 111323, 111337, + 111347, 111373, 111409, 111427, 111439, 111467, 111487, + 111493, 111509, 111521, 111533, 111539, 111577, 111593, + 111599, 111611, 111623, 111637, 111653, 111659, 111667, + 111697, 111721, 111731, 111751, 111767, 111773, 111779, + 111791, 111799, 111821, 111827, 111833, 111847, 111857, + 111863, 111869, 111893, 111913, 111919, 111949, 111959, + 111973, 111997, 112019, 112031, 112061, 112067, 112087, + 112097, 112103, 112111, 112121, 112129, 112139, 112153, + 112163, 112181, 112199, 112207, 112213, 112223, 112237, + 112247, 112253, 112261, 112279, 112289, 112297, 112303, + 112327, 112337, 112349, 112361, 112397, 112403, 112429, + 112459, 112481, 112501, 112507, 112543, 112559, 112571, + 112577, 112583, 112589, 112601, 112621, 112643, 112657, + 112663, 112687, 112741, 112757, 112771, 112787, 112799, + 112807, 112831, 112843, 112859, 112877, 112901, 112909, + 112919, 112927, 112939, 112951, 112967, 112979, 112997, + 113011, 113017, 113023, 113039, 113051, 113063, 113081, + 113089, 113111, 113117, 113123, 113131, 113143, 113149, + 113159, 113167, 113173, 113189, 113209, 113227, 113233, + 113279, 113287, 113327, 113341, 113357, 113363, 113371, + 113381, 113417, 113437, 113453, 113467, 113489, 113497, + 113513, 113537, 113557, 113567, 113591, 113621, 113647, + 113657, 113683, 113717, 113723, 113731, 113749, 113759, + 113777, 113783, 113797, 113809, 113819, 113837, 113843, + 113891, 113899, 113909, 113921, 113933, 113947, 113957, + 113963, 113969, 113983, 113989, 114001, 114013, 114031, + 114041, 114067, 114073, 114083, 114089, 114113, 114143, + 114157, 114167, 114193, 114199, 114217, 114229, 114259, + 114269, 114277, 114299, 114311, 114319, 114329, 114343, + 114371, 114377, 114407, 114419, 114451, 114467, 114473, + 114479, 114487, 114493, 114547, 114553, 114571, 114577, + 114593, 114599, 114613, 114641, 114649, 114659, 114671, + 114679, 114689, 114713, 114743, 114749, 114757, 114769, + 114781, 114797, 114809, 114827, 114833, 114847, 114859, + 114883, 114889, 114901, 114913, 114941, 114967, 114973, + 114997, 115013, 115019, 115057, 115067, 115079, 115099, + 115117, 115123, 115133, 115151, 115163, 115183, 115201, + 115211, 115223, 115237, 115249, 115259, 115279, 115301, + 115309, 115319, 115327, 115337, 115343, 115361, 115399, + 115421, 115429, 115459, 115469, 115499, 115513, 115523, + 115547, 115553, 115561, 115571, 115589, 115597, 115603, + 115613, 115631, 115637, 115657, 115663, 115679, 115693, + 115727, 115733, 115741, 115751, 115757, 115763, 115769, + 115777, 115783, 115793, 115807, 115823, 115831, 115837, + 115849, 115859, 115873, 115879, 115891, 115901, 115931, + 115963, 115979, 115987, 116009, 116027, 116041, 116047, + 116089, 116099, 116107, 116113, 116131, 116141, 116159, + 116167, 116177, 116189, 116201, 116239, 116257, 116269, + 116279, 116293, 116329, 116341, 116351, 116359, 116371, + 116381, 116387, 116411, 116423, 116437, 116443, 116461, + 116471, 116483, 116491, 116507, 116531, 116537, 116549, + 116579, 116593, 116639, 116657, 116663, 116681, 116687, + 116707, 116719, 116731, 116741, 116747, 116789, 116797, + 116803, 116819, 116827, 116833, 116849, 116867, 116881, + 116903, 116911, 116923, 116929, 116953, 116959, 116969, + 116981, 116989, 117017, 117023, 117037, 117043, 117053, + 117071, 117101, 117109, 117119, 117127, 117133, 117163, + 117191, 117203, 117209, 117223, 117239, 117251, 117259, + 117269, 117281, 117307, 117319, 117329, 117353, 117361, + 117371, 117389, 117413, 117427, 117437, 117443, 117497, + 117503, 117511, 117517, 117529, 117539, 117563, 117571, + 117577, 117617, 117643, 117659, 117671, 117679, 117701, + 117709, 117721, 117727, 117751, 117757, 117763, 117773, + 117779, 117787, 117797, 117809, 117833, 117839, 117851, + 117877, 117883, 117889, 117899, 117911, 117917, 117937, + 117959, 117973, 117979, 117989, 118033, 118043, 118051, + 118057, 118081, 118093, 118127, 118147, 118163, 118169, + 118189, 118211, 118219, 118247, 118253, 118259, 118273, + 118297, 118343, 118361, 118369, 118387, 118399, 118409, + 118423, 118429, 118453, 118463, 118471, 118493, 118529, + 118543, 118549, 118571, 118583, 118589, 118603, 118619, + 118633, 118661, 118669, 118681, 118687, 118709, 118717, + 118739, 118747, 118757, 118787, 118799, 118819, 118831, + 118843, 118861, 118873, 118891, 118897, 118903, 118913, + 118927, 118967, 118973, 119027, 119033, 119039, 119047, + 119057, 119069, 119083, 119089, 119099, 119107, 119129, + 119159, 119173, 119179, 119191, 119227, 119233, 119243, + 119267, 119291, 119297, 119311, 119321, 119359, 119389, + 119417, 119429, 119447, 119489, 119503, 119513, 119533, + 119549, 119557, 119563, 119569, 119591, 119611, 119617, + 119627, 119633, 119653, 119659, 119671, 119677, 119687, + 119699, 119723, 119737, 119747, 119759, 119771, 119783, + 119797, 119809, 119827, 119839, 119849, 119869, 119881, + 119891, 119921, 119929, 119953, 119963, 119971, 119981, + 119993, 120011, 120017, 120041, 120047, 120067, 120077, + 120091, 120097, 120103, 120121, 120157, 120163, 120181, + 120193, 120199, 120209, 120223, 120233, 120247, 120277, + 120283, 120293, 120299, 120319, 120331, 120349, 120371, + 120383, 120391, 120397, 120413, 120427, 120473, 120503, + 120511, 120539, 120551, 120557, 120563, 120569, 120577, + 120587, 120607, 120619, 120641, 120647, 120661, 120671, + 120677, 120689, 120709, 120721, 120737, 120749, 120763, + 120779, 120811, 120817, 120823, 120829, 120847, 120863, + 120871, 120877, 120889, 120899, 120907, 120917, 120929, + 120937, 120943, 120977, 120997, 121007, 121013, 121019, + 121039, 121061, 121067, 121081, 121123, 121139, 121151, + 121157, 121169, 121181, 121189, 121229, 121259, 121267, + 121283, 121291, 121309, 121321, 121327, 121333, 121343, + 121349, 121357, 121367, 121379, 121403, 121421, 121439, + 121447, 121453, 121469, 121487, 121493, 121501, 121507, + 121523, 121531, 121547, 121553, 121559, 121571, 121577, + 121591, 121607, 121621, 121631, 121637, 121661, 121687, + 121697, 121711, 121721, 121727, 121763, 121787, 121843, + 121853, 121867, 121883, 121889, 121909, 121921, 121931, + 121937, 121949, 121963, 121993, 122011, 122021, 122027, + 122033, 122039, 122051, 122069, 122081, 122099, 122117, + 122131, 122147, 122167, 122173, 122201, 122207, 122219, + 122231, 122251, 122263, 122273, 122279, 122299, 122321, + 122327, 122347, 122363, 122387, 122393, 122399, 122443, + 122449, 122471, 122477, 122489, 122497, 122503, 122509, + 122527, 122533, 122557, 122579, 122597, 122609, 122651, + 122663, 122693, 122701, 122719, 122741, 122753, 122761, + 122777, 122789, 122819, 122827, 122833, 122839, 122849, + 122861, 122867, 122887, 122921, 122929, 122939, 122953, + 122963, 122971, 123001, 123007, 123017, 123031, 123049, + 123059, 123077, 123083, 123091, 123113, 123121, 123127, + 123143, 123169, 123191, 123203, 123209, 123217, 123229, + 123239, 123259, 123269, 123289, 123307, 123323, 123341, + 123373, 123379, 123397, 123407, 123419, 123427, 123433, + 123439, 123449, 123457, 123479, 123491, 123499, 123517, + 123527, 123547, 123553, 123581, 123593, 123601, 123619, + 123631, 123637, 123653, 123661, 123667, 123677, 123701, + 123707, 123719, 123727, 123733, 123757, 123787, 123803, + 123817, 123829, 123853, 123863, 123887, 123911, 123923, + 123931, 123941, 123953, 123973, 123979, 123989, 123997, + 124021, 124067, 124087, 124097, 124121, 124133, 124139, + 124147, 124153, 124171, 124181, 124193, 124199, 124213, + 124231, 124247, 124277, 124291, 124297, 124303, 124309, + 124337, 124343, 124349, 124363, 124427, 124433, 124447, + 124459, 124471, 124477, 124489, 124513, 124529, 124541, + 124561, 124567, 124577, 124601, 124633, 124643, 124669, + 124679, 124693, 124699, 124717, 124739, 124753, 124759, + 124769, 124777, 124783, 124793, 124799, 124819, 124847, + 124853, 124897, 124907, 124919, 124951, 124979, 124987, + 125003, 125017, 125029, 125053, 125063, 125093, 125101, + 125107, 125113, 125119, 125131, 125141, 125149, 125183, + 125197, 125207, 125219, 125231, 125243, 125261, 125269, + 125287, 125299, 125311, 125329, 125339, 125353, 125371, + 125383, 125399, 125407, 125423, 125429, 125441, 125453, + 125471, 125497, 125507, 125527, 125539, 125551, 125591, + 125597, 125617, 125627, 125639, 125651, 125659, 125669, + 125683, 125693, 125707, 125717, 125731, 125737, 125743, + 125753, 125777, 125789, 125803, 125813, 125821, 125863, + 125887, 125897, 125921, 125927, 125933, 125941, 125959, + 126001, 126011, 126019, 126031, 126037, 126047, 126067, + 126079, 126097, 126107, 126127, 126143, 126151, 126173, + 126199, 126211, 126223, 126229, 126241, 126257, 126271, + 126307, 126317, 126323, 126337, 126349, 126359, 126397, + 126421, 126433, 126443, 126457, 126473, 126481, 126487, + 126493, 126499, 126517, 126541, 126547, 126583, 126601, + 126611, 126631, 126641, 126653, 126683, 126691, 126703, + 126713, 126719, 126733, 126739, 126751, 126757, 126781, + 126823, 126839, 126851, 126857, 126913, 126923, 126943, + 126949, 126961, 126967, 126989, 127031, 127037, 127051, + 127079, 127103, 127123, 127133, 127139, 127157, 127163, + 127189, 127207, 127217, 127241, 127247, 127261, 127271, + 127277, 127289, 127297, 127321, 127331, 127343, 127363, + 127373, 127399, 127423, 127447, 127453, 127481, 127487, + 127493, 127507, 127529, 127541, 127549, 127579, 127591, + 127597, 127607, 127637, 127643, 127649, 127657, 127663, + 127669, 127679, 127691, 127703, 127709, 127717, 127727, + 127733, 127739, 127747, 127763, 127781, 127807, 127817, + 127837, 127843, 127849, 127859, 127867, 127873, 127913, + 127921, 127931, 127951, 127973, 127979, 127997, 128021, + 128033, 128047, 128053, 128099, 128111, 128119, 128147, + 128153, 128159, 128173, 128189, 128201, 128213, 128221, + 128237, 128257, 128273, 128287, 128311, 128321, 128327, + 128339, 128347, 128377, 128389, 128399, 128411, 128431, + 128437, 128449, 128461, 128467, 128473, 128483, 128489, + 128509, 128519, 128549, 128563, 128591, 128599, 128621, + 128629, 128657, 128663, 128669, 128677, 128683, 128693, + 128717, 128747, 128761, 128767, 128813, 128819, 128831, + 128837, 128857, 128873, 128879, 128903, 128923, 128939, + 128951, 128959, 128969, 128981, 128987, 128993, 129001, + 129011, 129023, 129037, 129049, 129061, 129083, 129089, + 129097, 129113, 129119, 129127, 129169, 129187, 129193, + 129209, 129221, 129229, 129263, 129277, 129287, 129293, + 129313, 129341, 129347, 129361, 129379, 129401, 129419, + 129439, 129449, 129457, 129469, 129491, 129497, 129509, + 129517, 129527, 129533, 129539, 129553, 129581, 129587, + 129593, 129607, 129629, 129641, 129671, 129707, 129719, + 129733, 129749, 129757, 129763, 129769, 129793, 129803, + 129841, 129853, 129887, 129893, 129901, 129917, 129937, + 129953, 129959, 129967, 130003, 130021, 130027, 130043, + 130051, 130057, 130069, 130079, 130087, 130099, 130121, + 130127, 130147, 130171, 130183, 130199, 130211, 130223, + 130241, 130253, 130259, 130267, 130279, 130303, 130337, + 130343, 130349, 130363, 130369, 130379, 130399, 130409, + 130423, 130439, 130447, 130457, 130469, 130477, 130483, + 130489, 130513, 130523, 130531, 130547, 130553, 130579, + 130589, 130619, 130631, 130639, 130649, 130657, 130681, + 130687, 130693, 130699, 130729, 130769, 130783, 130807, + 130817, 130829, 130841, 130859, 130873, 130927, 130957, + 130969, 130981, 130987, 131009, 131023, 131041, 131059, + 131071, 131101, 262187, 393271, 524347, 655439, 786547, + 917629, 1048703, 1179779, 1310851, 1441931, 1573009, 1704103, + 1835177, 1966259, 2097349, 2228423, 2359499, 2490583, 2621669, + 2752787, 2883887, 3014981, 3146069, 3277181, 3408259, 3539359, + 3670463, 3801541, 3932633, 4063711, 4194793, 4325873, 4456951, + 4588099, 4719181, 4850273, 4981349, 5112421, 5243501, 5374573, + 5505653, 5636731, 5767841, 5898931, 6030023, 6161107, 6292201, + 6423281, 6554357, 6685447, 6816527, 6947609, 7078693, 7209779, + 7340867, 7471939, 7603027, 7734119, 7865257, 7996333, 8127409, + 8258489, 8389567, 8520647, 8651723, 8782817, 8913889, 9044977, + 9176053, 9307127, 9438203, 9569299, 9700381, 9831461, 9962567, + 10093639, 10224743, 10355843, 10486921, 10618007, 10749107, 10880201, + 11011283, 11142359, 11273443, 11404529, 11535607, 11666689, 11797771, + 11928853, 12059939, 12191021, 12322109, 12453191, 12584263, 12715379, + 12846473, 12977597, 13108681, 13239757, 13370831, 13501919, 13633001, + 13764083, 13895159, 14026267, 14157371, 14288447, 14419523, 14550611, + 14681701, 14812781, 14943857, 15074929, 15206021, 15337141, 15468227, + 15599329, 15730417, 15861499, 15992573, 16123649, 16254743, 16385819, + 16516919, 16647991, 16779151, 16910227, 17041301, 17172377, 17303453, + 17434541, 17565649, 17696741, 17827847, 17958931, 18090031, 18221123, + 18352199, 18483271, 18614347, 18745429, 18876503, 19007579, 19138661, + 19269739, 19400819, 19531903, 19663003, 19794083, 19925161, 20056247, + 20187319, 20318399, 20449483, 20580563, 20711641, 20842721, 20973793, + 21104879, 21235979, 21367061, 21498133, 21629207, 21760303, 21891391, + 22022467, 22153543, 22284623, 22415699, 22546789, 22677869, 22808941, + 22940053, 23071129, 23202203, 23333279, 23464367, 23595449, 23726539, + 23857621, 23988707, 24119779, 24250861, 24381937, 24513017, 24644107, + 24775187, 24906281, 25037357, 25168439, 25299551, 25430641, 25561729, + 25692803, 25823881, 25954961, 26086043, 26217119, 26348191, 26479267, + 26610347, 26741431, 26872511, 27003583, 27134659, 27265751, 27396833, + 27527939, 27659033, 27790127, 27921217, 28052291, 28183369, 28314457, + 28445533, 28576619, 28707737, 28838809, 28969891, 29100979, 29232143, + 29363221, 29494313, 29625391, 29756483, 29887573, 30018647, 30149723, + 30280801, 30411893, 30542971, 30674047, 30805123, 30936197, 31067269, + 31198367, 31329439, 31460537, 31591649, 31722721, 31853797, 31984891, + 32115971, 32247049, 32378131, 32509223, 32640301, 32771443, 32902517, + 33033593, 33164683, 33295763, 33426851, 33557941, 33689041, 33820141, + 33951221, 34082303, 34213391, 34344463, 34475537, 34606609, 34737721, + 34868807, 34999879, 35130971, 35262047, 35393123, 35524207, 35655283, + 35786357, 35917487, 36048599, 36179699, 36310823, 36441919, 36572999, + 36704099, 36835187, 36966277, 37097353, 37228447, 37359547, 37490623, + 37621733, 37752851, 37883941, 38015039, 38146127, 38277241, 38408317, + 38539399, 38670473, 38801569, 38932651, 39063727, 39194833, 39325933, + 39457009, 39588091, 39719221, 39850303, 39981397, 40112491, 40243579, + 40374671, 40505789, 40636861, 40767953, 40899031, 41030111, 41161187, + 41292287, 41423399, 41554493, 41685577, 41816653, 41947727, 42078809, + 42209897, 42340979, 42472061, 42603161, 42734267, 42865357, 42996463, + 43127543, 43258619, 43389691, 43520777, 43651859, 43782967, 43914041, + 44045119, 44176201, 44307281, 44438363, 44569453, 44700527, 44831653, + 44962727, 45093833, 45225013, 45356089, 45487187, 45618263, 45749387, + 45880463, 46011547, 46142639, 46273727, 46404811, 46535887, 46666973, + 46798079, 46929161, 47060261, 47191343, 47322419, 47453491, 47584601, + 47715673, 47846759, 47977841, 48108937, 48240011, 48371107, 48502187, + 48633259, 48764351, 48895453, 49026533, 49157611, 49288703, 49419781, + 49550861, 49681943, 49813019, 49944121, 50075213, 50206333, 50337407, + 50468491, 50599567, 50730643, 50861719, 50992813, 51123887, 51254969, + 51386059, 51517159, 51648239, 51779311, 51910403, 52041491, 52172563, + 52303663, 52434757, 52565831, 52696921, 52828003, 52959103, 53090207, + 53221283, 53352367, 53483483, 53614559, 53745631, 53876731, 54007819, + 54138899, 54269977, 54401051, 54532129, 54663239, 54794317, 54925411, + 55056493, 55187567, 55318639, 55449721, 55580807, 55711879, 55843013, + 55974097, 56105183, 56236259, 56367373, 56498447, 56629537, 56760643, + 56891759, 57022831, 57153907, 57284989, 57416063, 57547151, 57678307, + 57809387, 57940459, 58071551, 58202647, 58333733, 58464817, 58595897, + 58726979, 58858069, 58989149, 59120221, 59251303, 59382397, 59513471, + 59644567, 59775647, 59906731, 60037823, 60168947, 60300029, 60431167, + 60562247, 60693341, 60824431, 60955513, 61086601, 61217713, 61348787, + 61479863, 61610971, 61742047, 61873157, 62004263, 62135347, 62266433, + 62397523, 62528597, 62659669, 62790769, 62921869, 63052967, 63184061, + 63315137, 63446221, 63577301, 63708391, 63839519, 63970601, 64101673, + 64232747, 64363829, 64494907, 64625983, 64757057, 64888139, 65019211, + 65150287, 65281369, 65412443, 65543603, 65674691, 65805767, 65936851, + 66067943, 66199019, 66330109, 66461189, 66592261, 66723337, 66854419, + 66985493, 67116601, 67247717, 67378793, 67509877, 67640957, 67772039, + 67903111, 68034191, 68165263, 68296337, 68427409, 68558489, 68689561, + 68820701, 68951789, 69082873, 69213959, 69345071, 69476189, 69607273, + 69738373, 69869447, 70000549, 70131629, 70262701, 70393789, 70524869, + 70655947, 70787039, 70918121, 71049229, 71180303, 71311381, 71442461, + 71573563, 71704637, 71835719, 71966819, 72097891, 72228973, 72360053, + 72491143, 72622219, 72753323, 72884407, 73015531, 73146643, 73277741, + 73408859, 73539959, 73671067, 73802149, 73933231, 74064307, 74195383, + 74326463, 74457563, 74588653, 74719727, 74850803, 74981891, 75112979, + 75244079, 75375191, 75506269, 75637357, 75768457, 75899533, 76030607, + 76161719, 76292803, 76423883, 76554977, 76686059, 76817141, 76948217, + 77079319, 77210411, 77341487, 77472589, 77603663, 77734739, 77865811, + 77996903, 78128003, 78259079, 78390203, 78521293, 78652393, 78783473, + 78914557, 79045651, 79176731, 79307803, 79438907, 79569991, 79701073, + 79832147, 79963283, 80094373, 80225459, 80356531, 80487611, 80618683, + 80749763, 80880851, 81011929, 81143047, 81274121, 81405193, 81536269, + 81667343, 81798421, 81929509, 82060591, 82191671, 82322749, 82453823, + 82584913, 82715993, 82847071, 82978153, 83109241, 83240317, 83371427, + 83502509, 83633597, 83764691, 83895769, 84026851, 84157949, 84289021, + 84420101, 84551209, 84682337, 84813413, 84944501, 85075579, 85206661, + 85337737, 85468813, 85599911, 85730999, 85862081, 85993153, 86124277, + 86255353, 86386451, 86517589, 86648669, 86779753, 86910827, 87041909, + 87173029, 87304103, 87435193, 87566317, 87697403, 87828479, 87959551, + 88090627, 88221713, 88352801, 88483877, 88614949, 88746037, 88877119, + 89008207, 89139299, 89270371, 89401451, 89532533, 89663611, 89794687, + 89925811, 90056887, 90187961, 90319039, 90450119, 90581201, 90712273, + 90843349, 90974459, 91105561, 91236643, 91367723, 91498837, 91629911, + 91760983, 91892063, 92023153, 92154241, 92285321, 92416397, 92547529, + 92678603, 92809679, 92940779, 93071887, 93202979, 93334051, 93465131, + 93596219, 93727301, 93858383, 93989473, 94120553, 94251629, 94382719, + 94513807, 94644919, 94776023, 94907117, 95038193, 95169289, 95300363, + 95431451, 95562529, 95693603, 95824679, 95955787, 96086867, 96217981, + 96349067, 96480179, 96611297, 96742379, 96873451, 97004527, 97135609, + 97266683, 97397759, 97528841, 97659929, 97791017, 97922089, 98053171, + 98184253, 98315339, 98446433, 98577539, 98708627, 98839721, 98970793, + 99101921, 99233003, 99364081, 99495247, 99626321, 99757403, 99888487, + 100019567, 100150649, 100281721, 100412797, 100543873, 100674961, 100806047, + 100937119, 101068237, 101199331, 101330441, 101461519, 101592593, 101723669, + 101854843, 101985943, 102117031, 102248117, 102379213, 102510293, 102641381, + 102772469, 102903553, 103034627, 103165747, 103296821, 103427917, 103558991, + 103690091, 103821169, 103952279, 104083391, 104214479, 104345551, 104476637, + 104607709, 104738789, 104869879, 105000953, 105132031, 105263107, 105394183, + 105525281, 105656357, 105787453, 105918529, 106049639, 106180733, 106311817, + 106442893, 106573979, 106705061, 106836151, 106967233, 107098309, 107229433, + 107360537, 107491609, 107622763, 107753839, 107884913, 108016001, 108147089, + 108278173, 108409267, 108540349, 108671441, 108802517, 108933613, 109064687, + 109195763, 109326859, 109457947, 109589027, 109720099, 109851193, 109982269, + 110113349, 110244437, 110375513, 110506609, 110637689, 110768771, 110899843, + 111030923, 111162011, 111293087, 111424193, 111555281, 111686357, 111817471, + 111948581, 112079729, 112210811, 112341883, 112472957, 112604047, 112735157, + 112866263, 112997347, 113128441, 113259533, 113390623, 113521697, 113652787, + 113783861, 113914973, 114046073, 114177149, 114308251, 114439343, 114570419, + 114701491, 114832567, 114963649, 115094729, 115225819, 115356907, 115487993, + 115619071, 115750177, 115881287, 116012359, 116143459, 116274559, 116405657, + 116536733, 116667833, 116798933, 116930039, 117061141, 117192217, 117323321, + 117454433, 117585539, 117716633, 117847727, 117978803, 118109903, 118240987, + 118372063, 118503157, 118634239, 118765313, 118896403, 119027543, 119158619, + 119289721, 119420797, 119551931, 119683073, 119814151, 119945239, 120076337, + 120207463, 120338549, 120469649, 120600751, 120731837, 120862919, 120994001, + 121125073, 121256153, 121387267, 121518343, 121649441, 121780517, 121911593, + 122042671, 122173787, 122304859, 122435933, 122567009, 122698097, 122829191, + 122960273, 123091357, 123222433, 123353519, 123484597, 123615671, 123746743, + 123877823, 124008919, 124139999, 124271083, 124402171, 124533251, 124664327, + 124795403, 124926479, 125057561, 125188639, 125319713, 125450791, 125581867, + 125712947, 125844031, 125975107, 126106193, 126237289, 126368381, 126499487, + 126630583, 126761681, 126892783, 127023859, 127154939, 127286039, 127417133, + 127548227, 127679303, 127810393, 127941467, 128072551, 128203627, 128334709, + 128465791, 128596879, 128727967, 128859053, 128990129, 129121211, 129252287, + 129383363, 129514439, 129645533, 129776627, 129907709, 130038781, 130169863, + 130300943, 130432033, 130563131, 130694219, 130825333, 130956407, 131087483, + 131218561, 131349637, 131480731, 131611811, 131742893, 131873971, 132005047, + 132136157, 132267229, 132398317, 132529409, 132660509, 132791623, 132922709, + 133053799, 133184879, 133315957, 133447031, 133578119, 133709201, 133840279, + 133971353, 134102429, 134233501, 134364611, 134495693, 134626781, 134757877, + 134888953, 135020047, 135151153, 135282227, 135413339, 135544427, 135675509, + 135806597, 135937709, 136068781, 136199873, 136330949, 136462033, 136593131, + 136724207, 136855291, 136986383, 137117459, 137248543, 137379617, 137510701, + 137641781, 137772863, 137903959, 138035071, 138166207, 138297283, 138428369, + 138559441, 138690521, 138821593, 138952687, 139083787, 139214861, 139345939, + 139477033, 139608109, 139739183, 139870273, 140001349, 140132453, 140263531, + 140394623, 140525711, 140656783, 140787859, 140918957, 141050051, 141181123, + 141312203, 141443299, 141574373, 141705479, 141836551, 141967643, 142098721, + 142229807, 142360879, 142491967, 142623067, 142754149, 142885261, 143016343, + 143147437, 143278511, 143409593, 143540669, 143671751, 143802823, 143933921, + 144064993, 144196069, 144327151, 144458269, 144589387, 144720491, 144851579, + 144982679, 145113779, 145244851, 145375933, 145507027, 145638107, 145769179, + 145900283, 146031371, 146162473, 146293601, 146424679, 146555777, 146686853, + 146817941, 146949031, 147080111, 147211189, 147342269, 147473341, 147604427, + 147735521, 147866611, 147997697, 148128779, 148259933, 148391059, 148522139, + 148653221, 148784327, 148915399, 149046473, 149177573, 149308651, 149439733, + 149570807, 149701879, 149832959, 149964043, 150095123, 150226207, 150357287, + 150488381, 150619453, 150750539, 150881659, 151012747, 151143829, 151274923, + 151406083, 151537187, 151668269, 151799353, 151930451, 152061523, 152192597, + 152323669, 152454751, 152585833, 152716909, 152848013, 152979103, 153110179, + 153241259, 153372337, 153503411, 153634487, 153765559, 153896651, 154027751, + 154158841, 154289917, 154421023, 154552109, 154683209, 154814281, 154945363, + 155076469, 155207543, 155338649, 155469733, 155600807, 155731889, 155862977, + 155994071, 156125143, 156256223, 156387299, 156518377, 156649457, 156780529, + 156911603, 157042681, 157173763, 157304839, 157435913, 157566989, 157698077, + 157829171, 157960259, 158091337, 158222411, 158353483, 158484569, 158615651, + 158746727, 158877799, 159008879, 159139951, 159271033, 159402107, 159533183, + 159664279, 159795367, 159926441, 160057519, 160188607, 160319689, 160450781, + 160581931, 160713023, 160844111, 160975189, 161106277, 161237357, 161368439, + 161499517, 161630627, 161761729, 161892847, 162023921, 162155087, 162286177, + 162417251, 162548341, 162679421, 162810497, 162941573, 163072711, 163203797, + 163334893, 163465979, 163597051, 163728167, 163859263, 163990357, 164121437, + 164252513, 164383601, 164514677, 164645749, 164776847, 164907943, 165039037, + 165170129, 165301333, 165432409, 165563483, 165694559, 165825631, 165956723, + 166087819, 166218901, 166349983, 166481057, 166612169, 166743251, 166874339, + 167005417, 167136499, 167267587, 167398681, 167529757, 167660833, 167791913, + 167923031, 168054113, 168185189, 168316283, 168447379, 168578471, 168709543, + 168840643, 168971717, 169102811, 169233899, 169364983, 169496057, 169627187, + 169758283, 169889359, 170020447, 170151547, 170282633, 170413757, 170544841, + 170675929, 170807003, 170938081, 171069161, 171200233, 171331337, 171462427, + 171593507, 171724589, 171855689, 171986783, 172117879, 172248961, 172380053, + 172511137, 172642219, 172773301, 172904387, 173035481, 173166557, 173297647, + 173428721, 173559797, 173690927, 173822029, 173953123, 174084221, 174215297, + 174346369, 174477451, 174608543, 174739627, 174870719, 175001803, 175132883, + 175263973, 175395053, 175526149, 175657249, 175788329, 175919411, 176050493, + 176181617, 176312701, 176443777, 176574859, 176705951, 176837029, 176968153, + 177099253, 177230351, 177361439, 177492551, 177623627, 177754711, 177885793, + 178016887, 178147967, 178279093, 178410173, 178541263, 178672369, 178803451, + 178934527, 179065609, 179196701, 179327783, 179458859, 179589937, 179721013, + 179852087, 179983169, 180114257, 180245371, 180376453, 180507533, 180638639, + 180769717, 180900793, 181031899, 181162987, 181294097, 181425187, 181556261, + 181687333, 181818409, 181949489, 182080567, 182211641, 182342717, 182473799, + 182604883, 182735983, 182867059, 182998147, 183129227, 183260299, 183391421, + 183522499, 183653621, 183784693, 183915779, 184046867, 184177943, 184309033, + 184440133, 184571213, 184702291, 184833409, 184964503, 185095577, 185226653, + 185357743, 185488847, 185619979, 185751073, 185882161, 186013273, 186144353, + 186275431, 186406531, 186537623, 186668707, 186799799, 186930907, 187062019, + 187193099, 187324171, 187455337, 187586417, 187717499, 187848581, 187979657, + 188110751, 188241847, 188372959, 188504053, 188635133, 188766251, 188897333, + 189028417, 189159511, 189290587, 189421669, 189552743, 189683843, 189814951, + 189946033, 190077109, 190208203, 190339277, 190470361, 190601459, 190732547, + 190863623, 190994723, 191125799, 191256893, 191387971, 191519047, 191650133, + 191781209, 191912317, 192043403, 192174517, 192305591, 192436703, 192567821, + 192698917, 192829991, 192961063, 193092139, 193223221, 193354303, 193485403, + 193616539, 193747627, 193878703, 194009791, 194140873, 194271949, 194403031, + 194534113, 194665187, 194796299, 194927399, 195058489, 195189571, 195320647, + 195451721, 195582797, 195713873, 195844967, 195976043, 196107161, 196238233, + 196369319, 196500407, 196631509, 196762591, 196893703, 197024791, 197155873, + 197286959, 197418047, 197549119, 197680201, 197811277, 197942351, 198073427, + 198204511, 198335597, 198466673, 198597769, 198728857, 198859943, 198991019, + 199122137, 199253237, 199384321, 199515397, 199646519, 199777601, 199908691, + 200039789, 200170889, 200301961, 200433059, 200564149, 200695237, 200826337, + 200957411, 201088487, 201219563, 201350641, 201481717, 201612791, 201743909, + 201875027, 202006117, 202137193, 202268291, 202399363, 202530451, 202661549, + 202792637, 202923731, 203054807, 203185889, 203316977, 203448053, 203579171, + 203710259, 203841343, 203972459, 204103553, 204234647, 204365719, 204496849, + 204627947, 204759019, 204890099, 205021171, 205152247, 205283321, 205414409, + 205545493, 205676609, 205807687, 205938779, 206069861, 206200937, 206332031, + 206463107, 206594237, 206725319, 206856409, 206987489, 207118589, 207249667, + 207380783, 207511867, 207642959, 207774031, 207905143, 208036243, 208167317, + 208298411, 208429489, 208560571, 208691647, 208822729, 208953841, 209084929, + 209216041, 209347141, 209478221, 209609293, 209740393, 209871469, 210002567, + 210133643, 210264739, 210395819, 210526903, 210657977, 210789067, 210920167, + 211051333, 211182407, 211313507, 211444609, 211575691, 211706767, 211837841, + 211968931, 212100017, 212231119, 212362201, 212493277, 212624371, 212755481, + 212886559, 213017641, 213148717, 213279797, 213410917, 213541997, 213673079, + 213804161, 213935261, 214066339, 214197419, 214328509, 214459603, 214590797, + 214721873, 214852961, 214984103, 215115217, 215246293, 215377399, 215508479, + 215639551, 215770637, 215901733, 216032819, 216163897, 216294977, 216426079, + 216557161, 216688247, 216819329, 216950423, 217081537, 217212613, 217343689, + 217474769, 217605847, 217736933, 217868023, 217999139, 218130233, 218261321, + 218392393, 218523469, 218654549, 218785649, 218916721, 219047797, 219178871, + 219309949, 219441029, 219572117, 219703193, 219834269, 219965359, 220096451, + 220227533, 220358623, 220489721, 220620793, 220751887, 220882969, 221014049, + 221145137, 221276227, 221407309, 221538391, 221669473, 221800571, 221931649, + 222062749, 222193831, 222324911, 222455983, 222587063, 222718157, 222849239, + 222980323, 223111403, 223242517, 223373593, 223504681, 223635793, 223766887, + 223897969, 224029049, 224160127, 224291233, 224422307, 224553389, 224684477, + 224815553, 224946637, 225077717, 225208793, 225339911, 225471061, 225602149, + 225733231, 225864371, 225995453, 226126531, 226257613, 226388693, 226519861, + 226650961, 226782037, 226913111, 227044189, 227175271, 227306363, 227437447, + 227568569, 227699651, 227830741, 227961821, 228092903, 228223979, 228355051, + 228486149, 228617227, 228748309, 228879383, 229010473, 229141567, 229272649, + 229403723, 229534813, 229665889, 229796971, 229928047, 230059169, 230190269, + 230321347, 230452441, 230583517, 230714591, 230845709, 230976791, 231107867, + 231238963, 231370039, 231501163, 231632237, 231763309, 231894391, 232025471, + 232156543, 232287641, 232418737, 232549859, 232680941, 232812017, 232943093, + 233074169, 233205299, 233336387, 233467523, 233598611, 233729687, 233860787, + 233991871, 234122947, 234254023, 234385097, 234516169, 234647263, 234778337, + 234909421, 235040501, 235171583, 235302659, 235433741, 235564837, 235695937, + 235827017, 235958089, 236089163, 236220239, 236351321, 236482409, 236613491, + 236744569, 236875687, 237006761, 237137833, 237268937, 237400013, 237531113, + 237662237, 237793313, 237924409, 238055483, 238186561, 238317643, 238448729, + 238579801, 238710929, 238842001, 238973083, 239104157, 239235233, 239366321, + 239497393, 239628491, 239759587, 239890687, 240021773, 240152909, 240284003, + 240415099, 240546179, 240677251, 240808333, 240939427, 241070507, 241201591, + 241332701, 241463809, 241594883, 241725959, 241857041, 241988113, 242119201, + 242250277, 242381357, 242512481, 242643581, 242774659, 242905759, 243036841, + 243167927, 243299011, 243430129, 243561223, 243692303, 243823379, 243954499, + 244085573, 244216649, 244347739, 244478827, 244609903, 244740989, 244872073, + 245003147, 245134223, 245265299, 245396401, 245527487, 245658559, 245789633, + 245920709, 246051787, 246182863, 246313939, 246445013, 246576101, 246707189, + 246838261, 246969337, 247100429, 247231529, 247362611, 247493689, 247624763, + 247755881, 247886953, 248018033, 248149129, 248280203, 248411279, 248542361, + 248673443, 248804531, 248935613, 249066689, 249197803, 249328951, 249460037, + 249591157, 249722237, 249853321, 249984407, 250115497, 250246573, 250377667, + 250508743, 250639817, 250770901, 250902023, 251033099, 251164183, 251295271, + 251426347, 251557421, 251688509, 251819609, 251950687, 252081773, 252212879, + 252343951, 252475031, 252606103, 252737267, 252868351, 252999427, 253130513, + 253261637, 253392731, 253523807, 253654931, 253786003, 253917143, 254048219, + 254179297, 254310409, 254441491, 254572601, 254703697, 254834791, 254965873, + 255096971, 255228073, 255359161, 255490241, 255621329, 255752411, 255883513, + 256014613, 256145689, 256276789, 256407919, 256539001, 256670077, 256801199, + 256932289, 257063371, 257194451, 257325529, 257456603, 257587679, 257718763, + 257849843, 257980927, 258112031, 258243137, 258374213, 258505297, 258636377, + 258767471, 258898543, 259029649, 259160729, 259291861, 259422953, 259554037, + 259685147, 259816231, 259947407, 260078521, 260209597, 260340671, 260471747, + 260602871, 260733971, 260865043, 260996167, 261127249, 261258391, 261389507, + 261520607, 261651757, 261782831, 261913919, 262045001, 262176077, 262307153, + 262438229, 262569317, 262700393, 262831477, 262962559, 263093641, 263224721, + 263355793, 263486911, 263618053, 263749141, 263880217, 264011311, 264142387, + 264273461, 264404603, 264535717, 264666793, 264797867, 264928957, 265060031, + 265191103, 265322207, 265453289, 265584373, 265715449, 265846541, 265977641, + 266108723, 266239849, 266370953, 266502043, 266633141, 266764229, 266895311, + 267026387, 267157463, 267288547, 267419629, 267550711, 267681787, 267812887, + 267943967, 268075061, 268206143, 268337219, 268468331, 268599431, 268730513, + 268861591, 268992667, 269123747, 269254837, 269385931, 269517029, 269648107, + 269779187, 269910283, 270041363, 270172447, 270303581, 270434653, 270565739, + 270696823, 270827899, 270958973, 271090049, 271221127, 271352203, 271483313, + 271614397, 271745477, 271876589, 272007661, 272138747, 272269831, 272400917, + 272532011, 272663113, 272794217, 272925299, 273056387, 273187483, 273318557, + 273449711, 273580787, 273711869, 273842941, 273974033, 274105121, 274236217, + 274367311, 274498387, 274629469, 274760593, 274891691, 275022791, 275153873, + 275284949, 275416027, 275547121, 275678197, 275809271, 275940347, 276071429, + 276202513, 276333611, 276464701, 276595793, 276726871, 276857947, 276989051, + 277120127, 277251203, 277382279, 277513351, 277644427, 277775503, 277906589, + 278037673, 278168749, 278299837, 278430931, 278562007, 278693141, 278824237, + 278955317, 279086417, 279217517, 279348599, 279479689, 279610769, 279741853, + 279872933, 280004009, 280135109, 280266209, 280397287, 280528361, 280659497, + 280790593, 280921673, 281052757, 281183839, 281314921, 281446001, 281577083, + 281708213, 281839303, 281970379, 282101471, 282232549, 282363637, 282494711, + 282625789, 282756889, 282888029, 283019137, 283150237, 283281311, 283412387, + 283543487, 283674577, 283805653, 283936753, 284067829, 284198909, 284329999, + 284461081, 284592157, 284723273, 284854351, 284985431, 285116543, 285247639, + 285378713, 285509803, 285640877, 285771961, 285903047, 286034137, 286165237, + 286296349, 286427437, 286558543, 286689617, 286820717, 286951811, 287082883, + 287213959, 287345053, 287476129, 287607211, 287738291, 287869367, 288000467, + 288131539, 288262621, 288393701, 288524773, 288655853, 288786929, 288918001, + 289049081, 289180153, 289311229, 289442303, 289573391, 289704479, 289835551, + 289966639, 290097763, 290228843, 290359921, 290490997, 290622077, 290753173, + 290884301, 291015379, 291146461, 291277549, 291408641, 291539723, 291670801, + 291801877, 291932987, 292064077, 292195153, 292326259, 292457381, 292588459, + 292719563, 292850693, 292981771, 293112887, 293244023, 293375119, 293506193, + 293637287, 293768383, 293899471, 294030547, 294161633, 294292723, 294423821, + 294554893, 294685967, 294817057, 294948151, 295079227, 295210319, 295341407, + 295472519, 295603603, 295734707, 295865821, 295996903, 296128003, 296259079, + 296390197, 296521271, 296652359, 296783441, 296914517, 297045643, 297176729, + 297307807, 297438899, 297569971, 297701111, 297832207, 297963283, 298094359, + 298225451, 298356559, 298487659, 298618739, 298749811, 298880899, 299012017, + 299143133, 299274223, 299405303, 299536381, 299667491, 299798593, 299929709, + 300060793, 300191891, 300323021, 300454103, 300585193, 300716267, 300847357, + 300978479, 301109551, 301240633, 301371731, 301502813, 301633903, 301765021, + 301896103, 302027177, 302158249, 302289329, 302420449, 302551547, 302682631, + 302813711, 302944783, 303075901, 303206983, 303338071, 303469151, 303600247, + 303731357, 303862451, 303993563, 304124657, 304255801, 304386881, 304517963, + 304649039, 304780123, 304911199, 305042281, 305173399, 305304487, 305435573, + 305566673, 305697767, 305828843, 305959943, 306091031, 306222149, 306353233, + 306484327, 306615409, 306746501, 306877573, 307008649, 307139737, 307270841, + 307401937, 307533029, 307664101, 307795219, 307926313, 308057413, 308188511, + 308319607, 308450717, 308581817, 308712889, 308843989, 308975063, 309106151, + 309237263, 309368369, 309499441, 309630521, 309761593, 309892691, 310023767, + 310154891, 310285967, 310417049, 310548127, 310679219, 310810301, 310941391, + 311072479, 311203561, 311334637, 311465723, 311596811, 311727887, 311859007, + 311990093, 312121217, 312252299, 312383399, 312514481, 312645559, 312776647, + 312907747, 313038853, 313169933, 313301011, 313432099, 313563221, 313694317, + 313825397, 313956469, 314087569, 314218643, 314349727, 314480813, 314611889, + 314742983, 314874073, 315005191, 315136267, 315267341, 315398431, 315529507, + 315660581, 315791653, 315922741, 316053821, 316184917, 316316017, 316447091, + 316578193, 316709317, 316840393, 316971469, 317102549, 317233669, 317364779, + 317495863, 317626979, 317758061, 317889139, 318020221, 318151331, 318282407, + 318413483, 318544571, 318675647, 318806737, 318937823, 319068899, 319200001, + 319331099, 319462177, 319593259, 319724351, 319855429, 319986547, 320117621, + 320248717, 320379793, 320510873, 320641957, 320773039, 320904137, 321035213, + 321166289, 321297371, 321428447, 321559529, 321690623, 321821699, 321952789, + 322083871, 322214951, 322346047, 322477121, 322608193, 322739267, 322870381, + 323001461, 323132539, 323263621, 323394707, 323525791, 323656867, 323787983, + 323919059, 324050143, 324181261, 324312371, 324443447, 324574519, 324705629, + 324836719, 324967831, 325098919, 325230023, 325361107, 325492199, 325623299, + 325754383, 325885471, 326016569, 326147641, 326278721, 326409803, 326540881, + 326671999, 326803091, 326934169, 327065243, 327196327, 327327431, 327458507, + 327589589, 327720661, 327851779, 327982859, 328113931, 328245017, 328376099, + 328507181, 328638253, 328769339, 328900417, 329031497, 329162569, 329293649, + 329424721, 329555833, 329686913, 329817989, 329949127, 330080209, 330211283, + 330342359, 330473443, 330604531, 330735611, 330866687, 330997763, 331128851, + 331259923, 331391051, 331522133, 331653209, 331784309, 331915393, 332046479, + 332177561, 332308637, 332439721, 332570857, 332701933, 332833043, 332964127, + 333095207, 333226297, 333357379, 333488501, 333619589, 333750667, 333881773, + 334012867, 334143967, 334275041, 334406147, 334537223, 334668311, 334799401, + 334930489, 335061607, 335192687, 335323783, 335454859, 335585951, 335717027, + 335848099, 335979247, 336110347, 336241421, 336372527, 336503611, 336634699, + 336765791, 336896869, 337027961, 337159051, 337290131, 337421221, 337552297, + 337683377, 337814461, 337945561, 338076643, 338207717, 338338801, 338469913, + 338600993, 338732081, 338863169, 338994281, 339125359, 339256439, 339387511, + 339518587, 339649663, 339780757, 339911833, 340042919, 340174001, 340305083, + 340436171, 340567321, 340698419, 340829497, 340960573, 341091691, 341222789, + 341353919, 341485007, 341616089, 341747173, 341878253, 342009341, 342140417, + 342271507, 342402581, 342533683, 342664759, 342795839, 342926921, 343057993, + 343189087, 343320163, 343451237, 343582319, 343713413, 343844497, 343975573, + 344106661, 344237767, 344368873, 344499949, 344631037, 344762113, 344893193, + 345024269, 345155341, 345286433, 345417517, 345548657, 345679753, 345810827, + 345941951, 346073033, 346204141, 346335217, 346466291, 346597379, 346728451, + 346859537, 346990639, 347121713, 347252833, 347383921, 347515001, 347646077, + 347777179, 347908277, 348039379, 348170453, 348301529, 348432611, 348563693, + 348694807, 348825881, 348956981, 349088059, 349219141, 349350223, 349481309, + 349612387, 349743461, 349874549, 350005633, 350136727, 350267803, 350398879, + 350529961, 350661037, 350792119, 350923201, 351054287, 351185423, 351316571, + 351447653, 351578729, 351709801, 351840877, 351971951, 352103029, 352234109, + 352365191, 352496273, 352627351, 352758431, 352889513, 353020607, 353151691, + 353282779, 353413859, 353544931, 353676017, 353807093, 353938171, 354069253, + 354200377, 354331451, 354462527, 354593621, 354724693, 354855797, 354986873, + 355117949, 355249031, 355380131, 355511231, 355642319, 355773413, 355904531, + 356035619, 356166737, 356297863, 356428939, 356560021, 356691121, 356822227, + 356953321, 357084401, 357215479, 357346559, 357477643, 357608723, 357739813, + 357870899, 358001977, 358133089, 358264183, 358395281, 358526359, 358657447, + 358788527, 358919599, 359050781, 359181857, 359312939, 359444017, 359575091, + 359706199, 359837281, 359968369, 360099449, 360230537, 360361621, 360492709, + 360623801, 360754897, 360885991, 361017089, 361148197, 361279297, 361410403, + 361541483, 361672561, 361803641, 361934723, 362065801, 362196881, 362327963, + 362459051, 362590133, 362721221, 362852311, 362983417, 363114503, 363245587, + 363376681, 363507757, 363638833, 363769937, 363901039, 364032127, 364163207, + 364294283, 364425371, 364556443, 364687529, 364818659, 364949731, 365080829, + 365211911, 365342983, 365474059, 365605181, 365736289, 365867377, 365998459, + 366129557, 366260647, 366391733, 366522811, 366653893, 366784973, 366916057, + 367047137, 367178219, 367309291, 367440379, 367571489, 367702567, 367833643, + 367964759, 368095831, 368226907, 368357993, 368489087, 368620171, 368751289, + 368882383, 369013471, 369144553, 369275633, 369406747, 369537841, 369668939, + 369800047, 369931123, 370062227, 370193339, 370324411, 370455499, 370586591, + 370717693, 370848769, 370979879, 371110981, 371242061, 371373151, 371504249, + 371635321, 371766397, 371897501, 372028583, 372159659, 372290791, 372421867, + 372552941, 372684071, 372815143, 372946229, 373077301, 373208483, 373339559, + 373470677, 373601791, 373732867, 373864009, 373995109, 374126201, 374257297, + 374388373, 374519447, 374650537, 374781611, 374912683, 375043763, 375174841, + 375305939, 375437053, 375568129, 375699209, 375830291, 375961363, 376092463, + 376223543, 376354651, 376485749, 376616831, 376747909, 376878991, 377010107, + 377141179, 377272261, 377403337, 377534411, 377665499, 377796571, 377927653, + 378058757, 378189853, 378320939, 378452023, 378583097, 378714181, 378845281, + 378976363, 379107457, 379238549, 379369643, 379500727, 379631807, 379762879, + 379893959, 380025043, 380156129, 380287213, 380418301, 380549447, 380680529, + 380811643, 380942717, 381073799, 381204871, 381335963, 381467069, 381598171, + 381729251, 381860327, 381991417, 382122511, 382253593, 382384679, 382515779, + 382646879, 382777961, 382909039, 383040113, 383171189, 383302267, 383433341, + 383564413, 383695517, 383826601, 383957677, 384088777, 384219863, 384350947, + 384482027, 384613127, 384744223, 384875297, 385006379, 385137457, 385268557, + 385399633, 385530731, 385661827, 385792907, 385923997, 386055071, 386186173, + 386317247, 386448343, 386579437, 386710589, 386841671, 386972743, 387103841, + 387234917, 387365999, 387497081, 387628231, 387759331, 387890413, 388021489, + 388152587, 388283659, 388414753, 388545827, 388676903, 388807997, 388939081, + 389070203, 389201297, 389332373, 389463491, 389594581, 389725657, 389856743, + 389987831, 390118909, 390249991, 390381067, 390512159, 390643243, 390774317, + 390905393, 391036517, 391167617, 391298689, 391429763, 391560839, 391691929, + 391823017, 391954099, 392085181, 392216303, 392347411, 392478521, 392609617, + 392740693, 392871769, 393002851, 393133927, 393265001, 393396077, 393527149, + 393658241, 393789317, 393920399, 394051477, 394182601, 394313677, 394444763, + 394575847, 394706947, 394838053, 394969129, 395100203, 395231297, 395362369, + 395493463, 395624549, 395755639, 395886713, 396017801, 396148891, 396279977, + 396411107, 396542207, 396673283, 396804383, 396935471, 397066559, 397197653, + 397328837, 397459913, 397590989, 397722107, 397853207, 397984291, 398115373, + 398246447, 398377523, 398508599, 398639671, 398770759, 398901851, 399032929, + 399164009, 399295087, 399426221, 399557299, 399688447, 399819523, 399950633, + 400081741, 400212829, 400343921, 400474993, 400606079, 400737163, 400868267, + 400999367, 401130473, 401261579, 401392669, 401523743, 401654837, 401785949, + 401917031, 402048107, 402179231, 402310331, 402441421, 402572503, 402703589, + 402834683, 402965789, 403096861, 403227949, 403359041, 403490119, 403621213, + 403752287, 403883369, 404014441, 404145551, 404276629, 404407709, 404538781, + 404669897, 404800969, 404932049, 405063121, 405194219, 405325301, 405456377, + 405587449, 405718529, 405849617, 405980699, 406111781, 406242871, 406373969, + 406505041, 406636117, 406767197, 406898291, 407029379, 407160461, 407291539, + 407422619, 407553709, 407684801, 407815909, 407947003, 408078089, 408209171, + 408340243, 408471331, 408602419, 408733513, 408864593, 408995677, 409126759, + 409257857, 409388963, 409520039, 409651117, 409782203, 409913321, 410044421, + 410175499, 410306573, 410437661, 410568757, 410699893, 410830969, 410962087, + 411093181, 411224267, 411355361, 411486437, 411617579, 411748663, 411879761, + 412010849, 412141937, 412273093, 412404193, 412535267, 412666343, 412797421, + 412928519, 413059607, 413190707, 413321789, 413452867, 413583941, 413715023, + 413846117, 413977189, 414108301, 414239377, 414370457, 414501547, 414632629, + 414763729, 414894817, 415025909, 415156997, 415288103, 415419187, 415550279, + 415681361, 415812433, 415943513, 416074619, 416205701, 416336801, 416467889, + 416598967, 416730047, 416861141, 416992241, 417123319, 417254393, 417385469, + 417516551, 417647623, 417778703, 417909847, 418040927, 418172003, 418303099, + 418434173, 418565249, 418696321, 418827397, 418958473, 419089547, 419220623, + 419351707, 419482799, 419613871, 419744947, 419876027, 420007099, 420138179, + 420269279, 420400369, 420531451, 420662551, 420793643, 420924733, 421055809, + 421186907, 421317983, 421449059, 421580141, 421711223, 421842299, 421973441, + 422104517, 422235617, 422366689, 422497763, 422628839, 422759929, 422891003, + 423022091, 423153163, 423284243, 423415327, 423546439, 423677539, 423808621, + 423939697, 424070771, 424201853, 424333033, 424464107, 424595183, 424726261, + 424857343, 424988449, 425119537, 425250649, 425381729, 425512817, 425643899, + 425774989, 425906077, 426037159, 426168241, 426299317, 426430391, 426561469, + 426692549, 426823651, 426954743, 427085821, 427216903, 427347979, 427479067, + 427610167, 427741241, 427872449, 428003533, 428134607, 428265679, 428396779, + 428527871, 428658973, 428790053, 428921159, 429052271, 429183353, 429314449, + 429445553, 429576647, 429707723, 429838807, 429969919, 430100999, 430232087, + 430363229, 430494329, 430625411, 430756511, 430887601, 431018681, 431149781, + 431280853, 431411987, 431543059, 431674141, 431805223, 431936339, 432067421, + 432198499, 432329581, 432460657, 432591743, 432722819, 432853891, 432984971, + 433116067, 433247201, 433378273, 433509347, 433640419, 433771511, 433902587, + 434033669, 434164741, 434295847, 434426987, 434558107, 434689183, 434820277, + 434951353, 435082433, 435213509, 435344593, 435475697, 435606817, 435737899, + 435868997, 436000099, 436131197, 436262273, 436393367, 436524457, 436655539, + 436786613, 436917707, 437048779, 437179861, 437310947, 437442029, 437573113, + 437704187, 437835313, 437966413, 438097507, 438228631, 438359711, 438490847, + 438621979, 438753079, 438884153, 439015229, 439146307, 439277477, 439408549, + 439539671, 439670789, 439801861, 439932959, 440064043, 440195141, 440326213, + 440457293, 440588377, 440719457, 440850539, 440981657, 441112739, 441243811, + 441374897, 441505973, 441637057, 441768139, 441899231, 442030321, 442161397, + 442292471, 442423543, 442554647, 442685753, 442816849, 442947941, 443079017, + 443210113, 443341201, 443472283, 443603371, 443734471, 443865547, 443996627, + 444127699, 444258797, 444389873, 444520949, 444652027, 444783113, 444914209, + 445045309, 445176397, 445307477, 445438559, 445569653, 445700729, 445831807, + 445962917, 446094001, 446225111, 446356223, 446487299, 446618383, 446749469, + 446880541, 447011681, 447142753, 447273829, 447404933, 447536017, 447667111, + 447798209, 447929297, 448060373, 448191467, 448322543, 448453633, 448584727, + 448715801, 448846883, 448977967, 449109047, 449240119, 449371207, 449502283, + 449633363, 449764439, 449895521, 450026623, 450157699, 450288781, 450419857, + 450550967, 450682049, 450813169, 450944243, 451075337, 451206421, 451337501, + 451468597, 451599683, 451730759, 451861843, 451992917, 452123989, 452255071, + 452386147, 452517223, 452648309, 452779387, 452910509, 453041587, 453172679, + 453303779, 453434851, 453565951, 453697039, 453828119, 453959203, 454090297, + 454221371, 454352443, 454483577, 454614649, 454745737, 454876811, 455007887, + 455138989, 455270071, 455401153, 455532247, 455663333, 455794433, 455925607, + 456056683, 456187757, 456318847, 456449933, 456581033, 456712117, 456843203, + 456974311, 457105417, 457236511, 457367593, 457498709, 457629787, 457760867, + 457892011, 458023091, 458154173, 458285251, 458416327, 458547437, 458678537, + 458809619, 458940701, 459071773, 459202859, 459333967, 459465047, 459596141, + 459727223, 459858299, 459989389, 460120469, 460251541, 460382617, 460513693, + 460644781, 460775857, 460906931, 461038007, 461169091, 461300171, 461431253, + 461562331, 461693411, 461824513, 461955601, 462086683, 462217771, 462348853, + 462479957, 462611033, 462742123, 462873239, 463004317, 463135391, 463266469, + 463397551, 463528633, 463659739, 463790843, 463921957, 464053061, 464184157, + 464315261, 464446357, 464577431, 464708533, 464839633, 464970721, 465101809, + 465232913, 465364013, 465495119, 465626201, 465757283, 465888361, 466019447, + 466150519, 466281601, 466412689, 466543807, 466674913, 466805987, 466937063, + 467068139, 467199217, 467330359, 467461457, 467592539, 467723639, 467854721, + 467985799, 468116897, 468248009, 468379081, 468510173, 468641263, 468772397, + 468903493, 469034593, 469165673, 469296769, 469427863, 469558963, 469690073, + 469821167, 469952243, 470083343, 470214443, 470345527, 470476603, 470607677, + 470738761, 470869853, 471000941, 471132019, 471263131, 471394219, 471525317, + 471656441, 471787513, 471918617, 472049689, 472180801, 472311907, 472442981, + 472574087, 472705183, 472836281, 472967371, 473098459, 473229551, 473360627, + 473491703, 473622781, 473753879, 473884951, 474016043, 474147127, 474278219, + 474409303, 474540383, 474671459, 474802553, 474933629, 475064717, 475195793, + 475326881, 475457959, 475589047, 475720121, 475851197, 475982279, 476113367, + 476244449, 476375551, 476506691, 476637779, 476768861, 476899949, 477031039, + 477162131, 477293209, 477424289, 477555409, 477686501, 477817573, 477948649, + 478079731, 478210813, 478341901, 478472977, 478604051, 478735171, 478866257, + 478997329, 479128411, 479259497, 479390623, 479521711, 479652829, 479783923, + 479915011, 480046111, 480177193, 480308267, 480439357, 480570479, 480701563, + 480832637, 480963713, 481094819, 481225891, 481356973, 481488047, 481619123, + 481750207, 481881289, 482012381, 482143471, 482274563, 482405647, 482536727, + 482667817, 482798893, 482929969, 483061043, 483192121, 483323207, 483454343, + 483585437, 483716543, 483847633, 483978713, 484109839, 484240921, 484372001, + 484503083, 484634179, 484765261, 484896371, 485027443, 485158519, 485289611, + 485420687, 485551763, 485682839, 485813917, 485944993, 486076093, 486207167, + 486338263, 486469349, 486600451, 486731537, 486862627, 486993707, 487124789, + 487255903, 487386979, 487518071, 487649143, 487780219, 487911301, 488042383, + 488173481, 488304571, 488435663, 488566763, 488697851, 488828933, 488960023, + 489091121, 489222211, 489353299, 489484399, 489615473, 489746549, 489877631, + 490008703, 490139803, 490270901, 490401973, 490533049, 490664123, 490795199, + 490926281, 491057389, 491188469, 491319541, 491450627, 491581721, 491712797, + 491843873, 491975009, 492106103, 492237181, 492368321, 492499393, 492630473, + 492761573, 492892717, 493023857, 493154993, 493286069, 493417151, 493548239, + 493679317, 493810403, 493941479, 494072587, 494203669, 494334781, 494465953, + 494597029, 494728109, 494859187, 494990263, 495121343, 495252421, 495383531, + 495514631, 495645707, 495776819, 495907913, 496039021, 496170107, 496301207, + 496432289, 496563367, 496694441, 496825513, 496956601, 497087713, 497218789, + 497349883, 497480957, 497612041, 497743121, 497874197, 498005273, 498136411, + 498267487, 498398561, 498529649, 498660727, 498791809, 498922883, 499053967, + 499185047, 499316119, 499447219, 499578293, 499709389, 499840463, 499971541, + 500102621, 500233703, 500364803, 500495881, 500626957, 500758033, 500889107, + 501020189, 501151289, 501282361, 501413491, 501544573, 501675649, 501806737, + 501937811, 502068893, 502199981, 502331107, 502462187, 502593269, 502724351, + 502855439, 502986551, 503117639, 503248741, 503379827, 503510923, 503641997, + 503773091, 503904173, 504035251, 504166343, 504297419, 504428503, 504559597, + 504690677, 504821777, 504952849, 505083941, 505215019, 505346099, 505477177, + 505608263, 505739369, 505870451, 506001533, 506132609, 506263699, 506394773, + 506525867, 506656939, 506788019, 506919109, 507050191, 507181271, 507312347, + 507443423, 507574541, 507705617, 507836779, 507967853, 508098947, 508230053, + 508361177, 508492249, 508623337, 508754437, 508885519, 509016623, 509147701, + 509278801, 509409899, 509540971, 509672063, 509803163, 509934263, 510065357, + 510196447, 510327523, 510458657, 510589741, 510720839, 510851927, 510983023, + 511114111, 511245187, 511376267, 511507361, 511638433, 511769507, 511900619, + 512031697, 512162773, 512293849, 512424953, 512556049, 512687137, 512818259, + 512949413, 513080509, 513211591, 513342679, 513473759, 513604831, 513735913, + 513866999, 513998113, 514129201, 514260283, 514391369, 514522457, 514653547, + 514784629, 514915747, 515046823, 515177903, 515309071, 515440199, 515571281, + 515702353, 515833427, 515964509, 516095641, 516226721, 516357841, 516488933, + 516620057, 516751129, 516882217, 517013291, 517144367, 517275449, 517406521, + 517537597, 517668703, 517799797, 517930879, 518061953, 518193073, 518324167, + 518455303, 518586389, 518717497, 518848573, 518979647, 519110743, 519241819, + 519372937, 519504031, 519635117, 519766189, 519897263, 520028363, 520159439, + 520290527, 520421623, 520552727, 520683851, 520814933, 520946033, 521077153, + 521208349, 521339449, 521470541, 521601643, 521732719, 521863801, 521994937, + 522126019, 522257107, 522388241, 522519331, 522650417, 522781531, 522912631, + 523043711, 523174829, 523305929, 523437011, 523568099, 523699171, 523830253, + 523961341, 524092427, 524223503, 524354591, 524485667, 524616761, 524747863, + 524878943, 525010027, 525141107, 525272191, 525403273, 525534367, 525665461, + 525796543, 525927629, 526058723, 526189799, 526320911, 526452001, 526583107, + 526714183, 526845259, 526976339, 527107453, 527238577, 527369653, 527500739, + 527631847, 527762929, 527894033, 528025153, 528156247, 528287321, 528418393, + 528549487, 528680573, 528811651, 528942749, 529073837, 529204909, 529336009, + 529467097, 529598177, 529729267, 529860367, 529991471, 530122573, 530253649, + 530384783, 530515873, 530646973, 530778049, 530909179, 531040267, 531171343, + 531302423, 531433541, 531564617, 531695699, 531826787, 531957901, 532089029, + 532220107, 532351199, 532482337, 532613441, 532744519, 532875601, 533006687, + 533137771, 533268863, 533399947, 533531029, 533662133, 533793209, 533924291, + 534055369, 534186449, 534317521, 534448619, 534579697, 534710777, 534841859, + 534972967, 535104043, 535235117, 535366189, 535497283, 535628369, 535759451, + 535890527, 536021599, 536152691, 536283767, 536414881, 536545957, 536677051, + 536808127, 536939257, 537070337, 537201437, 537332519, 537463601, 537594727, + 537725869, 537856951, 537988051, 538119133, 538250213, 538381301, 538512379, + 538643461, 538774547, 538905623, 539036713, 539167787, 539298863, 539429953, + 539561027, 539692121, 539823203, 539954299, 540085391, 540216473, 540347603, + 540478681, 540609761, 540740891, 540871963, 541003039, 541134127, 541265213, + 541396313, 541527391, 541658477, 541789559, 541920637, 542051717, 542182789, + 542313869, 542444941, 542576053, 542707181, 542838253, 542969351, 543100447, + 543231523, 543362623, 543493697, 543624769, 543755869, 543886991, 544018073, + 544149167, 544280239, 544411319, 544542469, 544673581, 544804669, 544935749, + 545066827, 545197901, 545328989, 545460067, 545591191, 545722267, 545853353, + 545984443, 546115547, 546246641, 546377717, 546508789, 546639889, 546770969, + 546902047, 547033159, 547164253, 547295407, 547426483, 547557589, 547688663, + 547819763, 547950841, 548081917, 548212997, 548344117, 548475203, 548606309, + 548737411, 548868493, 548999567, 549130639, 549261719, 549392803, 549523879, + 549654953, 549786037, 549917119, 550048201, 550179323, 550310401, 550441481, + 550572571, 550703687, 550834759, 550965859, 551096983, 551228107, 551359213, + 551490311, 551621407, 551752499, 551883583, 552014689, 552145807, 552276887, + 552407969, 552539041, 552670127, 552801199, 552932279, 553063351, 553194457, + 553325561, 553456633, 553587707, 553718827, 553849903, 553981003, 554112079, + 554243153, 554374241, 554505313, 554636399, 554767471, 554898601, 555029723, + 555160811, 555291899, 555422977, 555554081, 555685243, 555816319, 555947393, + 556078469, 556209559, 556340633, 556471711, 556602863, 556733939, 556865021, + 556996093, 557127169, 557258243, 557389333, 557520427, 557651503, 557782583, + 557913659, 558044749, 558175823, 558306901, 558437983, 558569093, 558700169, + 558831241, 558962347, 559093441, 559224521, 559355593, 559486679, 559617827, + 559748921, 559880017, 560011097, 560142169, 560273249, 560404333, 560535421, + 560666521, 560797609, 560928713, 561059791, 561190867, 561321949, 561453037, + 561584141, 561715277, 561846361, 561977443, 562108543, 562239619, 562370717, + 562501813, 562632887, 562763989, 562895063, 563026147, 563157229, 563288303, + 563419391, 563550473, 563681549, 563812643, 563943727, 564074803, 564205883, + 564336959, 564468053, 564599129, 564730207, 564861331, 564992411, 565123483, + 565254563, 565385659, 565516739, 565647833, 565778911, 565909997, 566041079, + 566172161, 566303233, 566434321, 566565451, 566696549, 566827631, 566958719, + 567089797, 567220873, 567351959, 567483067, 567614141, 567745237, 567876317, + 568007431, 568138541, 568269619, 568400719, 568531793, 568662881, 568793957, + 568925039, 569056141, 569187257, 569318339, 569449417, 569580491, 569711627, + 569842717, 569973791, 570104869, 570235949, 570367097, 570498191, 570629273, + 570760357, 570891439, 571022519, 571153591, 571284667, 571415759, 571546853, + 571677929, 571809019, 571940107, 572071189, 572202289, 572333383, 572464463, + 572595577, 572726689, 572857763, 572988851, 573119947, 573251023, 573382099, + 573513181, 573644261, 573775343, 573906449, 574037533, 574168643, 574299773, + 574430863, 574561951, 574693033, 574824113, 574955197, 575086279, 575217353, + 575348441, 575479547, 575610683, 575741767, 575872853, 576003959, 576135041, + 576266123, 576397201, 576528283, 576659357, 576790457, 576921539, 577052611, + 577183687, 577314761, 577445833, 577576927, 577708007, 577839083, 577970213, + 578101291, 578232383, 578363491, 578494591, 578625679, 578756831, 578887919, + 579019019, 579150107, 579281179, 579412261, 579543343, 579674461, 579805537, + 579936613, 580067689, 580198781, 580329881, 580460977, 580592113, 580723223, + 580854331, 580985407, 581116513, 581247599, 581378683, 581509771, 581640847, + 581771933, 581903011, 582034091, 582165193, 582296293, 582427369, 582558481, + 582689561, 582820709, 582951799, 583082879, 583213957, 583345033, 583476107, + 583607201, 583738301, 583869389, 584000471, 584131549, 584262631, 584393713, + 584524847, 584655919, 584786999, 584918111, 585049189, 585180263, 585311339, + 585442439, 585573511, 585704593, 585835673, 585966757, 586097833, 586228913, + 586360037, 586491121, 586622203, 586753367, 586884457, 587015549, 587146621, + 587277697, 587408777, 587539919, 587670997, 587802077, 587933173, 588064249, + 588195337, 588326411, 588457483, 588588557, 588719647, 588850741, 588981857, + 589112939, 589244023, 589375103, 589506193, 589637273, 589768351, 589899433, + 590030521, 590161609, 590292697, 590423807, 590554897, 590685971, 590817047, + 590948143, 591079219, 591210293, 591341371, 591472481, 591603577, 591734669, + 591865741, 591996857, 592127941, 592259069, 592390171, 592521257, 592652371, + 592783447, 592914521, 593045597, 593176673, 593307763, 593438851, 593569961, + 593701051, 593832163, 593963267, 594094339, 594225413, 594356513, 594487609, + 594618683, 594749783, 594880859, 595011953, 595143037, 595274117, 595405207, + 595536289, 595667377, 595798451, 595929527, 596060603, 596191681, 596322767, + 596453861, 596584957, 596716037, 596847113, 596978189, 597109307, 597240407, + 597371491, 597502589, 597633661, 597764737, 597895817, 598026899, 598157999, + 598289071, 598420153, 598551227, 598682321, 598813421, 598944497, 599075599, + 599206739, 599337853, 599468939, 599600033, 599731123, 599862233, 599993309, + 600124391, 600255463, 600386551, 600517663, 600648757, 600779873, 600910957, + 601042031, 601173107, 601304189, 601435267, 601566347, 601697429, 601828517, + 601959601, 602090767, 602221847, 602352923, 602484013, 602615087, 602746201, + 602877283, 603008387, 603139499, 603270583, 603401663, 603532747, 603663871, + 603794951, 603926101, 604057189, 604188269, 604319341, 604450417, 604581511, + 604712599, 604843693, 604974791, 605105869, 605236943, 605368019, 605499101, + 605630177, 605761267, 605892341, 606023477, 606154553, 606285643, 606416731, + 606547807, 606678893, 606809969, 606941047, 607072127, 607203203, 607334293, + 607465379, 607596461, 607727537, 607858609, 607989689, 608120761, 608251849, + 608382923, 608513999, 608645077, 608776177, 608907259, 609038341, 609169417, + 609300533, 609431609, 609562697, 609693779, 609824851, 609955949, 610087021, + 610218101, 610349203, 610480289, 610611413, 610742521, 610873607, 611004697, + 611135773, 611266849, 611397931, 611529013, 611660087, 611791177, 611922257, + 612053339, 612184429, 612315523, 612446617, 612577703, 612708793, 612839867, + 612970973, 613102073, 613233149, 613364231, 613495339, 613626427, 613757503, + 613888591, 614019671, 614150783, 614281867, 614412949, 614544079, 614675167, + 614806277, 614937371, 615068471, 615199577, 615330673, 615461747, 615592849, + 615723929, 615855017, 615986093, 616117171, 616248247, 616379333, 616510409, + 616641481, 616772593, 616903669, 617034749, 617165827, 617296907, 617428001, + 617559073, 617690147, 617821241, 617952341, 618083413, 618214529, 618345619, + 618476699, 618607783, 618738863, 618870001, 619001077, 619132187, 619263259, + 619394387, 619525507, 619656599, 619787677, 619918763, 620049839, 620181031, + 620312123, 620443199, 620574287, 620705369, 620836453, 620967527, 621098617, + 621229699, 621360809, 621491887, 621622973, 621754051, 621885133, 622016221, + 622147313, 622278431, 622409507, 622540591, 622671671, 622802743, 622933837, + 623064991, 623196073, 623327149, 623458237, 623589313, 623720399, 623851493, + 623982581, 624113663, 624244739, 624375821, 624506899, 624637973, 624769099, + 624900173, 625031249, 625162331, 625293413, 625424561, 625555643, 625686727, + 625817807, 625948879, 626079953, 626211037, 626342131, 626473207, 626604281, + 626735357, 626866463, 626997551, 627128693, 627259769, 627390851, 627521929, + 627653017, 627784093, 627915181, 628046269, 628177351, 628308431, 628439509, + 628570589, 628701673, 628832747, 628963837, 629094913, 629226029, 629357107, + 629488213, 629619307, 629750411, 629881487, 630012587, 630143663, 630274741, + 630405829, 630536903, 630667993, 630799111, 630930203, 631061279, 631192391, + 631323479, 631454573, 631585651, 631716739, 631847813, 631978891, 632109967, + 632241079, 632372179, 632503273, 632634367, 632765447, 632896549, 633027653, + 633158737, 633289823, 633420911, 633551993, 633683081, 633814157, 633945269, + 634076347, 634207421, 634338517, 634469609, 634600699, 634731829, 634862939, + 634994011, 635125087, 635256179, 635387251, 635518337, 635649433, 635780531, + 635911607, 636042731, 636173803, 636304891, 636435971, 636567073, 636698147, + 636829229, 636960329, 637091407, 637222511, 637353599, 637484671, 637615747, + 637746833, 637877963, 638009039, 638140123, 638271203, 638402279, 638533367, + 638664443, 638795543, 638926621, 639057697, 639188779, 639319853, 639450941, + 639582017, 639713101, 639844201, 639975283, 640106377, 640237457, 640368559, + 640499669, 640630747, 640761829, 640892909, 641024039, 641155111, 641286259, + 641417341, 641548423, 641679523, 641810623, 641941697, 642072791, 642203879, + 642334951, 642466037, 642597133, 642728213, 642859303, 642990377, 643121461, + 643252541, 643383619, 643514731, 643645811, 643776911, 643908011, 644039107, + 644170199, 644301283, 644432359, 644563441, 644694559, 644825641, 644956759, + 645087841, 645218921, 645350047, 645481139, 645612221, 645743297, 645874379, + 646005463, 646136549, 646267627, 646398703, 646529783, 646660871, 646791997, + 646923091, 647054167, 647185249, 647316359, 647447453, 647578553, 647709637, + 647840761, 647971837, 648102911, 648234019, 648365111, 648496207, 648627289, + 648758393, 648889469, 649020587, 649151719, 649282793, 649413893, 649545007, + 649676099, 649807181, 649938259, 650069353, 650200457, 650331533, 650462611, + 650593703, 650724803, 650855893, 650986993, 651118073, 651249169, 651380269, + 651511369, 651642527, 651773623, 651904723, 652035823, 652166917, 652297991, + 652429079, 652560191, 652691269, 652822369, 652953451, 653084573, 653215681, + 653346779, 653477857, 653608939, 653740027, 653871107, 654002191, 654133279, + 654264379, 654395477, 654526577, 654657683, 654788777, 654919877, 655050967, + 655182061, 655313167, 655444241, 655575329, 655706411, 655837487, 655968571, + 656099657, 656230747, 656361851, 656492953, 656624027, 656755103, 656886179, + 657017267, 657148339, 657279437, 657410527, 657541603, 657672689, 657803761, + 657934859, 658065953, 658197047, 658328119, 658459211, 658590287, 658721419, + 658852499, 658983581, 659114663, 659245739, 659376833, 659507909, 659638999, + 659770081, 659901199, 660032291, 660163367, 660294443, 660425531, 660556609, + 660687683, 660818759, 660949837, 661080911, 661211983, 661343071, 661474153, + 661605253, 661736333, 661867411, 661998497, 662129603, 662260679, 662391767, + 662522869, 662653963, 662785099, 662916181, 663047263, 663178357, 663309481, + 663440567, 663571663, 663702751, 663833831, 663964919, 664096021, 664227163, + 664358239, 664489313, 664620403, 664751501, 664882577, 665013653, 665144741, + 665275829, 665406901, 665537987, 665669087, 665800169, 665931251, 666062339, + 666193457, 666324539, 666455611, 666586693, 666717787, 666848863, 666979991, + 667111097, 667242181, 667373281, 667504373, 667635457, 667766597, 667897669, + 668028761, 668159851, 668290999, 668422103, 668553181, 668684279, 668815369, + 668946461, 669077593, 669208691, 669339773, 669470849, 669601927, 669733019, + 669864137, 669995213, 670126309, 670257389, 670388471, 670519547, 670650647, + 670781731, 670912813, 671043911, 671175007, 671306089, 671437199, 671568277, + 671699387, 671830493, 671961593, 672092711, 672223793, 672354869, 672485941, + 672617021, 672748093, 672879169, 673010251, 673141331, 673272421, 673403513, + 673534601, 673665673, 673796771, 673927843, 674058923, 674190031, 674321113, + 674452211, 674583293, 674714393, 674845489, 674976593, 675107683, 675238771, + 675369853, 675500927, 675632017, 675763093, 675894179, 676025291, 676156399, + 676287487, 676418573, 676549681, 676680757, 676811843, 676942919, 677074009, + 677205091, 677336183, 677467261, 677598347, 677729453, 677860543, 677991617, + 678122701, 678253783, 678384877, 678515969, 678647063, 678778141, 678909223, + 679040303, 679171379, 679302457, 679433537, 679564619, 679695713, 679826803, + 679957909, 680089027, 680220127, 680351209, 680482343, 680613467, 680744539, + 680875627, 681006709, 681137791, 681268871, 681399947, 681531073, 681662147, + 681793249, 681924343, 682055417, 682186559, 682317653, 682448737, 682579817, + 682710893, 682841977, 682973087, 683104187, 683235277, 683366351, 683497439, + 683628527, 683759611, 683890687, 684021781, 684152863, 684283991, 684415063, + 684546151, 684677263, 684808357, 684939439, 685070531, 685201607, 685332691, + 685463791, 685594873, 685725973, 685857077, 685988153, 686119271, 686250347, + 686381491, 686512573, 686643649, 686774749, 686905847, 687036943, 687168019, + 687299111, 687430213, 687561289, 687692371, 687823471, 687954563, 688085653, + 688216747, 688347929, 688479013, 688610093, 688741169, 688872269, 689003347, + 689134483, 689265601, 689396677, 689527757, 689658833, 689789923, 689920997, + 690052147, 690183223, 690314297, 690445391, 690576463, 690707539, 690838619, + 690969691, 691100777, 691231859, 691362943, 691494017, 691625101, 691756201, + 691887283, 692018381, 692149459, 692280539, 692411617, 692542691, 692673767, + 692804843, 692935921, 693067007, 693198091, 693329177, 693460249, 693591359, + 693722437, 693853529, 693984607, 694115687, 694246769, 694377841, 694508917, + 694639991, 694771073, 694902157, 695033233, 695164331, 695295421, 695426519, + 695557591, 695688757, 695819837, 695950919, 696082021, 696213101, 696344221, + 696475301, 696606377, 696737453, 696868537, 696999617, 697130689, 697261771, + 697392847, 697523971, 697655099, 697786171, 697917251, 698048333, 698179411, + 698310491, 698441593, 698572723, 698703839, 698834911, 698965987, 699097067, + 699228143, 699359251, 699490333, 699621407, 699752509, 699883633, 700014713, + 700145821, 700276919, 700407991, 700539097, 700670171, 700801261, 700932341, + 701063417, 701194523, 701325619, 701456719, 701587793, 701718889, 701849969, + 701981041, 702112129, 702243209, 702374297, 702505379, 702636463, 702767537, + 702898627, 703029731, 703160803, 703291877, 703423001, 703554079, 703685183, + 703816273, 703947379, 704078489, 704209591, 704340667, 704471773, 704602867, + 704733949, 704865037, 704996129, 705127217, 705258289, 705389401, 705520499, + 705651581, 705782653, 705913753, 706044827, 706175927, 706306999, 706438081, + 706569167, 706700243, 706831379, 706962457, 707093537, 707224619, 707355709, + 707486797, 707617901, 707749001, 707880083, 708011179, 708142261, 708273373, + 708404453, 708535547, 708666631, 708797707, 708928789, 709059881, 709190953, + 709322063, 709453169, 709584289, 709715411, 709846549, 709977643, 710108743, + 710239819, 710370901, 710501999, 710633083, 710764163, 710895253, 711026339, + 711157411, 711288493, 711419573, 711550681, 711681767, 711812867, 711943979, + 712075057, 712206139, 712337243, 712468331, 712599431, 712730533, 712861637, + 712992719, 713123821, 713254921, 713386007, 713517083, 713648161, 713779267, + 713910341, 714041443, 714172523, 714303607, 714434681, 714565759, 714696833, + 714827909, 714958997, 715090081, 715221203, 715352303, 715483381, 715614491, + 715745567, 715876643, 716007737, 716138827, 716269903, 716400989, 716532067, + 716663161, 716794277, 716925361, 717056467, 717187577, 717318649, 717449723, + 717580807, 717711889, 717843001, 717974123, 718105207, 718236293, 718367383, + 718498463, 718629547, 718760639, 718891741, 719022847, 719153921, 719285009, + 719416097, 719547197, 719678269, 719809373, 719940449, 720071531, 720202607, + 720333709, 720464791, 720595901, 720726991, 720858067, 720989147, 721120247, + 721251407, 721382483, 721513571, 721644659, 721775741, 721906907, 722037997, + 722169143, 722300221, 722431309, 722562389, 722693471, 722824549, 722955671, + 723086759, 723217841, 723348973, 723480047, 723611123, 723742199, 723873289, + 724004377, 724135457, 724266581, 724397669, 724528757, 724659839, 724790977, + 724922059, 725053187, 725184269, 725315341, 725446439, 725577521, 725708603, + 725839733, 725970823, 726101897, 726232973, 726364063, 726495149, 726626227, + 726757307, 726888413, 727019507, 727150607, 727281683, 727412783, 727543871, + 727674949, 727806031, 727937113, 728068199, 728199293, 728330441, 728461523, + 728592653, 728723731, 728854817, 728985911, 729117031, 729248119, 729379193, + 729510269, 729641347, 729772429, 729903509, 730034581, 730165673, 730296823, + 730427897, 730558979, 730690063, 730821137, 730952237, 731083361, 731214433, + 731345509, 731476583, 731607671, 731738779, 731869861, 732000953, 732132031, + 732263113, 732394207, 732525307, 732656383, 732787469, 732918551, 733049623, + 733180703, 733311781, 733442887, 733573961, 733705043, 733836119, 733967209, + 734098327, 734229413, 734360521, 734491601, 734622719, 734753797, 734884883, + 735015973, 735147073, 735278153, 735409237, 735540349, 735671441, 735802589, + 735933677, 736064753, 736195849, 736326953, 736458029, 736589129, 736720207, + 736851287, 736982369, 737113469, 737244667, 737375741, 737506837, 737637911, + 737768987, 737900069, 738031157, 738162239, 738293321, 738424399, 738555481, + 738686563, 738817649, 738948803, 739079893, 739210991, 739342063, 739473151, + 739604233, 739735309, 739866437, 739997519, 740128591, 740259673, 740390753, + 740521867, 740652943, 740784017, 740915101, 741046183, 741177259, 741308339, + 741439427, 741570509, 741701621, 741832709, 741963821, 742094893, 742225969, + 742357079, 742488167, 742619243, 742750357, 742881467, 743012549, 743143651, + 743274769, 743405857, 743536967, 743668049, 743799149, 743930287, 744061387, + 744192467, 744323551, 744454643, 744585719, 744716801, 744847891, 744978989, + 745110073, 745241171, 745372249, 745503359, 745634431, 745765507, 745896581, + 746027669, 746158789, 746289881, 746420957, 746552029, 746683111, 746814191, + 746945267, 747076411, 747207491, 747338567, 747469649, 747600751, 747731827, + 747862909, 747993991, 748125067, 748256141, 748387229, 748518349, 748649441, + 748780517, 748911601, 749042731, 749173811, 749304893, 749435971, 749567047, + 749698121, 749829253, 749960399, 750091483, 750222569, 750353683, 750484759, + 750615863, 750746957, 750878069, 751009141, 751140251, 751271351, 751402423, + 751533511, 751664593, 751795669, 751926751, 752057833, 752188939, 752320027, + 752451101, 752582177, 752713271, 752844347, 752975429, 753106513, 753237599, + 753368689, 753499871, 753630959, 753762059, 753893131, 754024213, 754155299, + 754286381, 754417459, 754548533, 754679609, 754810703, 754941779, 755072861, + 755203951, 755335039, 755466121, 755597237, 755728327, 755859407, 755990491, + 756121579, 756252661, 756383743, 756514853, 756645943, 756777023, 756908107, + 757039187, 757170269, 757301341, 757432427, 757563511, 757694593, 757825703, + 757956779, 758087861, 758218973, 758350057, 758481131, 758612207, 758743289, + 758874367, 759005449, 759136541, 759267653, 759398771, 759529843, 759660973, + 759792049, 759923141, 760054237, 760185319, 760316413, 760447487, 760578601, + 760709681, 760840771, 760971851, 761102989, 761234113, 761365229, 761496301, + 761627453, 761758531, 761889613, 762020713, 762151811, 762282931, 762414041, + 762545141, 762676217, 762807301, 762938377, 763069493, 763200611, 763331689, + 763462781, 763593889, 763724963, 763856057, 763987163, 764118239, 764249327, + 764380399, 764511479, 764642573, 764773651, 764904727, 765035807, 765166901, + 765297989, 765429073, 765560149, 765691301, 765822377, 765953459, 766084531, + 766215613, 766346687, 766477781, 766608853, 766739969, 766871047, 767002123, + 767133217, 767264341, 767395417, 767526509, 767657587, 767788667, 767919743, + 768050861, 768181943, 768313027, 768444101, 768575177, 768706249, 768837331, + 768968443, 769099543, 769230619, 769361713, 769492813, 769623893, 769754969, + 769886041, 770017139, 770148233, 770279387, 770410463, 770541557, 770672633, + 770803727, 770934799, 771065873, 771196961, 771328037, 771459113, 771590213, + 771721289, 771852379, 771983461, 772114561, 772245641, 772376767, 772507859, + 772639003, 772770079, 772901167, 773032243, 773163323, 773294407, 773425487, + 773556653, 773687743, 773818823, 773949901, 774081013, 774212137, 774343237, + 774474313, 774605407, 774736481, 774867601, 774998681, 775129759, 775260853, + 775391927, 775523003, 775654079, 775785173, 775916249, 776047333, 776178433, + 776309509, 776440589, 776571671, 776702743, 776833861, 776964959, 777096059, + 777227137, 777358289, 777489389, 777620483, 777751619, 777882733, 778013813, + 778144931, 778276013, 778407107, 778538197, 778669279, 778800353, 778931453, + 779062549, 779193631, 779324723, 779455799, 779586881, 779717959, 779849039, + 779980147, 780111257, 780242329, 780373403, 780504479, 780635573, 780766687, + 780897763, 781028861, 781159969, 781291067, 781422167, 781553249, 781684363, + 781815449, 781946533, 782077613, 782208731, 782339827, 782470981, 782602213, + 782733293, 782864393, 782995481, 783126559, 783257647, 783388721, 783519809, + 783650911, 783781987, 783913063, 784044179, 784175267, 784306351, 784437427, + 784568537, 784699613, 784830713, 784961797, 785092873, 785223973, 785355059, + 785486147, 785617223, 785748311, 785879401, 786010483, 786141593, 786272677, + 786403777, 786534871, 786665947, 786797021, 786928127, 787059199, 787190279, + 787321351, 787452431, 787583509, 787714607, 787845679, 787976773, 788107867, + 788238943, 788370029, 788501101, 788632189, 788763277, 788894363, 789025439, + 789156521, 789287599, 789418703, 789549793, 789680893, 789811991, 789943079, + 790074151, 790205233, 790336321, 790467451, 790598533, 790729607, 790860683, + 790991777, 791122861, 791253941, 791385053, 791516153, 791647237, 791778331, + 791909441, 792040549, 792171623, 792302699, 792433781, 792564853, 792695957, + 792827051, 792958147, 793089221, 793220339, 793351439, 793482523, 793613617, + 793744691, 793875767, 794006839, 794137913, 794269009, 794400091, 794531207, + 794662279, 794793361, 794924443, 795055523, 795186617, 795317689, 795448769, + 795579853, 795710939, 795842077, 795973163, 796104269, 796235347, 796366427, + 796497503, 796628627, 796759729, 796890817, 797021891, 797152969, 797284049, + 797415121, 797546249, 797677327, 797808437, 797939587, 798070681, 798201757, + 798332833, 798463927, 798595003, 798726107, 798857179, 798988277, 799119359, + 799250449, 799381553, 799512653, 799643731, 799774813, 799905901, 800036987, + 800168059, 800299139, 800430217, 800561309, 800692391, 800823473, 800954549, + 801085673, 801216751, 801347831, 801478903, 801609989, 801741077, 801872171, + 802003247, 802134329, 802265407, 802396523, 802527611, 802658699, 802789783, + 802920889, 803051971, 803183053, 803314147, 803445281, 803576381, 803707459, + 803838533, 803969611, 804100699, 804231793, 804362873, 804493973, 804625061, + 804756143, 804887261, 805018343, 805149419, 805280491, 805411613, 805542701, + 805673773, 805804849, 805935937, 806067013, 806198087, 806329169, 806460241, + 806591321, 806722409, 806853493, 806984567, 807115651, 807246779, 807377869, + 807508943, 807640051, 807771137, 807902231, 808033319, 808164419, 808295491, + 808426571, 808557647, 808688731, 808819813, 808950889, 809081963, 809213081, + 809344153, 809475241, 809606327, 809737447, 809868539, 809999623, 810130703, + 810261797, 810392899, 810524009, 810655099, 810786191, 810917269, 811048363, + 811179437, 811310527, 811441601, 811572677, 811703779, 811834861, 811965971, + 812097073, 812228171, 812359319, 812490409, 812621501, 812752573, 812883647, + 813014737, 813145811, 813276883, 813407971, 813539047, 813670147, 813801221, + 813932347, 814063421, 814194527, 814325599, 814456751, 814587833, 814718911, + 814849991, 814981073, 815112149, 815243251, 815374331, 815505421, 815636533, + 815767637, 815898761, 816029849, 816160921, 816291997, 816423071, 816554143, + 816685267, 816816353, 816947431, 817078513, 817209587, 817340659, 817471793, + 817602869, 817733941, 817865017, 817996097, 818127179, 818258251, 818389339, + 818520421, 818651497, 818782597, 818913671, 819044753, 819175829, 819306919, + 819438077, 819569173, 819700247, 819831319, 819962401, 820093511, 820224583, + 820355663, 820486739, 820617823, 820748987, 820880063, 821011157, 821142253, + 821273353, 821404457, 821535541, 821666617, 821797721, 821928839, 822059929, + 822191039, 822322121, 822453193, 822584267, 822715367, 822846439, 822977539, + 823108639, 823239727, 823370827, 823501907, 823632991, 823764079, 823895159, + 824026237, 824157329, 824288417, 824419493, 824550589, 824681677, 824812757, + 824943839, 825074941, 825206051, 825337127, 825468221, 825599303, 825730387, + 825861511, 825992611, 826123691, 826254799, 826385887, 826516981, 826648061, + 826779157, 826910239, 827041331, 827172443, 827303549, 827434631, 827565703, + 827696777, 827827927, 827959001, 828090083, 828221161, 828352237, 828483323, + 828614417, 828745507, 828876589, 829007671, 829138747, 829269821, 829400893, + 829531981, 829663067, 829794167, 829925279, 830056393, 830187473, 830318551, + 830449691, 830580769, 830711879, 830842973, 830974057, 831105139, 831236213, + 831367343, 831498419, 831629509, 831760603, 831891677, 832022759, 832153831, + 832284913, 832416031, 832547117, 832678213, 832809319, 832940393, 833071469, + 833202541, 833333629, 833464721, 833595793, 833726899, 833857991, 833989067, + 834120163, 834251273, 834382369, 834513451, 834644561, 834775637, 834906719, + 835037813, 835168889, 835299961, 835431061, 835562141, 835693213, 835824337, + 835955413, 836086487, 836217617, 836348693, 836479783, 836610877, 836741957, + 836873041, 837004117, 837135197, 837266317, 837397391, 837528467, 837659549, + 837790621, 837921697, 838052773, 838183847, 838314929, 838446013, 838577107, + 838708223, 838839319, 838970399, 839101489, 839232577, 839363671, 839494751, + 839625823, 839756941, 839888017, 840019091, 840150163, 840281243, 840412319, + 840543421, 840674501, 840805577, 840936689, 841067783, 841198859, 841329961, + 841461041, 841592131, 841723213, 841854347, 841985453, 842116637, 842247709, + 842378821, 842509897, 842640973, 842772053, 842903143, 843034217, 843165307, + 843296411, 843427493, 843558571, 843689681, 843820753, 843951853, 844082927, + 844214009, 844345081, 844476167, 844607273, 844738373, 844869463, 845000539, + 845131621, 845262703, 845393827, 845524943, 845656051, 845787133, 845918239, + 846049333, 846180443, 846311533, 846442621, 846573731, 846704813, 846835889, + 846967049, 847098121, 847229333, 847360439, 847491527, 847622621, 847753721, + 847884839, 848015929, 848147009, 848278097, 848409169, 848540263, 848671361, + 848802439, 848933521, 849064607, 849195707, 849326791, 849457883, 849588977, + 849720049, 849851153, 849982283, 850113361, 850244453, 850375529, 850506611, + 850637699, 850768771, 850899853, 851030951, 851162041, 851293133, 851424227, + 851555311, 851686397, 851817523, 851948621, 852079717, 852210803, 852341887, + 852472969, 852604063, 852735137, 852866213, 852997307, 853128383, 853259471, + 853390547, 853521637, 853652711, 853783783, 853914857, 854045971, 854177063, + 854308151, 854439241, 854570351, 854701429, 854832541, 854963657, 855094763, + 855225857, 855356941, 855488089, 855619169, 855750263, 855881347, 856012433, + 856143517, 856274599, 856405717, 856536797, 856667879, 856798981, 856930079, + 857061173, 857192257, 857323399, 857454473, 857585551, 857716631, 857847707, + 857978813, 858109891, 858241019, 858372107, 858503183, 858634261, 858765359, + 858896431, 859027511, 859158589, 859289663, 859420753, 859551853, 859682927, + 859814009, 859945109, 860076181, 860207267, 860338403, 860469481, 860600557, + 860731631, 860862719, 860993807, 861124879, 861255973, 861387101, 861518209, + 861649319, 861780407, 861911483, 862042561, 862173647, 862304731, 862435817, + 862566919, 862697993, 862829069, 862960141, 863091233, 863222329, 863353417, + 863484499, 863615591, 863746679, 863877761, 864008839, 864139933, 864271099, + 864402181, 864533279, 864664391, 864795511, 864926597, 865057673, 865188749, + 865319821, 865450897, 865581989, 865713061, 865844143, 865975247, 866106343, + 866237419, 866368511, 866499593, 866630707, 866761799, 866892937, 867024013, + 867155087, 867286177, 867417259, 867548333, 867679411, 867810511, 867941623, + 868072721, 868203797, 868334869, 868465951, 868597057, 868728139, 868859219, + 868990303, 869121377, 869252459, 869383531, 869514631, 869645719, 869776801, + 869907877, 870038959, 870170047, 870301141, 870432257, 870563333, 870694453, + 870825533, 870956609, 871087691, 871218763, 871349849, 871480931, 871612003, + 871743091, 871874173, 872005297, 872136389, 872267471, 872398573, 872529703, + 872660777, 872791873, 872922949, 873054089, 873185197, 873316271, 873447343, + 873578417, 873709511, 873840601, 873971677, 874102807, 874233901, 874364983, + 874496057, 874627157, 874758229, 874889303, 875020397, 875151469, 875282543, + 875413639, 875544781, 875675861, 875806933, 875938051, 876069127, 876200231, + 876331321, 876462409, 876593483, 876724579, 876855659, 876986791, 877117867, + 877248941, 877380017, 877511101, 877642189, 877773263, 877904371, 878035451, + 878166533, 878297663, 878428751, 878559833, 878690941, 878822023, 878953099, + 879084179, 879215257, 879346337, 879477433, 879608531, 879739603, 879870707, + 880001791, 880132871, 880263947, 880395049, 880526137, 880657231, 880788313, + 880919461, 881050553, 881181629, 881312713, 881443813, 881574893, 881705983, + 881837057, 881968147, 882099233, 882230347, 882361427, 882492503, 882623593, + 882754679, 882885779, 883016857, 883147963, 883279073, 883410181, 883541299, + 883672379, 883803469, 883934543, 884065661, 884196737, 884327831, 884458909, + 884590033, 884721127, 884852209, 884983289, 885114361, 885245467, 885376543, + 885507617, 885638693, 885769769, 885900863, 886031953, 886163071, 886294223, + 886425299, 886556423, 886687507, 886818589, 886949671, 887080771, 887211869, + 887342941, 887474017, 887605109, 887736203, 887867291, 887998367, 888129449, + 888260521, 888391601, 888522743, 888653851, 888784933, 888916013, 889047097, + 889178201, 889309277, 889440379, 889571477, 889702549, 889833629, 889964723, + 890095799, 890226877, 890357953, 890489057, 890620141, 890751299, 890882381, + 891013481, 891144563, 891275639, 891406721, 891537797, 891668929, 891800027, + 891931111, 892062203, 892193347, 892324421, 892455523, 892586623, 892717697, + 892848773, 892979869, 893110957, 893242039, 893373113, 893504189, 893635273, + 893766353, 893897441, 894028529, 894159613, 894290711, 894421807, 894552887, + 894683983, 894815087, 894946159, 895077233, 895208341, 895339433, 895470517, + 895601621, 895732697, 895863779, 895994851, 896125933, 896257009, 896388083, + 896519167, 896650253, 896781349, 896912431, 897043507, 897174583, 897305657, + 897436759, 897567833, 897698933, 897830041, 897961121, 898092193, 898223269, + 898354393, 898485481, 898616603, 898747679, 898878797, 899009869, 899140951, + 899272027, 899403157, 899534231, 899665321, 899796439, 899927513, 900058597, + 900189673, 900320761, 900451837, 900582959, 900714037, 900845123, 900976207, + 901107283, 901238441, 901369537, 901500623, 901631711, 901762811, 901893899, + 902024999, 902156093, 902287201, 902418287, 902549369, 902680459, 902811551, + 902942627, 903073747, 903204833, 903335933, 903467017, 903598117, 903729191, + 903860263, 903991351, 904122437, 904253509, 904384619, 904515743, 904646843, + 904777919, 904909009, 905040083, 905171159, 905302303, 905433383, 905564497, + 905695577, 905826659, 905957743, 906088823, 906219907, 906350981, 906482053, + 906613133, 906744217, 906875323, 907006411, 907137499, 907268611, 907399687, + 907530761, 907661849, 907792937, 907924009, 908055091, 908186173, 908317283, + 908448371, 908579453, 908710619, 908841707, 908972797, 909103873, 909234967, + 909366041, 909497117, 909628189, 909759269, 909890353, 910021439, 910152521, + 910283603, 910414721, 910545803, 910676909, 910807999, 910939079, 911070161, + 911201233, 911332339, 911463451, 911594527, 911725627, 911856713, 911987807, + 912118951, 912250037, 912381131, 912512219, 912643331, 912774413, 912905507, + 913036633, 913167751, 913298831, 913429927, 913561027, 913692103, 913823213, + 913954337, 914085433, 914216539, 914347613, 914478707, 914609797, 914740919, + 914872001, 915003079, 915134153, 915265271, 915396353, 915527441, 915658517, + 915789613, 915920701, 916051777, 916182859, 916313933, 916445011, 916576121, + 916707203, 916838287, 916969369, 917100451, 917231527, 917362601, 917493683, + 917624761, 917755843, 917886953, 918018043, 918149123, 918280289, 918411407, + 918542483, 918673573, 918804697, 918935777, 919066859, 919197931, 919329011, + 919460131, 919591207, 919722301, 919853387, 919984459, 920115571, 920246689, + 920377771, 920508851, 920639939, 920771023, 920902109, 921033181, 921164303, + 921295391, 921426487, 921557569, 921688661, 921819733, 921950839, 922081931, + 922213027, 922344131, 922475209, 922606297, 922737379, 922868459, 922999531, + 923130631, 923261711, 923392817, 923523889, 923654969, 923786057, 923917151, + 924048233, 924179317, 924310391, 924441481, 924572567, 924703651, 924834739, + 924965813, 925096889, 925227983, 925359091, 925490177, 925621273, 925752367, + 925883501, 926014591, 926145667, 926276761, 926407849, 926538937, 926670013, + 926801093, 926932169, 927063251, 927194329, 927325409, 927456493, 927587569, + 927718663, 927849757, 927980857, 928111963, 928243037, 928374113, 928505189, + 928636277, 928767349, 928898471, 929029597, 929160671, 929291801, 929422883, + 929553991, 929685091, 929816171, 929947253, 930078379, 930209459, 930340531, + 930471611, 930602711, 930733807, 930864899, 930995983, 931127063, 931258151, + 931389287, 931520417, 931651489, 931782571, 931913651, 932044727, 932175821, + 932306897, 932437973, 932569049, 932700127, 932831213, 932962297, 933093383, + 933224473, 933355603, 933486683, 933617761, 933748843, 933879923, 934011053, + 934142137, 934273217, 934404347, 934535431, 934666543, 934797691, 934928831, + 935059933, 935191009, 935322097, 935453219, 935584313, 935715413, 935846489, + 935977573, 936108697, 936239803, 936370913, 936502003, 936633109, 936764221, + 936895303, 937026469, 937157567, 937288657, 937419731, 937550821, 937681897, + 937812979, 937944053, 938075129, 938206201, 938337277, 938468359, 938599439, + 938730517, 938861639, 938992727, 939123803, 939254917, 939386027, 939517109, + 939648239, 939779371, 939910451, 940041527, 940172603, 940303691, 940434799, + 940565891, 940696997, 940828079, 940959157, 941090239, 941221319, 941352403, + 941483509, 941614603, 941745689, 941876791, 942007867, 942138991, 942270071, + 942401143, 942532223, 942663301, 942794387, 942925463, 943056547, 943187639, + 943318721, 943449809, 943580887, 943711991, 943843063, 943974151, 944105233, + 944236379, 944367467, 944498549, 944629649, 944760727, 944891839, 945022921, + 945154013, 945285101, 945416201, 945547279, 945678367, 945809441, 945940519, + 946071613, 946202689, 946333763, 946464877, 946595963, 946727057, 946858139, + 946989223, 947120299, 947251379, 947382461, 947513533, 947644613, 947775707, + 947906779, 948037919, 948169021, 948300131, 948431213, 948562291, 948693413, + 948824507, 948955607, 949086701, 949217849, 949348921, 949480019, 949611101, + 949742173, 949873247, 950004337, 950135443, 950266517, 950397593, 950528671, + 950659751, 950790847, 950921921, 951053029, 951184109, 951315193, 951446273, + 951577379, 951708469, 951839543, 951970631, 952101719, 952232839, 952363931, + 952495009, 952626089, 952757161, 952888241, 953019343, 953150423, 953281507, + 953412587, 953543677, 953674763, 953805847, 953936927, 954068081, 954199159, + 954330259, 954461341, 954592421, 954723557, 954854651, 954985723, 955116803, + 955247879, 955378967, 955510081, 955641173, 955772261, 955903337, 956034427, + 956165513, 956296589, 956427673, 956558747, 956689819, 956820913, 956951993, + 957083089, 957214177, 957345251, 957476369, 957607477, 957738581, 957869657, + 958000739, 958131817, 958262909, 958393999, 958525079, 958656157, 958787273, + 958918351, 959049431, 959180513, 959311597, 959442683, 959573807, 959704901, + 959835973, 959967059, 960098201, 960229313, 960360389, 960491491, 960622583, + 960753667, 960884791, 961015883, 961146961, 961278037, 961409117, 961540273, + 961671353, 961802453, 961933529, 962064613, 962195711, 962326811, 962457883, + 962588969, 962720123, 962851199, 962982277, 963113381, 963244459, 963375557, + 963506641, 963637721, 963768809, 963899897, 964030979, 964162097, 964293173, + 964424269, 964555357, 964686431, 964817519, 964948603, 965079691, 965210833, + 965341919, 965472997, 965604071, 965735143, 965866219, 965997299, 966128389, + 966259471, 966390587, 966521669, 966652741, 966783827, 966914929, 967046033, + 967177157, 967308229, 967439381, 967570469, 967701577, 967832687, 967963811, + 968094887, 968225971, 968357051, 968488139, 968619241, 968750339, 968881427, + 969012503, 969143603, 969274699, 969405797, 969536899, 969668023, 969799099, + 969930193, 970061291, 970192387, 970323481, 970454587, 970585663, 970716737, + 970847809, 970978927, 971110001, 971241091, 971372189, 971503261, 971634343, + 971765453, 971896547, 972027643, 972158797, 972289889, 972420983, 972552121, + 972683213, 972814303, 972945401, 973076473, 973207553, 973338637, 973469713, + 973600799, 973731877, 973862959, 973994089, 974125169, 974256253, 974387329, + 974518451, 974649527, 974780627, 974911703, 975042799, 975173891, 975304963, + 975436039, 975567133, 975698209, 975829297, 975960373, 976091461, 976222537, + 976353661, 976484749, 976615823, 976746919, 976878053, 977009129, 977140217, + 977271341, 977402443, 977533517, 977664599, 977795671, 977926753, 978057877, + 978188969, 978320053, 978451127, 978582211, 978713293, 978844367, 978975457, + 979106539, 979237613, 979368701, 979499789, 979630871, 979761943, 979893017, + 980024093, 980155219, 980286311, 980417393, 980548469, 980679551, 980810627, + 980941699, 981072791, 981203879, 981334967, 981466043, 981597121, 981728239, + 981859313, 981990407, 982121521, 982252597, 982383749, 982514839, 982645921, + 982777009, 982908097, 983039173, 983170271, 983301367, 983432447, 983563523, + 983694641, 983825741, 983956823, 984087899, 984218993, 984350111, 984481207, + 984612301, 984743423, 984874507, 985005587, 985136671, 985267753, 985398839, + 985529911, 985660987, 985792111, 985923199, 986054287, 986185373, 986316449, + 986447533, 986578609, 986709701, 986840839, 986971919, 987103001, 987234103, + 987365207, 987496297, 987627379, 987758477, 987889561, 988020661, 988151777, + 988282849, 988413997, 988545097, 988676179, 988807289, 988938397, 989069573, + 989200649, 989331757, 989462839, 989593933, 989725031, 989856103, 989987213, + 990118313, 990249401, 990380473, 990511589, 990642689, 990773761, 990904841, + 991035971, 991167059, 991298173, 991429249, 991560331, 991691417, 991822541, + 991953619, 992084701, 992215793, 992346869, 992477951, 992609041, 992740127, + 992871203, 993002287, 993133367, 993264443, 993395521, 993526609, 993657683, + 993788767, 993919873, 994050997, 994182073, 994313167, 994444271, 994575343, + 994706437, 994837531, 994968631, 995099713, 995230837, 995361923, 995493001, + 995624089, 995755181, 995886263, 996017357, 996148441, 996279517, 996410593, + 996541673, 996672751, 996803837, 996934933, 997066027, 997197127, 997328201, + 997459273, 997590367, 997721471, 997852577, 997983661, 998114791, 998245867, + 998376943, 998508023, 998639101, 998770177, 998901257, 999032389, 999163463, + 999294553, 999425627, 999556699, 999687781, 999818863, 999949939, 1000081013, + 1000212107, 1000343191, 1000474297, 1000605377, 1000736449, 1000867531, 1000998613, + 1001129687, 1001260759, 1001391847, 1001522987, 1001654063, 1001785153, 1001916241, + 1002047341, 1002178423, 1002309499, 1002440573, 1002571657, 1002702731, 1002833803, + 1002964877, 1003095953, 1003227067, 1003358149, 1003489231, 1003620311, 1003751407, + 1003882489, 1004013581, 1004144681, 1004275781, 1004406853, 1004537929, 1004669047, + 1004800127, 1004931227, 1005062327, 1005193411, 1005324491, 1005455573, 1005586651, + 1005717731, 1005848803, 1005979937, 1006111019, 1006242091, 1006373183, 1006504259, + 1006635337, 1006766413, 1006897517, 1007028599, 1007159687, 1007290763, 1007421907, + 1007552993, 1007684081, 1007815153, 1007946239, 1008077347, 1008208441, 1008339523, + 1008470599, 1008601673, 1008732793, 1008863873, 1008994951, 1009126031, 1009257169, + 1009388251, 1009519327, 1009650409, 1009781483, 1009912571, 1010043653, 1010174741, + 1010305837, 1010436913, 1010567993, 1010699099, 1010830181, 1010961271, 1011092347, + 1011223469, 1011354569, 1011485663, 1011616747, 1011747823, 1011878909, 1012009991, + 1012141069, 1012272143, 1012403219, 1012534343, 1012665419, 1012796507, 1012927583, + 1013058689, 1013189797, 1013320877, 1013451949, 1013583047, 1013714137, 1013845219, + 1013976307, 1014107417, 1014238531, 1014369611, 1014500689, 1014631763, 1014762839, + 1014893923, 1015025003, 1015156081, 1015287181, 1015418291, 1015549391, 1015680467, + 1015811561, 1015942657, 1016073791, 1016204909, 1016335987, 1016467061, 1016598133, + 1016729243, 1016860319, 1016991403, 1017122543, 1017253621, 1017384727, 1017515833, + 1017646921, 1017778001, 1017909073, 1018040147, 1018171229, 1018302319, 1018433411, + 1018564487, 1018695569, 1018826657, 1018957729, 1019088809, 1019219893, 1019350967, + 1019482043, 1019613121, 1019744233, 1019875327, 1020006439, 1020137549, 1020268649, + 1020399773, 1020530857, 1020661933, 1020793027, 1020924197, 1021055303, 1021186391, + 1021317491, 1021448563, 1021579693, 1021710779, 1021841867, 1021972957, 1022104033, + 1022235113, 1022366221, 1022497321, 1022628401, 1022759477, 1022890597, 1023021673, + 1023152747, 1023283829, 1023414913, 1023545987, 1023677059, 1023808151, 1023939239, + 1024070323, 1024201429, 1024332511, 1024463591, 1024594693, 1024725769, 1024856851, + 1024987933, 1025119013, 1025250101, 1025381191, 1025512273, 1025643361, 1025774437, + 1025905571, 1026036707, 1026167783, 1026298877, 1026429953, 1026561049, 1026692263, + 1026823351, 1026954431, 1027085509, 1027216601, 1027347697, 1027478831, 1027609907, + 1027740991, 1027872103, 1028003191, 1028134267, 1028265341, 1028396431, 1028527531, + 1028658643, 1028789759, 1028920843, 1029051931, 1029183011, 1029314087, 1029445169, + 1029576257, 1029707339, 1029838421, 1029969517, 1030100641, 1030231717, 1030362833, + 1030493911, 1030625033, 1030756141, 1030887217, 1031018291, 1031149387, 1031280479, + 1031411551, 1031542627, 1031673733, 1031804831, 1031935909, 1032066989, 1032198107, + 1032329209, 1032460307, 1032591403, 1032722491, 1032853579, 1032984661, 1033115761, + 1033246843, 1033377937, 1033509019, 1033640107, 1033771243, 1033902329, 1034033411, + 1034164511, 1034295617, 1034426801, 1034557873, 1034688983, 1034820067, 1034951189, + 1035082267, 1035213353, 1035344437, 1035475513, 1035606619, 1035737693, 1035868787, + 1035999883, 1036130957, 1036262057, 1036393129, 1036524259, 1036655341, 1036786423, + 1036917569, 1037048641, 1037179721, 1037310797, 1037441891, 1037572967, 1037704043, + 1037835121, 1037966201, 1038097331, 1038228407, 1038359521, 1038490597, 1038621671, + 1038752773, 1038883847, 1039014919, 1039146001, 1039277087, 1039408187, 1039539283, + 1039670381, 1039801463, 1039932539, 1040063641, 1040194733, 1040325827, 1040456941, + 1040588027, 1040719123, 1040850221, 1040981297, 1041112379, 1041243461, 1041374533, + 1041505631, 1041636707, 1041767801, 1041898883, 1042029983, 1042161089, 1042292197, + 1042423309, 1042554431, 1042685503, 1042816583, 1042947679, 1043078767, 1043209841, + 1043340919, 1043471993, 1043603131, 1043734231, 1043865307, 1043996389, 1044127477, + 1044258559, 1044389651, 1044520733, 1044651869, 1044782953, 1044914041, 1045045129, + 1045176203, 1045307279, 1045438379, 1045569493, 1045700573, 1045831651, 1045962727, + 1046093801, 1046224889, 1046355977, 1046487053, 1046618129, 1046749217, 1046880311, + 1047011387, 1047142471, 1047273611, 1047404711, 1047535799, 1047666901, 1047797983, + 1047929081, 1048060157, 1048191233, 1048322309, 1048453381, 1048584473, 1048715573, + 1048846691, 1048977779, 1049108857, 1049239931, 1049371051, 1049502127, 1049633213, + 1049764291, 1049895403, 1050026477, 1050157571, 1050288671, 1050419743, 1050550817, + 1050681913, 1050813007, 1050944161, 1051075237, 1051206341, 1051337447, 1051468519, + 1051599613, 1051730699, 1051861777, 1051992923, 1052124037, 1052255161, 1052386253, + 1052517337, 1052648453, 1052779543, 1052910619, 1053041767, 1053172843, 1053303941, + 1053435043, 1053566117, 1053697217, 1053828337, 1053959419, 1054090501, 1054221577, + 1054352653, 1054483739, 1054614851, 1054745933, 1054877009, 1055008109, 1055139269, + 1055270351, 1055401441, 1055532571, 1055663647, 1055794723, 1055925797, 1056056887, + 1056187961, 1056319049, 1056450137, 1056581231, 1056712309, 1056843427, 1056974531, + 1057105607, 1057236707, 1057367783, 1057498859, 1057629931, 1057761017, 1057892117, + 1058023201, 1058154283, 1058285357, 1058416433, 1058547509, 1058678617, 1058809699, + 1058940793, 1059071873, 1059202967, 1059334061, 1059465151, 1059596273, 1059727373, + 1059858467, 1059989551, 1060120627, 1060251713, 1060382797, 1060513871, 1060644967, + 1060776043, 1060907129, 1061038211, 1061169353, 1061300441, 1061431517, 1061562617, + 1061693701, 1061824781, 1061955877, 1062086969, 1062218063, 1062349153, 1062480257, + 1062611351, 1062742423, 1062873569, 1063004641, 1063135721, 1063266803, 1063397879, + 1063528981, 1063660067, 1063791149, 1063922227, 1064053321, 1064184409, 1064315491, + 1064446577, 1064577649, 1064708747, 1064839843, 1064970937, 1065102041, 1065233123, + 1065364243, 1065495317, 1065626389, 1065757471, 1065888583, 1066019677, 1066150777, + 1066281877, 1066412951, 1066544023, 1066675111, 1066806197, 1066937273, 1067068363, + 1067199443, 1067330531, 1067461613, 1067592731, 1067723803, 1067854883, 1067986001, + 1068117077, 1068248149, 1068379223, 1068510319, 1068641401, 1068772489, 1068903581, + 1069034657, 1069165763, 1069296847, 1069427929, 1069559059, 1069690147, 1069821251, + 1069952333, 1070083429, 1070214527, 1070345599, 1070476697, 1070607779, 1070738857, + 1070869937, 1071001027, 1071132137, 1071263209, 1071394283, 1071525359, 1071656431, + 1071787531, 1071918623, 1072049701, 1072180777, 1072311869, 1072442957, 1072574051, + 1072705129, 1072836239, 1072967341, 1073098423, 1073229523, 1073360623, 1073491711, + 1073622791, 1073753887, 1073885023, 1074016121, 1074147203, 1074278299, 1074409393, + 1074540487, 1074671567, 1074802639, 1074933719, 1075064807, 1075195879, 1075326961, + 1075458053, 1075589129, 1075720211, 1075851323, 1075982417, 1076113501, 1076244581, + 1076375653, 1076506729, 1076637817, 1076768923, 1076900029, 1077031103, 1077162179, + 1077293257, 1077424331, 1077555431, 1077686539, 1077817613, 1077948727, 1078079809, + 1078210897, 1078341973, 1078473073, 1078604147, 1078735219, 1078866311, 1078997389, + 1079128469, 1079259553, 1079390647, 1079521733, 1079652811, 1079783911, 1079914991, + 1080046069, 1080177169, 1080308249, 1080439343, 1080570419, 1080701497, 1080832589, + 1080963691, 1081094767, 1081225861, 1081356953, 1081488029, 1081619129, 1081750207, + 1081881293, 1082012369, 1082143481, 1082274619, 1082405711, 1082536789, 1082667869, + 1082798947, 1082930027, 1083061117, 1083192191, 1083323281, 1083454369, 1083585449, + 1083716533, 1083847621, 1083978697, 1084109779, 1084240867, 1084371941, 1084503031, + 1084634113, 1084765229, 1084896301, 1085027393, 1085158471, 1085289553, 1085420627, + 1085551703, 1085682803, 1085813887, 1085944963, 1086076037, 1086207119, 1086338249, + 1086469327, 1086600413, 1086731489, 1086862577, 1086993673, 1087124791, 1087255877, + 1087386961, 1087518049, 1087649179, 1087780259, 1087911371, 1088042479, 1088173561, + 1088304641, 1088435713, 1088566799, 1088697881, 1088829059, 1088960141, 1089091243, + 1089222331, 1089353407, 1089484541, 1089615613, 1089746711, 1089877787, 1090008889, + 1090139983, 1090271069, 1090402163, 1090533239, 1090664317, 1090795397, 1090926491, + 1091057563, 1091188643, 1091319721, 1091450797, 1091581913, 1091712991, 1091844073, + 1091975149, 1092106237, 1092237313, 1092368413, 1092499549, 1092630641, 1092761729, + 1092892819, 1093023977, 1093155053, 1093286147, 1093417219, 1093548299, 1093679393, + 1093810469, 1093941559, 1094072653, 1094203729, 1094334817, 1094465891, 1094596981, + 1094728069, 1094859149, 1094990269, 1095121387, 1095252481, 1095383567, 1095514649, + 1095645721, 1095776813, 1095907889, 1096038961, 1096170067, 1096301189, 1096432279, + 1096563361, 1096694437, 1096825519, 1096956593, 1097087699, 1097218781, 1097349853, + 1097480933, 1097612011, 1097743117, 1097874191, 1098005267, 1098136367, 1098267463, + 1098398537, 1098529639, 1098660733, 1098791819, 1098922901, 1099053973, 1099185053, + 1099316129, 1099447213, 1099578287, 1099709371, 1099840451, 1099971533, 1100102651, + 1100233747, 1100364829, 1100495933, 1100627051, 1100758123, 1100889199, 1101020287, + 1101151361, 1101282433, 1101413507, 1101544579, 1101675661, 1101806747, 1101937819, + 1102068893, 1102199983, 1102331059, 1102462139, 1102593221, 1102724303, 1102855387, + 1102986473, 1103117549, 1103248621, 1103379703, 1103510797, 1103641873, 1103773019, + 1103904091, 1104035173, 1104166289, 1104297377, 1104428471, 1104559553, 1104690637, + 1104821723, 1104952801, 1105083883, 1105214987, 1105346083, 1105477169, 1105608289, + 1105739417, 1105870499, 1106001583, 1106132711, 1106263793, 1106394869, 1106525957, + 1106657077, 1106788169, 1106919259, 1107050369, 1107181441, 1107312541, 1107443627, + 1107574703, 1107705791, 1107836879, 1107967951, 1108099067, 1108230143, 1108361251, + 1108492339, 1108623421, 1108754509, 1108885643, 1109016739, 1109147839, 1109278927, + 1109410067, 1109541161, 1109672261, 1109803381, 1109934479, 1110065591, 1110196667, + 1110327767, 1110458863, 1110589967, 1110721043, 1110852121, 1110983197, 1111114283, + 1111245413, 1111376509, 1111507589, 1111638683, 1111769767, 1111900849, 1112031967, + 1112163049, 1112294129, 1112425207, 1112556287, 1112687419, 1112818493, 1112949581, + 1113080663, 1113211739, 1113342847, 1113473923, 1113605011, 1113736103, 1113867197, + 1113998269, 1114129349, 1114260463, 1114391543, 1114522657, 1114653731, 1114784837, + 1114916021, 1115047093, 1115178167, 1115309287, 1115440379, 1115571451, 1115702557, + 1115833637, 1115964709, 1116095837, 1116226913, 1116357997, 1116489103, 1116620179, + 1116751291, 1116882373, 1117013459, 1117144543, 1117275641, 1117406789, 1117537901, + 1117668997, 1117800083, 1117931161, 1118062237, 1118193313, 1118324387, 1118455489, + 1118586569, 1118717683, 1118848769, 1118979857, 1119110929, 1119242009, 1119373081, + 1119504161, 1119635261, 1119766337, 1119897497, 1120028579, 1120159661, 1120290763, + 1120421837, 1120552913, 1120683997, 1120815071, 1120946201, 1121077313, 1121208419, + 1121339521, 1121470607, 1121601737, 1121732837, 1121863909, 1121995009, 1122126091, + 1122257179, 1122388271, 1122519397, 1122650491, 1122781579, 1122912689, 1123043767, + 1123174859, 1123305943, 1123437019, 1123568107, 1123699189, 1123830269, 1123961351, + 1124092429, 1124223511, 1124354587, 1124485673, 1124616749, 1124747891, 1124878987, + 1125010087, 1125141161, 1125272233, 1125403313, 1125534439, 1125665539, 1125796613, + 1125927701, 1126058803, 1126189879, 1126320997, 1126452097, 1126583209, 1126714289, + 1126845403, 1126976503, 1127107577, 1127238653, 1127369753, 1127500859, 1127631959, + 1127763037, 1127894153, 1128025289, 1128156373, 1128287453, 1128418567, 1128549649, + 1128680723, 1128811807, 1128942901, 1129073987, 1129205089, 1129336189, 1129467271, + 1129598357, 1129729429, 1129860521, 1129991623, 1130122699, 1130253827, 1130384929, + 1130516021, 1130647093, 1130778211, 1130909293, 1131040373, 1131171467, 1131302603, + 1131433703, 1131564869, 1131695947, 1131827101, 1131958181, 1132089263, 1132220339, + 1132351421, 1132482499, 1132613609, 1132744699, 1132875773, 1133006867, 1133137961, + 1133269037, 1133400119, 1133531227, 1133662337, 1133793413, 1133924551, 1134055631, + 1134186707, 1134317783, 1134448859, 1134579959, 1134711041, 1134842129, 1134973211, + 1135104293, 1135235371, 1135366447, 1135497529, 1135628609, 1135759693, 1135890779, + 1136021851, 1136152943, 1136284049, 1136415131, 1136546209, 1136677291, 1136808371, + 1136939459, 1137070531, 1137201629, 1137332711, 1137463783, 1137594877, 1137725957, + 1137857057, 1137988141, 1138119221, 1138250293, 1138381373, 1138512449, 1138643549, + 1138774627, 1138905709, 1139036809, 1139167907, 1139298991, 1139430091, 1139561183, + 1139692273, 1139823359, 1139954441, 1140085517, 1140216589, 1140347683, 1140478783, + 1140609871, 1140740971, 1140872099, 1141003177, 1141134271, 1141265371, 1141396447, + 1141527529, 1141658633, 1141789709, 1141920803, 1142051881, 1142182991, 1142314081, + 1142445173, 1142576261, 1142707333, 1142838419, 1142969501, 1143100573, 1143231667, + 1143362741, 1143493817, 1143624917, 1143756013, 1143887089, 1144018171, 1144149269, + 1144280341, 1144411481, 1144542589, 1144673669, 1144804819, 1144935893, 1145066971, + 1145198051, 1145329127, 1145460203, 1145591281, 1145722367, 1145853439, 1145984513, + 1146115591, 1146246671, 1146377747, 1146508819, 1146639913, 1146770993, 1146902083, + 1147033169, 1147164247, 1147295323, 1147426403, 1147557529, 1147688611, 1147819693, + 1147950767, 1148081839, 1148212931, 1148344003, 1148475091, 1148606167, 1148737313, + 1148868407, 1148999497, 1149130573, 1149261647, 1149392773, 1149523849, 1149654953, + 1149786037, 1149917143, 1150048223, 1150179301, 1150310377, 1150441451, 1150572523, + 1150703611, 1150834709, 1150965797, 1151096873, 1151227951, 1151359039, 1151490113, + 1151621197, 1151752271, 1151883361, 1152014443, 1152145517, 1152276611, 1152407687, + 1152538781, 1152669857, 1152800947, 1152932029, 1153063111, 1153194187, 1153325263, + 1153456357, 1153587493, 1153718567, 1153849657, 1153980749, 1154111863, 1154242939, + 1154374033, 1154505127, 1154636201, 1154767277, 1154898359, 1155029441, 1155160519, + 1155291619, 1155422711, 1155553783, 1155684863, 1155815939, 1155947017, 1156078093, + 1156209169, 1156340257, 1156471333, 1156602407, 1156733483, 1156864559, 1156995647, + 1157126759, 1157257859, 1157388941, 1157520019, 1157651119, 1157782201, 1157913283, + 1158044383, 1158175477, 1158306551, 1158437627, 1158568703, 1158699791, 1158830887, + 1158961963, 1159093087, 1159224161, 1159355261, 1159486337, 1159617409, 1159748501, + 1159879579, 1160010689, 1160141777, 1160272849, 1160403931, 1160535023, 1160666123, + 1160797223, 1160928299, 1161059401, 1161190519, 1161321593, 1161452687, 1161583771, + 1161714877, 1161845963, 1161977041, 1162108139, 1162239223, 1162370299, 1162501381, + 1162632481, 1162763573, 1162894669, 1163025761, 1163156843, 1163287919, 1163419003, + 1163550121, 1163681203, 1163812277, 1163943349, 1164074423, 1164205499, 1164336577, + 1164467677, 1164598783, 1164729859, 1164860947, 1164992071, 1165123153, 1165254227, + 1165385339, 1165516423, 1165647503, 1165778629, 1165909727, 1166040809, 1166171887, + 1166302967, 1166434043, 1166565121, 1166696203, 1166827303, 1166958427, 1167089501, + 1167220589, 1167351667, 1167482741, 1167613817, 1167744889, 1167875971, 1168007053, + 1168138133, 1168269229, 1168400357, 1168531459, 1168662533, 1168793609, 1168924693, + 1169055773, 1169186861, 1169317937, 1169449009, 1169580103, 1169711273, 1169842393, + 1169973529, 1170104633, 1170235711, 1170366793, 1170497921, 1170629003, 1170760079, + 1170891151, 1171022263, 1171153351, 1171284427, 1171415519, 1171546613, 1171677701, + 1171808777, 1171939849, 1172070973, 1172202077, 1172333167, 1172464247, 1172595329, + 1172726431, 1172857507, 1172988623, 1173119711, 1173250783, 1173381857, 1173512933, + 1173644009, 1173775093, 1173906197, 1174037279, 1174168351, 1174299449, 1174430549, + 1174561643, 1174692719, 1174823801, 1174954883, 1175085959, 1175217041, 1175348137, + 1175479247, 1175610329, 1175741401, 1175872487, 1176003571, 1176134671, 1176265759, + 1176396877, 1176527951, 1176659023, 1176790123, 1176921209, 1177052281, 1177183373, + 1177314487, 1177445569, 1177576643, 1177707721, 1177838821, 1177969921, 1178101007, + 1178232089, 1178363203, 1178494277, 1178625367, 1178756443, 1178887531, 1179018613, + 1179149687, 1179280783, 1179411859, 1179542957, 1179674051, 1179805127, 1179936203, + 1180067281, 1180198363, 1180329461, 1180460539, 1180591613, 1180722713, 1180853797, + 1180984873, 1181115967, 1181247059, 1181378137, 1181509223, 1181640307, 1181771389, + 1181902517, 1182033637, 1182164713, 1182295789, 1182426863, 1182557947, 1182689023, + 1182820099, 1182951193, 1183082267, 1183213373, 1183344473, 1183475549, 1183606637, + 1183737719, 1183868843, 1183999931, 1184131009, 1184262083, 1184393191, 1184524279, + 1184655371, 1184786453, 1184917541, 1185048637, 1185179761, 1185310853, 1185441989, + 1185573101, 1185704197, 1185835297, 1185966403, 1186097501, 1186228583, 1186359701, + 1186490783, 1186621861, 1186752971, 1186884079, 1187015197, 1187146273, 1187277359, + 1187408447, 1187539559, 1187670637, 1187801711, 1187932787, 1188063859, 1188194981, + 1188326071, 1188457159, 1188588257, 1188719353, 1188850433, 1188981517, 1189112593, + 1189243673, 1189374751, 1189505831, 1189636991, 1189768067, 1189899199, 1190030279, + 1190161361, 1190292469, 1190423573, 1190554663, 1190685739, 1190816827, 1190947907, + 1191079009, 1191210101, 1191341183, 1191472267, 1191603349, 1191734461, 1191865553, + 1191996671, 1192127747, 1192258831, 1192389923, 1192520999, 1192652081, 1192783181, + 1192914269, 1193045341, 1193176469, 1193307569, 1193438669, 1193569753, 1193700829, + 1193831923, 1193962997, 1194094091, 1194225167, 1194356239, 1194487321, 1194618401, + 1194749473, 1194880559, 1195011641, 1195142719, 1195273829, 1195404901, 1195535989, + 1195667063, 1195798171, 1195929247, 1196060353, 1196191439, 1196322511, 1196453593, + 1196584687, 1196715761, 1196846873, 1196977993, 1197109091, 1197240169, 1197371243, + 1197502343, 1197633431, 1197764507, 1197895607, 1198026689, 1198157761, 1198288859, + 1198419931, 1198551019, 1198682113, 1198813243, 1198944317, 1199075393, 1199206487, + 1199337571, 1199468687, 1199599759, 1199730871, 1199861959, 1199993033, 1200124127, + 1200255211, 1200386321, 1200517459, 1200648541, 1200779639, 1200910717, 1201041841, + 1201172957, 1201304063, 1201435139, 1201566229, 1201697317, 1201828393, 1201959481, + 1202090567, 1202221667, 1202352779, 1202483851, 1202614951, 1202746031, 1202877103, + 1203008201, 1203139279, 1203270371, 1203401443, 1203532529, 1203663619, 1203794707, + 1203925783, 1204056871, 1204188017, 1204319101, 1204450183, 1204581289, 1204712371, + 1204843487, 1204974559, 1205105633, 1205236717, 1205367791, 1205498869, 1205629979, + 1205761061, 1205892151, 1206023227, 1206154309, 1206285383, 1206416467, 1206547543, + 1206678617, 1206809693, 1206940783, 1207071871, 1207202947, 1207334027, 1207465139, + 1207596223, 1207727329, 1207858411, 1207989487, 1208120569, 1208251643, 1208382719, + 1208513807, 1208644889, 1208775961, 1208907061, 1209038177, 1209169249, 1209300331, + 1209431437, 1209562517, 1209693593, 1209824699, 1209955781, 1210086853, 1210217927, + 1210349009, 1210480171, 1210611263, 1210742359, 1210873483, 1211004583, 1211135699, + 1211266781, 1211397857, 1211528993, 1211660069, 1211791153, 1211922251, 1212053327, + 1212184399, 1212315491, 1212446581, 1212577661, 1212708733, 1212839869, 1212970949, + 1213102027, 1213233121, 1213364197, 1213495273, 1213626431, 1213757527, 1213888649, + 1214019739, 1214150813, 1214281919, 1214413033, 1214544109, 1214675207, 1214806289, + 1214937389, 1215068473, 1215199561, 1215330661, 1215461761, 1215592841, 1215723913, + 1215854993, 1215986071, 1216117159, 1216248233, 1216379369, 1216510441, 1216641529, + 1216772617, 1216903759, 1217034853, 1217165947, 1217297021, 1217428103, 1217559181, + 1217690291, 1217821399, 1217952473, 1218083551, 1218214661, 1218345769, 1218476851, + 1218607937, 1218739009, 1218870089, 1219001177, 1219132289, 1219263377, 1219394497, + 1219525579, 1219656671, 1219787747, 1219918837, 1220049977, 1220181097, 1220312201, + 1220443307, 1220574379, 1220705459, 1220836549, 1220967667, 1221098771, 1221229843, + 1221360961, 1221492037, 1221623131, 1221754213, 1221885289, 1222016399, 1222147499, + 1222278583, 1222409687, 1222540763, 1222671839, 1222802929, 1222934017, 1223065117, + 1223196211, 1223327297, 1223458373, 1223589449, 1223720521, 1223851667, 1223982757, + 1224113851, 1224244979, 1224376067, 1224507139, 1224638213, 1224769289, 1224900367, + 1225031443, 1225162567, 1225293659, 1225424731, 1225555813, 1225686899, 1225817981, + 1225949069, 1226080181, 1226211269, 1226342357, 1226473433, 1226604517, 1226735603, + 1226866717, 1226997803, 1227128879, 1227259973, 1227391063, 1227522143, 1227653309, + 1227784391, 1227915463, 1228046549, 1228177627, 1228308707, 1228439791, 1228570867, + 1228701959, 1228833043, 1228964161, 1229095247, 1229226331, 1229357411, 1229488493, + 1229619569, 1229750651, 1229881789, 1230012863, 1230143947, 1230275027, 1230406117, + 1230537233, 1230668317, 1230799397, 1230930469, 1231061549, 1231192631, 1231323721, + 1231454813, 1231585931, 1231717021, 1231848097, 1231979173, 1232110267, 1232241341, + 1232372461, 1232503541, 1232634659, 1232765783, 1232896859, 1233027931, 1233159017, + 1233290089, 1233421181, 1233552253, 1233683329, 1233814409, 1233945491, 1234076567, + 1234207649, 1234338727, 1234469801, 1234600903, 1234731997, 1234863089, 1234994191, + 1235125271, 1235256371, 1235387453, 1235518561, 1235649647, 1235780743, 1235911819, + 1236043019, 1236174109, 1236305209, 1236436283, 1236567359, 1236698461, 1236829549, + 1236960649, 1237091743, 1237222849, 1237353937, 1237485037, 1237616147, 1237747241, + 1237878319, 1238009407, 1238140489, 1238271571, 1238402647, 1238533763, 1238664857, + 1238796011, 1238927089, 1239058187, 1239189269, 1239320351, 1239451489, 1239582569, + 1239713659, 1239844733, 1239975817, 1240106921, 1240238029, 1240369127, 1240500211, + 1240631297, 1240762373, 1240893481, 1241024557, 1241155631, 1241286731, 1241417813, + 1241549011, 1241680123, 1241811203, 1241942281, 1242073367, 1242204443, 1242335527, + 1242466609, 1242597683, 1242728761, 1242859861, 1242990943, 1243122017, 1243253101, + 1243384183, 1243515257, 1243646351, 1243777439, 1243908521, 1244039609, 1244170727, + 1244301809, 1244432909, 1244563987, 1244695063, 1244826137, 1244957213, 1245088319, + 1245219401, 1245350531, 1245481631, 1245612703, 1245743813, 1245874901, 1246005977, + 1246137071, 1246268143, 1246399229, 1246530301, 1246661413, 1246792501, 1246923577, + 1247054671, 1247185757, 1247316871, 1247447953, 1247579027, 1247710099, 1247841197, + 1247972281, 1248103393, 1248234467, 1248365563, 1248496637, 1248627719, 1248758809, + 1248889883, 1249020967, 1249152049, 1249283137, 1249414237, 1249545343, 1249676437, + 1249807529, 1249938601, 1250069707, 1250200793, 1250331869, 1250462947, 1250594039, + 1250725123, 1250856199, 1250987281, 1251118369, 1251249443, 1251380519, 1251511669, + 1251642751, 1251773833, 1251904921, 1252036001, 1252167073, 1252298161, 1252429301, + 1252560403, 1252691483, 1252822567, 1252953643, 1253084783, 1253215861, 1253346959, + 1253478067, 1253609141, 1253740217, 1253871293, 1254002377, 1254133457, 1254264533, + 1254395627, 1254526709, 1254657839, 1254788917, 1254920003, 1255051079, 1255182163, + 1255313243, 1255444321, 1255575403, 1255706489, 1255837573, 1255968673, 1256099749, + 1256230837, 1256361929, 1256493037, 1256624137, 1256755211, 1256886311, 1257017387, + 1257148469, 1257279559, 1257410659, 1257541739, 1257672893, 1257803969, 1257935053, + 1258066129, 1258197203, 1258328297, 1258459369, 1258590449, 1258721543, 1258852717, + 1258983823, 1259114947, 1259246029, 1259377109, 1259508191, 1259639263, 1259770349, + 1259901427, 1260032507, 1260163601, 1260294691, 1260425767, 1260556853, 1260687931, + 1260819017, 1260950101, 1261081177, 1261212259, 1261343351, 1261474439, 1261605523, + 1261736633, 1261867757, 1261998841, 1262129917, 1262260997, 1262392093, 1262523167, + 1262654251, 1262785327, 1262916419, 1263047519, 1263178597, 1263309683, 1263440771, + 1263571843, 1263702917, 1263833993, 1263965089, 1264096187, 1264227311, 1264358419, + 1264489511, 1264620593, 1264751681, 1264882783, 1265013859, 1265144939, 1265276011, + 1265407093, 1265538227, 1265669299, 1265800373, 1265931463, 1266062543, 1266193619, + 1266324691, 1266455767, 1266586843, 1266717917, 1266849019, 1266980149, 1267111249, + 1267242329, 1267373423, 1267504531, 1267635643, 1267766719, 1267897823, 1268028913, + 1268159989, 1268291071, 1268422151, 1268553229, 1268684311, 1268815393, 1268946473, + 1269077581, 1269208679, 1269339751, 1269470833, 1269601913, 1269733027, 1269864133, + 1269995219, 1270126301, 1270257377, 1270388467, 1270519541, 1270650649, 1270781753, + 1270912837, 1271043937, 1271175013, 1271306107, 1271437199, 1271568283, 1271699369, + 1271830477, 1271961553, 1272092651, 1272223723, 1272354827, 1272485933, 1272617033, + 1272748111, 1272879229, 1273010341, 1273141421, 1273272503, 1273403611, 1273534729, + 1273665803, 1273796903, 1273928003, 1274059081, 1274190161, 1274321267, 1274452351, + 1274583439, 1274714527, 1274845601, 1274976691, 1275107819, 1275238897, 1275369989, + 1275501083, 1275632161, 1275763261, 1275894359, 1276025431, 1276156517, 1276287599, + 1276418677, 1276549787, 1276680859, 1276811941, 1276943027, 1277074159, 1277205233, + 1277336383, 1277467481, 1277598571, 1277729737, 1277860813, 1277991893, 1278122981, + 1278254099, 1278385183, 1278516269, 1278647347, 1278778421, 1278909493, 1279040569, + 1279171667, 1279302793, 1279433867, 1279564991, 1279696091, 1279827173, 1279958261, + 1280089339, 1280220433, 1280351519, 1280482591, 1280613667, 1280744747, 1280875847, + 1281006989, 1281138107, 1281269179, 1281400271, 1281531367, 1281662467, 1281793543, + 1281924653, 1282055737, 1282186811, 1282317893, 1282448969, 1282580053, 1282711187, + 1282842269, 1282973389, 1283104469, 1283235563, 1283366639, 1283497711, 1283628791, + 1283759923, 1283891023, 1284022111, 1284153217, 1284284291, 1284415367, 1284546451, + 1284677543, 1284808619, 1284939749, 1285070879, 1285201969, 1285333043, 1285464127, + 1285595249, 1285726331, 1285857403, 1285988503, 1286119591, 1286250683, 1286381791, + 1286512891, 1286643977, 1286775107, 1286906191, 1287037303, 1287168397, 1287299477, + 1287430567, 1287561647, 1287692741, 1287823841, 1287954949, 1288086091, 1288217167, + 1288348253, 1288479431, 1288610509, 1288741613, 1288872691, 1289003783, 1289134921, + 1289266003, 1289397103, 1289528203, 1289659291, 1289790377, 1289921519, 1290052591, + 1290183667, 1290314741, 1290445823, 1290576899, 1290708007, 1290839129, 1290970217, + 1291101293, 1291232417, 1291363499, 1291494587, 1291625663, 1291756793, 1291887887, + 1292018983, 1292150099, 1292281183, 1292412283, 1292543363, 1292674463, 1292805557, + 1292936633, 1293067723, 1293198901, 1293330001, 1293461083, 1293592171, 1293723253, + 1293854327, 1293985411, 1294116493, 1294247573, 1294378669, 1294509757, 1294640849, + 1294771921, 1294902997, 1295034079, 1295165159, 1295296237, 1295427323, 1295558437, + 1295689513, 1295820593, 1295951689, 1296082783, 1296213857, 1296344941, 1296476021, + 1296607097, 1296738169, 1296869257, 1297000333, 1297131413, 1297262497, 1297393577, + 1297524653, 1297655743, 1297786879, 1297917967, 1298049113, 1298180201, 1298311283, + 1298442359, 1298573447, 1298704531, 1298835667, 1298966789, 1299097867, 1299228947, + 1299360077, 1299491161, 1299622237, 1299753319, 1299884393, 1300015481, 1300146557, + 1300277651, 1300408723, 1300539809, 1300670893, 1300801981, 1300933063, 1301064139, + 1301195279, 1301326409, 1301457529, 1301588623, 1301719703, 1301850779, 1301981867, + 1302112939, 1302244033, 1302375143, 1302506273, 1302637387, 1302768541, 1302899641, + 1303030721, 1303161823, 1303292927, 1303424009, 1303555111, 1303686211, 1303817287, + 1303948367, 1304079443, 1304210527, 1304341601, 1304472691, 1304603777, 1304734859, + 1304865941, 1304997017, 1305128137, 1305259211, 1305390287, 1305521363, 1305652463, + 1305783553, 1305914639, 1306045759, 1306176863, 1306307971, 1306439059, 1306570193, + 1306701271, 1306832357, 1306963429, 1307094511, 1307225597, 1307356679, 1307487751, + 1307618861, 1307749967, 1307881051, 1308012131, 1308143203, 1308274277, 1308405361, + 1308536503, 1308667589, 1308798661, 1308929789, 1309060903, 1309191977, 1309323053, + 1309454149, 1309585307, 1309716391, 1309847491, 1309978583, 1310109667, 1310240773, + 1310371877, 1310502961, 1310634037, 1310765111, 1310896183, 1311027271, 1311158351, + 1311289423, 1311420521, 1311551623, 1311682699, 1311813773, 1311944849, 1312075927, + 1312207003, 1312338077, 1312469149, 1312600249, 1312731323, 1312862413, 1312993489, + 1313124569, 1313255681, 1313386757, 1313517841, 1313648953, 1313780029, 1313911111, + 1314042209, 1314173281, 1314304363, 1314435491, 1314566593, 1314697667, 1314828743, + 1314959827, 1315090901, 1315221979, 1315353073, 1315484153, 1315615241, 1315746319, + 1315877393, 1316008469, 1316139547, 1316270621, 1316401721, 1316532793, 1316663879, + 1316795003, 1316926099, 1317057187, 1317188267, 1317319351, 1317450427, 1317581557, + 1317712639, 1317843721, 1317974809, 1318105889, 1318236971, 1318368047, 1318499159, + 1318630237, 1318761361, 1318892447, 1319023549, 1319154649, 1319285743, 1319416817, + 1319547899, 1319678993, 1319810069, 1319941141, 1320072239, 1320203359, 1320334471, + 1320465563, 1320596657, 1320727741, 1320858817, 1320989897, 1321120973, 1321252057, + 1321383131, 1321514209, 1321645307, 1321776389, 1321907467, 1322038567, 1322169647, + 1322300719, 1322431801, 1322562877, 1322693971, 1322825047, 1322956121, 1323087197, + 1323218279, 1323349351, 1323480493, 1323611581, 1323742661, 1323873743, 1324004833, + 1324135919, 1324267027, 1324398137, 1324529233, 1324660313, 1324791407, 1324922491, + 1325053571, 1325184643, 1325315723, 1325446813, 1325577901, 1325708999, 1325840077, + 1325971159, 1326102269, 1326233347, 1326364423, 1326495503, 1326626593, 1326757711, + 1326888803, 1327019879, 1327150967, 1327282049, 1327413121, 1327544213, 1327675301, + 1327806373, 1327937459, 1328068531, 1328199629, 1328330777, 1328461859, 1328593001, + 1328724079, 1328855161, 1328986247, 1329117319, 1329248429, 1329379523, 1329510599, + 1329641683, 1329772789, 1329903899, 1330035011, 1330166083, 1330297169, 1330428247, + 1330559333, 1330690409, 1330821493, 1330952573, 1331083651, 1331214751, 1331345831, + 1331476919, 1331608001, 1331739121, 1331870201, 1332001283, 1332132383, 1332263459, + 1332394549, 1332525643, 1332656783, 1332787891, 1332919033, 1333050107, 1333181231, + 1333312313, 1333443421, 1333574507, 1333705619, 1333836697, 1333967779, 1334098859, + 1334229947, 1334361023, 1334492099, 1334623187, 1334754277, 1334885353, 1335016429, + 1335147509, 1335278621, 1335409697, 1335540779, 1335671863, 1335803009, 1335934081, + 1336065163, 1336196263, 1336327351, 1336458439, 1336589531, 1336720643, 1336851731, + 1336982839, 1337113919, 1337245031, 1337376113, 1337507189, 1337638331, 1337769409, + 1337900491, 1338031573, 1338162671, 1338293753, 1338424861, 1338555941, 1338687017, + 1338818093, 1338949187, 1339080277, 1339211351, 1339342439, 1339473511, 1339604587, + 1339735669, 1339866751, 1339997831, 1340128913, 1340259997, 1340391077, 1340522149, + 1340653231, 1340784311, 1340915383, 1341046493, 1341177589, 1341308663, 1341439793, + 1341570877, 1341701957, 1341833081, 1341964181, 1342095257, 1342226339, 1342357411, + 1342488517, 1342619609, 1342750699, 1342881781, 1343012873, 1343143951, 1343275061, + 1343406157, 1343537231, 1343668331, 1343799437, 1343930509, 1344061673, 1344192757, + 1344323861, 1344454933, 1344586007, 1344717091, 1344848179, 1344979271, 1345110413, + 1345241537, 1345372667, 1345503773, 1345634869, 1345765973, 1345897051, 1346028133, + 1346159231, 1346290321, 1346421397, 1346552479, 1346683567, 1346814643, 1346945737, + 1347076813, 1347207899, 1347338977, 1347470051, 1347601139, 1347732241, 1347863317, + 1347994391, 1348125463, 1348256537, 1348387619, 1348518733, 1348649821, 1348780897, + 1348911979, 1349043077, 1349174159, 1349305247, 1349436329, 1349567407, 1349698499, + 1349829583, 1349960663, 1350091739, 1350222829, 1350353957, 1350485051, 1350616147, + 1350747311, 1350878383, 1351009463, 1351140563, 1351271651, 1351402751, 1351533851, + 1351664929, 1351796003, 1351927123, 1352058203, 1352189327, 1352320399, 1352451487, + 1352582563, 1352713643, 1352844739, 1352975857, 1353106939, 1353238021, 1353369131, + 1353500221, 1353631309, 1353762383, 1353893501, 1354024589, 1354155679, 1354286761, + 1354417843, 1354548917, 1354680007, 1354811119, 1354942201, 1355073283, 1355204359, + 1355335441, 1355466533, 1355597623, 1355728739, 1355859811, 1355990887, 1356121961, + 1356253033, 1356384149, 1356515243, 1356646327, 1356777437, 1356908519, 1357039609, + 1357170691, 1357301791, 1357432871, 1357563953, 1357695043, 1357826117, 1357957217, + 1358088301, 1358219411, 1358350531, 1358481623, 1358612699, 1358743787, 1358874871, + 1359005983, 1359137057, 1359268147, 1359399269, 1359530383, 1359661469, 1359792547, + 1359923647, 1360054741, 1360185829, 1360316929, 1360448017, 1360579111, 1360710193, + 1360841311, 1360972391, 1361103517, 1361234621, 1361365703, 1361496847, 1361627983, + 1361759071, 1361890147, 1362021223, 1362152303, 1362283397, 1362414491, 1362545603, + 1362676717, 1362807811, 1362938891, 1363069963, 1363201061, 1363332143, 1363463219, + 1363594321, 1363725401, 1363856479, 1363987609, 1364118689, 1364249771, 1364380859, + 1364511931, 1364643013, 1364774087, 1364905177, 1365036251, 1365167327, 1365298411, + 1365429487, 1365560563, 1365691667, 1365822739, 1365953819, 1366084897, 1366215989, + 1366347083, 1366478159, 1366609241, 1366740317, 1366871411, 1367002499, 1367133577, + 1367264659, 1367395759, 1367526851, 1367657933, 1367789053, 1367920139, 1368051227, + 1368182311, 1368313421, 1368444523, 1368575597, 1368706681, 1368837781, 1368968863, + 1369099939, 1369231063, 1369362149, 1369493269, 1369624351, 1369755461, 1369886549, + 1370017643, 1370148719, 1370279797, 1370410871, 1370541947, 1370673019, 1370804107, + 1370935219, 1371066331, 1371197431, 1371328513, 1371459599, 1371590761, 1371721843, + 1371852943, 1371984043, 1372115119, 1372246193, 1372377269, 1372508419, 1372639493, + 1372770601, 1372901689, 1373032783, 1373163887, 1373295023, 1373426113, 1373557193, + 1373688287, 1373819383, 1373950469, 1374081557, 1374212641, 1374343717, 1374474817, + 1374605899, 1374736973, 1374868109, 1374999251, 1375130353, 1375261457, 1375392547, + 1375523641, 1375654717, 1375785799, 1375916903, 1376047993, 1376179081, 1376310197, + 1376441273, 1376572349, 1376703431, 1376834507, 1376965591, 1377096671, 1377227767, + 1377358847, 1377489943, 1377621029, 1377752107, 1377883183, 1378014293, 1378145383, + 1378276469, 1378407551, 1378538647, 1378669739, 1378800821, 1378931927, 1379063017, + 1379194109, 1379325271, 1379456359, 1379587441, 1379718547, 1379849633, 1379980727, + 1380111823, 1380242921, 1380373993, 1380505073, 1380636149, 1380767279, 1380898369, + 1381029451, 1381160527, 1381291603, 1381422689, 1381553791, 1381684873, 1381815959, + 1381947031, 1382078123, 1382209217, 1382340293, 1382471413, 1382602523, 1382733629, + 1382864723, 1382995811, 1383126887, 1383257963, 1383389047, 1383520121, 1383651211, + 1383782287, 1383913403, 1384044499, 1384175591, 1384306673, 1384437779, 1384568851, + 1384699937, 1384831031, 1384962127, 1385093209, 1385224297, 1385355397, 1385486521, + 1385617619, 1385748737, 1385879839, 1386010937, 1386142027, 1386273113, 1386404203, + 1386535331, 1386666403, 1386797483, 1386928577, 1387059659, 1387190731, 1387321847, + 1387452923, 1387584001, 1387715101, 1387846183, 1387977259, 1388108333, 1388239409, + 1388370491, 1388501567, 1388632639, 1388763721, 1388894827, 1389025997, 1389157117, + 1389288193, 1389419281, 1389550361, 1389681463, 1389812539, 1389943627, 1390074727, + 1390205801, 1390336873, 1390467971, 1390599043, 1390730147, 1390861223, 1390992313, + 1391123387, 1391254471, 1391385547, 1391516627, 1391647709, 1391778793, 1391909891, + 1392040987, 1392172219, 1392303307, 1392434411, 1392565487, 1392696563, 1392827659, + 1392958741, 1393089821, 1393220897, 1393351969, 1393483043, 1393614121, 1393745203, + 1393876307, 1394007401, 1394138513, 1394269621, 1394400697, 1394531773, 1394662859, + 1394793931, 1394925013, 1395056087, 1395187193, 1395318289, 1395449371, 1395580463, + 1395711547, 1395842639, 1395973721, 1396104793, 1396235873, 1396366957, 1396498049, + 1396629127, 1396760221, 1396891367, 1397022439, 1397153521, 1397284597, 1397415673, + 1397546749, 1397677871, 1397808953, 1397940079, 1398071161, 1398202249, 1398333353, + 1398464453, 1398595543, 1398726619, 1398857737, 1398988813, 1399119889, 1399250971, + 1399382071, 1399513169, 1399644241, 1399775327, 1399906399, 1400037503, 1400168579, + 1400299661, 1400430761, 1400561861, 1400692987, 1400824109, 1400955197, 1401086273, + 1401217361, 1401348449, 1401479533, 1401610621, 1401741697, 1401872821, 1402003903, + 1402134977, 1402266053, 1402397131, 1402528217, 1402659289, 1402790371, 1402921453, + 1403052557, 1403183629, 1403314729, 1403445833, 1403576917, 1403708029, 1403839147, + 1403970223, 1404101329, 1404232421, 1404363517, 1404494591, 1404625681, 1404756757, + 1404887831, 1405018913, 1405150007, 1405281113, 1405412207, 1405543291, 1405674367, + 1405805441, 1405936513, 1406067587, 1406198663, 1406329747, 1406460823, 1406591941, + 1406723041, 1406854117, 1406985197, 1407116273, 1407247349, 1407378421, 1407509501, + 1407640583, 1407771691, 1407902773, 1408033859, 1408164941, 1408296047, 1408427129, + 1408558231, 1408689361, 1408820443, 1408951553, 1409082637, 1409213713, 1409344801, + 1409475911, 1409606987, 1409738119, 1409869261, 1410000407, 1410131479, 1410262561, + 1410393637, 1410524747, 1410655819, 1410786899, 1410918001, 1411049111, 1411180229, + 1411311323, 1411442401, 1411573477, 1411704551, 1411835653, 1411966729, 1412097853, + 1412228933, 1412360029, 1412491147, 1412622251, 1412753323, 1412884397, 1413015479, + 1413146551, 1413277633, 1413408707, 1413539797, 1413670871, 1413801959, 1413933047, + 1414064123, 1414195199, 1414326293, 1414457389, 1414588463, 1414719571, 1414850669, + 1414981747, 1415112823, 1415243917, 1415374991, 1415506063, 1415637193, 1415768273, + 1415899357, 1416030437, 1416161531, 1416292607, 1416423709, 1416554791, 1416685877, + 1416816977, 1416948053, 1417079141, 1417210213, 1417341293, 1417472401, 1417603477, + 1417734557, 1417865629, 1417996709, 1418127797, 1418258879, 1418389981, 1418521103, + 1418652197, 1418783279, 1418914379, 1419045473, 1419176573, 1419307691, 1419438773, + 1419569863, 1419700937, 1419832013, 1419963101, 1420094189, 1420225267, 1420356347, + 1420487441, 1420618517, 1420749613, 1420880693, 1421011807, 1421142907, 1421274017, + 1421405099, 1421536187, 1421667287, 1421798453, 1421929541, 1422060637, 1422191737, + 1422322831, 1422453913, 1422584987, 1422716059, 1422847133, 1422978209, 1423109333, + 1423240433, 1423371581, 1423502681, 1423633763, 1423764851, 1423895923, 1424026999, + 1424158081, 1424289187, 1424420267, 1424551351, 1424682443, 1424813519, 1424944601, + 1425075697, 1425206807, 1425337897, 1425468983, 1425600061, 1425731149, 1425862259, + 1425993403, 1426124501, 1426255573, 1426386659, 1426517749, 1426648897, 1426779973, + 1426911049, 1427042147, 1427173229, 1427304311, 1427435389, 1427566477, 1427697571, + 1427828653, 1427959733, 1428090889, 1428222011, 1428353089, 1428484171, 1428615257, + 1428746339, 1428877423, 1429008517, 1429139603, 1429270681, 1429401773, 1429532857, + 1429663931, 1429795019, 1429926133, 1430057231, 1430188321, 1430319403, 1430450479, + 1430581561, 1430712649, 1430843741, 1430974817, 1431105889, 1431236981, 1431368063, + 1431499141, 1431630217, 1431761327, 1431892403, 1432023491, 1432154587, 1432285663, + 1432416737, 1432547861, 1432678943, 1432810037, 1432941109, 1433072189, 1433203267, + 1433334349, 1433465437, 1433596513, 1433727599, 1433858689, 1433989789, 1434120871, + 1434251969, 1434383087, 1434514171, 1434645253, 1434776327, 1434907427, 1435038503, + 1435169599, 1435300673, 1435431749, 1435562827, 1435693927, 1435825009, 1435956097, + 1436087207, 1436218321, 1436349401, 1436480491, 1436611573, 1436742653, 1436873731, + 1437004817, 1437135899, 1437266977, 1437398069, 1437529183, 1437660269, 1437791357, + 1437922433, 1438053509, 1438184599, 1438315687, 1438446781, 1438577873, 1438708979, + 1438840061, 1438971133, 1439102209, 1439233343, 1439364439, 1439495539, 1439626619, + 1439757713, 1439888819, 1440019927, 1440151019, 1440282131, 1440413257, 1440544397, + 1440675469, 1440806557, 1440937639, 1441068719, 1441199833, 1441330927, 1441462007, + 1441593091, 1441724191, 1441855273, 1441986347, 1442117437, 1442248529, 1442379607, + 1442510681, 1442641763, 1442772839, 1442903921, 1443034993, 1443166099, 1443297199, + 1443428303, 1443559379, 1443690461, 1443821539, 1443952621, 1444083701, 1444214773, + 1444345849, 1444476931, 1444608007, 1444739113, 1444870187, 1445001263, 1445132369, + 1445263453, 1445394527, 1445525611, 1445656703, 1445787781, 1445918891, 1446049981, + 1446181057, 1446312137, 1446443213, 1446574301, 1446705383, 1446836467, 1446967583, + 1447098661, 1447229741, 1447360823, 1447491901, 1447623011, 1447754089, 1447885169, + 1448016263, 1448147353, 1448278441, 1448409517, 1448540609, 1448671699, 1448802779, + 1448933869, 1449064949, 1449196027, 1449327101, 1449458173, 1449589261, 1449720379, + 1449851461, 1449982579, 1450113653, 1450244753, 1450375847, 1450506943, 1450638023, + 1450769101, 1450900177, 1451031317, 1451162441, 1451293531, 1451424629, 1451555713, + 1451686813, 1451817889, 1451948969, 1452080053, 1452211141, 1452342233, 1452473327, + 1452604411, 1452735563, 1452866647, 1452997727, 1453128851, 1453259953, 1453391029, + 1453522127, 1453653203, 1453784281, 1453915373, 1454046469, 1454177561, 1454308679, + 1454439829, 1454570903, 1454701979, 1454833073, 1454964151, 1455095227, 1455226313, + 1455357391, 1455488501, 1455619579, 1455750697, 1455881773, 1456012853, 1456143929, + 1456275001, 1456406089, 1456537171, 1456668247, 1456799321, 1456930421, 1457061497, + 1457192573, 1457323649, 1457454767, 1457585887, 1457716973, 1457848061, 1457979163, + 1458110243, 1458241319, 1458372403, 1458503477, 1458634589, 1458765673, 1458896749, + 1459027849, 1459158929, 1459290017, 1459421099, 1459552189, 1459683299, 1459814431, + 1459945511, 1460076587, 1460207677, 1460338751, 1460469851, 1460600923, 1460732069, + 1460863141, 1460994233, 1461125363, 1461256499, 1461387607, 1461518689, 1461649769, + 1461780857, 1461911977, 1462043057, 1462174141, 1462305239, 1462436399, 1462567481, + 1462698563, 1462829639, 1462960717, 1463091793, 1463222881, 1463353961, 1463485043, + 1463616179, 1463747281, 1463878379, 1464009467, 1464140549, 1464271681, 1464402767, + 1464533869, 1464664979, 1464796057, 1464927169, 1465058267, 1465189339, 1465320449, + 1465451549, 1465582621, 1465713719, 1465844803, 1465975921, 1466106997, 1466238071, + 1466369143, 1466500219, 1466631301, 1466762389, 1466893489, 1467024607, 1467155731, + 1467286811, 1467417901, 1467548989, 1467680083, 1467811183, 1467942263, 1468073357, + 1468204469, 1468335563, 1468466651, 1468597759, 1468728841, 1468859939, 1468991011, + 1469122093, 1469253199, 1469384309, 1469515381, 1469646463, 1469777563, 1469908637, + 1470039731, 1470170827, 1470301961, 1470433057, 1470564131, 1470695221, 1470826393, + 1470957493, 1471088581, 1471219657, 1471350743, 1471481821, 1471612897, 1471743983, + 1471875061, 1472006161, 1472137273, 1472268383, 1472399477, 1472530573, 1472661661, + 1472792743, 1472923817, 1473054899, 1473185981, 1473317059, 1473448159, 1473579251, + 1473710341, 1473841427, 1473972551, 1474103641, 1474234739, 1474365833, 1474496911, + 1474627993, 1474759073, 1474890191, 1475021291, 1475152379, 1475283463, 1475414537, + 1475545613, 1475676691, 1475807777, 1475938873, 1476069953, 1476201053, 1476332147, + 1476463253, 1476594331, 1476725423, 1476856499, 1476987587, 1477118663, 1477249751, + 1477380911, 1477511989, 1477643071, 1477774157, 1477905259, 1478036369, 1478167469, + 1478298559, 1478429669, 1478560747, 1478691821, 1478822921, 1478953999, 1479085073, + 1479216157, 1479347251, 1479478373, 1479609487, 1479740567, 1479871643, 1480002737, + 1480133821, 1480264909, 1480396003, 1480527121, 1480658203, 1480789279, 1480920361, + 1481051437, 1481182517, 1481313601, 1481444681, 1481575763, 1481706911, 1481837983, + 1481969089, 1482100181, 1482231277, 1482362359, 1482493447, 1482624527, 1482755641, + 1482886721, 1483017799, 1483148881, 1483279961, 1483411057, 1483542139, 1483673221, + 1483804349, 1483935433, 1484066531, 1484197619, 1484328707, 1484459789, 1484590873, + 1484721983, 1484853061, 1484984141, 1485115217, 1485246299, 1485377401, 1485508477, + 1485639557, 1485770647, 1485901763, 1486032851, 1486163947, 1486295071, 1486426163, + 1486557239, 1486688323, 1486819447, 1486950523, 1487081597, 1487212697, 1487343773, + 1487474861, 1487605943, 1487737021, 1487868103, 1487999189, 1488130271, 1488261349, + 1488392431, 1488523507, 1488654613, 1488785707, 1488916801, 1489047883, 1489178987, + 1489310083, 1489441207, 1489572347, 1489703429, 1489834501, 1489965583, 1490096681, + 1490227763, 1490358847, 1490489927, 1490621009, 1490752091, 1490883223, 1491014309, + 1491145387, 1491276469, 1491407543, 1491538649, 1491669731, 1491800833, 1491931933, + 1492063019, 1492194103, 1492325221, 1492456297, 1492587373, 1492718497, 1492849637, + 1492980719, 1493111791, 1493242873, 1493373949, 1493505031, 1493636107, 1493767199, + 1493898271, 1494029353, 1494160463, 1494291569, 1494422647, 1494553727, 1494684817, + 1494815897, 1494946993, 1495078111, 1495209217, 1495340293, 1495471379, 1495602467, + 1495733567, 1495864651, 1495995727, 1496126833, 1496257909, 1496388983, 1496520059, + 1496651137, 1496782237, 1496913311, 1497044389, 1497175513, 1497306607, 1497437713, + 1497568799, 1497699883, 1497830959, 1497962041, 1498093117, 1498224197, 1498355303, + 1498486387, 1498617481, 1498748561, 1498879639, 1499010731, 1499141849, 1499272921, + 1499404007, 1499535097, 1499666213, 1499797291, 1499928403, 1500059503, 1500190583, + 1500321701, 1500452783, 1500583873, 1500714959, 1500846031, 1500977111, 1501108183, + 1501239277, 1501370357, 1501501439, 1501632511, 1501763609, 1501894697, 1502025773, + 1502156867, 1502287979, 1502419067, 1502550143, 1502681237, 1502812331, 1502943413, + 1503074509, 1503205597, 1503336721, 1503467803, 1503598909, 1503730037, 1503861127, + 1503992233, 1504123319, 1504254403, 1504385521, 1504516613, 1504647689, 1504778773, + 1504909871, 1505040961, 1505172041, 1505303119, 1505434193, 1505565283, 1505696369, + 1505827451, 1505958533, 1506089617, 1506220693, 1506351773, 1506482867, 1506613939, + 1506745013, 1506876103, 1507007189, 1507138289, 1507269377, 1507400449, 1507531547, + 1507662659, 1507793803, 1507924879, 1508055979, 1508187053, 1508318131, 1508449211, + 1508580301, 1508711377, 1508842451, 1508973527, 1509104609, 1509235687, 1509366763, + 1509497851, 1509628987, 1509760093, 1509891167, 1510022279, 1510153361, 1510284439, + 1510415513, 1510546601, 1510677683, 1510808869, 1510939949, 1511071069, 1511202157, + 1511333233, 1511464321, 1511595427, 1511726509, 1511857603, 1511988691, 1512119801, + 1512250879, 1512381961, 1512513043, 1512644141, 1512775213, 1512906287, 1513037363, + 1513168439, 1513299527, 1513430629, 1513561703, 1513692781, 1513823881, 1513954961, + 1514086037, 1514217109, 1514348191, 1514479273, 1514610401, 1514741489, 1514872631, + 1515003719, 1515134807, 1515265889, 1515396989, 1515528067, 1515659143, 1515790219, + 1515921299, 1516052371, 1516183499, 1516314601, 1516445677, 1516576759, 1516707833, + 1516838909, 1516970011, 1517101087, 1517232161, 1517363273, 1517494351, 1517625427, + 1517756501, 1517887577, 1518018701, 1518149783, 1518280859, 1518411941, 1518543031, + 1518674111, 1518805231, 1518936313, 1519067387, 1519198459, 1519329533, 1519460623, + 1519591721, 1519722797, 1519853971, 1519985101, 1520116187, 1520247269, 1520378369, + 1520509489, 1520640617, 1520771689, 1520902771, 1521033859, 1521164941, 1521296041, + 1521427151, 1521558263, 1521689353, 1521820427, 1521951517, 1522082599, 1522213697, + 1522344787, 1522475861, 1522606957, 1522738031, 1522869113, 1523000191, 1523131273, + 1523262409, 1523393497, 1523524579, 1523655667, 1523786749, 1523917841, 1524048937, + 1524180013, 1524311093, 1524442189, 1524573329, 1524704407, 1524835511, 1524966617, + 1525097701, 1525228801, 1525359883, 1525490957, 1525622029, 1525753121, 1525884209, + 1526015303, 1526146381, 1526277469, 1526408549, 1526539621, 1526670697, 1526801779, + 1526932867, 1527063943, 1527195029, 1527326107, 1527457193, 1527588281, 1527719353, + 1527850483, 1527981569, 1528112653, 1528243729, 1528374823, 1528505947, 1528637021, + 1528768099, 1528899179, 1529030257, 1529161349, 1529292421, 1529423501, 1529554573, + 1529685659, 1529816731, 1529947813, 1530078917, 1530210023, 1530341117, 1530472193, + 1530603289, 1530734371, 1530865477, 1530996563, 1531127669, 1531258747, 1531389823, + 1531520899, 1531651993, 1531783081, 1531914157, 1532045243, 1532176319, 1532307397, + 1532438489, 1532569573, 1532700649, 1532831731, 1532962819, 1533093899, 1533224993, + 1533356113, 1533487187, 1533618271, 1533749359, 1533880451, 1534011547, 1534142641, + 1534273723, 1534404821, 1534535909, 1534667003, 1534798081, 1534929199, 1535060281, + 1535191363, 1535322457, 1535453533, 1535584607, 1535715691, 1535846783, 1535977867, + 1536108949, 1536240067, 1536371231, 1536502309, 1536633419, 1536764507, 1536895583, + 1537026691, 1537157767, 1537288849, 1537419937, 1537551019, 1537682117, 1537813243, + 1537944319, 1538075401, 1538206477, 1538337557, 1538468641, 1538599721, 1538730829, + 1538861939, 1538993021, 1539124099, 1539255181, 1539386257, 1539517339, 1539648421, + 1539779503, 1539910577, 1540041719, 1540172797, 1540303901, 1540435009, 1540566091, + 1540697183, 1540828271, 1540959367, 1541090449, 1541221543, 1541352649, 1541483761, + 1541614847, 1541745923, 1541877041, 1542008123, 1542139219, 1542270341, 1542401489, + 1542532561, 1542663697, 1542794783, 1542925897, 1543057001, 1543188137, 1543319233, + 1543450309, 1543581401, 1543712473, 1543843583, 1543974671, 1544105747, 1544236831, + 1544367953, 1544499041, 1544630117, 1544761261, 1544892343, 1545023419, 1545154547, + 1545285629, 1545416819, 1545547901, 1545679001, 1545810073, 1545941161, 1546072243, + 1546203317, 1546334411, 1546465483, 1546596631, 1546727719, 1546858793, 1546989883, + 1547120969, 1547252041, 1547383127, 1547514217, 1547645339, 1547776459, 1547907533, + 1548038627, 1548169739, 1548300839, 1548431917, 1548562991, 1548694093, 1548825167, + 1548956243, 1549087327, 1549218413, 1549349513, 1549480601, 1549611677, 1549742791, + 1549873873, 1550004947, 1550136073, 1550267161, 1550398243, 1550529329, 1550660401, + 1550791499, 1550922577, 1551053663, 1551184793, 1551315869, 1551446983, 1551578069, + 1551709163, 1551840259, 1551971363, 1552102459, 1552233533, 1552364617, 1552495729, + 1552626877, 1552757963, 1552889047, 1553020127, 1553151203, 1553282309, 1553413397, + 1553544469, 1553675561, 1553806649, 1553937757, 1554068833, 1554199909, 1554330997, + 1554462071, 1554593153, 1554724243, 1554855331, 1554986417, 1555117493, 1555248577, + 1555379663, 1555510757, 1555641839, 1555772941, 1555904017, 1556035133, 1556166211, + 1556297297, 1556428381, 1556559461, 1556690533, 1556821661, 1556952757, 1557083833, + 1557214913, 1557346019, 1557477113, 1557608189, 1557739279, 1557870371, 1558001453, + 1558132547, 1558263661, 1558394753, 1558525909, 1558656989, 1558788073, 1558919147, + 1559050249, 1559181329, 1559312411, 1559443531, 1559574613, 1559705689, 1559836769, + 1559967859, 1560098933, 1560230027, 1560361129, 1560492221, 1560623299, 1560754397, + 1560885497, 1561016599, 1561147681, 1561278757, 1561409831, 1561540919, 1561672031, + 1561803127, 1561934233, 1562065321, 1562196403, 1562327483, 1562458561, 1562589641, + 1562720713, 1562851793, 1562982923, 1563113999, 1563245077, 1563376169, 1563507241, + 1563638317, 1563769409, 1563900491, 1564031587, 1564162661, 1564293761, 1564424837, + 1564555943, 1564687039, 1564818137, 1564949227, 1565080357, 1565211451, 1565342549, + 1565473649, 1565604739, 1565735813, 1565866891, 1565997977, 1566129073, 1566260161, + 1566391273, 1566522359, 1566653437, 1566784519, 1566915643, 1567046731, 1567177831, + 1567308913, 1567440019, 1567571099, 1567702181, 1567833263, 1567964339, 1568095427, + 1568226529, 1568357629, 1568488771, 1568619851, 1568750923, 1568881999, 1569013081, + 1569144179, 1569275261, 1569406339, 1569537413, 1569668491, 1569799591, 1569930673, + 1570061747, 1570192847, 1570323959, 1570455049, 1570586161, 1570717237, 1570848317, + 1570979437, 1571110531, 1571241653, 1571372729, 1571503807, 1571634893, 1571765989, + 1571897069, 1572028141, 1572159217, 1572290297, 1572421397, 1572552473, 1572683551, + 1572814637, 1572945769, 1573076851, 1573207939, 1573339039, 1573470149, 1573601269, + 1573732343, 1573863419, 1573994509, 1574125583, 1574256713, 1574387797, 1574518921, + 1574650001, 1574781073, 1574912161, 1575043237, 1575174317, 1575305399, 1575436483, + 1575567589, 1575698693, 1575829769, 1575960853, 1576091927, 1576223029, 1576354207, + 1576485299, 1576616389, 1576747477, 1576878553, 1577009639, 1577140739, 1577271823, + 1577402903, 1577533987, 1577665069, 1577796191, 1577927279, 1578058367, 1578189443, + 1578320537, 1578451639, 1578582737, 1578713821, 1578844903, 1578975977, 1579107071, + 1579238153, 1579369277, 1579500401, 1579631527, 1579762609, 1579893683, 1580024773, + 1580155847, 1580286941, 1580418013, 1580549107, 1580680183, 1580811269, 1580942359, + 1581073433, 1581204517, 1581335647, 1581466759, 1581597863, 1581728969, 1581860041, + 1581991127, 1582122203, 1582253279, 1582384357, 1582515449, 1582646531, 1582777643, + 1582908721, 1583039819, 1583170903, 1583302001, 1583433101, 1583564201, 1583695301, + 1583826389, 1583957497, 1584088621, 1584219701, 1584350797, 1584481901, 1584612979, + 1584744053, 1584875141, 1585006229, 1585137317, 1585268389, 1585399477, 1585530577, + 1585661659, 1585792823, 1585923971, 1586055047, 1586186153, 1586317231, 1586448307, + 1586579381, 1586710457, 1586841539, 1586972641, 1587103723, 1587234829, 1587365903, + 1587496979, 1587628057, 1587759137, 1587890209, 1588021297, 1588152403, 1588283503, + 1588414589, 1588545661, 1588676743, 1588807849, 1588938931, 1589070037, 1589201113, + 1589332189, 1589463283, 1589594381, 1589725457, 1589856547, 1589987657, 1590118811, + 1590249883, 1590380963, 1590512039, 1590643129, 1590774203, 1590905291, 1591036397, + 1591167509, 1591298587, 1591429709, 1591560793, 1591691867, 1591822949, 1591954037, + 1592085109, 1592216183, 1592347303, 1592478443, 1592609609, 1592740687, 1592871767, + 1593002843, 1593133963, 1593265067, 1593396143, 1593527231, 1593658327, 1593789409, + 1593920501, 1594051633, 1594182721, 1594313879, 1594444961, 1594576037, 1594707113, + 1594838237, 1594969319, 1595100457, 1595231549, 1595362649, 1595493727, 1595624803, + 1595755877, 1595886959, 1596018037, 1596149123, 1596280207, 1596411281, 1596542383, + 1596673483, 1596804557, 1596935629, 1597066703, 1597197793, 1597328867, 1597459939, + 1597591027, 1597722127, 1597853207, 1597984313, 1598115397, 1598246497, 1598377591, + 1598508677, 1598639759, 1598770837, 1598901919, 1599033011, 1599164093, 1599295183, + 1599426259, 1599557347, 1599688427, 1599819509, 1599950593, 1600081723, 1600212799, + 1600343873, 1600474991, 1600606069, 1600737161, 1600868261, 1600999343, 1601130449, + 1601261551, 1601392631, 1601523733, 1601654867, 1601785949, 1601917039, 1602048127, + 1602179209, 1602310301, 1602441377, 1602572483, 1602703559, 1602834637, 1602965711, + 1603096801, 1603227877, 1603358951, 1603490027, 1603621099, 1603752193, 1603883293, + 1604014393, 1604145493, 1604276579, 1604407669, 1604538779, 1604669851, 1604800931, + 1604932037, 1605063127, 1605194231, 1605325303, 1605456379, 1605587453, 1605718613, + 1605849689, 1605980797, 1606111879, 1606242971, 1606374043, 1606505123, 1606636211, + 1606767289, 1606898399, 1607029471, 1607160547, 1607291633, 1607422711, 1607553791, + 1607684933, 1607816027, 1607947109, 1608078193, 1608209311, 1608340399, 1608471481, + 1608602563, 1608733649, 1608864727, 1608995803, 1609126901, 1609257977, 1609389049, + 1609520161, 1609651237, 1609782323, 1609913407, 1610044487, 1610175599, 1610306683, + 1610437769, 1610568917, 1610700001, 1610831099, 1610962217, 1611093299, 1611224387, + 1611355481, 1611486581, 1611617669, 1611748751, 1611879847, 1612010927, 1612142003, + 1612273087, 1612404169, 1612535251, 1612666327, 1612797427, 1612928501, 1613059601, + 1613190737, 1613321837, 1613452909, 1613583989, 1613715071, 1613846147, 1613977237, + 1614108337, 1614239423, 1614370517, 1614501617, 1614632693, 1614763769, 1614894857, + 1615025933, 1615157039, 1615288121, 1615419199, 1615550303, 1615681393, 1615812479, + 1615943561, 1616074661, 1616205761, 1616336849, 1616468027, 1616599109, 1616730187, + 1616861263, 1616992357, 1617123461, 1617254539, 1617385633, 1617516713, 1617647789, + 1617778907, 1617910027, 1618041137, 1618172263, 1618303363, 1618434437, 1618565513, + 1618696631, 1618827709, 1618958813, 1619089903, 1619220979, 1619352071, 1619483143, + 1619614237, 1619745331, 1619876437, 1620007513, 1620138587, 1620269671, 1620400751, + 1620531823, 1620662899, 1620793997, 1620925079, 1621056163, 1621187257, 1621318333, + 1621449407, 1621580483, 1621711621, 1621842701, 1621973809, 1622104927, 1622236037, + 1622367119, 1622498209, 1622629297, 1622760371, 1622891443, 1623022517, 1623153589, + 1623284681, 1623415763, 1623546853, 1623677953, 1623809041, 1623940117, 1624071233, + 1624202309, 1624333387, 1624464497, 1624595611, 1624726717, 1624857833, 1624988909, + 1625120033, 1625251123, 1625382203, 1625513287, 1625644367, 1625775457, 1625906561, + 1626037639, 1626168721, 1626299803, 1626430877, 1626561949, 1626693023, 1626824131, + 1626955219, 1627086301, 1627217419, 1627348493, 1627479613, 1627610687, 1627741781, + 1627872931, 1628004071, 1628135147, 1628266231, 1628397307, 1628528381, 1628659469, + 1628790551, 1628921639, 1629052783, 1629183883, 1629314993, 1629446069, 1629577207, + 1629708287, 1629839369, 1629970453, 1630101527, 1630232609, 1630363703, 1630494779, + 1630625861, 1630756949, 1630888031, 1631019107, 1631150189, 1631281277, 1631412353, + 1631543437, 1631674523, 1631805607, 1631936699, 1632067793, 1632198913, 1632330001, + 1632461093, 1632592193, 1632723307, 1632854389, 1632985493, 1633116581, 1633247663, + 1633378739, 1633509817, 1633640947, 1633772033, 1633903127, 1634034229, 1634165321, + 1634296423, 1634427517, 1634558617, 1634689691, 1634820767, 1634951839, 1635082957, + 1635214109, 1635345199, 1635476317, 1635607397, 1635738473, 1635869561, 1636000679, + 1636131751, 1636262839, 1636393951, 1636525031, 1636656107, 1636787179, 1636918271, + 1637049347, 1637180423, 1637311517, 1637442589, 1637573669, 1637704763, 1637835847, + 1637966923, 1638097997, 1638229091, 1638360181, 1638491291, 1638622393, 1638753491, + 1638884563, 1639015643, 1639146737, 1639277833, 1639408909, 1639540003, 1639671079, + 1639802161, 1639933249, 1640064343, 1640195429, 1640326517, 1640457593, 1640588669, + 1640719763, 1640850839, 1640981929, 1641113021, 1641244093, 1641375187, 1641506261, + 1641637357, 1641768431, 1641899509, 1642030591, 1642161671, 1642292779, 1642423921, + 1642555007, 1642686079, 1642817161, 1642948247, 1643079323, 1643210407, 1643341481, + 1643472557, 1643603629, 1643734717, 1643865803, 1643996903, 1644128023, 1644259117, + 1644390199, 1644521273, 1644652349, 1644783449, 1644914533, 1645045607, 1645176679, + 1645307777, 1645438849, 1645569941, 1645701023, 1645832131, 1645963211, 1646094283, + 1646225359, 1646356433, 1646487511, 1646618591, 1646749681, 1646880787, 1647011881, + 1647142961, 1647274043, 1647405157, 1647536239, 1647667379, 1647798497, 1647929573, + 1648060693, 1648191767, 1648322849, 1648453957, 1648585051, 1648716131, 1648847237, + 1648978333, 1649109409, 1649240501, 1649371639, 1649502719, 1649633831, 1649764931, + 1649896013, 1650027179, 1650158267, 1650289343, 1650420433, 1650551549, 1650682633, + 1650813739, 1650944831, 1651075919, 1651207021, 1651338103, 1651469191, 1651600277, + 1651731377, 1651862479, 1651993579, 1652124653, 1652255729, 1652386807, 1652517883, + 1652648989, 1652780081, 1652911153, 1653042227, 1653173303, 1653304403, 1653435491, + 1653566569, 1653697681, 1653828779, 1653959887, 1654090969, 1654222049, 1654353137, + 1654484219, 1654615351, 1654746463, 1654877573, 1655008657, 1655139757, 1655270843, + 1655401919, 1655533003, 1655664079, 1655795153, 1655926229, 1656057301, 1656188377, + 1656319487, 1656450569, 1656581681, 1656712753, 1656843827, 1656974927, 1657106027, + 1657237123, 1657368203, 1657499279, 1657630391, 1657761473, 1657892567, 1658023667, + 1658154739, 1658285831, 1658416933, 1658548007, 1658679091, 1658810177, 1658941283, + 1659072367, 1659203453, 1659334531, 1659465629, 1659596711, 1659727787, 1659858901, + 1659990023, 1660121107, 1660252183, 1660383287, 1660514369, 1660645477, 1660776581, + 1660907659, 1661038733, 1661169821, 1661300899, 1661431973, 1661563063, 1661694149, + 1661825237, 1661956319, 1662087391, 1662218501, 1662349583, 1662480713, 1662611831, + 1662742903, 1662873991, 1663005079, 1663136171, 1663267283, 1663398361, 1663529443, + 1663660571, 1663791659, 1663922731, 1664053829, 1664184911, 1664315987, 1664447077, + 1664578177, 1664709253, 1664840327, 1664971421, 1665102493, 1665233579, 1665364651, + 1665495731, 1665626821, 1665757901, 1665888989, 1666020061, 1666151189, 1666282279, + 1666413377, 1666544483, 1666675589, 1666806683, 1666937759, 1667068831, 1667199923, + 1667331011, 1667462171, 1667593243, 1667724343, 1667855437, 1667986511, 1668117611, + 1668248707, 1668379781, 1668510881, 1668641963, 1668773083, 1668904163, 1669035307, + 1669166383, 1669297463, 1669428539, 1669559629, 1669690703, 1669821779, 1669952861, + 1670083949, 1670215033, 1670346127, 1670477209, 1670608301, 1670739373, 1670870491, + 1671001613, 1671132709, 1671263791, 1671394873, 1671526033, 1671657109, 1671788227, + 1671919343, 1672050421, 1672181543, 1672312667, 1672443739, 1672574833, 1672705933, + 1672837021, 1672968131, 1673099213, 1673230327, 1673361401, 1673492503, 1673623591, + 1673754673, 1673885779, 1674016871, 1674147953, 1674279037, 1674410141, 1674541213, + 1674672299, 1674803411, 1674934487, 1675065617, 1675196707, 1675327789, 1675458871, + 1675589957, 1675721029, 1675852133, 1675983209, 1676114281, 1676245367, 1676376451, + 1676507557, 1676638637, 1676769767, 1676900851, 1677031973, 1677163049, 1677294149, + 1677425237, 1677556319, 1677687397, 1677818491, 1677949571, 1678080653, 1678211737, + 1678342817, 1678473893, 1678604969, 1678736099, 1678867171, 1678998263, 1679129359, + 1679260439, 1679391521, 1679522627, 1679653709, 1679784787, 1679915863, 1680046939, + 1680178081, 1680309167, 1680440249, 1680571331, 1680702403, 1680833501, 1680964577, + 1681095667, 1681226741, 1681357841, 1681488917, 1681620007, 1681751087, 1681882187, + 1682013313, 1682144389, 1682275513, 1682406629, 1682537711, 1682668811, 1682799887, + 1682930969, 1683062077, 1683193189, 1683324271, 1683455351, 1683586427, 1683717517, + 1683848591, 1683979663, 1684110739, 1684241821, 1684372897, 1684503971, 1684635079, + 1684766189, 1684897271, 1685028353, 1685159429, 1685290511, 1685421583, 1685552689, + 1685683787, 1685814883, 1685945969, 1686077047, 1686208123, 1686339199, 1686470287, + 1686601361, 1686732451, 1686863527, 1686994601, 1687125719, 1687256803, 1687387883, + 1687519021, 1687650131, 1687781203, 1687912279, 1688043361, 1688174437, 1688305613, + 1688436697, 1688567809, 1688698889, 1688829973, 1688961049, 1689092131, 1689223219, + 1689354307, 1689485411, 1689616541, 1689747613, 1689878699, 1690009799, 1690140889, + 1690271981, 1690403059, 1690534133, 1690665227, 1690796311, 1690927391, 1691058487, + 1691189567, 1691320669, 1691451743, 1691582831, 1691713909, 1691844983, 1691976061, + 1692107159, 1692238231, 1692369337, 1692500413, 1692631541, 1692762623, 1692893707, + 1693024789, 1693155869, 1693286941, 1693418021, 1693549111, 1693680229, 1693811369, + 1693942447, 1694073559, 1694204639, 1694335717, 1694466847, 1694597923, 1694729017, + 1694860127, 1694991271, 1695122357, 1695253477, 1695384571, 1695515669, 1695646741, + 1695777817, 1695908923, 1696039999, 1696171123, 1696302199, 1696433273, 1696564357, + 1696695433, 1696826539, 1696957627, 1697088713, 1697219789, 1697350861, 1697481991, + 1697613079, 1697744173, 1697875247, 1698006319, 1698137417, 1698268489, 1698399581, + 1698530653, 1698661751, 1698792829, 1698923903, 1699055003, 1699186087, 1699317203, + 1699448281, 1699579363, 1699710443, 1699841537, 1699972609, 1700103707, 1700234803, + 1700365889, 1700496977, 1700628049, 1700759149, 1700890231, 1701021323, 1701152417, + 1701283489, 1701414599, 1701545693, 1701676807, 1701807889, 1701938963, 1702070063, + 1702201199, 1702332287, 1702463359, 1702594441, 1702725539, 1702856621, 1702987703, + 1703118797, 1703249893, 1703380967, 1703512103, 1703643181, 1703774257, 1703905367, + 1704036449, 1704167581, 1704298663, 1704429781, 1704560863, 1704691939, 1704823033, + 1704954133, 1705085209, 1705216283, 1705347359, 1705478441, 1705609513, 1705740593, + 1705871711, 1706002783, 1706133883, 1706264957, 1706396039, 1706527139, 1706658227, + 1706789299, 1706920379, 1707051497, 1707182569, 1707313651, 1707444727, 1707575801, + 1707706873, 1707837959, 1707969037, 1708100189, 1708231279, 1708362361, 1708493441, + 1708624531, 1708755617, 1708886701, 1709017813, 1709148893, 1709279969, 1709411051, + 1709542123, 1709673211, 1709804297, 1709935369, 1710066467, 1710197539, 1710328649, + 1710459763, 1710590857, 1710721939, 1710853019, 1710984151, 1711115249, 1711246321, + 1711377457, 1711508569, 1711639649, 1711770721, 1711901831, 1712032909, 1712163991, + 1712295073, 1712426147, 1712557219, 1712688311, 1712819417, 1712950501, 1713081593, + 1713212681, 1713343757, 1713474859, 1713605987, 1713737087, 1713868181, 1713999257, + 1714130357, 1714261441, 1714392529, 1714523623, 1714654709, 1714785781, 1714916873, + 1715047949, 1715179027, 1715310131, 1715441251, 1715572349, 1715703433, 1715834537, + 1715965621, 1716096727, 1716227827, 1716358961, 1716490033, 1716621119, 1716752227, + 1716883321, 1717014407, 1717145491, 1717276567, 1717407641, 1717538743, 1717669841, + 1717800919, 1717932011, 1718063161, 1718194241, 1718325317, 1718456417, 1718587501, + 1718718583, 1718849669, 1718980741, 1719111833, 1719242909, 1719374003, 1719505079, + 1719636209, 1719767321, 1719898403, 1720029481, 1720160579, 1720291663, 1720422761, + 1720553839, 1720684949, 1720816021, 1720947103, 1721078179, 1721209271, 1721340343, + 1721471419, 1721602537, 1721733613, 1721864717, 1721995817, 1722126899, 1722257993, + 1722389087, 1722520169, 1722651247, 1722782389, 1722913471, 1723044551, 1723175651, + 1723306757, 1723437847, 1723568923, 1723700003, 1723831099, 1723962179, 1724093251, + 1724224339, 1724355421, 1724486501, 1724617589, 1724748671, 1724879749, 1725010871, + 1725141947, 1725273023, 1725404113, 1725535193, 1725666323, 1725797399, 1725928471, + 1726059557, 1726190647, 1726321721, 1726452797, 1726583879, 1726714963, 1726846039, + 1726977151, 1727108233, 1727239361, 1727370479, 1727501569, 1727632651, 1727763761, + 1727894851, 1728025933, 1728157019, 1728288113, 1728419233, 1728550331, 1728681413, + 1728812497, 1728943597, 1729074691, 1729205771, 1729336867, 1729467941, 1729599017, + 1729730117, 1729861219, 1729992307, 1730123393, 1730254501, 1730385583, 1730516687, + 1730647769, 1730778871, 1730909993, 1731041069, 1731172171, 1731303251, 1731434339, + 1731565411, 1731696497, 1731827579, 1731958693, 1732089809, 1732220887, 1732352021, + 1732483111, 1732614209, 1732745291, 1732876367, 1733007449, 1733138549, 1733269691, + 1733400787, 1733531893, 1733662967, 1733794057, 1733925143, 1734056237, 1734187313, + 1734318403, 1734449501, 1734580607, 1734711691, 1734842771, 1734973853, 1735104941, + 1735236037, 1735367111, 1735498187, 1735629277, 1735760387, 1735891463, 1736022539, + 1736153623, 1736284721, 1736415823, 1736546939, 1736678011, 1736809091, 1736940187, + 1737071309, 1737202381, 1737333463, 1737464539, 1737595637, 1737726713, 1737857789, + 1737988871, 1738119983, 1738251061, 1738382147, 1738513223, 1738644301, 1738775483, + 1738906567, 1739037653, 1739168729, 1739299829, 1739430907, 1739562007, 1739693089, + 1739824199, 1739955271, 1740086347, 1740217433, 1740348541, 1740479707, 1740610787, + 1740741859, 1740872933, 1741004047, 1741135127, 1741266203, 1741397293, 1741528381, + 1741659457, 1741790543, 1741921619, 1742052691, 1742183797, 1742314891, 1742445973, + 1742577059, 1742708141, 1742839247, 1742970323, 1743101417, 1743232489, 1743363599, + 1743494671, 1743625781, 1743756857, 1743887939, 1744019021, 1744150181, 1744281281, + 1744412353, 1744543429, 1744674541, 1744805641, 1744936733, 1745067811, 1745198911, + 1745330029, 1745461127, 1745592203, 1745723339, 1745854421, 1745985497, 1746116579, + 1746247693, 1746378773, 1746509851, 1746640927, 1746772003, 1746903077, 1747034183, + 1747165309, 1747296389, 1747427477, 1747558601, 1747689679, 1747820771, 1747951859, + 1748082943, 1748214019, 1748345113, 1748476189, 1748607283, 1748738357, 1748869429, + 1749000529, 1749131609, 1749262703, 1749393791, 1749524867, 1749655969, 1749787069, + 1749918151, 1750049227, 1750180301, 1750311373, 1750442467, 1750573613, 1750704713, + 1750835809, 1750966891, 1751097967, 1751229079, 1751360197, 1751491327, 1751622401, + 1751753473, 1751884549, 1752015691, 1752146783, 1752277871, 1752408947, 1752540059, + 1752671143, 1752802229, 1752933317, 1753064399, 1753195481, 1753326559, 1753457633, + 1753588721, 1753719811, 1753850897, 1753981991, 1754113103, 1754244181, 1754375257, + 1754506331, 1754637457, 1754768531, 1754899607, 1755030679, 1755161761, 1755292841, + 1755423931, 1755555013, 1755686143, 1755817247, 1755948319, 1756079393, 1756210493, + 1756341569, 1756472647, 1756603721, 1756734823, 1756865909, 1756996981, 1757128057, + 1757259131, 1757390251, 1757521361, 1757652469, 1757783543, 1757914643, 1758045719, + 1758176803, 1758307907, 1758439003, 1758570091, 1758701171, 1758832253, 1758963359, + 1759094443, 1759225529, 1759356607, 1759487687, 1759618793, 1759749877, 1759880971, + 1760012119, 1760143199, 1760274281, 1760405371, 1760536493, 1760667673, 1760798789, + 1760929901, 1761060997, 1761192071, 1761323153, 1761454237, 1761585317, 1761716419, + 1761847543, 1761978637, 1762109711, 1762240783, 1762371857, 1762502953, 1762634051, + 1762765133, 1762896217, 1763027291, 1763158379, 1763289461, 1763420563, 1763551649, + 1763682743, 1763813881, 1763944961, 1764076037, 1764207127, 1764338207, 1764469303, + 1764600403, 1764731497, 1764862573, 1764993653, 1765124737, 1765255813, 1765386941, + 1765518031, 1765649129, 1765780201, 1765911299, 1766042371, 1766173459, 1766304583, + 1766435659, 1766566733, 1766697841, 1766828941, 1766960023, 1767091121, 1767222209, + 1767353297, 1767484379, 1767615457, 1767746537, 1767877621, 1768008707, 1768139803, + 1768270877, 1768401967, 1768533047, 1768664137, 1768795213, 1768926287, 1769057363, + 1769188469, 1769319569, 1769450647, 1769581733, 1769712817, 1769843897, 1769974981, + 1770106073, 1770237179, 1770368261, 1770499337, 1770630419, 1770761527, 1770892621, + 1771023703, 1771154783, 1771285877, 1771417001, 1771548073, 1771679159, 1771810241, + 1771941341, 1772072453, 1772203571, 1772334671, 1772465753, 1772596843, 1772727917, + 1772859007, 1772990123, 1773121213, 1773252293, 1773383369, 1773514441, 1773645557, + 1773776647, 1773907741, 1774038817, 1774169899, 1774300973, 1774432057, 1774563169, + 1774694303, 1774825379, 1774956499, 1775087603, 1775218759, 1775349841, 1775480921, + 1775612009, 1775743117, 1775874193, 1776005267, 1776136343, 1776267431, 1776398531, + 1776529603, 1776660679, 1776791759, 1776922831, 1777053937, 1777185031, 1777316111, + 1777447193, 1777578277, 1777709357, 1777840439, 1777971521, 1778102617, 1778233697, + 1778364827, 1778495903, 1778627009, 1778758087, 1778889169, 1779020249, 1779151331, + 1779282403, 1779413497, 1779544609, 1779675697, 1779806773, 1779937853, 1780068937, + 1780200047, 1780331131, 1780462213, 1780593307, 1780724417, 1780855493, 1780986569, + 1781117641, 1781248717, 1781379793, 1781510867, 1781641987, 1781773093, 1781904167, + 1782035263, 1782166343, 1782297421, 1782428497, 1782559577, 1782690659, 1782821731, + 1782952841, 1783083919, 1783215011, 1783346111, 1783477217, 1783608289, 1783739381, + 1783870457, 1784001577, 1784132653, 1784263739, 1784394841, 1784526011, 1784657111, + 1784788193, 1784919281, 1785050353, 1785181427, 1785312517, 1785443633, 1785574711, + 1785705793, 1785836873, 1785967957, 1786099061, 1786230181, 1786361321, 1786492453, + 1786623539, 1786754611, 1786885693, 1787016769, 1787147849, 1787278921, 1787410021, + 1787541097, 1787672203, 1787803291, 1787934391, 1788065479, 1788196583, 1788327689, + 1788458761, 1788589837, 1788720917, 1788852011, 1788983089, 1789114177, 1789245281, + 1789376399, 1789507471, 1789638551, 1789769623, 1789900703, 1790031809, 1790162893, + 1790293991, 1790425163, 1790556239, 1790687323, 1790818417, 1790949497, 1791080593, + 1791211729, 1791342809, 1791473951, 1791605059, 1791736139, 1791867227, 1791998311, + 1792129397, 1792260473, 1792391569, 1792522663, 1792653749, 1792784849, 1792915939, + 1793047019, 1793178109, 1793309191, 1793440273, 1793571379, 1793702489, 1793833597, + 1793964673, 1794095761, 1794226877, 1794357991, 1794489079, 1794620153, 1794751241, + 1794882371, 1795013471, 1795144543, 1795275623, 1795406713, 1795537817, 1795668983, + 1795800101, 1795931173, 1796062253, 1796193353, 1796324437, 1796455559, 1796586647, + 1796717731, 1796848817, 1796979889, 1797110963, 1797242063, 1797373159, 1797504251, + 1797635381, 1797766499, 1797897587, 1798028669, 1798159747, 1798290847, 1798421923, + 1798553021, 1798684093, 1798815191, 1798946263, 1799077337, 1799208409, 1799339527, + 1799470633, 1799601721, 1799732797, 1799863883, 1799994961, 1800126061, 1800257153, + 1800388243, 1800519323, 1800650419, 1800781517, 1800912593, 1801043677, 1801174759, + 1801305899, 1801436971, 1801568071, 1801699171, 1801830257, 1801961333, 1802092417, + 1802223509, 1802354591, 1802485681, 1802616763, 1802747861, 1802878933, 1803010007, + 1803141089, 1803272183, 1803403279, 1803534377, 1803665483, 1803796591, 1803927667, + 1804058741, 1804189931, 1804321007, 1804452079, 1804583233, 1804714313, 1804845391, + 1804976483, 1805107561, 1805238641, 1805369771, 1805500843, 1805631943, 1805763017, + 1805894089, 1806025163, 1806156241, 1806287317, 1806418421, 1806549499, 1806680573, + 1806811651, 1806942757, 1807073843, 1807204939, 1807336033, 1807467127, 1807598203, + 1807729307, 1807860389, 1807991467, 1808122541, 1808253613, 1808384693, 1808515823, + 1808646923, 1808778077, 1808909153, 1809040243, 1809171323, 1809302497, 1809433583, + 1809564697, 1809695803, 1809826901, 1809957973, 1810089091, 1810220183, 1810351259, + 1810482341, 1810613491, 1810744567, 1810875667, 1811006741, 1811137819, 1811268967, + 1811400047, 1811531119, 1811662249, 1811793323, 1811924423, 1812055513, 1812186589, + 1812317693, 1812448769, 1812579851, 1812710923, 1812841999, 1812973079, 1813104151, + 1813235267, 1813366363, 1813497443, 1813628567, 1813759643, 1813890737, 1814021819, + 1814152931, 1814284007, 1814415137, 1814546243, 1814677331, 1814808403, 1814939479, + 1815070571, 1815201649, 1815332767, 1815463861, 1815594941, 1815726083, 1815857171, + 1815988259, 1816119341, 1816250419, 1816381499, 1816512601, 1816643677, 1816774829, + 1816905943, 1817037023, 1817168141, 1817299249, 1817430337, 1817561419, 1817692511, + 1817823641, 1817954737, 1818085831, 1818216931, 1818348011, 1818479101, 1818610177, + 1818741271, 1818872359, 1819003441, 1819134539, 1819265611, 1819396723, 1819527811, + 1819658891, 1819789963, 1819921057, 1820052139, 1820183213, 1820314289, 1820445371, + 1820576449, 1820707529, 1820838619, 1820969713, 1821100793, 1821231877, 1821362957, + 1821494047, 1821625147, 1821756241, 1821887341, 1822018423, 1822149503, 1822280587, + 1822411687, 1822542763, 1822673927, 1822805041, 1822936153, 1823067229, 1823198383, + 1823329483, 1823460559, 1823591641, 1823722727, 1823853821, 1823984923, 1824116003, + 1824247127, 1824378217, 1824509299, 1824640373, 1824771463, 1824902537, 1825033627, + 1825164709, 1825295837, 1825426921, 1825557997, 1825689091, 1825820173, 1825951307, + 1826082383, 1826213497, 1826344577, 1826475649, 1826606759, 1826737831, 1826868947, + 1827000037, 1827131123, 1827262201, 1827393289, 1827524371, 1827655477, 1827786551, + 1827917627, 1828048721, 1828179809, 1828310881, 1828441961, 1828573073, 1828704149, + 1828835221, 1828966297, 1829097397, 1829228483, 1829359573, 1829490661, 1829621771, + 1829752843, 1829883931, 1830015023, 1830146119, 1830277193, 1830408311, 1830539393, + 1830670489, 1830801589, 1830932683, 1831063771, 1831194851, 1831325929, 1831457009, + 1831588081, 1831719209, 1831850291, 1831981367, 1832112479, 1832243591, 1832374673, + 1832505751, 1832636837, 1832767913, 1832898989, 1833030071, 1833161149, 1833292271, + 1833423353, 1833554441, 1833685523, 1833816629, 1833947707, 1834078781, 1834209869, + 1834340969, 1834472041, 1834603117, 1834734229, 1834865323, 1834996399, 1835127499, + 1835258599, 1835389687, 1835520761, 1835651849, 1835782931, 1835914009, 1836045097, + 1836176183, 1836307267, 1836438341, 1836569417, 1836700499, 1836831571, 1836962657, + 1837093777, 1837224853, 1837355939, 1837487033, 1837618129, 1837749211, 1837880287, + 1838011361, 1838142433, 1838273509, 1838404609, 1838535689, 1838666779, 1838797879, + 1838928983, 1839060079, 1839191191, 1839322273, 1839453347, 1839584431, 1839715561, + 1839846637, 1839977743, 1840108817, 1840239937, 1840371019, 1840502101, 1840633247, + 1840764323, 1840895411, 1841026511, 1841157607, 1841288711, 1841419793, 1841550869, + 1841681957, 1841813063, 1841944157, 1842075247, 1842206347, 1842337439, 1842468527, + 1842599623, 1842730741, 1842861847, 1842992923, 1843123999, 1843255079, 1843386151, + 1843517239, 1843648327, 1843779409, 1843910489, 1844041601, 1844172697, 1844303771, + 1844434849, 1844565949, 1844697053, 1844828131, 1844959217, 1845090301, 1845221381, + 1845352501, 1845483587, 1845614671, 1845745763, 1845876863, 1846007941, 1846139023, + 1846270133, 1846401233, 1846532321, 1846663453, 1846794533, 1846925669, 1847056763, + 1847187869, 1847318953, 1847450029, 1847581103, 1847712187, 1847843279, 1847974379, + 1848105461, 1848236569, 1848367643, 1848498719, 1848629791, 1848760871, 1848891971, + 1849023047, 1849154147, 1849285231, 1849416311, 1849547437, 1849678513, 1849809589, + 1849940671, 1850071753, 1850202829, 1850333909, 1850464991, 1850596073, 1850727169, + 1850858263, 1850989339, 1851120413, 1851251489, 1851382567, 1851513659, 1851644749, + 1851775901, 1851907007, 1852038109, 1852169197, 1852300273, 1852431377, 1852562473, + 1852693567, 1852824641, 1852955719, 1853086811, 1853217929, 1853349007, 1853480081, + 1853611159, 1853742301, 1853873381, 1854004457, 1854135529, 1854266621, 1854397693, + 1854528799, 1854659923, 1854790997, 1854922081, 1855053191, 1855184273, 1855315361, + 1855446433, 1855577519, 1855708601, 1855839691, 1855970777, 1856101861, 1856232947, + 1856364019, 1856495107, 1856626181, 1856757257, 1856888329, 1857019433, 1857150541, + 1857281617, 1857412717, 1857543817, 1857674909, 1857805987, 1857937061, 1858068143, + 1858199249, 1858330363, 1858461443, 1858592531, 1858723627, 1858854703, 1858985801, + 1859116879, 1859247977, 1859379059, 1859510207, 1859641279, 1859772359, 1859903447, + 1860034543, 1860165631, 1860296717, 1860427817, 1860558893, 1860689989, 1860821099, + 1860952183, 1861083271, 1861214347, 1861345433, 1861476511, 1861607609, 1861738733, + 1861869809, 1862000887, 1862131969, 1862263061, 1862394137, 1862525279, 1862656351, + 1862787431, 1862918509, 1863049597, 1863180673, 1863311759, 1863442837, 1863573911, + 1863705007, 1863836081, 1863967169, 1864098241, 1864229329, 1864360409, 1864491491, + 1864622567, 1864753661, 1864884737, 1865015837, 1865146957, 1865278031, 1865409107, + 1865540197, 1865671319, 1865802403, 1865933501, 1866064579, 1866195671, 1866326771, + 1866457847, 1866589003, 1866720083, 1866851159, 1866982231, 1867113317, 1867244413, + 1867375501, 1867506583, 1867637659, 1867768739, 1867899841, 1868030939, 1868162039, + 1868293159, 1868424247, 1868555341, 1868686433, 1868817521, 1868948597, 1869079673, + 1869210859, 1869341933, 1869473029, 1869604109, 1869735181, 1869866269, 1869997391, + 1870128473, 1870259551, 1870390631, 1870521703, 1870652803, 1870783879, 1870914979, + 1871046091, 1871177249, 1871308321, 1871439419, 1871570497, 1871701597, 1871832691, + 1871963783, 1872094877, 1872225961, 1872357043, 1872488129, 1872619211, 1872750287, + 1872881359, 1873012433, 1873143523, 1873274617, 1873405691, 1873536767, 1873667839, + 1873798931, 1873930027, 1874061107, 1874192209, 1874323289, 1874454371, 1874585443, + 1874716517, 1874847613, 1874978701, 1875109781, 1875240883, 1875371959, 1875503039, + 1875634121, 1875765217, 1875896303, 1876027381, 1876158463, 1876289537, 1876420619, + 1876551707, 1876682779, 1876813859, 1876944947, 1877076031, 1877207131, 1877338231, + 1877469353, 1877600441, 1877731543, 1877862629, 1877993729, 1878124811, 1878255943, + 1878387031, 1878518111, 1878649193, 1878780271, 1878911347, 1879042439, 1879173521, + 1879304597, 1879435669, 1879566751, 1879697861, 1879828943, 1879960057, 1880091209, + 1880222291, 1880353381, 1880484527, 1880615603, 1880746723, 1880877797, 1881008879, + 1881139961, 1881271037, 1881402179, 1881533263, 1881664349, 1881795427, 1881926509, + 1882057609, 1882188703, 1882319809, 1882450883, 1882581977, 1882713103, 1882844191, + 1882975277, 1883106383, 1883237479, 1883368607, 1883499679, 1883630779, 1883761879, + 1883892953, 1884024041, 1884155131, 1884286231, 1884417313, 1884548387, 1884679481, + 1884810559, 1884941633, 1885072711, 1885203791, 1885334873, 1885465951, 1885597033, + 1885728137, 1885859219, 1885990313, 1886121397, 1886252503, 1886383589, 1886514683, + 1886645777, 1886776867, 1886907941, 1887039013, 1887170101, 1887301183, 1887432289, + 1887563369, 1887694451, 1887825523, 1887956611, 1888087697, 1888218779, 1888349917, + 1888481039, 1888612111, 1888743229, 1888874327, 1889005409, 1889136481, 1889267563, + 1889398639, 1889529769, 1889660869, 1889791951, 1889923033, 1890054109, 1890185201, + 1890316277, 1890447359, 1890578441, 1890709537, 1890840631, 1890971723, 1891102817, + 1891233889, 1891364989, 1891496069, 1891627151, 1891758227, 1891889323, 1892020409, + 1892151529, 1892282617, 1892413697, 1892544781, 1892675893, 1892806969, 1892938043, + 1893069127, 1893200207, 1893331283, 1893462359, 1893593431, 1893724507, 1893855583, + 1893986657, 1894117783, 1894248859, 1894379951, 1894511051, 1894642151, 1894773241, + 1894904369, 1895035451, 1895166551, 1895297629, 1895428741, 1895559817, 1895690941, + 1895822113, 1895953193, 1896084283, 1896215401, 1896346489, 1896477563, 1896608647, + 1896739721, 1896870797, 1897001881, 1897132973, 1897264051, 1897395127, 1897526209, + 1897657309, 1897788383, 1897919461, 1898050537, 1898181611, 1898312693, 1898443777, + 1898574877, 1898705971, 1898837051, 1898968163, 1899099269, 1899230341, 1899361417, + 1899492499, 1899623587, 1899754669, 1899885749, 1900016831, 1900147927, 1900279037, + 1900410133, 1900541207, 1900672303, 1900803379, 1900934507, 1901065583, 1901196667, + 1901327741, 1901458817, 1901589889, 1901720969, 1901852041, 1901983129, 1902114229, + 1902245339, 1902376447, 1902507559, 1902638653, 1902769741, 1902900829, 1903031947, + 1903163027, 1903294111, 1903425211, 1903556299, 1903687393, 1903818503, 1903949609, + 1904080709, 1904211811, 1904342959, 1904474053, 1904605139, 1904736227, 1904867353, + 1904998489, 1905129571, 1905260671, 1905391777, 1905522893, 1905654011, 1905785087, + 1905916169, 1906047257, 1906178369, 1906309441, 1906440517, 1906571599, 1906702673, + 1906833751, 1906964827, 1907095943, 1907227033, 1907358107, 1907489183, 1907620259, + 1907751337, 1907882429, 1908013511, 1908144593, 1908275671, 1908406783, 1908537887, + 1908668987, 1908800063, 1908931147, 1909062223, 1909193323, 1909324409, 1909455503, + 1909586579, 1909717651, 1909848749, 1909979831, 1910110921, 1910242013, 1910373119, + 1910504257, 1910635339, 1910766427, 1910897533, 1911028619, 1911159697, 1911290783, + 1911421867, 1911552943, 1911684029, 1911815107, 1911946181, 1912077257, 1912208357, + 1912339433, 1912470529, 1912601627, 1912732709, 1912863791, 1912994869, 1913125967, + 1913257063, 1913388151, 1913519327, 1913650421, 1913781503, 1913912597, 1914043669, + 1914174767, 1914305839, 1914436949, 1914568027, 1914699107, 1914830213, 1914961297, + 1915092371, 1915223473, 1915354549, 1915485631, 1915616749, 1915747829, 1915878901, + 1916009981, 1916141057, 1916272129, 1916403221, 1916534303, 1916665381, 1916796493, + 1916927567, 1917058667, 1917189751, 1917320861, 1917451933, 1917583039, 1917714131, + 1917845203, 1917976283, 1918107413, 1918238519, 1918369619, 1918500697, 1918631807, + 1918762883, 1918893971, 1919025067, 1919156191, 1919287277, 1919418353, 1919549431, + 1919680507, 1919811611, 1919942701, 1920073781, 1920204857, 1920335969, 1920467069, + 1920598181, 1920729257, 1920860329, 1920991421, 1921122499, 1921253573, 1921384667, + 1921515773, 1921646861, 1921777943, 1921909097, 1922040181, 1922171257, 1922302337, + 1922433419, 1922564507, 1922695589, 1922826671, 1922957749, 1923088823, 1923219901, + 1923350993, 1923482083, 1923613171, 1923744269, 1923875377, 1924006451, 1924137539, + 1924268677, 1924399753, 1924530841, 1924661927, 1924792999, 1924924103, 1925055179, + 1925186251, 1925317343, 1925448431, 1925579533, 1925710613, 1925841707, 1925972779, + 1926103919, 1926235007, 1926366083, 1926497197, 1926628271, 1926759347, 1926890431, + 1927021507, 1927152587, 1927283663, 1927414759, 1927545853, 1927676983, 1927808063, + 1927939151, 1928070241, 1928201371, 1928332481, 1928463553, 1928594641, 1928725811, + 1928856887, 1928988023, 1929119111, 1929250207, 1929381283, 1929512381, 1929643517, + 1929774599, 1929905683, 1930036769, 1930167853, 1930298941, 1930430041, 1930561181, + 1930692259, 1930823369, 1930954457, 1931085547, 1931216647, 1931347723, 1931478827, + 1931609899, 1931741003, 1931872087, 1932003167, 1932134273, 1932265367, 1932396509, + 1932527587, 1932658661, 1932789739, 1932920831, 1933051933, 1933183013, 1933314107, + 1933445179, 1933576273, 1933707389, 1933838471, 1933969547, 1934100661, 1934231753, + 1934362861, 1934493973, 1934625103, 1934756183, 1934887267, 1935018343, 1935149417, + 1935280547, 1935411619, 1935542723, 1935673819, 1935804901, 1935935993, 1936067167, + 1936198301, 1936329377, 1936460479, 1936591561, 1936722647, 1936853729, 1936984919, + 1937115991, 1937247083, 1937378203, 1937509307, 1937640403, 1937771477, 1937902601, + 1938033689, 1938164777, 1938295867, 1938426943, 1938558029, 1938689101, 1938820183, + 1938951277, 1939082357, 1939213429, 1939344509, 1939475581, 1939606703, 1939737781, + 1939868857, 1939999939, 1940131099, 1940262209, 1940393303, 1940524379, 1940655481, + 1940786563, 1940917637, 1941048709, 1941179813, 1941310913, 1941441989, 1941573107, + 1941704179, 1941835261, 1941966371, 1942097449, 1942228543, 1942359631, 1942490717, + 1942621819, 1942752901, 1942883989, 1943015083, 1943146159, 1943277233, 1943408351, + 1943539427, 1943670527, 1943801603, 1943932687, 1944063761, 1944194839, 1944325919, + 1944457013, 1944588103, 1944719177, 1944850309, 1944981419, 1945112503, 1945243591, + 1945374721, 1945505839, 1945636933, 1945768067, 1945899173, 1946030263, 1946161351, + 1946292433, 1946423543, 1946554627, 1946685701, 1946816783, 1946947859, 1947078949, + 1947210029, 1947341101, 1947472211, 1947603289, 1947734363, 1947865499, 1947996571, + 1948127689, 1948258771, 1948389887, 1948520993, 1948652119, 1948783211, 1948914299, + 1949045377, 1949176483, 1949307557, 1949438651, 1949569777, 1949700853, 1949831951, + 1949963063, 1950094141, 1950225239, 1950356311, 1950487387, 1950618479, 1950749569, + 1950880643, 1951011757, 1951142857, 1951273937, 1951405021, 1951536127, 1951667209, + 1951798291, 1951929379, 1952060491, 1952191597, 1952322689, 1952453773, 1952584849, + 1952715929, 1952847007, 1952978089, 1953109187, 1953240259, 1953371333, 1953502409, + 1953633481, 1953764569, 1953895661, 1954026791, 1954157873, 1954288969, 1954420049, + 1954551121, 1954682203, 1954813277, 1954944361, 1955075467, 1955206541, 1955337613, + 1955468693, 1955599783, 1955730863, 1955861981, 1955993059, 1956124139, 1956255211, + 1956386287, 1956517411, 1956648497, 1956779593, 1956910667, 1957041769, 1957172857, + 1957303951, 1957435027, 1957566113, 1957697197, 1957828283, 1957959371, 1958090473, + 1958221561, 1958352653, 1958483731, 1958614807, 1958745949, 1958877023, 1959008143, + 1959139261, 1959270343, 1959401417, 1959532493, 1959663569, 1959794657, 1959925757, + 1960056829, 1960187963, 1960319047, 1960450127, 1960581209, 1960712287, 1960843363, + 1960974523, 1961105639, 1961236721, 1961367797, 1961498899, 1961629973, 1961761069, + 1961892151, 1962023237, 1962154333, 1962285407, 1962416479, 1962547567, 1962678659, + 1962809731, 1962940813, 1963071907, 1963203001, 1963334081, 1963465157, 1963596241, + 1963727357, 1963858433, 1963989509, 1964120623, 1964251697, 1964382809, 1964513891, + 1964644987, 1964776061, 1964907157, 1965038233, 1965169307, 1965300433, 1965431509, + 1965562733, 1965693841, 1965824921, 1965955993, 1966087069, 1966218151, 1966349233, + 1966480331, 1966611487, 1966742587, 1966873669, 1967004749, 1967135839, 1967266919, + 1967398061, 1967529133, 1967660209, 1967791283, 1967922361, 1968053441, 1968184523, + 1968315599, 1968446719, 1968577801, 1968708901, 1968840007, 1968971089, 1969102171, + 1969233257, 1969364329, 1969495421, 1969626497, 1969757623, 1969888727, 1970019811, + 1970150887, 1970281967, 1970413061, 1970544133, 1970675249, 1970806339, 1970937427, + 1971068543, 1971199627, 1971330719, 1971461803, 1971592877, 1971723959, 1971855031, + 1971986113, 1972117187, 1972248293, 1972379411, 1972510483, 1972641557, 1972772639, + 1972903717, 1973034793, 1973165869, 1973296943, 1973428033, 1973559167, 1973690249, + 1973821331, 1973952403, 1974083483, 1974214577, 1974345661, 1974476759, 1974607849, + 1974739001, 1974870077, 1975001153, 1975132249, 1975263331, 1975394411, 1975525493, + 1975656589, 1975787677, 1975918793, 1976049877, 1976180957, 1976312029, 1976443109, + 1976574221, 1976705303, 1976836387, 1976967463, 1977098551, 1977229637, 1977360713, + 1977491797, 1977622873, 1977753949, 1977885083, 1978016167, 1978147253, 1978278349, + 1978409431, 1978540507, 1978671587, 1978802663, 1978933793, 1979064881, 1979195957, + 1979327041, 1979458127, 1979589223, 1979720321, 1979851397, 1979982491, 1980113567, + 1980244661, 1980375743, 1980506893, 1980637973, 1980769051, 1980900127, 1981031201, + 1981162273, 1981293361, 1981424441, 1981555553, 1981686653, 1981817741, 1981948831, + 1982079977, 1982211053, 1982342191, 1982473331, 1982604409, 1982735497, 1982866573, + 1982997649, 1983128737, 1983259819, 1983390911, 1983521987, 1983653059, 1983784157, + 1983915253, 1984046333, 1984177417, 1984308503, 1984439581, 1984570681, 1984701773, + 1984832849, 1984963927, 1985095027, 1985226169, 1985357243, 1985488331, 1985619407, + 1985750479, 1985881559, 1986012631, 1986143707, 1986274813, 1986405913, 1986536999, + 1986668083, 1986799169, 1986930271, 1987061359, 1987192453, 1987323551, 1987454647, + 1987585751, 1987716827, 1987847921, 1987979041, 1988110141, 1988241223, 1988372297, + 1988503381, 1988634463, 1988765539, 1988896619, 1989027697, 1989158771, 1989289877, + 1989420989, 1989552077, 1989683153, 1989814237, 1989945323, 1990076437, 1990207553, + 1990338629, 1990469713, 1990600793, 1990731871, 1990862947, 1990994029, 1991125139, + 1991256227, 1991387303, 1991518381, 1991649479, 1991780561, 1991911639, 1992042739, + 1992173831, 1992304903, 1992436021, 1992567097, 1992698171, 1992829243, 1992960329, + 1993091413, 1993222537, 1993353617, 1993484749, 1993615849, 1993746947, 1993878043, + 1994009123, 1994140217, 1994271289, 1994402369, 1994533447, 1994664541, 1994795629, + 1994926729, 1995057821, 1995188911, 1995320071, 1995451189, 1995582263, 1995713339, + 1995844457, 1995975529, 1996106641, 1996237723, 1996368797, 1996499893, 1996630991, + 1996762063, 1996893139, 1997024213, 1997155337, 1997286419, 1997417507, 1997548601, + 1997679683, 1997810761, 1997941867, 1998072949, 1998204067, 1998335147, 1998466219, + 1998597313, 1998728387, 1998859463, 1998990563, 1999121639, 1999252711, 1999383803, + 1999514879, 1999645981, 1999777061, 1999908133, 2000039213, 2000170301, 2000301427, + 2000432501, 2000563573, 2000694677, 2000825753, 2000956871, 2001087953, 2001219083, + 2001350189, 2001481301, 2001612377, 2001743467, 2001874541, 2002005617, 2002136701, + 2002267789, 2002398887, 2002529981, 2002661053, 2002792133, 2002923217, 2003054293, + 2003185369, 2003316449, 2003447527, 2003578627, 2003709703, 2003840809, 2003971889, + 2004103019, 2004234137, 2004365219, 2004496313, 2004627389, 2004758467, 2004889589, + 2005020671, 2005151747, 2005282823, 2005413911, 2005544993, 2005676083, 2005807187, + 2005938269, 2006069389, 2006200487, 2006331559, 2006462641, 2006593747, 2006724821, + 2006855911, 2006986991, 2007118063, 2007249157, 2007380237, 2007511343, 2007642433, + 2007773533, 2007904607, 2008035737, 2008166827, 2008297901, 2008428973, 2008560061, + 2008691161, 2008822247, 2008953371, 2009084449, 2009215561, 2009346641, 2009477759, + 2009608871, 2009739943, 2009871047, 2010002143, 2010133273, 2010264349, 2010395447, + 2010526519, 2010657617, 2010788729, 2010919819, 2011050901, 2011181981, 2011313053, + 2011444151, 2011575257, 2011706341, 2011837417, 2011968509, 2012099581, 2012230657, + 2012361731, 2012492819, 2012623909, 2012755009, 2012886107, 2013017207, 2013148297, + 2013279379, 2013410491, 2013541567, 2013672707, 2013803809, 2013934939, 2014066013, + 2014197091, 2014328191, 2014459331, 2014590421, 2014721503, 2014852579, 2014983683, + 2015114767, 2015245847, 2015376941, 2015508013, 2015639099, 2015770171, 2015901247, + 2016032323, 2016163453, 2016294541, 2016425623, 2016556699, 2016687809, 2016818899, + 2016949981, 2017081057, 2017212133, 2017343219, 2017474313, 2017605397, 2017736471, + 2017867543, 2017998623, 2018129699, 2018260799, 2018391883, 2018522963, 2018654051, + 2018785127, 2018916253, 2019047353, 2019178439, 2019309511, 2019440597, 2019571681, + 2019702791, 2019833867, 2019964951, 2020096037, 2020227137, 2020358213, 2020489297, + 2020620383, 2020751459, 2020882537, 2021013613, 2021144693, 2021275771, 2021406851, + 2021537933, 2021669029, 2021800117, 2021931203, 2022062279, 2022193361, 2022324439, + 2022455641, 2022586763, 2022717859, 2022848953, 2022980033, 2023111117, 2023242197, + 2023373347, 2023504421, 2023635503, 2023766579, 2023897661, 2024028757, 2024159843, + 2024290967, 2024422039, 2024553119, 2024684239, 2024815321, 2024946403, 2025077491, + 2025208567, 2025339649, 2025470723, 2025601847, 2025732953, 2025864053, 2025995189, + 2026126307, 2026257403, 2026388537, 2026519661, 2026650737, 2026781849, 2026912957, + 2027044057, 2027175131, 2027306231, 2027437309, 2027568383, 2027699461, 2027830561, + 2027961697, 2028092791, 2028223867, 2028354947, 2028486049, 2028617141, 2028748243, + 2028879329, 2029010429, 2029141501, 2029272607, 2029403681, 2029534781, 2029665857, + 2029796929, 2029928029, 2030059127, 2030190203, 2030321281, 2030452379, 2030583481, + 2030714563, 2030845637, 2030976719, 2031107797, 2031238921, 2031370037, 2031501119, + 2031632203, 2031763297, 2031894373, 2032025449, 2032156583, 2032287707, 2032418783, + 2032549889, 2032680961, 2032812037, 2032943131, 2033074229, 2033205301, 2033336377, + 2033467511, 2033598617, 2033729689, 2033860771, 2033991863, 2034122953, 2034254063, + 2034385139, 2034516229, 2034647333, 2034778411, 2034909491, 2035040653, 2035171729, + 2035302803, 2035433887, 2035564963, 2035696037, 2035827109, 2035958191, 2036089313, + 2036220419, 2036351491, 2036482571, 2036613659, 2036744747, 2036875823, 2037006899, + 2037137989, 2037269063, 2037400159, 2037531241, 2037662317, 2037793403, 2037924479, + 2038055561, 2038186637, 2038317709, 2038448809, 2038579889, 2038710967, 2038842053, + 2038973141, 2039104217, 2039235347, 2039366419, 2039497511, 2039628607, 2039759681, + 2039890789, 2040021917, 2040152993, 2040284093, 2040415171, 2040546281, 2040677389, + 2040808477, 2040939557, 2041070653, 2041201753, 2041332827, 2041463929, 2041595021, + 2041726133, 2041857241, 2041988317, 2042119481, 2042250563, 2042381641, 2042512727, + 2042643809, 2042774897, 2042905979, 2043037063, 2043168139, 2043299221, 2043430307, + 2043561379, 2043692461, 2043823547, 2043954623, 2044085699, 2044216771, 2044347857, + 2044478929, 2044610021, 2044741133, 2044872211, 2045003291, 2045134381, 2045265457, + 2045396567, 2045527651, 2045658733, 2045789813, 2045920889, 2046051979, 2046183059, + 2046314147, 2046445223, 2046576299, 2046707387, 2046838463, 2046969539, 2047100617, + 2047231729, 2047362829, 2047493909, 2047624987, 2047756093, 2047887197, 2048018281, + 2048149387, 2048280463, 2048411623, 2048542711, 2048673787, 2048804909, 2048935981, + 2049067061, 2049198209, 2049329287, 2049460373, 2049591457, 2049722537, 2049853621, + 2049984719, 2050115849, 2050246931, 2050378003, 2050509101, 2050640183, 2050771259, + 2050902367, 2051033447, 2051164601, 2051295679, 2051426753, 2051557829, 2051688943, + 2051820037, 2051951117, 2052082199, 2052213277, 2052344351, 2052475471, 2052606551, + 2052737663, 2052868739, 2052999821, 2053130941, 2053262111, 2053393217, 2053524311, + 2053655411, 2053786489, 2053917571, 2054048663, 2054179741, 2054310823, 2054441923, + 2054573009, 2054704097, 2054835173, 2054966281, 2055097367, 2055228509, 2055359587, + 2055490669, 2055621781, 2055752869, 2055883943, 2056015043, 2056146121, 2056277207, + 2056408301, 2056539383, 2056670477, 2056801567, 2056932641, 2057063717, 2057194829, + 2057325901, 2057456981, 2057588053, 2057719141, 2057850241, 2057981357, 2058112523, + 2058243623, 2058374711, 2058505783, 2058636857, 2058767951, 2058899041, 2059030147, + 2059161229, 2059292309, 2059423397, 2059554487, 2059685561, 2059816643, 2059947733, + 2060078807, 2060209903, 2060341043, 2060472203, 2060603299, 2060734387, 2060865463, + 2060996549, 2061127631, 2061258709, 2061389783, 2061520859, 2061651967, 2061783041, + 2061914119, 2062045201, 2062176289, 2062307371, 2062438447, 2062569539, 2062700617, + 2062831721, 2062962799, 2063093881, 2063224993, 2063356073, 2063487157, 2063618231, + 2063749349, 2063880443, 2064011569, 2064142651, 2064273727, 2064404807, 2064535883, + 2064666959, 2064798091, 2064929203, 2065060279, 2065191353, 2065322429, 2065453517, + 2065584637, 2065715737, 2065846819, 2065977899, 2066108977, 2066240081, 2066371159, + 2066502233, 2066633323, 2066764411, 2066895499, 2067026573, 2067157661, 2067288767, + 2067419839, 2067550939, 2067682013, 2067813089, 2067944161, 2068075241, 2068206331, + 2068337437, 2068468579, 2068599679, 2068730771, 2068861853, 2068992931, 2069124011, + 2069255087, 2069386177, 2069517349, 2069648479, 2069779601, 2069910709, 2070041783, + 2070172879, 2070304007, 2070435113, 2070566189, 2070697261, 2070828359, 2070959479, + 2071090559, 2071221643, 2071352719, 2071483793, 2071614871, 2071745957, 2071877039, + 2072008117, 2072139191, 2072270323, 2072401399, 2072532491, 2072663573, 2072794651, + 2072925731, 2073056809, 2073187891, 2073318983, 2073450061, 2073581179, 2073712271, + 2073843353, 2073974447, 2074105547, 2074236653, 2074367753, 2074498849, 2074629937, + 2074761011, 2074892111, 2075023183, 2075154269, 2075285347, 2075416487, 2075547563, + 2075678639, 2075809721, 2075940803, 2076071897, 2076202969, 2076334067, 2076465229, + 2076596303, 2076727397, 2076858491, 2076989591, 2077120663, 2077251773, 2077382849, + 2077513931, 2077645019, 2077776097, 2077907171, 2078038243, 2078169341, 2078300449, + 2078431529, 2078562631, 2078693713, 2078824799, 2078955877, 2079087011, 2079218093, + 2079349171, 2079480259, 2079611341, 2079742417, 2079873553, 2080004627, 2080135723, + 2080266883, 2080397981, 2080529081, 2080660171, 2080791247, 2080922339, 2081053411, + 2081184493, 2081315567, 2081446657, 2081577811, 2081708887, 2081839967, 2081971049, + 2082102167, 2082233243, 2082364367, 2082495439, 2082626527, 2082757627, 2082888701, + 2083019773, 2083150877, 2083281953, 2083413047, 2083544119, 2083675207, 2083806289, + 2083937399, 2084068489, 2084199563, 2084330641, 2084461727, 2084592803, 2084723881, + 2084854963, 2084986037, 2085117109, 2085248189, 2085379279, 2085510353, 2085641443, + 2085772537, 2085903613, 2086034707, 2086165799, 2086296887, 2086428013, 2086559089, + 2086690163, 2086821251, 2086952323, 2087083429, 2087214553, 2087345633, 2087476759, + 2087607887, 2087738959, 2087870041, 2088001117, 2088132191, 2088263263, 2088394339, + 2088525433, 2088656513, 2088787633, 2088918751, 2089049839, 2089180921, 2089312073, + 2089443149, 2089574231, 2089705333, 2089836439, 2089967527, 2090098603, 2090229677, + 2090360809, 2090491901, 2090622979, 2090754067, 2090885141, 2091016241, 2091147343, + 2091278419, 2091409499, 2091540599, 2091671671, 2091802747, 2091933853, 2092064927, + 2092196009, 2092327091, 2092458167, 2092589267, 2092720361, 2092851479, 2092982597, + 2093113691, 2093244787, 2093375861, 2093506957, 2093638037, 2093769121, 2093900209, + 2094031301, 2094162373, 2094293447, 2094424523, 2094555647, 2094686743, 2094817819, + 2094948899, 2095079981, 2095211057, 2095342147, 2095473251, 2095604327, 2095735399, + 2095866473, 2095997587, 2096128693, 2096259829, 2096390909, 2096521981, 2096653079, + 2096784211, 2096915329, 2097046417, 2097177503, 2097308593, 2097439699, 2097570803, + 2097701891, 2097832987, 2097964061, 2098095133, 2098226219, 2098357319, 2098488391, + 2098619473, 2098750559, 2098881637, 2099012719, 2099143819, 2099274893, 2099406031, + 2099537117, 2099668189, 2099799301, 2099930381, 2100061463, 2100192559, 2100323653, + 2100454753, 2100585833, 2100716927, 2100848003, 2100979079, 2101110173, 2101241279, + 2101372409, 2101503499, 2101634573, 2101765663, 2101896743, 2102027833, 2102158921, + 2102290019, 2102421121, 2102552233, 2102683337, 2102814449, 2102945531, 2103076621, + 2103207703, 2103338807, 2103469897, 2103601009, 2103732097, 2103863183, 2103994261, + 2104125367, 2104256449, 2104387529, 2104518601, 2104649681, 2104780753, 2104911829, + 2105042911, 2105173991, 2105305067, 2105436149, 2105567221, 2105698349, 2105829421, + 2105960497, 2106091583, 2106222661, 2106353741, 2106484819, 2106615961, 2106747061, + 2106878143, 2107009241, 2107140313, 2107271401, 2107402477, 2107533551, 2107664659, + 2107795783, 2107926859, 2108057951, 2108189033, 2108320147, 2108451227, 2108582299, + 2108713379, 2108844461, 2108975569, 2109106661, 2109237751, 2109368869, 2109499963, + 2109631087, 2109762167, 2109893243, 2110024361, 2110155499, 2110286579, 2110417681, + 2110548757, 2110679861, 2110810957, 2110942063, 2111073143, 2111204231, 2111335379, + 2111466463, 2111597549, 2111728621, 2111859703, 2111990789, 2112121867, 2112252949, + 2112384023, 2112515107, 2112646181, 2112777253, 2112908333, 2113039433, 2113170509, + 2113301591, 2113432723, 2113563799, 2113694887, 2113825963, 2113957051, 2114088133, + 2114219213, 2114350297, 2114481371, 2114612443, 2114743541, 2114874637, 2115005731, + 2115136819, 2115267901, 2115399007, 2115530101, 2115661181, 2115792257, 2115923351, + 2116054439, 2116185523, 2116316623, 2116447699, 2116578781, 2116709891, 2116840981, + 2116972063, 2117103137, 2117234209, 2117365297, 2117496377, 2117627507, 2117758613, + 2117889737, 2118020813, 2118151927, 2118283007, 2118414091, 2118545173, 2118676249, + 2118807337, 2118938417, 2119069517, 2119200593, 2119331717, 2119462799, 2119593899, + 2119725031, 2119856107, 2119987253, 2120118367, 2120249447, 2120380519, 2120511593, + 2120642677, 2120773757, 2120904833, 2121035947, 2121167029, 2121298103, 2121429197, + 2121560323, 2121691399, 2121822509, 2121953599, 2122084697, 2122215787, 2122346867, + 2122477949, 2122609033, 2122740119, 2122871221, 2123002309, 2123133391, 2123264467, + 2123395577, 2123526649, 2123657743, 2123788829, 2123919907, 2124051011, 2124182129, + 2124313201, 2124444277, 2124575371, 2124706447, 2124837521, 2124968617, 2125099727, + 2125230869, 2125361951, 2125493023, 2125624133, 2125755211, 2125886291, 2126017363, + 2126148457, 2126279567, 2126410717, 2126541799, 2126672923, 2126803999, 2126935123, + 2127066199, 2127197279, 2127328373, 2127459457, 2127590533, 2127721693, 2127852767, + 2127983881, 2128114979, 2128246067, 2128377161, 2128508281, 2128639361, 2128770467, + 2128901539, 2129032613, 2129163689, 2129294803, 2129425973, 2129557049, 2129688139, + 2129819227, 2129950313, 2130081389, 2130212471, 2130343543, 2130474623, 2130605707, + 2130736781, 2130867857, 2130998929, 2131130077, 2131261177, 2131392253, 2131523347, + 2131654477, 2131785569, 2131916693, 2132047769, 2132178847, 2132309947, 2132441099, + 2132572199, 2132703299, 2132834387, 2132965459, 2133096533, 2133227633, 2133358709, + 2133489797, 2133620933, 2133752039, 2133883183, 2134014341, 2134145443, 2134276541, + 2134407623, 2134538701, 2134669793, 2134800869, 2134931977, 2135063053, 2135194177, + 2135325251, 2135456329, 2135587409, 2135718511, 2135849593, 2135980669, 2136111781, + 2136242869, 2136373957, 2136505031, 2136636119, 2136767201, 2136898273, 2137029379, + 2137160461, 2137291549, 2137422643, 2137553723, 2137684807, 2137815923, 2137947011, + 2138078087, 2138209189, 2138340263, 2138471353, 2138602439, 2138733511, 2138864593, + 2138995669, 2139126757, 2139257831, 2139388913, 2139520013, 2139651091, 2139782173, + 2139913249, 2140044331, 2140175431, 2140306513, 2140437589, 2140568687, 2140699783, + 2140830899, 2140961987, 2141093077, 2141224159, 2141355239, 2141486329, 2141617421, + 2141748493, 2141879567, 2142010639, 2142141713, 2142272791, 2142403889, 2142534971, + 2142666047, 2142797123, 2142928219, 2143059319, 2143190437, 2143321513, 2143452589, + 2143583681, 2143714753, 2143845853, 2143976927, 2144108027, 2144239099, 2144370181, + 2144501263, 2144632339, 2144763451, 2144894527, 2145025601, 2145156703, 2145287779, + 2145418867, 2145549941, 2145681019, 2145812093, 2145943181, 2146074257, 2146205339, + 2146336453, 2146467577, 2146598681, 2146729777, 2146860851, 2146991939, 2147123021, + 2147254097, 2147385197, 2147516291, 2147647367, 2147778443, 2147909521, 2148040637, + 2148171719, 2148302809, 2148433909, 2148564983, 2148696083, 2148827203, 2148958303, + 2149089379, 2149220459, 2149351537, 2149482679, 2149613759, 2149744837, 2149875929, + 2150007011, 2150138101, 2150269189, 2150400313, 2150531387, 2150662477, 2150793577, + 2150924669, 2151055757, 2151186907, 2151318061, 2151449137, 2151580213, 2151711293, + 2151842377, 2151973451, 2152104523, 2152235627, 2152366757, 2152497833, 2152628909, + 2152759991, 2152891093, 2153022167, 2153153251, 2153284333, 2153415409, 2153546489, + 2153677619, 2153808691, 2153939771, 2154070843, 2154201947, 2154333023, 2154464107, + 2154595187, 2154726307, 2154857449, 2154988547, 2155119667, 2155250743, 2155381829, + 2155512929, 2155644067, 2155775213, 2155906301, 2156037391, 2156168489, 2156299573, + 2156430659, 2156561773, 2156692849, 2156823947, 2156955029, 2157086117, 2157217189, + 2157348283, 2157479407, 2157610513, 2157741673, 2157872771, 2158003867, 2158134941, + 2158266037, 2158397113, 2158528217, 2158659289, 2158790423, 2158921517, 2159052607, + 2159183683, 2159314757, 2159445839, 2159576921, 2159707997, 2159839133, 2159970223, + 2160101303, 2160232387, 2160363521, 2160494599, 2160625697, 2160756769, 2160887843, + 2161018933, 2161150031, 2161281113, 2161412191, 2161543277, 2161674349, 2161805441, + 2161936523, 2162067601, 2162198681, 2162329781, 2162460869, 2162591969, 2162723047, + 2162854163, 2162985241, 2163116353, 2163247447, 2163378563, 2163509693, 2163640769, + 2163771913, 2163902999, 2164034101, 2164165193, 2164296283, 2164427357, 2164558433, + 2164689517, 2164820629, 2164951753, 2165082827, 2165213917, 2165345027, 2165476121, + 2165607209, 2165738287, 2165869361, 2166000469, 2166131543, 2166262627, 2166393703, + 2166524783, 2166655873, 2166787027, 2166918133, 2167049221, 2167180297, 2167311379, + 2167442471, 2167573547, 2167704631, 2167835743, 2167966817, 2168097947, 2168229029, + 2168360119, 2168491243, 2168622319, 2168753413, 2168884511, 2169015587, 2169146677, + 2169277753, 2169408833, 2169539941, 2169671057, 2169802133, 2169933217, 2170064291, + 2170195421, 2170326497, 2170457581, 2170588661, 2170719757, 2170850849, 2170981931, + 2171113003, 2171244121, 2171375197, 2171506273, 2171637353, 2171768437, 2171899511, + 2172030611, 2172161707, 2172292831, 2172423961, 2172555037, 2172686137, 2172817217, + 2172948293, 2173079369, 2173210489, 2173341593, 2173472669, 2173603741, 2173734863, + 2173865951, 2173997027, 2174128127, 2174259203, 2174390279, 2174521369, 2174652463, + 2174783549, 2174914631, 2175045709, 2175176789, 2175307867, 2175438959, 2175570031, + 2175701113, 2175832187, 2175963299, 2176094381, 2176225481, 2176356571, 2176487647, + 2176618723, 2176749797, 2176880879, 2177011979, 2177143057, 2177274173, 2177405257, + 2177536343, 2177667419, 2177798531, 2177929603, 2178060679, 2178191753, 2178322837, + 2178453923, 2178585043, 2178716119, 2178847241, 2178978331, 2179109423, 2179240499, + 2179371577, 2179502651, 2179633741, 2179764817, 2179895891, 2180026969, 2180158051, + 2180289187, 2180420269, 2180551343, 2180682419, 2180813491, 2180944589, 2181075697, + 2181206801, 2181337877, 2181468959, 2181600041, 2181731129, 2181862219, 2181993301, + 2182124389, 2182255499, 2182386587, 2182517663, 2182648753, 2182779829, 2182910927, + 2183042003, 2183173117, 2183304217, 2183435291, 2183566423, 2183697553, 2183828629, + 2183959709, 2184090791, 2184221869, 2184352943, 2184484031, 2184615119, 2184746197, + 2184877273, 2185008377, 2185139461, 2185270543, 2185401623, 2185532707, 2185663789, + 2185794893, 2185926013, 2186057117, 2186188189, 2186319283, 2186450363, 2186581447, + 2186712551, 2186843639, 2186974721, 2187105793, 2187236903, 2187367979, 2187499057, + 2187630139, 2187761273, 2187892349, 2188023443, 2188154537, 2188285637, 2188416721, + 2188547821, 2188678903, 2188810007, 2188941089, 2189072177, 2189203253, 2189334361, + 2189465449, 2189596547, 2189727641, 2189858777, 2189989849, 2190120923, 2190252007, + 2190383101, 2190514177, 2190645251, 2190776339, 2190907417, 2191038511, 2191169597, + 2191300703, 2191431791, 2191562903, 2191693979, 2191825063, 2191956161, 2192087251, + 2192218367, 2192349449, 2192480527, 2192611639, 2192742733, 2192873833, 2193004927, + 2193136003, 2193267091, 2193398201, 2193529301, 2193660379, 2193791461, 2193922537, + 2194053611, 2194184711, 2194315789, 2194446871, 2194577977, 2194709053, 2194840127, + 2194971199, 2195102279, 2195233379, 2195364487, 2195495579, 2195626651, 2195757727, + 2195888803, 2196019877, 2196150953, 2196282041, 2196413137, 2196544213, 2196675287, + 2196806411, 2196937517, 2197068619, 2197199737, 2197330819, 2197461901, 2197592977, + 2197724051, 2197855133, 2197986209, 2198117281, 2198248357, 2198379437, 2198510521, + 2198641597, 2198772677, 2198903851, 2199034927, 2199166007, 2199297083, 2199428213, + 2199559319, 2199690461, 2199821557, 2199952649, 2200083737, 2200214831, 2200345943, + 2200477043, 2200608167, 2200739251, 2200870351, 2201001427, 2201132533, 2201263613, + 2201394691, 2201525773, 2201656907, 2201787979, 2201919059, 2202050131, 2202181213, + 2202312313, 2202443393, 2202574481, 2202705563, 2202836651, 2202967769, 2203098853, + 2203229927, 2203361021, 2203492097, 2203623197, 2203754279, 2203885361, 2204016433, + 2204147513, 2204278621, 2204409733, 2204540861, 2204671949, 2204803067, 2204934157, + 2205065243, 2205196381, 2205327463, 2205458543, 2205589651, 2205720787, 2205851861, + 2205983041, 2206114177, 2206245253, 2206376339, 2206507451, 2206638529, 2206769603, + 2206900681, 2207031767, 2207162897, 2207293981, 2207425093, 2207556179, 2207687267, + 2207818363, 2207949439, 2208080527, 2208211627, 2208342707, 2208473783, 2208604873, + 2208735989, 2208867079, 2208998153, 2209129249, 2209260337, 2209391411, 2209522507, + 2209653623, 2209784699, 2209915777, 2210046857, 2210177951, 2210309051, 2210440123, + 2210571227, 2210702309, 2210833381, 2210964491, 2211095563, 2211226639, 2211357737, + 2211488833, 2211619933, 2211751013, 2211882107, 2212013189, 2212144327, 2212275407, + 2212406489, 2212537589, 2212668739, 2212799851, 2212930949, 2213062039, 2213193113, + 2213324189, 2213455289, 2213586391, 2213717479, 2213848561, 2213979637, 2214110749, + 2214241831, 2214372907, 2214504037, 2214635113, 2214766189, 2214897283, 2215028359, + 2215159477, 2215290577, 2215421653, 2215552747, 2215683851, 2215814929, 2215946009, + 2216077081, 2216208191, 2216339263, 2216470343, 2216601421, 2216732503, 2216863577, + 2216994649, 2217125723, 2217256801, 2217387889, 2217518971, 2217650053, 2217781133, + 2217912223, 2218043327, 2218174411, 2218305487, 2218436611, 2218567691, 2218698767, + 2218829917, 2218961047, 2219092163, 2219223247, 2219354321, 2219485417, 2219616493, + 2219747567, 2219878643, 2220009763, 2220140837, 2220271909, 2220403013, 2220534131, + 2220665221, 2220796313, 2220927391, 2221058473, 2221189571, 2221320659, 2221451753, + 2221582837, 2221713917, 2221844993, 2221976083, 2222107159, 2222238247, 2222369329, + 2222500417, 2222631497, 2222762569, 2222893663, 2223024751, 2223155839, 2223286931, + 2223418003, 2223549079, 2223680159, 2223811237, 2223942341, 2224073447, 2224204529, + 2224335601, 2224466693, 2224597769, 2224728841, 2224859927, 2224991003, 2225122087, + 2225253167, 2225384257, 2225515333, 2225646421, 2225777507, 2225908591, 2226039667, + 2226170741, 2226301837, 2226432983, 2226564061, 2226695153, 2226826253, 2226957329, + 2227088429, 2227219541, 2227350617, 2227481689, 2227612769, 2227743877, 2227874959, + 2228006041, 2228137117, 2228268209, 2228399291, 2228530393, 2228661467, 2228792543, + 2228923633, 2229054713, 2229185797, 2229316871, 2229447943, 2229579061, 2229710149, + 2229841241, 2229972317, 2230103411, 2230234499, 2230365593, 2230496669, 2230627753, + 2230758833, 2230889911, 2231020991, 2231152069, 2231283157, 2231414267, 2231545339, + 2231676413, 2231807527, 2231938603, 2232069683, 2232200767, 2232331873, 2232462959, + 2232594127, 2232725203, 2232856291, 2232987371, 2233118443, 2233249547, 2233380637, + 2233511713, 2233642819, 2233773907, 2233904983, 2234036059, 2234167207, 2234298281, + 2234429389, 2234560463, 2234691577, 2234822713, 2234953813, 2235084919, 2235216017, + 2235347117, 2235478211, 2235609283, 2235740399, 2235871471, 2236002551, 2236133639, + 2236264729, 2236395841, 2236526927, 2236657999, 2236789081, 2236920167, 2237051249, + 2237182357, 2237313443, 2237444519, 2237575597, 2237706721, 2237837801, 2237968877, + 2238099961, 2238231071, 2238362167, 2238493259, 2238624337, 2238755419, 2238886499, + 2239017601, 2239148683, 2239279781, 2239410863, 2239541981, 2239673057, 2239804181, + 2239935253, 2240066327, 2240197409, 2240328481, 2240459561, 2240590691, 2240721773, + 2240852891, 2240983963, 2241115057, 2241246167, 2241377239, 2241508319, 2241639401, + 2241770473, 2241901549, 2242032647, 2242163773, 2242294853, 2242425931, 2242557029, + 2242688101, 2242819181, 2242950263, 2243081383, 2243212463, 2243343569, 2243474663, + 2243605739, 2243736827, 2243867959, 2243999057, 2244130151, 2244261241, 2244392323, + 2244523403, 2244654499, 2244785581, 2244916699, 2245047839, 2245178953, 2245310027, + 2245441139, 2245572227, 2245703303, 2245834387, 2245965461, 2246096549, 2246227649, + 2246358721, 2246489797, 2246620877, 2246751961, 2246883043, 2247014171, 2247145253, + 2247276391, 2247407467, 2247538561, 2247669647, 2247800729, 2247931813, 2248062907, + 2248194001, 2248325083, 2248456183, 2248587283, 2248718369, 2248849441, 2248980527, + 2249111609, 2249242687, 2249373773, 2249504849, 2249635939, 2249767043, 2249898121, + 2250029207, 2250160279, 2250291361, 2250422437, 2250553511, 2250684607, 2250815683, + 2250946799, 2251077889, 2251208989, 2251340089, 2251471223, 2251602317, 2251733389, + 2251864469, 2251995607, 2252126711, 2252257807, 2252388881, 2252519993, 2252651081, + 2252782171, 2252913259, 2253044359, 2253175451, 2253306551, 2253437723, 2253568799, + 2253699871, 2253830993, 2253962069, 2254093141, 2254224221, 2254355333, 2254486411, + 2254617493, 2254748597, 2254879691, 2255010767, 2255141839, 2255272913, 2255404001, + 2255535109, 2255666249, 2255797333, 2255928421, 2256059513, 2256190619, 2256321703, + 2256452791, 2256583907, 2256714983, 2256846061, 2256977153, 2257108279, 2257239359, + 2257370447, 2257501523, 2257632607, 2257763689, 2257894799, 2258025881, 2258157017, + 2258288089, 2258419181, 2258550271, 2258681357, 2258812429, 2258943509, 2259074677, + 2259205783, 2259336881, 2259467971, 2259599057, 2259730163, 2259861239, 2259992341, + 2260123421, 2260254509, 2260385609, 2260516693, 2260647773, 2260778869, 2260909967, + 2261041043, 2261172119, 2261303203, 2261434289, 2261565407, 2261696497, 2261827597, + 2261958757, 2262089833, 2262220943, 2262352019, 2262483103, 2262614209, 2262745301, + 2262876379, 2263007473, 2263138571, 2263269703, 2263400807, 2263531939, 2263663043, + 2263794139, 2263925231, 2264056343, 2264187433, 2264318531, 2264449633, 2264580707, + 2264711843, 2264842933, 2264974031, 2265105107, 2265236201, 2265367303, 2265498397, + 2265629557, 2265760681, 2265891769, 2266022849, 2266153961, 2266285061, 2266416133, + 2266547233, 2266678327, 2266809407, 2266940479, 2267071559, 2267202653, 2267333737, + 2267464831, 2267595919, 2267727061, 2267858137, 2267989247, 2268120329, 2268251437, + 2268382517, 2268513589, 2268644663, 2268775739, 2268906817, 2269037959, 2269169047, + 2269300123, 2269431209, 2269562287, 2269693373, 2269824451, 2269955533, 2270086627, + 2270217721, 2270348807, 2270479889, 2270610983, 2270742101, 2270873183, 2271004303, + 2271135397, 2271266507, 2271397649, 2271528739, 2271659827, 2271790907, 2271921983, + 2272053061, 2272184177, 2272315267, 2272446343, 2272577423, 2272708507, 2272839601, + 2272970681, 2273101757, 2273232833, 2273363909, 2273495023, 2273626123, 2273757197, + 2273888293, 2274019379, 2274150481, 2274281557, 2274412697, 2274543773, 2274674867, + 2274805957, 2274937031, 2275068109, 2275199203, 2275330289, 2275461361, 2275592441, + 2275723579, 2275854701, 2275985791, 2276116867, 2276247959, 2276379103, 2276510267, + 2276641363, 2276772437, 2276903543, 2277034631, 2277165721, 2277296821, 2277427949, + 2277559021, 2277690101, 2277821179, 2277952297, 2278083383, 2278214473, 2278345567, + 2278476653, 2278607753, 2278738831, 2278869917, 2279000993, 2279132071, 2279263157, + 2279394233, 2279525371, 2279656451, 2279787529, 2279918659, 2280049781, 2280180853, + 2280311939, 2280443027, 2280574159, 2280705253, 2280836381, 2280967457, 2281098557, + 2281229641, 2281360721, 2281491829, 2281622911, 2281753993, 2281885069, 2282016151, + 2282147237, 2282278319, 2282409391, 2282540483, 2282671603, 2282802677, 2282933759, + 2283064831, 2283195913, 2283326993, 2283458081, 2283589153, 2283720227, 2283851327, + 2283982411, 2284113487, 2284244569, 2284375649, 2284506737, 2284637809, 2284768903, + 2284899979, 2285031121, 2285162197, 2285293291, 2285424389, 2285555473, 2285686549, + 2285817631, 2285948719, 2286079799, 2286210893, 2286341971, 2286473051, 2286604123, + 2286735211, 2286866317, 2286997397, 2287128491, 2287259563, 2287390643, 2287521721, + 2287652819, 2287783921, 2287915013, 2288046113, 2288177197, 2288308271, 2288439347, + 2288570419, 2288701529, 2288832631, 2288963711, 2289094817, 2289225919, 2289357011, + 2289488101, 2289619181, 2289750269, 2289881359, 2290012447, 2290143523, 2290274599, + 2290405681, 2290536767, 2290667857, 2290798933, 2290930007, 2291061121, 2291192203, + 2291323277, 2291454383, 2291585537, 2291716621, 2291847703, 2291978783, 2292109867, + 2292240941, 2292372023, 2292503111, 2292634193, 2292765313, 2292896393, 2293027469, + 2293158541, 2293289623, 2293420711, 2293551791, 2293682863, 2293813967, 2293945051, + 2294076139, 2294207213, 2294338289, 2294469361, 2294600453, 2294731561, 2294862659, + 2294993749, 2295124829, 2295255913, 2295386993, 2295518083, 2295649241, 2295780341, + 2295911447, 2296042523, 2296173599, 2296304707, 2296435793, 2296566887, 2296697987, + 2296829063, 2296960181, 2297091257, 2297222339, 2297353439, 2297484551, 2297615699, + 2297746771, 2297877853, 2298008939, 2298140011, 2298271109, 2298402199, 2298533273, + 2298664349, 2298795439, 2298926533, 2299057613, 2299188733, 2299319807, 2299450931, + 2299582003, 2299713077, 2299844153, 2299975231, 2300106311, 2300237419, 2300368501, + 2300499667, 2300630741, 2300761819, 2300892917, 2301023993, 2301155107, 2301286181, + 2301417367, 2301548477, 2301679553, 2301810631, 2301941723, 2302072807, 2302203881, + 2302334989, 2302466071, 2302597151, 2302728247, 2302859323, 2302990409, 2303121481, + 2303252557, 2303383639, 2303514721, 2303645819, 2303776897, 2303908001, 2304039091, + 2304170203, 2304301301, 2304432379, 2304563473, 2304694549, 2304825623, 2304956701, + 2305087781, 2305218857, 2305349939, 2305481039, 2305612121, 2305743211, 2305874293, + 2306005381, 2306136473, 2306267629, 2306398709, 2306529787, 2306660891, 2306791987, + 2306923079, 2307054151, 2307185227, 2307316301, 2307447409, 2307578489, 2307709561, + 2307840649, 2307971747, 2308102847, 2308233919, 2308365011, 2308496083, 2308627187, + 2308758269, 2308889369, 2309020457, 2309151569, 2309282641, 2309413721, 2309544799, + 2309675881, 2309806969, 2309938067, 2310069199, 2310200273, 2310331349, 2310462431, + 2310593503, 2310724579, 2310855671, 2310986747, 2311117849, 2311248983, 2311380109, + 2311511227, 2311642321, 2311773403, 2311904509, 2312035639, 2312166737, 2312297809, + 2312428889, 2312559961, 2312691049, 2312822167, 2312953249, 2313084359, 2313215431, + 2313346513, 2313477587, 2313608729, 2313739807, 2313870917, 2314002023, 2314133123, + 2314264217, 2314395289, 2314526413, 2314657511, 2314788607, 2314919681, 2315050781, + 2315181937, 2315313019, 2315444099, 2315575231, 2315706329, 2315837411, 2315968549, + 2316099659, 2316230737, 2316361813, 2316492911, 2316623993, 2316755071, 2316886151, + 2317017247, 2317148329, 2317279403, 2317410497, 2317541573, 2317672699, 2317803773, + 2317934851, 2318065993, 2318197069, 2318328143, 2318459219, 2318590327, 2318721401, + 2318852509, 2318983603, 2319114713, 2319245801, 2319376889, 2319507961, 2319639041, + 2319770147, 2319901223, 2320032329, 2320163407, 2320294489, 2320425563, 2320556653, + 2320687757, 2320818881, 2320949989, 2321081123, 2321212211, 2321343307, 2321474383, + 2321605457, 2321736583, 2321867663, 2321998739, 2322129829, 2322260903, 2322391999, + 2322523109, 2322654197, 2322785273, 2322916367, 2323047469, 2323178551, 2323309627, + 2323440727, 2323571819, 2323702891, 2323833983, 2323965089, 2324096161, 2324227247, + 2324358319, 2324489413, 2324620489, 2324751617, 2324882689, 2325013799, 2325144881, + 2325275977, 2325407057, 2325538177, 2325669263, 2325800339, 2325931451, 2326062547, + 2326193621, 2326324703, 2326455787, 2326586863, 2326717949, 2326849039, 2326980113, + 2327111197, 2327242279, 2327373353, 2327504449, 2327635523, 2327766643, 2327897723, + 2328028811, 2328159907, 2328291023, 2328422101, 2328553181, 2328684263, 2328815353, + 2328946439, 2329077547, 2329208659, 2329339757, 2329470859, 2329601941, 2329733017, + 2329864133, 2329995211, 2330126287, 2330257367, 2330388443, 2330519539, 2330650613, + 2330781697, 2330912777, 2331043873, 2331174991, 2331306073, 2331437149, 2331568247, + 2331699347, 2331830429, 2331961501, 2332092629, 2332223717, 2332354793, 2332485899, + 2332616983, 2332748057, 2332879139, 2333010217, 2333141297, 2333272399, 2333403473, + 2333534549, 2333665639, 2333796713, 2333927803, 2334058879, 2334189967, 2334321043, + 2334452161, 2334583241, 2334714323, 2334845417, 2334976529, 2335107617, 2335238699, + 2335369783, 2335500857, 2335631939, 2335763011, 2335894087, 2336025163, 2336156281, + 2336287363, 2336418473, 2336549561, 2336680637, 2336811709, 2336942813, 2337073889, + 2337204973, 2337336073, 2337467147, 2337598267, 2337729367, 2337860471, 2337991567, + 2338122679, 2338253759, 2338384831, 2338515929, 2338647019, 2338778137, 2338909219, + 2339040311, 2339171399, 2339302523, 2339433611, 2339564687, 2339695789, 2339826871, + 2339957993, 2340089123, 2340220199, 2340351313, 2340482399, 2340613543, 2340744617, + 2340875699, 2341006793, 2341137893, 2341268983, 2341400059, 2341531141, 2341662227, + 2341793309, 2341924391, 2342055467, 2342186569, 2342317643, 2342448727, 2342579803, + 2342710901, 2342841973, 2342973097, 2343104171, 2343235261, 2343366341, 2343497461, + 2343628537, 2343759617, 2343890713, 2344021819, 2344152913, 2344284023, 2344415113, + 2344546199, 2344677299, 2344808383, 2344939481, 2345070589, 2345201671, 2345332753, + 2345463829, 2345594929, 2345726027, 2345857099, 2345988173, 2346119263, 2346250337, + 2346381437, 2346512551, 2346643631, 2346774739, 2346905837, 2347036919, 2347168013, + 2347299091, 2347430191, 2347561289, 2347692443, 2347823579, 2347954669, 2348085763, + 2348216873, 2348347951, 2348479031, 2348610137, 2348741243, 2348872343, 2349003467, + 2349134563, 2349265643, 2349396743, 2349527819, 2349658891, 2349789971, 2349921071, + 2350052153, 2350183247, 2350314359, 2350445443, 2350576531, 2350707631, 2350838713, + 2350969787, 2351100859, 2351231941, 2351363017, 2351494097, 2351625247, 2351756383, + 2351887481, 2352018619, 2352149729, 2352280811, 2352411913, 2352542993, 2352674089, + 2352805193, 2352936293, 2353067383, 2353198489, 2353329599, 2353460689, 2353591763, + 2353722851, 2353853923, 2353985017, 2354116153, 2354247241, 2354378317, 2354509403, + 2354640481, 2354771567, 2354902651, 2355033731, 2355164807, 2355295907, 2355426991, + 2355558077, 2355689173, 2355820319, 2355951391, 2356082471, 2356213567, 2356344647, + 2356475747, 2356606829, 2356737919, 2356869007, 2357000099, 2357131181, 2357262253, + 2357393329, 2357524409, 2357655491, 2357786569, 2357917643, 2358048743, 2358179849, + 2358310967, 2358442043, 2358573121, 2358704233, 2358835361, 2358966433, 2359097567, + 2359228661, 2359359787, 2359490863, 2359621937, 2359753009, 2359884103, 2360015233, + 2360146307, 2360277421, 2360408497, 2360539589, 2360670679, 2360801767, 2360932879, + 2361063961, 2361195047, 2361326171, 2361457249, 2361588323, 2361719411, 2361850523, + 2361981607, 2362112689, 2362243771, 2362374851, 2362505947, 2362637029, 2362768117, + 2362899247, 2363030333, 2363161441, 2363292517, 2363423599, 2363554703, 2363685809, + 2363816893, 2363947967, 2364079049, 2364210143, 2364341227, 2364472303, 2364603403, + 2364734483, 2364865561, 2364996659, 2365127759, 2365258859, 2365389937, 2365521017, + 2365652117, 2365783201, 2365914277, 2366045371, 2366176481, 2366307569, 2366438671, + 2366569759, 2366700887, 2366831959, 2366963047, 2367094189, 2367225277, 2367356363, + 2367487481, 2367618581, 2367749693, 2367880771, 2368011847, 2368142923, 2368274053, + 2368405163, 2368536311, 2368667401, 2368798501, 2368929593, 2369060693, 2369191777, + 2369322853, 2369453941, 2369585021, 2369716109, 2369847197, 2369978287, 2370109363, + 2370240451, 2370371527, 2370502691, 2370633763, 2370764927, 2370896069, 2371027201, + 2371158299, 2371289383, 2371420501, 2371551587, 2371682671, 2371813783, 2371944877, + 2372075963, 2372207039, 2372338181, 2372469259, 2372600333, 2372731411, 2372862487, + 2372993617, 2373124709, 2373255791, 2373386891, 2373518011, 2373649097, 2373780187, + 2373911269, 2374042357, 2374173449, 2374304533, 2374435631, 2374566707, 2374697779, + 2374828861, 2374959943, 2375091031, 2375222107, 2375353193, 2375484271, 2375615351, + 2375746427, 2375877503, 2376008623, 2376139699, 2376270781, 2376401873, 2376532973, + 2376664063, 2376795181, 2376926257, 2377057363, 2377188449, 2377319521, 2377450709, + 2377581821, 2377712899, 2377843973, 2377975087, 2378106179, 2378237297, 2378368423, + 2378499523, 2378630609, 2378761699, 2378892781, 2379023897, 2379154991, 2379286067, + 2379417197, 2379548287, 2379679373, 2379810463, 2379941569, 2380072679, 2380203767, + 2380334843, 2380465931, 2380597019, 2380728113, 2380859267, 2380990351, 2381121443, + 2381252557, 2381383643, 2381514721, 2381645803, 2381776877, 2381907949, 2382039041, + 2382170117, 2382301189, 2382432277, 2382563357, 2382694451, 2382825539, 2382956629, + 2383087723, 2383218823, 2383349923, 2383481027, 2383612117, 2383743199, 2383874287, + 2384005367, 2384136449, 2384267521, 2384398651, 2384529737, 2384660827, 2384791931, + 2384923003, 2385054079, 2385185161, 2385316237, 2385447319, 2385578407, 2385709481, + 2385840563, 2385971663, 2386102739, 2386233847, 2386364923, 2386496003, 2386627121, + 2386758193, 2386889287, 2387020381, 2387151511, 2387282659, 2387413807, 2387544893, + 2387675981, 2387807087, 2387938159, 2388069247, 2388200323, 2388331417, 2388462491, + 2388593579, 2388724651, 2388855743, 2388986833, 2389117943, 2389249043, 2389380137, + 2389511219, 2389642313, 2389773389, 2389904477, 2390035553, 2390166671, 2390297743, + 2390428853, 2390559937, 2390691013, 2390822099, 2390953189, 2391084271, 2391215377, + 2391346453, 2391477553, 2391608629, 2391739729, 2391870827, 2392001923, 2392132997, + 2392264081, 2392395169, 2392526261, 2392657339, 2392788469, 2392919549, 2393050661, + 2393181733, 2393312807, 2393443937, 2393575013, 2393706143, 2393837221, 2393968303, + 2394099397, 2394230473, 2394361553, 2394492641, 2394623719, 2394754829, 2394885907, + 2395016983, 2395148081, 2395279169, 2395410257, 2395541339, 2395672417, 2395803493, + 2395934579, 2396065657, 2396196763, 2396327863, 2396458963, 2396590051, 2396721127, + 2396852221, 2396983301, 2397114383, 2397245471, 2397376543, 2397507641, 2397638723, + 2397769837, 2397900913, 2398032023, 2398163113, 2398294201, 2398425287, 2398556399, + 2398687513, 2398818619, 2398949711, 2399080799, 2399211889, 2399342969, 2399474041, + 2399605123, 2399736221, 2399867297, 2399998373, 2400129449, 2400260521, 2400391601, + 2400522701, 2400653791, 2400784891, 2400915991, 2401047107, 2401178189, 2401309277, + 2401440409, 2401571509, 2401702601, 2401833689, 2401964767, 2402095841, 2402226929, + 2402358011, 2402489171, 2402620261, 2402751353, 2402882467, 2403013541, 2403144613, + 2403275687, 2403406763, 2403537839, 2403668933, 2403800011, 2403931097, 2404062169, + 2404193249, 2404324361, 2404455457, 2404586549, 2404717639, 2404848749, 2404979821, + 2405110907, 2405241983, 2405373067, 2405504147, 2405635229, 2405766317, 2405897413, + 2406028487, 2406159571, 2406290647, 2406421729, 2406552809, 2406683893, 2406814979, + 2406946097, 2407077229, 2407208303, 2407339397, 2407470473, 2407601563, 2407732699, + 2407863817, 2407994929, 2408126003, 2408257099, 2408388209, 2408519381, 2408650487, + 2408781569, 2408912641, 2409043729, 2409174829, 2409305929, 2409437057, 2409568141, + 2409699247, 2409830329, 2409961403, 2410092523, 2410223597, 2410354679, 2410485797, + 2410616893, 2410747991, 2410879099, 2411010179, 2411141251, 2411272397, 2411403481, + 2411534569, 2411665673, 2411796757, 2411927863, 2412058937, 2412190013, 2412321103, + 2412452179, 2412583297, 2412714433, 2412845563, 2412976637, 2413107713, 2413238797, + 2413369909, 2413500989, 2413632071, 2413763147, 2413894237, 2414025319, 2414156401, + 2414287489, 2414418569, 2414549647, 2414680727, 2414811803, 2414942903, 2415073979, + 2415205087, 2415336163, 2415467261, 2415598363, 2415729439, 2415860519, 2415991631, + 2416122703, 2416253783, 2416384891, 2416515971, 2416647049, 2416778167, 2416909277, + 2417040349, 2417171443, 2417302519, 2417433611, 2417564683, 2417695757, 2417826839, + 2417957939, 2418089033, 2418220109, 2418351197, 2418482327, 2418613403, 2418744499, + 2418875573, 2419006657, 2419137761, 2419268851, 2419399933, 2419531031, 2419662137, + 2419793213, 2419924301, 2420055401, 2420186479, 2420317567, 2420448643, 2420579717, + 2420710837, 2420841949, 2420973047, 2421104159, 2421235237, 2421366317, 2421497413, + 2421628493, 2421759577, 2421890663, 2422021757, 2422152829, 2422283959, 2422415057, + 2422546163, 2422677269, 2422808341, 2422939457, 2423070557, 2423201653, 2423332729, + 2423463827, 2423594917, 2423725991, 2423857081, 2423988157, 2424119239, 2424250319, + 2424381391, 2424512471, 2424643549, 2424774629, 2424905701, 2425036777, 2425167869, + 2425298951, 2425430081, 2425561153, 2425692257, 2425823329, 2425954439, 2426085511, + 2426216593, 2426347667, 2426478739, 2426609827, 2426740907, 2426871991, 2427003067, + 2427134141, 2427265223, 2427396313, 2427527411, 2427658489, 2427789563, 2427920639, + 2428051711, 2428182791, 2428313863, 2428444943, 2428576061, 2428707137, 2428838227, + 2428969307, 2429100379, 2429231461, 2429362549, 2429493629, 2429624731, 2429755829, + 2429886929, 2430018001, 2430149083, 2430280187, 2430411271, 2430542393, 2430673471, + 2430804553, 2430935629, 2431066709, 2431197799, 2431328881, 2431459957, 2431591033, + 2431722113, 2431853251, 2431984337, 2432115419, 2432246497, 2432377579, 2432508691, + 2432639767, 2432770841, 2432901929, 2433033019, 2433164101, 2433295231, 2433426329, + 2433557407, 2433688493, 2433819581, 2433950653, 2434081733, 2434212821, 2434343903, + 2434474979, 2434606061, 2434737143, 2434868273, 2434999349, 2435130437, 2435261561, + 2435392637, 2435523749, 2435654827, 2435785943, 2435917027, 2436048113, 2436179201, + 2436310291, 2436441401, 2436572473, 2436703553, 2436834637, 2436965723, 2437096801, + 2437227941, 2437359047, 2437490173, 2437621271, 2437752367, 2437883449, 2438014541, + 2438145617, 2438276693, 2438407787, 2438538877, 2438669993, 2438801087, 2438932163, + 2439063251, 2439194371, 2439325501, 2439456587, 2439587681, 2439718753, 2439849883, + 2439980957, 2440112047, 2440243159, 2440374239, 2440505371, 2440636447, 2440767523, + 2440898627, 2441029727, 2441160817, 2441291927, 2441422999, 2441554091, 2441685187, + 2441816261, 2441947357, 2442078433, 2442209521, 2442340597, 2442471671, 2442602753, + 2442733847, 2442864943, 2442996043, 2443127123, 2443258267, 2443389353, 2443520461, + 2443651571, 2443782659, 2443913777, 2444044853, 2444175953, 2444307031, 2444438107, + 2444569189, 2444700277, 2444831357, 2444962439, 2445093571, 2445224693, 2445355823, + 2445486931, 2445618017, 2445749107, 2445880181, 2446011257, 2446142417, 2446273499, + 2446404577, 2446535653, 2446666753, 2446797839, 2446928917, 2447060023, 2447191163, + 2447322239, 2447453339, 2447584417, 2447715497, 2447846579, 2447977669, 2448108757, + 2448239863, 2448370943, 2448502037, 2448633149, 2448764231, 2448895331, 2449026403, + 2449157611, 2449288687, 2449419767, 2449550861, 2449681943, 2449813049, 2449944127, + 2450075227, 2450206309, 2450337389, 2450468467, 2450599549, 2450730641, 2450861713, + 2450992787, 2451123863, 2451254963, 2451386057, 2451517151, 2451648229, 2451779303, + 2451910397, 2452041491, 2452172563, 2452303663, 2452434749, 2452565879, 2452696969, + 2452828043, 2452959143, 2453090249, 2453221321, 2453352427, 2453483533, 2453614679, + 2453745751, 2453876837, 2454007937, 2454139019, 2454270101, 2454401189, 2454532261, + 2454663347, 2454794431, 2454925507, 2455056587, 2455187687, 2455318769, 2455449851, + 2455580923, 2455712011, 2455843087, 2455974161, 2456105237, 2456236319, 2456367449, + 2456498549, 2456629631, 2456760703, 2456891777, 2457022871, 2457153949, 2457285023, + 2457416099, 2457547177, 2457678281, 2457809407, 2457940487, 2458071563, 2458202693, + 2458333769, 2458464851, 2458596011, 2458727101, 2458858187, 2458989283, 2459120357, + 2459251429, 2459382509, 2459513593, 2459644667, 2459775797, 2459906887, 2460037961, + 2460169057, 2460300187, 2460431263, 2460562367, 2460693467, 2460824567, 2460955681, + 2461086781, 2461217867, 2461348949, 2461480027, 2461611121, 2461742197, 2461873291, + 2462004371, 2462135443, 2462266517, 2462397593, 2462528689, 2462659783, 2462790907, + 2462921999, 2463053083, 2463184193, 2463315277, 2463446389, 2463577477, 2463708553, + 2463839629, 2463970709, 2464101781, 2464232861, 2464363961, 2464495039, 2464626137, + 2464757227, 2464888301, 2465019377, 2465150453, 2465281583, 2465412673, 2465543753, + 2465674837, 2465805941, 2465937041, 2466068113, 2466199189, 2466330281, 2466461359, + 2466592439, 2466723517, 2466854597, 2466985691, 2467116793, 2467247873, 2467378973, + 2467510079, 2467641157, 2467772243, 2467903351, 2468034433, 2468165509, 2468296609, + 2468427697, 2468558773, 2468689903, 2468821009, 2468952121, 2469083233, 2469214313, + 2469345397, 2469476473, 2469607573, 2469738703, 2469869797, 2470000909, 2470132019, + 2470263091, 2470394177, 2470525259, 2470656341, 2470787441, 2470918531, 2471049613, + 2471180687, 2471311789, 2471442863, 2471573939, 2471705011, 2471836111, 2471967193, + 2472098267, 2472229349, 2472360421, 2472491501, 2472622591, 2472753709, 2472884801, + 2473015877, 2473146959, 2473278047, 2473409119, 2473540219, 2473671293, 2473802369, + 2473933471, 2474064547, 2474195683, 2474326781, 2474457893, 2474588999, 2474720081, + 2474851187, 2474982269, 2475113357, 2475244433, 2475375521, 2475506597, 2475637679, + 2475768811, 2475899927, 2476031023, 2476162103, 2476293181, 2476424317, 2476555423, + 2476686533, 2476817611, 2476948711, 2477079791, 2477210863, 2477341957, 2477473043, + 2477604133, 2477735257, 2477866351, 2477997433, 2478128507, 2478259603, 2478390701, + 2478521779, 2478652859, 2478783943, 2478915037, 2479046113, 2479177187, 2479308259, + 2479439357, 2479570459, 2479701541, 2479832627, 2479963709, 2480094781, 2480225879, + 2480356969, 2480488063, 2480619151, 2480750269, 2480881363, 2481012463, 2481143563, + 2481274637, 2481405733, 2481536843, 2481667921, 2481799037, 2481930137, 2482061213, + 2482192333, 2482323407, 2482454501, 2482585583, 2482716679, 2482847791, 2482978903, + 2483109977, 2483241053, 2483372131, 2483503213, 2483634331, 2483765411, 2483896559, + 2484027659, 2484158737, 2484289879, 2484421001, 2484552097, 2484683183, 2484814259, + 2484945347, 2485076441, 2485207559, 2485338641, 2485469719, 2485600813, 2485731929, + 2485863001, 2485994081, 2486125153, 2486256233, 2486387347, 2486518421, 2486649493, + 2486780633, 2486911723, 2487042823, 2487173903, 2487304979, 2487436069, 2487567149, + 2487698231, 2487829313, 2487960389, 2488091461, 2488222553, 2488353641, 2488484723, + 2488615891, 2488746971, 2488878043, 2489009123, 2489140219, 2489271341, 2489402413, + 2489533517, 2489664599, 2489795683, 2489926757, 2490057839, 2490188923, 2490319999, + 2490451097, 2490582169, 2490713243, 2490844319, 2490975391, 2491106479, 2491237559, + 2491368641, 2491499713, 2491630811, 2491761911, 2491892999, 2492024071, 2492155147, + 2492286239, 2492417351, 2492548423, 2492679499, 2492810597, 2492941669, 2493072817, + 2493203917, 2493334999, 2493466099, 2493597191, 2493728267, 2493859349, 2493990431, + 2494121543, 2494252627, 2494383733, 2494514821, 2494645913, 2494777031, 2494908131, + 2495039203, 2495170297, 2495301373, 2495432447, 2495563537, 2495694637, 2495825791, + 2495956871, 2496087943, 2496219041, 2496350177, 2496481259, 2496612343, 2496743453, + 2496874561, 2497005673, 2497136753, 2497267879, 2497398973, 2497530067, 2497661147, + 2497792223, 2497923313, 2498054387, 2498185463, 2498316539, 2498447639, 2498578739, + 2498709841, 2498840969, 2498972087, 2499103169, 2499234263, 2499365353, 2499496429, + 2499627509, 2499758641, 2499889727, 2500020821, 2500151893, 2500282987, 2500414061, + 2500545143, 2500676221, 2500807297, 2500938397, 2501069489, 2501200561, 2501331643, + 2501462723, 2501593811, 2501724923, 2501855999, 2501987113, 2502118211, 2502249293, + 2502380371, 2502511457, 2502642529, 2502773621, 2502904693, 2503035797, 2503166879, + 2503297967, 2503429039, 2503560113, 2503691189, 2503822289, 2503953371, 2504084459, + 2504215541, 2504346629, 2504477747, 2504608849, 2504739929, 2504871013, 2505002111, + 2505133207, 2505264283, 2505395357, 2505526469, 2505657551, 2505788633, 2505919723, + 2506050797, 2506181869, 2506312951, 2506444027, 2506575107, 2506706201, 2506837309, + 2506968389, 2507099471, 2507230549, 2507361641, 2507492737, 2507623843, 2507754923, + 2507885999, 2508017077, 2508148157, 2508279239, 2508410321, 2508541393, 2508672487, + 2508803581, 2508934679, 2509065821, 2509196897, 2509327969, 2509459061, 2509590169, + 2509721317, 2509852417, 2509983503, 2510114597, 2510245679, 2510376763, 2510507837, + 2510638951, 2510770027, 2510901103, 2511032203, 2511163307, 2511294413, 2511425489, + 2511556561, 2511687637, 2511818713, 2511949789, 2512080881, 2512211953, 2512343027, + 2512474103, 2512605203, 2512736297, 2512867373, 2512998461, 2513129581, 2513260661, + 2513391733, 2513522831, 2513653907, 2513784979, 2513916071, 2514047153, 2514178241, + 2514309319, 2514440393, 2514571481, 2514702557, 2514833669, 2514964799, 2515095881, + 2515226957, 2515358047, 2515489129, 2515620227, 2515751299, 2515882381, 2516013469, + 2516144557, 2516275633, 2516406713, 2516537791, 2516668879, 2516799979, 2516931059, + 2517062131, 2517193271, 2517324343, 2517455417, 2517586501, 2517717583, 2517848681, + 2517979787, 2518110923, 2518242029, 2518373111, 2518504199, 2518635299, 2518766423, + 2518897499, 2519028571, 2519159653, 2519290727, 2519421799, 2519552891, 2519683963, + 2519815057, 2519946131, 2520077213, 2520208289, 2520339373, 2520470483, 2520601583, + 2520732673, 2520863759, 2520994849, 2521125931, 2521257007, 2521388113, 2521519193, + 2521650277, 2521781369, 2521912451, 2522043523, 2522174623, 2522305717, 2522436811, + 2522567891, 2522698973, 2522830067, 2522961139, 2523092219, 2523223321, 2523354401, + 2523485483, 2523616591, 2523747697, 2523878771, 2524009843, 2524140961, 2524272073, + 2524403159, 2524534241, 2524665317, 2524796401, 2524927481, 2525058581, 2525189657, + 2525320753, 2525451829, 2525582911, 2525713991, 2525845081, 2525976163, 2526107267, + 2526238339, 2526369457, 2526500549, 2526631621, 2526762703, 2526893779, 2527024901, + 2527155997, 2527287079, 2527418161, 2527549247, 2527680319, 2527811411, 2527942519, + 2528073601, 2528204677, 2528335751, 2528466847, 2528597921, 2528729009, 2528860129, + 2528991203, 2529122279, 2529253367, 2529384439, 2529515519, 2529646591, 2529777671, + 2529908743, 2530039823, 2530170941, 2530302031, 2530433173, 2530564279, 2530695379, + 2530826461, 2530957537, 2531088619, 2531219699, 2531350777, 2531481881, 2531612957, + 2531744029, 2531875163, 2532006247, 2532137323, 2532268423, 2532399497, 2532530587, + 2532661783, 2532792937, 2532924011, 2533055089, 2533186171, 2533317247, 2533448327, + 2533579423, 2533710503, 2533841579, 2533972673, 2534103763, 2534234869, 2534365961, + 2534497033, 2534628113, 2534759197, 2534890273, 2535021361, 2535152443, 2535283523, + 2535414601, 2535545689, 2535676823, 2535807919, 2535939047, 2536070123, 2536201201, + 2536332311, 2536463443, 2536594549, 2536725641, 2536856717, 2536987793, 2537118877, + 2537249969, 2537381059, 2537512141, 2537643221, 2537774321, 2537905397, 2538036517, + 2538167591, 2538298681, 2538429757, 2538560831, 2538691927, 2538823019, 2538954091, + 2539085177, 2539216289, 2539347373, 2539478449, 2539609529, 2539740607, 2539871687, + 2540002789, 2540133877, 2540264989, 2540396129, 2540527211, 2540658293, 2540789387, + 2540920477, 2541051551, 2541182639, 2541313711, 2541444791, 2541575879, 2541706987, + 2541838063, 2541969167, 2542100261, 2542231343, 2542362439, 2542493519, 2542624603, + 2542755689, 2542886771, 2543017847, 2543148931, 2543280023, 2543411111, 2543542187, + 2543673269, 2543804381, 2543935453, 2544066527, 2544197627, 2544328789, 2544459899, + 2544590977, 2544722051, 2544853127, 2544984251, 2545115329, 2545246423, 2545377529, + 2545508663, 2545639753, 2545770833, 2545901921, 2546033029, 2546164109, 2546295211, + 2546426353, 2546557487, 2546688569, 2546819659, 2546950733, 2547081809, 2547212909, + 2547343993, 2547475069, 2547606143, 2547737273, 2547868361, 2547999439, 2548130513, + 2548261591, 2548392677, 2548523759, 2548654861, 2548785973, 2548917071, 2549048143, + 2549179219, 2549310299, 2549441393, 2549572511, 2549703601, 2549834681, 2549965819, + 2550096893, 2550227969, 2550359089, 2550490169, 2550621289, 2550752381, 2550883463, + 2551014541, 2551145617, 2551276691, 2551407769, 2551538849, 2551669931, 2551801027, + 2551932157, 2552063237, 2552194339, 2552325421, 2552456497, 2552587571, 2552718643, + 2552849723, 2552980819, 2553111929, 2553243013, 2553374101, 2553505189, 2553636269, + 2553767389, 2553898469, 2554029587, 2554160659, 2554291777, 2554422851, 2554553941, + 2554685041, 2554816127, 2554947223, 2555078297, 2555209387, 2555340461, 2555471579, + 2555602661, 2555733749, 2555864821, 2555995901, 2556126997, 2556258079, 2556389167, + 2556520279, 2556651371, 2556782453, 2556913553, 2557044629, 2557175737, 2557306847, + 2557437947, 2557569023, 2557700107, 2557831183, 2557962283, 2558093387, 2558224469, + 2558355593, 2558486669, 2558617741, 2558748833, 2558879941, 2559011041, 2559142121, + 2559273193, 2559404269, 2559535343, 2559666437, 2559797521, 2559928699, 2560059823, + 2560190977, 2560322057, 2560453141, 2560584233, 2560715347, 2560846423, 2560977509, + 2561108603, 2561239679, 2561370751, 2561501827, 2561632903, 2561763979, 2561895073, + 2562026147, 2562157229, 2562288307, 2562419399, 2562550499, 2562681581, 2562812657, + 2562943739, 2563074821, 2563205933, 2563337009, 2563468081, 2563599163, 2563730261, + 2563861357, 2563992439, 2564123531, 2564254607, 2564385721, 2564516797, 2564647903, + 2564778991, 2564910079, 2565041197, 2565172301, 2565303379, 2565434471, 2565565579, + 2565696659, 2565827753, 2565958849, 2566089937, 2566221059, 2566352141, 2566483219, + 2566614311, 2566745383, 2566876457, 2567007533, 2567138611, 2567269699, 2567400817, + 2567531899, 2567662991, 2567794069, 2567925169, 2568056251, 2568187327, 2568318421, + 2568449497, 2568580571, 2568711671, 2568842753, 2568973843, 2569104947, 2569236023, + 2569367123, 2569498229, 2569629323, 2569760437, 2569891529, 2570022607, 2570153683, + 2570284777, 2570415877, 2570546971, 2570678051, 2570809127, 2570940223, 2571071303, + 2571202393, 2571333467, 2571464551, 2571595673, 2571726749, 2571857909, 2571988981, + 2572120069, 2572251163, 2572382237, 2572513309, 2572644407, 2572775519, 2572906619, + 2573037707, 2573168779, 2573299919, 2573431057, 2573562143, 2573693219, 2573824333, + 2573955443, 2574086527, 2574217601, 2574348677, 2574479759, 2574610877, 2574741959, + 2574873053, 2575004137, 2575135219, 2575266299, 2575397417, 2575528499, 2575659617, + 2575790699, 2575921793, 2576052883, 2576183957, 2576315059, 2576446133, 2576577229, + 2576708347, 2576839537, 2576970647, 2577101719, 2577232799, 2577363911, 2577495013, + 2577626137, 2577757211, 2577888283, 2578019399, 2578150481, 2578281553, 2578412653, + 2578543771, 2578674853, 2578806017, 2578937129, 2579068201, 2579199299, 2579330399, + 2579461481, 2579592559, 2579723659, 2579854733, 2579985857, 2580116933, 2580248009, + 2580379091, 2580510169, 2580641281, 2580772373, 2580903461, 2581034543, 2581165633, + 2581296709, 2581427809, 2581558901, 2581689977, 2581821049, 2581952137, 2582083243, + 2582214319, 2582345399, 2582476537, 2582607617, 2582738693, 2582869769, 2583000851, + 2583131951, 2583263027, 2583394139, 2583525211, 2583656297, 2583787369, 2583918443, + 2584049557, 2584180673, 2584311749, 2584442827, 2584573907, 2584704979, 2584836073, + 2584967159, 2585098237, 2585229323, 2585360447, 2585491523, 2585622607, 2585753689, + 2585884783, 2586015871, 2586146963, 2586278041, 2586409117, 2586540193, 2586671291, + 2586802411, 2586933491, 2587064563, 2587195649, 2587326751, 2587457857, 2587588933, + 2587720007, 2587851083, 2587982167, 2588113261, 2588244359, 2588375431, 2588506517, + 2588637589, 2588768669, 2588899751, 2589030863, 2589161947, 2589293023, 2589424109, + 2589555187, 2589686287, 2589817361, 2589948451, 2590079533, 2590210607, 2590341713, + 2590472789, 2590603879, 2590734977, 2590866053, 2590997131, 2591128231, 2591259313, + 2591390407, 2591521483, 2591652577, 2591783657, 2591914729, 2592045803, 2592176891, + 2592307967, 2592439093, 2592570181, 2592701281, 2592832357, 2592963481, 2593094579, + 2593225693, 2593356781, 2593487881, 2593618961, 2593750039, 2593881137, 2594012209, + 2594143289, 2594274367, 2594405449, 2594536523, 2594667599, 2594798671, 2594929747, + 2595060821, 2595191917, 2595323011, 2595454091, 2595585169, 2595716243, 2595847337, + 2595978431, 2596109543, 2596240649, 2596371727, 2596502819, 2596633927, 2596765037, + 2596896139, 2597027239, 2597158327, 2597289473, 2597420563, 2597551643, 2597682719, + 2597813851, 2597944939, 2598076049, 2598207127, 2598338213, 2598469303, 2598600397, + 2598731489, 2598862583, 2598993667, 2599124743, 2599255861, 2599386947, 2599518023, + 2599649113, 2599780207, 2599911313, 2600042437, 2600173571, 2600304647, 2600435743, + 2600566831, 2600697917, 2600829017, 2600960099, 2601091201, 2601222289, 2601353407, + 2601484547, 2601615631, 2601746743, 2601877819, 2602008919, 2602140001, 2602271093, + 2602402189, 2602533289, 2602664371, 2602795457, 2602926539, 2603057617, 2603188747, + 2603319833, 2603450911, 2603582077, 2603713153, 2603844233, 2603975317, 2604106397, + 2604237479, 2604368561, 2604499633, 2604630727, 2604761833, 2604892909, 2605023983, + 2605155061, 2605286171, 2605417249, 2605548343, 2605679423, 2605810523, 2605941601, + 2606072687, 2606203781, 2606334859, 2606465947, 2606597027, 2606728171, 2606859257, + 2606990357, 2607121453, 2607252577, 2607383651, 2607514733, 2607645839, 2607776921, + 2607907999, 2608039117, 2608170221, 2608301309, 2608432391, 2608563467, 2608694551, + 2608825631, 2608956733, 2609087807, 2609218879, 2609349979, 2609481053, 2609612153, + 2609743243, 2609874317, 2610005441, 2610136523, 2610267613, 2610398689, 2610529763, + 2610660847, 2610791923, 2610923027, 2611054129, 2611185263, 2611316353, 2611447453, + 2611578553, 2611709629, 2611840723, 2611971809, 2612102903, 2612234011, 2612365099, + 2612496203, 2612627291, 2612758387, 2612889463, 2613020573, 2613151649, 2613282769, + 2613413857, 2613544937, 2613676049, 2613807127, 2613938209, 2614069361, 2614200487, + 2614331569, 2614462649, 2614593749, 2614724837, 2614855909, 2614987007, 2615118083, + 2615249159, 2615380231, 2615511341, 2615642417, 2615773507, 2615904587, 2616035671, + 2616166757, 2616297889, 2616428987, 2616560059, 2616691151, 2616822227, 2616953299, + 2617084391, 2617215479, 2617346579, 2617477657, 2617608751, 2617739843, 2617870921, + 2618002021, 2618133097, 2618264171, 2618395249, 2618526329, 2618657491, 2618788577, + 2618919673, 2619050747, 2619181837, 2619312923, 2619444007, 2619575083, 2619706169, + 2619837247, 2619968333, 2620099423, 2620230563, 2620361647, 2620492747, 2620623829, + 2620754933, 2620886029, 2621017151, 2621148227, 2621279359, 2621410531, 2621541641, + 2621672741, 2621803823, 2621934901, 2622065977, 2622197059, 2622328147, 2622459233, + 2622590309, 2622721397, 2622852569, 2622983681, 2623114763, 2623245857, 2623376939, + 2623508033, 2623639127, 2623770203, 2623901297, 2624032379, 2624163481, 2624294557, + 2624425679, 2624556761, 2624687837, 2624818967, 2624950063, 2625081161, 2625212243, + 2625343319, 2625474437, 2625605539, 2625736627, 2625867701, 2625998779, 2626129867, + 2626260943, 2626392019, 2626523113, 2626654193, 2626785383, 2626916477, 2627047583, + 2627178709, 2627309791, 2627440873, 2627571971, 2627703049, 2627834141, 2627965229, + 2628096301, 2628227417, 2628358501, 2628489601, 2628620677, 2628751771, 2628882853, + 2629013939, 2629145021, 2629276093, 2629407167, 2629538293, 2629669391, 2629800491, + 2629931581, 2630062663, 2630193737, 2630324821, 2630455957, 2630587033, 2630718109, + 2630849189, 2630980267, 2631111377, 2631242461, 2631373559, 2631504653, 2631635731, + 2631766829, 2631897907, 2632028983, 2632160071, 2632291147, 2632422223, 2632553311, + 2632684391, 2632815487, 2632946579, 2633077679, 2633208757, 2633339833, 2633470907, + 2633601979, 2633733077, 2633864153, 2633995303, 2634126403, 2634257477, 2634388571, + 2634519649, 2634650737, 2634781823, 2634912899, 2635043987, 2635175071, 2635306147, + 2635437239, 2635568339, 2635699439, 2635830523, 2635961609, 2636092681, 2636223791, + 2636354887, 2636485991, 2636617063, 2636748139, 2636879221, 2637010331, 2637141407, + 2637272497, 2637403619, 2637534703, 2637665827, 2637796921, 2637928003, 2638059107, + 2638190197, 2638321289, 2638452367, 2638583459, 2638714541, 2638845617, 2638976701, + 2639107777, 2639238857, 2639369987, 2639501063, 2639632139, 2639763211, 2639894291, + 2640025403, 2640156481, 2640287597, 2640418691, 2640549763, 2640680837, 2640811937, + 2640943009, 2641074089, 2641205197, 2641336273, 2641467383, 2641598483, 2641729591, + 2641860679, 2641991783, 2642122867, 2642253947, 2642385023, 2642516101, 2642647201, + 2642778301, 2642909413, 2643040529, 2643171637, 2643302713, 2643433789, 2643564871, + 2643695947, 2643827027, 2643958151, 2644089241, 2644220357, 2644351441, 2644482517, + 2644613597, 2644744681, 2644875757, 2645006839, 2645137921, 2645269019, 2645400103, + 2645531201, 2645662273, 2645793349, 2645924441, 2646055513, 2646186619, 2646317711, + 2646448799, 2646579937, 2646711029, 2646842113, 2646973237, 2647104331, 2647235407, + 2647366481, 2647497569, 2647628657, 2647759729, 2647890803, 2648021903, 2648152993, + 2648284091, 2648415163, 2648546237, 2648677331, 2648808413, 2648939543, 2649070637, + 2649201713, 2649332821, 2649463907, 2649594979, 2649726059, 2649857213, 2649988307, + 2650119379, 2650250483, 2650381577, 2650512659, 2650643741, 2650774829, 2650905911, + 2651036987, 2651168077, 2651299163, 2651430251, 2651561357, 2651692429, 2651823509, + 2651954581, 2652085669, 2652216761, 2652347897, 2652478991, 2652610069, 2652741151, + 2652872227, 2653003361, 2653134437, 2653265509, 2653396583, 2653527661, 2653658767, + 2653789861, 2653920953, 2654052029, 2654183101, 2654314183, 2654445289, 2654576383, + 2654707459, 2654838551, 2654969677, 2655100751, 2655231827, 2655362921, 2655493999, + 2655625073, 2655756149, 2655887231, 2656018373, 2656149449, 2656280537, 2656411613, + 2656542701, 2656673777, 2656804859, 2656935961, 2657067041, 2657198123, 2657329223, + 2657460307, 2657591401, 2657722477, 2657853553, 2657984653, 2658115771, 2658246847, + 2658377923, 2658508997, 2658640109, 2658771187, 2658902263, 2659033343, 2659164427, + 2659295519, 2659426597, 2659557671, 2659688747, 2659819829, 2659950901, 2660081981, + 2660213053, 2660344129, 2660475227, 2660606321, 2660737397, 2660868479, 2660999563, + 2661130643, 2661261727, 2661392809, 2661523883, 2661654991, 2661786089, 2661917173, + 2662048283, 2662179361, 2662310491, 2662441577, 2662572659, 2662703753, 2662834847, + 2662965959, 2663097077, 2663228159, 2663359261, 2663490353, 2663621431, 2663752523, + 2663883601, 2664014687, 2664145763, 2664276841, 2664407953, 2664539041, 2664670157, + 2664801233, 2664932327, 2665063403, 2665194487, 2665325617, 2665456697, 2665587823, + 2665718921, 2665850101, 2665981211, 2666112283, 2666243369, 2666374471, 2666505547, + 2666636627, 2666767771, 2666898847, 2667029947, 2667161033, 2667292109, 2667423193, + 2667554287, 2667685381, 2667816469, 2667947543, 2668078627, 2668209743, 2668340833, + 2668471943, 2668603019, 2668734121, 2668865197, 2668996271, 2669127359, 2669258443, + 2669389519, 2669520593, 2669651693, 2669782769, 2669913859, 2670044933, 2670176011, + 2670307093, 2670438193, 2670569329, 2670700433, 2670831511, 2670962597, 2671093673, + 2671224757, 2671355837, 2671486927, 2671618007, 2671749109, 2671880231, 2672011327, + 2672142413, 2672273521, 2672404619, 2672535707, 2672666813, 2672797889, 2672928967, + 2673060097, 2673191173, 2673322277, 2673453359, 2673584453, 2673715543, 2673846671, + 2673977759, 2674108831, 2674239907, 2674370983, 2674502069, 2674633147, 2674764263, + 2674895339, 2675026423, 2675157521, 2675288617, 2675419729, 2675550827, 2675681903, + 2675812991, 2675944069, 2676075163, 2676206251, 2676337351, 2676468427, 2676599501, + 2676730579, 2676861673, 2676992761, 2677123837, 2677254929, 2677386043, 2677517159, + 2677648241, 2677779329, 2677910413, 2678041489, 2678172587, 2678303681, 2678434823, + 2678565913, 2678697019, 2678828123, 2678959223, 2679090311, 2679221411, 2679352499, + 2679483589, 2679614719, 2679745793, 2679876877, 2680007971, 2680139051, 2680270127, + 2680401319, 2680532429, 2680663537, 2680794619, 2680925713, 2681056813, 2681187893, + 2681318993, 2681450077, 2681581151, 2681712227, 2681843299, 2681974403, 2682105499, + 2682236587, 2682367711, 2682498827, 2682629923, 2682761071, 2682892187, 2683023319, + 2683154393, 2683285471, 2683416551, 2683547623, 2683678721, 2683809797, 2683940869, + 2684071967, 2684203087, 2684334167, 2684465297, 2684596399, 2684727517, 2684858591, + 2684989687, 2685120761, 2685251843, 2685382939, 2685514099, 2685645191, 2685776287, + 2685907361, 2686038449, 2686169527, 2686300619, 2686431703, 2686562777, 2686693873, + 2686824949, 2686956037, 2687087173, 2687218283, 2687349391, 2687480507, 2687611603, + 2687742683, 2687873761, 2688004843, 2688135937, 2688267013, 2688398087, 2688529183, + 2688660263, 2688791353, 2688922451, 2689053541, 2689184639, 2689315763, 2689446839, + 2689577911, 2689709041, 2689840117, 2689971191, 2690102267, 2690233367, 2690364449, + 2690495527, 2690626633, 2690757733, 2690888819, 2691019901, 2691151003, 2691282089, + 2691413167, 2691544241, 2691675313, 2691806387, 2691937459, 2692068553, 2692199633, + 2692330727, 2692461901, 2692592977, 2692724053, 2692855141, 2692986221, 2693117293, + 2693248387, 2693379463, 2693510537, 2693641633, 2693772727, 2693903801, 2694034933, + 2694166031, 2694297161, 2694428237, 2694559321, 2694690431, 2694821527, 2694952627, + 2695083701, 2695214783, 2695345859, 2695476961, 2695608053, 2695739129, 2695870237, + 2696001349, 2696132423, 2696263499, 2696394607, 2696525687, 2696656759, 2696787839, + 2696918921, 2697050011, 2697181103, 2697312209, 2697443303, 2697574421, 2697705499, + 2697836579, 2697967661, 2698098751, 2698229857, 2698360933, 2698492031, 2698623107, + 2698754183, 2698885291, 2699016377, 2699147471, 2699278579, 2699409659, 2699540741, + 2699671817, 2699802899, 2699933983, 2700065083, 2700196199, 2700327317, 2700458393, + 2700589469, 2700720551, 2700851651, 2700982727, 2701113817, 2701244911, 2701376009, + 2701507091, 2701638169, 2701769243, 2701900319, 2702031407, 2702162479, 2702293571, + 2702424667, 2702555741, 2702686849, 2702817961, 2702949043, 2703080131, 2703211237, + 2703342311, 2703473393, 2703604523, 2703735613, 2703866761, 2703997837, 2704128941, + 2704260019, 2704391099, 2704522189, 2704653293, 2704784389, 2704915481, 2705046557, + 2705177639, 2705308721, 2705439797, 2705570929, 2705702023, 2705833103, 2705964181, + 2706095257, 2706226339, 2706357419, 2706488503, 2706619577, 2706750667, 2706881741, + 2707012831, 2707143917, 2707274989, 2707406087, 2707537159, 2707668269, 2707799357, + 2707930429, 2708061539, 2708192611, 2708323721, 2708454809, 2708585927, 2708717023, + 2708848097, 2708979173, 2709110273, 2709241349, 2709372427, 2709503519, 2709634643, + 2709765743, 2709896821, 2710027921, 2710159003, 2710290083, 2710421167, 2710552291, + 2710683397, 2710814497, 2710945609, 2711076703, 2711207783, 2711338871, 2711469973, + 2711601059, 2711732147, 2711863223, 2711994301, 2712125389, 2712256507, 2712387647, + 2712518723, 2712649799, 2712780877, 2712911951, 2713043033, 2713174129, 2713305223, + 2713436309, 2713567391, 2713698473, 2713829579, 2713960721, 2714091797, 2714222957, + 2714354033, 2714485121, 2714616211, 2714747359, 2714878433, 2715009509, 2715140587, + 2715271661, 2715402751, 2715533831, 2715664907, 2715795991, 2715927091, 2716058167, + 2716189241, 2716320319, 2716451407, 2716582481, 2716713557, 2716844629, 2716975711, + 2717106827, 2717237909, 2717368987, 2717500063, 2717631143, 2717762269, 2717893379, + 2718024497, 2718155569, 2718286643, 2718417719, 2718548821, 2718679913, 2718810989, + 2718942071, 2719073153, 2719204231, 2719335319, 2719466401, 2719597483, 2719728589, + 2719859663, 2719990753, 2720121853, 2720252959, 2720384077, 2720515177, 2720646263, + 2720777357, 2720908451, 2721039523, 2721170611, 2721301691, 2721432781, 2721563863, + 2721694961, 2721826067, 2721957187, 2722088293, 2722219373, 2722350469, 2722481543, + 2722612631, 2722743739, 2722874831, 2723005913, 2723137037, 2723268109, 2723399209, + 2723530289, 2723661383, 2723792501, 2723923589, 2724054667, 2724185767, 2724316871, + 2724447961, 2724579037, 2724710161, 2724841267, 2724972377, 2725103449, 2725234537, + 2725365613, 2725496717, 2725627813, 2725758887, 2725889963, 2726021047, 2726152123, + 2726283223, 2726414303, 2726545411, 2726676493, 2726807569, 2726938649, 2727069733, + 2727200887, 2727331993, 2727463133, 2727594227, 2727725317, 2727856393, 2727987481, + 2728118563, 2728249637, 2728380749, 2728511839, 2728642949, 2728774043, 2728905119, + 2729036207, 2729167297, 2729298389, 2729429467, 2729560541, 2729691617, 2729822713, + 2729953841, 2730084919, 2730215993, 2730347143, 2730478229, 2730609319, 2730740417, + 2730871513, 2731002607, 2731133711, 2731264807, 2731395881, 2731526957, 2731658057, + 2731789129, 2731920223, 2732051327, 2732182441, 2732313517, 2732444609, 2732575691, + 2732706773, 2732837879, 2732969033, 2733100109, 2733231199, 2733362273, 2733493361, + 2733624461, 2733755539, 2733886633, 2734017709, 2734148783, 2734279883, 2734410961, + 2734542053, 2734673129, 2734804207, 2734935293, 2735066371, 2735197457, 2735328529, + 2735459633, 2735590723, 2735721797, 2735852909, 2735984023, 2736115103, 2736246179, + 2736377251, 2736508331, 2736639419, 2736770503, 2736901597, 2737032677, 2737163809, + 2737294909, 2737426001, 2737557077, 2737688153, 2737819261, 2737950353, 2738081443, + 2738212517, 2738343607, 2738474681, 2738605763, 2738736841, 2738867921, 2738999057, + 2739130139, 2739261229, 2739392323, 2739523433, 2739654527, 2739785621, 2739916703, + 2740047781, 2740178873, 2740309967, 2740441057, 2740572157, 2740703233, 2740834339, + 2740965413, 2741096489, 2741227591, 2741358701, 2741489789, 2741620883, 2741751989, + 2741883073, 2742014213, 2742145297, 2742276389, 2742407471, 2742538571, 2742669649, + 2742800729, 2742931811, 2743062943, 2743194017, 2743325099, 2743456181, 2743587263, + 2743718347, 2743849429, 2743980521, 2744111597, 2744242679, 2744373833, 2744504941, + 2744636021, 2744767097, 2744898197, 2745029279, 2745160373, 2745291469, 2745422549, + 2745553639, 2745684713, 2745815789, 2745946871, 2746077967, 2746209043, 2746340141, + 2746471229, 2746602301, 2746733387, 2746864481, 2746995557, 2747126633, 2747257717, + 2747388811, 2747519897, 2747650981, 2747782057, 2747913149, 2748044231, 2748175303, + 2748306389, 2748437467, 2748568541, 2748699649, 2748830741, 2748961843, 2749092937, + 2749224011, 2749355093, 2749486183, 2749617257, 2749748333, 2749879409, 2750010481, + 2750141651, 2750272747, 2750403823, 2750534903, 2750665993, 2750797087, 2750928181, + 2751059263, 2751190363, 2751321439, 2751452513, 2751583609, 2751714683, 2751845773, + 2751976859, 2752107937, 2752239013, 2752370087, 2752501159, 2752632241, 2752763341, + 2752894421, 2753025493, 2753156573, 2753287679, 2753418761, 2753549861, 2753680939, + 2753812021, 2753943113, 2754074189, 2754205273, 2754336373, 2754467447, 2754598529, + 2754729631, 2754860729, 2754991807, 2755122899, 2755253983, 2755385057, 2755516139, + 2755647211, 2755778293, 2755909379, 2756040457, 2756171549, 2756302643, 2756433751, + 2756564831, 2756695937, 2756827037, 2756958131, 2757089249, 2757220339, 2757351427, + 2757482503, 2757613577, 2757744667, 2757875749, 2758006831, 2758137929, 2758269001, + 2758400083, 2758531157, 2758662239, 2758793327, 2758924411, 2759055587, 2759186687, + 2759317789, 2759448889, 2759579983, 2759711063, 2759842139, 2759973217, 2760104353, + 2760235433, 2760366509, 2760497609, 2760628699, 2760759791, 2760890863, 2761021957, + 2761153051, 2761284139, 2761415219, 2761546321, 2761677403, 2761808521, 2761939627, + 2762070833, 2762201909, 2762332987, 2762464091, 2762595169, 2762726251, 2762857327, + 2762988433, 2763119521, 2763250603, 2763381683, 2763512783, 2763643873, 2763774971, + 2763906083, 2764037197, 2764168283, 2764299361, 2764430447, 2764561519, 2764692629, + 2764823723, 2764954799, 2765085901, 2765216981, 2765348077, 2765479193, 2765610283, + 2765741383, 2765872471, 2766003553, 2766134633, 2766265709, 2766396781, 2766527857, + 2766658933, 2766790007, 2766921119, 2767052261, 2767183423, 2767314533, 2767445633, + 2767576723, 2767707809, 2767838911, 2767969991, 2768101067, 2768232161, 2768363233, + 2768494307, 2768625383, 2768756461, 2768887567, 2769018647, 2769149743, 2769280819, + 2769411907, 2769542983, 2769674057, 2769805133, 2769936209, 2770067299, 2770198381, + 2770329511, 2770460587, 2770591727, 2770722821, 2770853927, 2770984999, 2771116081, + 2771247173, 2771378249, 2771509343, 2771640433, 2771771551, 2771902643, 2772033731, + 2772164827, 2772295913, 2772426991, 2772558127, 2772689203, 2772820279, 2772951353, + 2773082447, 2773213543, 2773344631, 2773475759, 2773606837, 2773737937, 2773869019, + 2774000107, 2774131183, 2774262287, 2774393393, 2774524483, 2774655563, 2774786681, + 2774917771, 2775048863, 2775179951, 2775311023, 2775442123, 2775573211, 2775704297, + 2775835399, 2775966491, 2776097567, 2776228687, 2776359779, 2776490863, 2776621997, + 2776753093, 2776884167, 2777015249, 2777146349, 2777277427, 2777408519, 2777539601, + 2777670677, 2777801749, 2777932897, 2778063979, 2778195071, 2778326143, 2778457273, + 2778588359, 2778719431, 2778850511, 2778981589, 2779112681, 2779243769, 2779374847, + 2779505923, 2779636999, 2779768081, 2779899167, 2780030249, 2780161327, 2780292461, + 2780423537, 2780554633, 2780685707, 2780816789, 2780947879, 2781078961, 2781210037, + 2781341141, 2781472247, 2781603323, 2781734401, 2781865477, 2781996563, 2782127669, + 2782258741, 2782389821, 2782520899, 2782651979, 2782783063, 2782914137, 2783045257, + 2783176349, 2783307421, 2783438513, 2783569601, 2783700743, 2783831833, 2783962921, + 2784094009, 2784225113, 2784356231, 2784487309, 2784618413, 2784749507, 2784880589, + 2785011679, 2785142783, 2785273871, 2785404943, 2785536041, 2785667113, 2785798201, + 2785929287, 2786060393, 2786191517, 2786322607, 2786453689, 2786584777, 2786715851, + 2786846947, 2786978021, 2787109103, 2787240191, 2787371263, 2787502343, 2787633427, + 2787764501, 2787895597, 2788026697, 2788157783, 2788288859, 2788419947, 2788551049, + 2788682131, 2788813211, 2788944283, 2789075357, 2789206429, 2789337511, 2789468587, + 2789599661, 2789730739, 2789861863, 2789992973, 2790124097, 2790255173, 2790386251, + 2790517333, 2790648433, 2790779521, 2790910601, 2791041707, 2791172819, 2791303901, + 2791434973, 2791566059, 2791697131, 2791828217, 2791959301, 2792090401, 2792221489, + 2792352569, 2792483641, 2792614717, 2792745797, 2792876921, 2793008039, 2793139127, + 2793270211, 2793401287, 2793532369, 2793663451, 2793794527, 2793925633, 2794056719, + 2794187807, 2794318903, 2794449991, 2794581073, 2794712159, 2794843253, 2794974337, + 2795105413, 2795236511, 2795367637, 2795498711, 2795629861, 2795760937, 2795892017, + 2796023093, 2796154177, 2796285253, 2796416341, 2796547451, 2796678527, 2796809599, + 2796940703, 2797071793, 2797202869, 2797333993, 2797465067, 2797596161, 2797727243, + 2797858333, 2797989407, 2798120503, 2798251591, 2798382689, 2798513771, 2798644861, + 2798775949, 2798907031, 2799038113, 2799169259, 2799300347, 2799431423, 2799562511, + 2799693587, 2799824663, 2799955747, 2800086871, 2800217969, 2800349047, 2800480219, + 2800611293, 2800742377, 2800873451, 2801004539, 2801135669, 2801266747, 2801397881, + 2801528999, 2801660089, 2801791177, 2801922271, 2802053347, 2802184439, 2802315521, + 2802446597, 2802577697, 2802708793, 2802839867, 2802970949, 2803102033, 2803233113, + 2803364189, 2803495267, 2803626347, 2803757503, 2803888579, 2804019653, 2804150747, + 2804281819, 2804412893, 2804543969, 2804675051, 2804806177, 2804937277, 2805068351, + 2805199429, 2805330509, 2805461609, 2805592681, 2805723761, 2805854861, 2805985951, + 2806117043, 2806248119, 2806379221, 2806510307, 2806641391, 2806772477, 2806903549, + 2807034641, 2807165719, 2807296801, 2807427901, 2807558987, 2807690069, 2807821141, + 2807952239, 2808083329, 2808214427, 2808345557, 2808476677, 2808607777, 2808738851, + 2808869929, 2809001003, 2809132087, 2809263169, 2809394249, 2809525321, 2809656431, + 2809787531, 2809918609, 2810049689, 2810180773, 2810311873, 2810442959, 2810574059, + 2810705137, 2810836211, 2810967311, 2811098399, 2811229501, 2811360577, 2811491653, + 2811622733, 2811753809, 2811884891, 2812015993, 2812147069, 2812278251, 2812409333, + 2812540411, 2812671493, 2812802569, 2812933681, 2813064763, 2813195899, 2813327009, + 2813458091, 2813589173, 2813720251, 2813851331, 2813982419, 2814113521, 2814244619, + 2814375701, 2814506777, 2814637853, 2814768937, 2814900029, 2815031101, 2815162183, + 2815293277, 2815424369, 2815555447, 2815686527, 2815817617, 2815948693, 2816079779, + 2816210857, 2816341961, 2816473067, 2816604139, 2816735263, 2816866361, 2816997451, + 2817128543, 2817259639, 2817390731, 2817521803, 2817652967, 2817784103, 2817915179, + 2818046263, 2818177339, 2818308419, 2818439521, 2818570619, 2818701713, 2818832843, + 2818963981, 2819095061, 2819226143, 2819357239, 2819488333, 2819619419, 2819750497, + 2819881619, 2820012707, 2820143779, 2820274949, 2820406081, 2820537169, 2820668251, + 2820799363, 2820930443, 2821061521, 2821192631, 2821323709, 2821454803, 2821585901, + 2821716973, 2821848053, 2821979131, 2822110229, 2822241307, 2822372383, 2822503457, + 2822634539, 2822765611, 2822896693, 2823027773, 2823158879, 2823289957, 2823421031, + 2823552161, 2823683257, 2823814349, 2823945431, 2824076543, 2824207627, 2824338709, + 2824469783, 2824600861, 2824731971, 2824863049, 2824994129, 2825125243, 2825256341, + 2825387429, 2825518543, 2825649623, 2825780723, 2825911807, 2826042887, 2826173971, + 2826305059, 2826436141, 2826567223, 2826698311, 2826829391, 2826960473, 2827091557, + 2827222637, 2827353713, 2827484843, 2827615943, 2827747079, 2827878173, 2828009257, + 2828140331, 2828271403, 2828402501, 2828533577, 2828664649, 2828795741, 2828926819, + 2829057929, 2829189007, 2829320089, 2829451171, 2829582271, 2829713353, 2829844441, + 2829975521, 2830106597, 2830237691, 2830368769, 2830499869, 2830630967, 2830762079, + 2830893161, 2831024279, 2831155351, 2831286427, 2831417509, 2831548613, 2831679701, + 2831810791, 2831941867, 2832072953, 2832204043, 2832335117, 2832466199, 2832597283, + 2832728387, 2832859483, 2832990593, 2833121701, 2833252783, 2833383857, 2833514939, + 2833646017, 2833777117, 2833908227, 2834039317, 2834170411, 2834301487, 2834432561, + 2834563651, 2834694739, 2834825839, 2834956937, 2835088019, 2835219103, 2835350191, + 2835481303, 2835612407, 2835743501, 2835874577, 2836005649, 2836136729, 2836267801, + 2836398883, 2836529963, 2836661039, 2836792111, 2836923203, 2837054287, 2837185397, + 2837316479, 2837447581, 2837578673, 2837709757, 2837840861, 2837971951, 2838103033, + 2838234121, 2838365207, 2838496319, 2838627397, 2838758473, 2838889589, 2839020671, + 2839151743, 2839282843, 2839413919, 2839544993, 2839676137, 2839807219, 2839938323, + 2840069443, 2840200537, 2840331623, 2840462701, 2840593787, 2840724877, 2840855951, + 2840987069, 2841118141, 2841249221, 2841380329, 2841511403, 2841642493, 2841773573, + 2841904697, 2842035773, 2842166891, 2842297963, 2842429049, 2842560121, 2842691197, + 2842822271, 2842953361, 2843084467, 2843215553, 2843346683, 2843477761, 2843608849, + 2843739929, 2843871011, 2844002129, 2844133247, 2844264323, 2844395447, 2844526549, + 2844657653, 2844788747, 2844919829, 2845050917, 2845182013, 2845313129, 2845444201, + 2845575283, 2845706359, 2845837433, 2845968511, 2846099647, 2846230727, 2846361821, + 2846492899, 2846623979, 2846755129, 2846886221, 2847017311, 2847148411, 2847279497, + 2847410581, 2847541663, 2847672761, 2847803839, 2847934931, 2848066031, 2848197139, + 2848328269, 2848459351, 2848590443, 2848721521, 2848852597, 2848983691, 2849114789, + 2849245897, 2849377019, 2849508097, 2849639179, 2849770267, 2849901377, 2850032453, + 2850163531, 2850294611, 2850425693, 2850556789, 2850687883, 2850818959, 2850950059, + 2851081141, 2851212233, 2851343323, 2851474397, 2851605469, 2851736551, 2851867649, + 2851998731, 2852129803, 2852260877, 2852391973, 2852523127, 2852654221, 2852785307, + 2852916401, 2853047503, 2853178579, 2853309653, 2853440747, 2853571823, 2853702913, + 2853834007, 2853965089, 2854096171, 2854227263, 2854358347, 2854489427, 2854620499, + 2854751573, 2854882651, 2855013737, 2855144827, 2855275909, 2855406991, 2855538071, + 2855669143, 2855800231, 2855931343, 2856062437, 2856193513, 2856324629, 2856455737, + 2856586819, 2856717907, 2856848999, 2856980083, 2857111183, 2857242299, 2857373371, + 2857504451, 2857635551, 2857766677, 2857897753, 2858028839, 2858159923, 2858291057, + 2858422247, 2858553359, 2858684449, 2858815537, 2858946613, 2859077693, 2859208789, + 2859339869, 2859470951, 2859602033, 2859733139, 2859864239, 2859995351, 2860126447, + 2860257571, 2860388659, 2860519741, 2860650833, 2860781923, 2860913039, 2861044139, + 2861175227, 2861306333, 2861437421, 2861568497, 2861699569, 2861830679, 2861961769, + 2862092867, 2862223939, 2862355019, 2862486101, 2862617179, 2862748261, 2862879337, + 2863010419, 2863141507, 2863272661, 2863403749, 2863534823, 2863665911, 2863796989, + 2863928071, 2864059201, 2864190281, 2864321357, 2864452429, 2864583509, 2864714597, + 2864845693, 2864976767, 2865107851, 2865238927, 2865370007, 2865501083, 2865632167, + 2865763249, 2865894329, 2866025413, 2866156541, 2866287637, 2866418713, 2866549789, + 2866680893, 2866811971, 2866943059, 2867074151, 2867205239, 2867336323, 2867467417, + 2867598493, 2867729567, 2867860673, 2867991761, 2868122837, 2868253943, 2868385049, + 2868516143, 2868647231, 2868778331, 2868909497, 2869040609, 2869171693, 2869302767, + 2869433867, 2869564969, 2869696079, 2869827179, 2869958251, 2870089363, 2870220473, + 2870351551, 2870482633, 2870613721, 2870744803, 2870875919, 2871007003, 2871138103, + 2871269183, 2871400261, 2871531349, 2871662429, 2871793537, 2871924611, 2872055689, + 2872186787, 2872317869, 2872448963, 2872580071, 2872711147, 2872842221, 2872973357, + 2873104433, 2873235517, 2873366621, 2873497723, 2873628817, 2873759897, 2873890997, + 2874022079, 2874153151, 2874284269, 2874415381, 2874546481, 2874677569, 2874808723, + 2874939817, 2875070897, 2875201991, 2875333067, 2875464143, 2875595221, 2875726297, + 2875857379, 2875988477, 2876119559, 2876250631, 2876381713, 2876512861, 2876643997, + 2876775079, 2876906167, 2877037253, 2877168331, 2877299407, 2877430483, 2877561613, + 2877692687, 2877823769, 2877954841, 2878085921, 2878217039, 2878348111, 2878479193, + 2878610299, 2878741379, 2878872461, 2879003537, 2879134639, 2879265721, 2879396813, + 2879527927, 2879659091, 2879790163, 2879921249, 2880052327, 2880183421, 2880314509, + 2880445583, 2880576689, 2880707761, 2880838847, 2880969979, 2881101059, 2881232177, + 2881363253, 2881494337, 2881625441, 2881756517, 2881887629, 2882018717, 2882149799, + 2882280881, 2882411953, 2882543047, 2882674121, 2882805197, 2882936281, 2883067357, + 2883198467, 2883329651, 2883460739, 2883591827, 2883722899, 2883853981, 2883985067, + 2884116161, 2884247237, 2884378361, 2884509437, 2884640531, 2884771613, 2884902697, + 2885033797, 2885164871, 2885295949, 2885427049, 2885558149, 2885689223, 2885820299, + 2885951377, 2886082453, 2886213593, 2886344687, 2886475789, 2886606871, 2886737977, + 2886869087, 2887000169, 2887131251, 2887262333, 2887393409, 2887524499, 2887655609, + 2887786691, 2887917803, 2888048929, 2888180021, 2888311099, 2888442203, 2888573327, + 2888704411, 2888835491, 2888966581, 2889097693, 2889228851, 2889359927, 2889491039, + 2889622111, 2889753197, 2889884279, 2890015357, 2890146473, 2890277569, 2890408657, + 2890539731, 2890670807, 2890801909, 2890932983, 2891064067, 2891195141, 2891326219, + 2891457301, 2891588383, 2891719469, 2891850541, 2891981647, 2892112739, 2892243829, + 2892374911, 2892506009, 2892637117, 2892768191, 2892899281, 2893030373, 2893161511, + 2893292629, 2893423711, 2893554791, 2893685881, 2893816969, 2893948073, 2894079163, + 2894210261, 2894341339, 2894472439, 2894603527, 2894734613, 2894865691, 2894996771, + 2895127871, 2895259013, 2895390089, 2895521183, 2895652261, 2895783337, 2895914423, + 2896045501, 2896176587, 2896307723, 2896438807, 2896569911, 2896700999, 2896832089, + 2896963163, 2897094259, 2897225339, 2897356453, 2897487611, 2897618699, 2897749801, + 2897880889, 2898011989, 2898143069, 2898274147, 2898405221, 2898536293, 2898667427, + 2898798533, 2898929611, 2899060687, 2899191803, 2899322897, 2899453981, 2899585061, + 2899716139, 2899847231, 2899978331, 2900109419, 2900240509, 2900371583, 2900502667, + 2900633773, 2900764849, 2900895947, 2901027029, 2901158119, 2901289199, 2901420317, + 2901551399, 2901682477, 2901813569, 2901944671, 2902075811, 2902206883, 2902338167, + 2902469249, 2902600357, 2902731439, 2902862519, 2902993591, 2903124689, 2903255779, + 2903386877, 2903517959, 2903649059, 2903780161, 2903911237, 2904042313, 2904173399, + 2904304477, 2904435557, 2904566629, 2904697703, 2904828779, 2904959851, 2905090939, + 2905222049, 2905353127, 2905484201, 2905615283, 2905746367, 2905877453, 2906008529, + 2906139629, 2906270711, 2906401783, 2906532899, 2906663971, 2906795069, 2906926153, + 2907057229, 2907188321, 2907319403, 2907450479, 2907581591, 2907712679, 2907843773, + 2907974851, 2908105951, 2908237061, 2908368139, 2908499239, 2908630349, 2908761467, + 2908892561, 2909023639, 2909154727, 2909285843, 2909416921, 2909548051, 2909679131, + 2909810209, 2909941343, 2910072419, 2910203507, 2910334627, 2910465703, 2910596783, + 2910727861, 2910858941, 2910990029, 2911121107, 2911252229, 2911383323, 2911514447, + 2911645523, 2911776601, 2911907711, 2912038823, 2912169901, 2912300999, 2912432093, + 2912563229, 2912694329, 2912825401, 2912956499, 2913087587, 2913218677, 2913349753, + 2913480847, 2913611923, 2913743011, 2913874091, 2914005181, 2914136261, 2914267351, + 2914398433, 2914529543, 2914660691, 2914791779, 2914922851, 2915053931, 2915185027, + 2915316109, 2915447189, 2915578271, 2915709347, 2915840423, 2915971501, 2916102583, + 2916233657, 2916364747, 2916495871, 2916626953, 2916758057, 2916889201, 2917020329, + 2917151407, 2917282481, 2917413557, 2917544629, 2917675721, 2917806803, 2917937879, + 2918068969, 2918200079, 2918331173, 2918462251, 2918593343, 2918724421, 2918855531, + 2918986633, 2919117739, 2919248869, 2919379993, 2919511109, 2919642181, 2919773291, + 2919904381, 2920035479, 2920166573, 2920297669, 2920428751, 2920559857, 2920690937, + 2920822027, 2920953127, 2921084207, 2921215279, 2921346377, 2921477467, 2921608553, + 2921739637, 2921870729, 2922001829, 2922132901, 2922263983, 2922395071, 2922526153, + 2922657233, 2922788329, 2922919403, 2923050491, 2923181627, 2923312703, 2923443799, + 2923574933, 2923706029, 2923837153, 2923968241, 2924099327, 2924230409, 2924361481, + 2924492591, 2924623717, 2924754841, 2924885917, 2925017003, 2925148087, 2925279179, + 2925410251, 2925541349, 2925672439, 2925803519, 2925934591, 2926065671, 2926196747, + 2926327819, 2926458893, 2926589993, 2926721087, 2926852171, 2926983263, 2927114381, + 2927245457, 2927376541, 2927507617, 2927638699, 2927769773, 2927900879, 2928031987, + 2928163081, 2928294167, 2928425263, 2928556349, 2928687439, 2928818513, 2928949607, + 2929080701, 2929211773, 2929342847, 2929473923, 2929605043, 2929736137, 2929867217, + 2929998289, 2930129381, 2930260507, 2930391589, 2930522689, 2930653769, 2930784847, + 2930915941, 2931047051, 2931178141, 2931309217, 2931440297, 2931571393, 2931702467, + 2931833557, 2931964643, 2932095763, 2932226837, 2932357927, 2932489003, 2932620077, + 2932751153, 2932882229, 2933013301, 2933144393, 2933275493, 2933406569, 2933537647, + 2933668721, 2933799833, 2933930917, 2934061993, 2934193069, 2934324181, 2934455291, + 2934586363, 2934717439, 2934848561, 2934979643, 2935110743, 2935241819, 2935372903, + 2935503979, 2935635119, 2935766213, 2935897301, 2936028377, 2936159459, 2936290537, + 2936421613, 2936552747, 2936683829, 2936814911, 2936946007, 2937077083, 2937208187, + 2937339259, 2937470339, 2937601417, 2937732493, 2937863597, 2937994673, 2938125791, + 2938256899, 2938387987, 2938519061, 2938650161, 2938781273, 2938912411, 2939043493, + 2939174569, 2939305651, 2939436733, 2939567809, 2939698891, 2939829979, 2939961103, + 2940092237, 2940223333, 2940354409, 2940485489, 2940616561, 2940747643, 2940878749, + 2941009837, 2941140941, 2941272041, 2941403117, 2941534207, 2941665283, 2941796359, + 2941927433, 2942058523, 2942189651, 2942320739, 2942451943, 2942583031, 2942714111, + 2942845183, 2942976317, 2943107411, 2943238489, 2943369571, 2943500657, 2943631763, + 2943762841, 2943893929, 2944025009, 2944156091, 2944287191, 2944418291, 2944549409, + 2944680481, 2944811591, 2944942709, 2945073787, 2945204861, 2945335957, 2945467037, + 2945598181, 2945729333, 2945860417, 2945991539, 2946122617, 2946253699, 2946384781, + 2946515893, 2946646973, 2946778061, 2946909137, 2947040227, 2947171303, 2947302403, + 2947433483, 2947564573, 2947695661, 2947826737, 2947957813, 2948088919, 2948220013, + 2948351093, 2948482169, 2948613253, 2948744329, 2948875417, 2949006497, 2949137627, + 2949268723, 2949399797, 2949530959, 2949662033, 2949793109, 2949924199, 2950055287, + 2950186367, 2950317439, 2950448513, 2950579591, 2950710667, 2950841771, 2950972867, + 2951103943, 2951235019, 2951366101, 2951497187, 2951628263, 2951759357, 2951890433, + 2952021529, 2952152653, 2952283757, 2952414853, 2952545951, 2952677047, 2952808123, + 2952939217, 2953070299, 2953201387, 2953332523, 2953463599, 2953594681, 2953725773, + 2953856861, 2953987943, 2954119027, 2954250107, 2954381191, 2954512277, 2954643407, + 2954774479, 2954905553, 2955036631, 2955167707, 2955298783, 2955429859, 2955560939, + 2955692023, 2955823097, 2955954187, 2956085261, 2956216337, 2956347419, 2956478491, + 2956609577, 2956740659, 2956871741, 2957002847, 2957133937, 2957265023, 2957396119, + 2957527201, 2957658299, 2957789381, 2957920463, 2958051563, 2958182707, 2958313783, + 2958444869, 2958576037, 2958707111, 2958838189, 2958969341, 2959100447, 2959231519, + 2959362629, 2959493809, 2959624903, 2959755977, 2959887053, 2960018129, 2960149211, + 2960280283, 2960411359, 2960542489, 2960673571, 2960804653, 2960935727, 2961066811, + 2961197893, 2961328967, 2961460063, 2961591137, 2961722219, 2961853291, 2961984433, + 2962115551, 2962246631, 2962377703, 2962508789, 2962639873, 2962770949, 2962902029, + 2963033111, 2963164199, 2963295287, 2963426359, 2963557459, 2963688547, 2963819653, + 2963950739, 2964081893, 2964212983, 2964344057, 2964475159, 2964606257, 2964737339, + 2964868411, 2964999487, 2965130569, 2965261643, 2965392733, 2965523831, 2965654943, + 2965786073, 2965917167, 2966048269, 2966179343, 2966310439, 2966441539, 2966572663, + 2966703743, 2966834831, 2966965909, 2967096983, 2967228113, 2967359233, 2967490313, + 2967621389, 2967752503, 2967883601, 2968014689, 2968145771, 2968276849, 2968407989, + 2968539071, 2968670209, 2968801351, 2968932433, 2969063507, 2969194589, 2969325683, + 2969456783, 2969587883, 2969718959, 2969850049, 2969981227, 2970112309, 2970243421, + 2970374507, 2970505579, 2970636677, 2970767749, 2970898829, 2971029931, 2971161019, + 2971292117, 2971423229, 2971554301, 2971685393, 2971816469, 2971947547, 2972078647, + 2972209769, 2972340841, 2972471917, 2972602993, 2972734081, 2972865163, 2972996237, + 2973127327, 2973258413, 2973389533, 2973520633, 2973651721, 2973782809, 2973913889, + 2974044989, 2974176083, 2974307173, 2974438249, 2974569331, 2974700431, 2974831537, + 2974962631, 2975093717, 2975224807, 2975355931, 2975487007, 2975618147, 2975749237, + 2975880331, 2976011411, 2976142489, 2976273581, 2976404719, 2976535813, 2976666887, + 2976798017, 2976929089, 2977060171, 2977191253, 2977322351, 2977453459, 2977584539, + 2977715669, 2977846741, 2977977853, 2978108951, 2978240099, 2978371181, 2978502311, + 2978633429, 2978764517, 2978895589, 2979026737, 2979157829, 2979288911, 2979419999, + 2979551131, 2979682231, 2979813311, 2979944389, 2980075471, 2980206553, 2980337641, + 2980468717, 2980599829, 2980730933, 2980862021, 2980993117, 2981124191, 2981255323, + 2981386409, 2981517509, 2981648611, 2981779721, 2981910797, 2982041911, 2982172993, + 2982304099, 2982435179, 2982566261, 2982697343, 2982828427, 2982959521, 2983090601, + 2983221679, 2983352767, 2983483871, 2983614961, 2983746067, 2983877161, 2984008241, + 2984139313, 2984270407, 2984401487, 2984532583, 2984663657, 2984794741, 2984925847, + 2985056923, 2985187999, 2985319081, 2985450161, 2985581239, 2985712319, 2985843391, + 2985974479, 2986105561, 2986236647, 2986367723, 2986498813, 2986629907, 2986760983, + 2986892059, 2987023153, 2987154257, 2987285369, 2987416447, 2987547539, 2987678641, + 2987809751, 2987940829, 2988071909, 2988203027, 2988334109, 2988465199, 2988596309, + 2988727397, 2988858493, 2988989567, 2989120639, 2989251761, 2989382849, 2989513949, + 2989645027, 2989776109, 2989907243, 2990038349, 2990169421, 2990300501, 2990431573, + 2990562719, 2990693843, 2990824919, 2990955997, 2991087079, 2991218161, 2991349243, + 2991480319, 2991611419, 2991742493, 2991873569, 2992004647, 2992135733, 2992266853, + 2992397929, 2992529003, 2992660087, 2992791199, 2992922279, 2993053369, 2993184443, + 2993315539, 2993446627, 2993577781, 2993708867, 2993839943, 2993971051, 2994102131, + 2994233243, 2994364349, 2994495421, 2994626497, 2994757583, 2994888709, 2995019803, + 2995150889, 2995281997, 2995413089, 2995544171, 2995675253, 2995806329, 2995937407, + 2996068483, 2996199593, 2996330683, 2996461757, 2996592883, 2996723969, 2996855051, + 2996986123, 2997117199, 2997248333, 2997379417, 2997510511, 2997641593, 2997772699, + 2997903793, 2998034867, 2998165949, 2998297031, 2998428109, 2998559203, 2998690291, + 2998821421, 2998952513, 2999083589, 2999214661, 2999345743, 2999476849, 2999607973, + 2999739049, 2999870141, 3000001229, 3000132313, 3000263389, 3000394471, 3000525569, + 3000656693, 3000787799, 3000918871, 3001049963, 3001181041, 3001312117, 3001443199, + 3001574299, 3001705381, 3001836463, 3001967537, 3002098613, 3002229719, 3002360813, + 3002491903, 3002623007, 3002754089, 3002885161, 3003016249, 3003147341, 3003278441, + 3003409523, 3003540613, 3003671701, 3003802801, 3003933937, 3004065023, 3004196141, + 3004327217, 3004458313, 3004589387, 3004720463, 3004851569, 3004982663, 3005113753, + 3005244829, 3005375953, 3005507041, 3005638133, 3005769223, 3005900297, 3006031393, + 3006162487, 3006293569, 3006424643, 3006555749, 3006686887, 3006817993, 3006949093, + 3007080221, 3007211303, 3007342399, 3007473473, 3007604549, 3007735639, 3007866713, + 3007997807, 3008128883, 3008259977, 3008391073, 3008522173, 3008653259, 3008784367, + 3008915447, 3009046519, 3009177631, 3009308719, 3009439847, 3009570919, 3009702013, + 3009833131, 3009964289, 3010095371, 3010226459, 3010357541, 3010488617, 3010619693, + 3010750777, 3010881857, 3011012941, 3011144029, 3011275103, 3011406191, 3011537273, + 3011668349, 3011799457, 3011930531, 3012061631, 3012192727, 3012323801, 3012454889, + 3012585967, 3012717047, 3012848143, 3012979219, 3013110293, 3013241411, 3013372493, + 3013503601, 3013634677, 3013765751, 3013896841, 3014027927, 3014159017, 3014290129, + 3014421203, 3014552363, 3014683459, 3014814553, 3014945627, 3015076721, 3015207821, + 3015338897, 3015469973, 3015601067, 3015732149, 3015863239, 3015994369, 3016125443, + 3016256521, 3016387609, 3016518697, 3016649777, 3016780853, 3016911929, 3017043017, + 3017174099, 3017305171, 3017436271, 3017567359, 3017698433, 3017829541, 3017960653, + 3018091729, 3018222833, 3018353909, 3018484999, 3018616079, 3018747163, 3018878237, + 3019009309, 3019140391, 3019271471, 3019402543, 3019533617, 3019664717, 3019795829, + 3019926911, 3020058023, 3020189119, 3020320201, 3020451283, 3020582363, 3020713463, + 3020844571, 3020975669, 3021106747, 3021237851, 3021368939, 3021500021, 3021631097, + 3021762199, 3021893291, 3022024403, 3022155481, 3022286569, 3022417663, 3022548743, + 3022679819, 3022810913, 3022942033, 3023073107, 3023204207, 3023335283, 3023466373, + 3023597461, 3023728619, 3023859701, 3023990789, 3024121861, 3024252967, 3024384043, + 3024515147, 3024646249, 3024777323, 3024908407, 3025039487, 3025170559, 3025301647, + 3025432777, 3025563901, 3025694981, 3025826053, 3025957127, 3026088203, 3026219279, + 3026350357, 3026481433, 3026612509, 3026743613, 3026874691, 3027005783, 3027136859, + 3027267941, 3027399013, 3027530117, 3027661211, 3027792307, 3027923383, 3028054483, + 3028185569, 3028316647, 3028447729, 3028578869, 3028709969, 3028841041, 3028972117, + 3029103193, 3029234269, 3029365393, 3029496467, 3029627543, 3029758643, 3029889763, + 3030020837, 3030151919, 3030282991, 3030414103, 3030545197, 3030676273, 3030807391, + 3030938467, 3031069543, 3031200631, 3031331753, 3031462843, 3031593947, 3031725029, + 3031856123, 3031987201, 3032118281, 3032249357, 3032380441, 3032511523, 3032642603, + 3032773697, 3032904803, 3033035893, 3033166987, 3033298061, 3033429169, 3033560261, + 3033691351, 3033822427, 3033953513, 3034084621, 3034215713, 3034346803, 3034477891, + 3034608971, 3034740043, 3034871117, 3035002189, 3035133271, 3035264347, 3035395421, + 3035526539, 3035657659, 3035788741, 3035919827, 3036050909, 3036181987, 3036313103, + 3036444193, 3036575281, 3036706363, 3036837443, 3036968521, 3037099603, 3037230689, + 3037361771, 3037492853, 3037623929, 3037755013, 3037886107, 3038017183, 3038148259, + 3038279347, 3038410421, 3038541511, 3038672587, 3038803661, 3038934749, 3039065849, + 3039196921, 3039328001, 3039459079, 3039590237, 3039721309, 3039852383, 3039983461, + 3040114543, 3040245623, 3040376743, 3040507849, 3040638949, 3040770049, 3040901137, + 3041032217, 3041163361, 3041294437, 3041425649, 3041556733, 3041687813, 3041818907, + 3041950003, 3042081079, 3042212153, 3042343237, 3042474317, 3042605389, 3042736537, + 3042867643, 3042998723, 3043129801, 3043260881, 3043391963, 3043523051, 3043654123, + 3043785299, 3043916371, 3044047453, 3044178541, 3044309651, 3044440757, 3044571833, + 3044702929, 3044834021, 3044965103, 3045096191, 3045227303, 3045358397, 3045489481, + 3045620563, 3045751663, 3045882751, 3046013837, 3046144931, 3046276033, 3046407113, + 3046538221, 3046669303, 3046800413, 3046931491, 3047062573, 3047193649, 3047324779, + 3047455867, 3047586943, 3047718019, 3047849099, 3047980183, 3048111259, 3048242357, + 3048373439, 3048504559, 3048635641, 3048766739, 3048897821, 3049028893, 3049159987, + 3049291123, 3049422221, 3049553317, 3049684409, 3049815481, 3049946569, 3050077651, + 3050208737, 3050339837, 3050470921, 3050602001, 3050733089, 3050864171, 3050995301, + 3051126373, 3051257483, 3051388573, 3051519661, 3051650747, 3051781897, 3051912979, + 3052044053, 3052175129, 3052306207, 3052437287, 3052568359, 3052699511, 3052830587, + 3052961669, 3053092799, 3053223893, 3053355001, 3053486119, 3053617201, 3053748281, + 3053879357, 3054010459, 3054141551, 3054272677, 3054403771, 3054534851, 3054665959, + 3054797063, 3054928159, 3055059251, 3055190387, 3055321501, 3055452577, 3055583651, + 3055714741, 3055845827, 3055976939, 3056108021, 3056239099, 3056370181, 3056501293, + 3056632373, 3056763461, 3056894539, 3057025613, 3057156719, 3057287791, 3057418883, + 3057549961, 3057681071, 3057812159, 3057943247, 3058074323, 3058205407, 3058336481, + 3058467553, 3058598633, 3058729717, 3058860797, 3058991879, 3059122961, 3059254043, + 3059385143, 3059516261, 3059647337, 3059778427, 3059909521, 3060040601, 3060171679, + 3060302779, 3060433861, 3060564937, 3060696019, 3060827117, 3060958211, 3061089293, + 3061220377, 3061351457, 3061482533, 3061613627, 3061744717, 3061875799, 3062006897, + 3062137987, 3062269069, 3062400163, 3062531237, 3062662333, 3062793421, 3062924503, + 3063055591, 3063186689, 3063317833, 3063448931, 3063580027, 3063711181, 3063842267, + 3063973351, 3064104451, 3064235617, 3064366703, 3064497827, 3064628923, 3064760003, + 3064891079, 3065022187, 3065153279, 3065284357, 3065415443, 3065546551, 3065677639, + 3065808791, 3065939869, 3066070949, 3066202063, 3066333143, 3066464221, 3066595309, + 3066726391, 3066857473, 3066988591, 3067119703, 3067250783, 3067381861, 3067512941, + 3067644017, 3067775089, 3067906189, 3068037263, 3068168339, 3068299439, 3068430527, + 3068561633, 3068692709, 3068823787, 3068954891, 3069085993, 3069217087, 3069348187, + 3069479267, 3069610339, 3069741419, 3069872513, 3070003589, 3070134671, 3070265743, + 3070396859, 3070528031, 3070659107, 3070790201, 3070921289, 3071052367, 3071183441, + 3071314579, 3071445673, 3071576749, 3071707829, 3071838961, 3071970053, 3072101129, + 3072232201, 3072363313, 3072494423, 3072625511, 3072756593, 3072887677, 3073018759, + 3073149841, 3073280921, 3073412021, 3073543097, 3073674173, 3073805281, 3073936363, + 3074067439, 3074198549, 3074329627, 3074460713, 3074591789, 3074722891, 3074853967, + 3074985071, 3075116171, 3075247243, 3075378349, 3075509429, 3075640591, 3075771667, + 3075902741, 3076033817, 3076164907, 3076295987, 3076427063, 3076558139, 3076689281, + 3076820363, 3076951457, 3077082553, 3077213641, 3077344733, 3077475829, 3077606929, + 3077738051, 3077869129, 3078000239, 3078131323, 3078262399, 3078393481, 3078524587, + 3078655661, 3078786749, 3078917867, 3079048949, 3079180057, 3079311143, 3079442221, + 3079573303, 3079704391, 3079835491, 3079966567, 3080097641, 3080228717, 3080359823, + 3080490923, 3080622023, 3080753131, 3080884259, 3081015373, 3081146461, 3081277541, + 3081408613, 3081539689, 3081670777, 3081801857, 3081932969, 3082064047, 3082195141, + 3082326217, 3082457291, 3082588381, 3082719469, 3082850543, 3082981639, 3083112737, + 3083243819, 3083374897, 3083505973, 3083637061, 3083768143, 3083899223, 3084030311, + 3084161407, 3084292481, 3084423553, 3084554657, 3084685757, 3084816883, 3084947963, + 3085079051, 3085210159, 3085341241, 3085472317, 3085603397, 3085734469, 3085865557, + 3085996631, 3086127719, 3086258831, 3086389913, 3086521001, 3086652089, 3086783209, + 3086914297, 3087045407, 3087176513, 3087307589, 3087438661, 3087569741, 3087700813, + 3087831917, 3087962993, 3088094071, 3088225229, 3088356319, 3088487429, 3088618501, + 3088749581, 3088880653, 3089011727, 3089142809, 3089273899, 3089404973, 3089536063, + 3089667137, 3089798209, 3089929351, 3090060451, 3090191537, 3090322633, 3090453727, + 3090584851, 3090715933, 3090847007, 3090978089, 3091109171, 3091240247, 3091371343, + 3091502417, 3091633511, 3091764589, 3091895711, 3092026789, 3092157941, 3092289017, + 3092420099, 3092551183, 3092682287, 3092813377, 3092944457, 3093075541, 3093206639, + 3093337717, 3093468799, 3093599879, 3093730951, 3093862027, 3093993101, 3094124221, + 3094255301, 3094386377, 3094517467, 3094648573, 3094779659, 3094910743, 3095041819, + 3095172893, 3095303969, 3095435047, 3095566129, 3095697211, 3095828303, 3095959381, + 3096090463, 3096221539, 3096352691, 3096483833, 3096614933, 3096746033, 3096877117, + 3097008191, 3097139281, 3097270391, 3097401481, 3097532623, 3097663711, 3097794797, + 3097925879, 3098056961, 3098188033, 3098319109, 3098450191, 3098581301, 3098712401, + 3098843479, 3098974573, 3099105731, 3099236837, 3099367933, 3099499019, 3099630097, + 3099761179, 3099892253, 3100023373, 3100154489, 3100285577, 3100416673, 3100547767, + 3100678883, 3100809973, 3100941059, 3101072201, 3101203279, 3101334359, 3101465453, + 3101596543, 3101727619, 3101858759, 3101989853, 3102120941, 3102252047, 3102383147, + 3102514231, 3102645311, 3102776389, 3102907463, 3103038571, 3103169669, 3103300813, + 3103431997, 3103563077, 3103694149, 3103825247, 3103956403, 3104087489, 3104218561, + 3104349683, 3104480759, 3104611871, 3104742947, 3104874053, 3105005149, 3105136247, + 3105267323, 3105398407, 3105529481, 3105660553, 3105791629, 3105922711, 3106053793, + 3106184899, 3106315997, 3106447121, 3106578203, 3106709311, 3106840393, 3106971467, + 3107102539, 3107233627, 3107364713, 3107495789, 3107626901, 3107757973, 3107889047, + 3108020131, 3108151217, 3108282337, 3108413411, 3108544489, 3108675587, 3108806669, + 3108937763, 3109068841, 3109199917, 3109330993, 3109462067, 3109593139, 3109724251, + 3109855349, 3109986463, 3110117537, 3110248613, 3110379707, 3110510779, 3110641939, + 3110773013, 3110904113, 3111035189, 3111166271, 3111297349, 3111428447, 3111559541, + 3111690643, 3111821723, 3111952813, 3112083889, 3112215017, 3112346113, 3112477201, + 3112608287, 3112739363, 3112870477, 3113001589, 3113132663, 3113263793, 3113394881, + 3113525957, 3113657033, 3113788109, 3113919187, 3114050299, 3114181381, 3114312457, + 3114443569, 3114574643, 3114705721, 3114836797, 3114967897, 3115099021, 3115230103, + 3115361189, 3115492273, 3115623389, 3115754471, 3115885543, 3116016623, 3116147743, + 3116278817, 3116409899, 3116540981, 3116672057, 3116803133, 3116934229, 3117065351, + 3117196447, 3117327533, 3117458651, 3117589723, 3117720803, 3117851887, 3117982997, + 3118114183, 3118245259, 3118376333, 3118507409, 3118638487, 3118769567, 3118900703, + 3119031787, 3119162881, 3119293963, 3119425063, 3119556157, 3119687239, 3119818327, + 3119949431, 3120080503, 3120211621, 3120342713, 3120473789, 3120604871, 3120735953, + 3120867037, 3120998117, 3121129189, 3121260281, 3121391353, 3121522433, 3121653511, + 3121784651, 3121915739, 3122046817, 3122177893, 3122308979, 3122440091, 3122571163, + 3122702251, 3122833327, 3122964419, 3123095491, 3123226571, 3123357689, 3123488777, + 3123619853, 3123750943, 3123882019, 3124013093, 3124144169, 3124275251, 3124406347, + 3124537421, 3124668499, 3124799593, 3124930729, 3125061809, 3125192887, 3125324051, + 3125455169, 3125586271, 3125717351, 3125848423, 3125979539, 3126110623, 3126241733, + 3126372817, 3126503951, 3126635069, 3126766187, 3126897287, 3127028419, 3127159499, + 3127290583, 3127421659, 3127552783, 3127683863, 3127814939, 3127946027, 3128077153, + 3128208271, 3128339353, 3128470451, 3128601523, 3128732627, 3128863721, 3128994797, + 3129125891, 3129256969, 3129388043, 3129519121, 3129650197, 3129781279, 3129912371, + 3130043467, 3130174543, 3130305667, 3130436753, 3130567837, 3130698911, 3130830011, + 3130961149, 3131092229, 3131223307, 3131354381, 3131485471, 3131616571, 3131747657, + 3131878759, 3132009833, 3132140933, 3132272041, 3132403121, 3132534203, 3132665281, + 3132796367, 3132927439, 3133058527, 3133189603, 3133320683, 3133451767, 3133582853, + 3133713931, 3133845007, 3133976099, 3134107177, 3134238293, 3134369377, 3134500469, + 3134631541, 3134762639, 3134893717, 3135024793, 3135155869, 3135286949, 3135418063, + 3135549143, 3135680237, 3135811339, 3135942421, 3136073497, 3136204607, 3136335701, + 3136466791, 3136597873, 3136728961, 3136860053, 3136991129, 3137122223, 3137253299, + 3137384399, 3137515477, 3137646559, 3137777633, 3137908727, 3138039803, 3138170911, + 3138302003, 3138433139, 3138564251, 3138695377, 3138826459, 3138957533, 3139088647, + 3139219739, 3139350817, 3139481897, 3139612969, 3139744061, 3139875181, 3140006257, + 3140137331, 3140268413, 3140399489, 3140530621, 3140661697, 3140792783, 3140923867, + 3141054941, 3141186149, 3141317237, 3141448337, 3141579443, 3141710519, 3141841657, + 3141972737, 3142103813, 3142234891, 3142365979, 3142497091, 3142628183, 3142759259, + 3142890353, 3143021429, 3143152541, 3143283631, 3143414713, 3143545807, 3143676929, + 3143808007, 3143939089, 3144070183, 3144201271, 3144332357, 3144463433, 3144594511, + 3144725611, 3144856697, 3144987821, 3145118939, 3145250027, 3145381139, 3145512259, + 3145643339, 3145774421, 3145905509, 3146036611, 3146167693, 3146298781, 3146429857, + 3146560933, 3146692007, 3146823109, 3146954189, 3147085297, 3147216389, 3147347503, + 3147478591, 3147609667, 3147740741, 3147871813, 3148002887, 3148133971, 3148265147, + 3148396247, 3148527331, 3148658423, 3148789499, 3148920571, 3149051671, 3149182781, + 3149313863, 3149444951, 3149576069, 3149707151, 3149838229, 3149969311, 3150100403, + 3150231503, 3150362591, 3150493667, 3150624761, 3150755849, 3150886931, 3151018049, + 3151149139, 3151280233, 3151411339, 3151542419, 3151673533, 3151804679, 3151935769, + 3152066843, 3152197967, 3152329049, 3152460121, 3152591227, 3152722303, 3152853397, + 3152984551, 3153115639, 3153246743, 3153377819, 3153508921, 3153640019, 3153771097, + 3153902173, 3154033249, 3154164329, 3154295407, 3154426489, 3154557643, 3154688729, + 3154819807, 3154950881, 3155081977, 3155213053, 3155344141, 3155475221, 3155606297, + 3155737391, 3155868467, 3155999551, 3156130669, 3156261743, 3156392821, 3156523897, + 3156654989, 3156786071, 3156917161, 3157048247, 3157179323, 3157310423, 3157441499, + 3157572629, 3157703701, 3157834783, 3157965857, 3158096983, 3158228063, 3158359207, + 3158490323, 3158621413, 3158752517, 3158883599, 3159014671, 3159145753, 3159276839, + 3159407921, 3159539011, 3159670109, 3159801181, 3159932261, 3160063349, 3160194431, + 3160325507, 3160456597, 3160587673, 3160718777, 3160849877, 3160980997, 3161112077, + 3161243191, 3161374267, 3161505343, 3161636459, 3161767537, 3161898631, 3162029711, + 3162160787, 3162291893, 3162422969, 3162554069, 3162685153, 3162816233, 3162947311, + 3163078403, 3163209521, 3163340597, 3163471691, 3163602769, 3163733843, 3163864967, + 3163996039, 3164127139, 3164258231, 3164389309, 3164520383, 3164651467, 3164782567, + 3164913667, 3165044747, 3165175823, 3165306913, 3165437987, 3165569059, 3165700163, + 3165831247, 3165962321, 3166093421, 3166224497, 3166355573, 3166486649, 3166617721, + 3166748801, 3166879879, 3167010961, 3167142061, 3167273143, 3167404223, 3167535317, + 3167666393, 3167797469, 3167928541, 3168059623, 3168190717, 3168321809, 3168452891, + 3168583969, 3168715087, 3168846221, 3168977353, 3169108441, 3169239559, 3169370671, + 3169501759, 3169632841, 3169763957, 3169895051, 3170026133, 3170157209, 3170288327, + 3170419409, 3170550553, 3170681809, 3170812907, 3170943983, 3171075071, 3171206147, + 3171337219, 3171468317, 3171599399, 3171730481, 3171861569, 3171992641, 3172123753, + 3172254851, 3172385933, 3172517027, 3172648099, 3172779187, 3172910261, 3173041379, + 3173172469, 3173303543, 3173434619, 3173565709, 3173696797, 3173827873, 3173958961, + 3174090047, 3174221119, 3174352193, 3174483271, 3174614371, 3174745451, 3174876547, + 3175007621, 3175138763, 3175269841, 3175400951, 3175532057, 3175663129, 3175794247, + 3175925321, 3176056393, 3176187481, 3176318569, 3176449709, 3176580793, 3176711869, + 3176842943, 3176974027, 3177105103, 3177236239, 3177367327, 3177498413, 3177629489, + 3177760571, 3177891671, 3178022767, 3178153871, 3178284943, 3178416047, 3178547269, + 3178678351, 3178809437, 3178940509, 3179071591, 3179202667, 3179333777, 3179464853, + 3179595959, 3179727037, 3179858117, 3179989249, 3180120343, 3180251419, 3180382493, + 3180513631, 3180644711, 3180775813, 3180906893, 3181037983, 3181169063, 3181300159, + 3181431233, 3181562309, 3181693397, 3181824479, 3181955551, 3182086651, 3182217737, + 3182348837, 3182479969, 3182611049, 3182742169, 3182873273, 3183004361, 3183135443, + 3183266521, 3183397597, 3183528701, 3183659803, 3183790877, 3183921973, 3184053073, + 3184184149, 3184315223, 3184446299, 3184577371, 3184708459, 3184839557, 3184970639, + 3185101721, 3185232797, 3185363873, 3185494957, 3185626079, 3185757173, 3185888267, + 3186019367, 3186150439, 3186281531, 3186412609, 3186543683, 3186674801, 3186805903, + 3186936997, 3187068089, 3187199161, 3187330241, 3187461313, 3187592407, 3187723501, + 3187854577, 3187985653, 3188116747, 3188247851, 3188378953, 3188510027, 3188641109, + 3188772239, 3188903317, 3189034391, 3189165479, 3189296581, 3189427729, 3189558811, + 3189689891, 3189820979, 3189952067, 3190083139, 3190214227, 3190345343, 3190476437, + 3190607557, 3190738637, 3190869733, 3191000807, 3191131891, 3191262983, 3191394077, + 3191525153, 3191656229, 3191787301, 3191918383, 3192049477, 3192180599, 3192311671, + 3192442763, 3192573877, 3192704953, 3192836063, 3192967159, 3193098269, 3193229341, + 3193360421, 3193491493, 3193622587, 3193753687, 3193884763, 3194015849, 3194146927, + 3194278013, 3194409103, 3194540177, 3194671261, 3194802337, 3194933419, 3195064517, + 3195195623, 3195326707, 3195457813, 3195588887, 3195719963, 3195851041, 3195982123, + 3196113197, 3196244287, 3196375361, 3196506433, 3196637557, 3196768633, 3196899733, + 3197030821, 3197161907, 3197292991, 3197424067, 3197555227, 3197686337, 3197817409, + 3197948491, 3198079579, 3198210661, 3198341743, 3198472861, 3198603937, 3198735053, + 3198866131, 3198997223, 3199128313, 3199259389, 3199390483, 3199521593, 3199652713, + 3199783793, 3199914869, 3200045951, 3200177041, 3200308117, 3200439241, 3200570357, + 3200701433, 3200832527, 3200963627, 3201094717, 3201225823, 3201356897, 3201487969, + 3201619079, 3201750151, 3201881227, 3202012313, 3202143401, 3202274473, 3202405553, + 3202536641, 3202667747, 3202798867, 3202929979, 3203061053, 3203192131, 3203323231, + 3203454311, 3203585387, 3203716459, 3203847533, 3203978611, 3204109771, 3204240859, + 3204371941, 3204503017, 3204634109, 3204765199, 3204896309, 3205027381, 3205158497, + 3205289573, 3205420649, 3205551737, 3205682827, 3205813967, 3205945063, 3206076143, + 3206207219, 3206338327, 3206469403, 3206600513, 3206731589, 3206862661, 3206993761, + 3207124847, 3207255937, 3207387031, 3207518131, 3207649213, 3207780311, 3207911389, + 3208042483, 3208173587, 3208304677, 3208435757, 3208566833, 3208697909, 3208828991, + 3208960081, 3209091187, 3209222299, 3209353387, 3209484479, 3209615551, 3209746679, + 3209877773, 3210008873, 3210139951, 3210271037, 3210402121, 3210533201, 3210664279, + 3210795359, 3210926441, 3211057517, 3211188623, 3211319759, 3211450903, 3211582001, + 3211713091, 3211844201, 3211975303, 3212106409, 3212237563, 3212368639, 3212499721, + 3212630797, 3212761931, 3212893007, 3213024091, 3213155173, 3213286247, 3213417323, + 3213548407, 3213679493, 3213810581, 3213941657, 3214072781, 3214203857, 3214334951, + 3214466023, 3214597109, 3214728191, 3214859281, 3214990357, 3215121431, 3215252527, + 3215383637, 3215514713, 3215645803, 3215776891, 3215907967, 3216039049, 3216170131, + 3216301217, 3216432299, 3216563381, 3216694487, 3216825583, 3216956657, 3217087777, + 3217218853, 3217349939, 3217481011, 3217612121, 3217743197, 3217874287, 3218005363, + 3218136463, 3218267543, 3218398661, 3218529739, 3218660827, 3218791943, 3218923027, + 3219054127, 3219185237, 3219316327, 3219447449, 3219578539, 3219709687, 3219840791, + 3219971869, 3220102987, 3220234067, 3220365149, 3220496263, 3220627349, 3220758421, + 3220889509, 3221020597, 3221151683, 3221282807, 3221413883, 3221544961, 3221676047, + 3221807123, 3221938249, 3222069353, 3222200441, 3222331513, 3222462599, 3222593707, + 3222724807, 3222855893, 3222986983, 3223118071, 3223249163, 3223380253, 3223511371, + 3223642453, 3223773547, 3223904623, 3224035721, 3224166797, 3224297899, 3224429011, + 3224560159, 3224691233, 3224822311, 3224953399, 3225084497, 3225215597, 3225346673, + 3225477757, 3225608833, 3225739921, 3225870997, 3226002113, 3226133219, 3226264309, + 3226395391, 3226526473, 3226657559, 3226788637, 3226919737, 3227050817, 3227181899, + 3227312971, 3227444047, 3227575181, 3227706283, 3227837357, 3227968433, 3228099517, + 3228230591, 3228361679, 3228492811, 3228623891, 3228755051, 3228886123, 3229017203, + 3229148291, 3229279379, 3229410517, 3229541599, 3229672679, 3229803757, 3229934831, + 3230065933, 3230197021, 3230328103, 3230459201, 3230590277, 3230721383, 3230852479, + 3230983589, 3231114661, 3231245749, 3231376877, 3231507959, 3231639067, 3231770203, + 3231901289, 3232032403, 3232163483, 3232294631, 3232425767, 3232556857, 3232687951, + 3232819033, 3232950121, 3233081197, 3233212309, 3233343403, 3233474501, 3233605579, + 3233736661, 3233867737, 3233998819, 3234129911, 3234261007, 3234392123, 3234523211, + 3234654299, 3234785383, 3234916469, 3235047583, 3235178711, 3235309799, 3235440877, + 3235571951, 3235703039, 3235834117, 3235965217, 3236096323, 3236227417, 3236358509, + 3236489591, 3236620679, 3236751781, 3236882861, 3237013957, 3237145031, 3237276109, + 3237407213, 3237538321, 3237669473, 3237800557, 3237931643, 3238062749, 3238193831, + 3238324913, 3238455991, 3238587127, 3238718227, 3238849301, 3238980373, 3239111453, + 3239242529, 3239373617, 3239504689, 3239635769, 3239766847, 3239897929, 3240029027, + 3240160153, 3240291247, 3240422323, 3240553429, 3240684511, 3240815623, 3240946703, + 3241077823, 3241208911, 3241339991, 3241471067, 3241602151, 3241733233, 3241864321, + 3241995413, 3242126497, 3242257589, 3242388697, 3242519771, 3242650849, 3242781931, + 3242913019, 3243044093, 3243175181, 3243306281, 3243437357, 3243568429, 3243699517, + 3243830591, 3243961673, 3244092749, 3244223821, 3244354921, 3244486027, 3244617113, + 3244748203, 3244879283, 3245010409, 3245141491, 3245272633, 3245403727, 3245534827, + 3245665909, 3245797001, 3245928073, 3246059213, 3246190303, 3246321383, 3246452467, + 3246583573, 3246714649, 3246845731, 3246976819, 3247107917, 3247238993, 3247370101, + 3247501207, 3247632301, 3247763401, 3247894487, 3248025611, 3248156683, 3248287781, + 3248418853, 3248549981, 3248681083, 3248812159, 3248943233, 3249074321, 3249205403, + 3249336479, 3249467581, 3249598727, 3249729811, 3249860897, 3249991991, 3250123067, + 3250254167, 3250385239, 3250516337, 3250647419, 3250778497, 3250909591, 3251040703, + 3251171801, 3251302889, 3251433967, 3251565047, 3251696141, 3251827247, 3251958361, + 3252089437, 3252220511, 3252351623, 3252482713, 3252613789, 3252744863, 3252875957, + 3253007029, 3253138103, 3253269191, 3253400263, 3253531357, 3253662431, 3253793513, + 3253924607, 3254055703, 3254186783, 3254317861, 3254448943, 3254580023, 3254711123, + 3254842211, 3254973283, 3255104401, 3255235483, 3255366563, 3255497701, 3255628781, + 3255759853, 3255890947, 3256022047, 3256153151, 3256284233, 3256415311, 3256546399, + 3256677481, 3256808573, 3256939649, 3257070721, 3257201807, 3257332901, 3257463977, + 3257595071, 3257726203, 3257857283, 3257988359, 3258119443, 3258250519, 3258381593, + 3258512693, 3258643769, 3258774851, 3258905927, 3259036999, 3259168111, 3259299187, + 3259430267, 3259561369, 3259692451, 3259823527, 3259954631, 3260085709, 3260216789, + 3260347877, 3260478967, 3260610049, 3260741123, 3260872217, 3261003299, 3261134381, + 3261265453, 3261396529, 3261527609, 3261658717, 3261789799, 3261920891, 3262052009, + 3262183129, 3262314203, 3262445279, 3262576351, 3262707443, 3262838519, 3262969603, + 3263100721, 3263231809, 3263362913, 3263493997, 3263625077, 3263756173, 3263887259, + 3264018349, 3264149429, 3264280507, 3264411583, 3264542707, 3264673781, 3264804863, + 3264935941, 3265067023, 3265198099, 3265329181, 3265460257, 3265591331, 3265722407, + 3265853497, 3265984577, 3266115673, 3266246779, 3266377853, 3266508943, 3266640017, + 3266771111, 3266902211, 3267033307, 3267164401, 3267295477, 3267426559, 3267557663, + 3267688741, 3267819817, 3267950891, 3268081963, 3268213057, 3268344161, 3268475257, + 3268606349, 3268737469, 3268868569, 3268999663, 3269130743, 3269261881, 3269392957, + 3269524067, 3269655139, 3269786231, 3269917333, 3270048421, 3270179531, 3270310651, + 3270441731, 3270572827, 3270703901, 3270835013, 3270966119, 3271097197, 3271228297, + 3271359389, 3271490461, 3271621547, 3271752637, 3271883729, 3272014829, 3272145901, + 3272276993, 3272408093, 3272539169, 3272670241, 3272801317, 3272932393, 3273063473, + 3273194579, 3273325663, 3273456787, 3273587869, 3273718949, 3273850031, 3273981107, + 3274112189, 3274243327, 3274374407, 3274505483, 3274636583, 3274767673, 3274898773, + 3275029847, 3275160953, 3275292107, 3275423209, 3275554291, 3275685373, 3275816447, + 3275947531, 3276078607, 3276209687, 3276340799, 3276471883, 3276602957, 3276734029, + 3276865117, 3276996199, 3277127317, 3277258433, 3277389539, 3277520629, 3277651709, + 3277782787, 3277913861, 3278044951, 3278176073, 3278307169, 3278438281, 3278569363, + 3278700443, 3278831551, 3278962657, 3279093733, 3279224807, 3279355889, 3279486961, + 3279618037, 3279749149, 3279880223, 3280011307, 3280142381, 3280273457, 3280404529, + 3280535659, 3280666747, 3280797827, 3280928921, 3281059997, 3281191163, 3281322251, + 3281453333, 3281584421, 3281715517, 3281846591, 3281977681, 3282108769, 3282239879, + 3282370961, 3282502039, 3282633119, 3282764203, 3282895307, 3283026389, 3283157491, + 3283288579, 3283419673, 3283550749, 3283681867, 3283812943, 3283944023, 3284075111, + 3284206187, 3284337271, 3284468347, 3284599457, 3284730551, 3284861663, 3284992741, + 3285123817, 3285254893, 3285385979, 3285517057, 3285648151, 3285779291, 3285910421, + 3286041497, 3286172581, 3286303661, 3286434743, 3286565819, 3286696891, 3286827967, + 3286959041, 3287090129, 3287221243, 3287352323, 3287483399, 3287614487, 3287745563, + 3287876639, 3288007727, 3288138809, 3288269891, 3288401009, 3288532109, 3288663199, + 3288794281, 3288925361, 3289056437, 3289187509, 3289318621, 3289449703, 3289580821, + 3289711907, 3289843001, 3289974131, 3290105261, 3290236373, 3290367449, 3290498551, + 3290629631, 3290760713, 3290891797, 3291022871, 3291153949, 3291285047, 3291416129, + 3291547249, 3291678347, 3291809449, 3291940543, 3292071631, 3292202729, 3292333861, + 3292464941, 3292596037, 3292727111, 3292858187, 3292989277, 3293120387, 3293251459, + 3293382551, 3293513627, 3293644723, 3293775829, 3293906951, 3294038023, 3294169111, + 3294300197, 3294431333, 3294562463, 3294693541, 3294824653, 3294955777, 3295086859, + 3295217951, 3295349027, 3295480103, 3295611191, 3295742291, 3295873379, 3296004487, + 3296135573, 3296266669, 3296397749, 3296528839, 3296659997, 3296791087, 3296922169, + 3297053273, 3297184381, 3297315467, 3297446557, 3297577687, 3297708767, 3297839873, + 3297970993, 3298102091, 3298233179, 3298364273, 3298495349, 3298626439, 3298757549, + 3298888631, 3299019707, 3299150783, 3299281861, 3299412953, 3299544037, 3299675111, + 3299806243, 3299937317, 3300068419, 3300199499, 3300330599, 3300461707, 3300592817, + 3300723929, 3300855011, 3300986119, 3301117213, 3301248317, 3301379399, 3301510501, + 3301641583, 3301772713, 3301903811, 3302034889, 3302166011, 3302297093, 3302428169, + 3302559251, 3302690327, 3302821439, 3302952511, 3303083587, 3303214669, 3303345743, + 3303476831, 3303607981, 3303739069, 3303870187, 3304001329, 3304132421, 3304263499, + 3304394573, 3304525709, 3304656781, 3304787861, 3304918963, 3305050037, 3305181109, + 3305312233, 3305443363, 3305574451, 3305705531, 3305836613, 3305967703, 3306098791, + 3306229943, 3306361061, 3306492151, 3306623231, 3306754349, 3306885427, 3307016527, + 3307147633, 3307278739, 3307409837, 3307540933, 3307672033, 3307803151, 3307934237, + 3308065337, 3308196427, 3308327513, 3308458589, 3308589673, 3308720749, 3308851907, + 3308983009, 3309114089, 3309245161, 3309376241, 3309507323, 3309638411, 3309769487, + 3309900631, 3310031759, 3310162847, 3310293919, 3310425007, 3310556099, 3310687199, + 3310818311, 3310949387, 3311080459, 3311211557, 3311342663, 3311473751, 3311604833, + 3311735909, 3311866981, 3311998087, 3312129167, 3312260257, 3312391331, 3312522443, + 3312653527, 3312784609, 3312915691, 3313046783, 3313177859, 3313308937, 3313440023, + 3313571137, 3313702261, 3313833343, 3313964417, 3314095493, 3314226569, 3314357647, + 3314488729, 3314619809, 3314750909, 3314881981, 3315013063, 3315144137, 3315275233, + 3315406309, 3315537397, 3315668471, 3315799549, 3315930643, 3316061737, 3316192849, + 3316323937, 3316455017, 3316586089, 3316717169, 3316848251, 3316979333, 3317110427, + 3317241503, 3317372609, 3317503723, 3317634811, 3317765897, 3317896973, 3318028061, + 3318159139, 3318290219, 3318421297, 3318552379, 3318683483, 3318814561, 3318945659, + 3319076743, 3319207817, 3319338889, 3319469969, 3319601041, 3319732183, 3319863277, + 3319994389, 3320125469, 3320256559, 3320387641, 3320518739, 3320649853, 3320780929, + 3320912011, 3321043087, 3321174161, 3321305291, 3321436403, 3321567493, 3321698573, + 3321829657, 3321960739, 3322091813, 3322222913, 3322353989, 3322485073, 3322616161, + 3322747243, 3322878337, 3323009411, 3323140517, 3323271593, 3323402669, 3323533747, + 3323664829, 3323795911, 3323926993, 3324058099, 3324189181, 3324320261, 3324451343, + 3324582419, 3324713519, 3324844613, 3324975707, 3325106783, 3325237871, 3325368971, + 3325500071, 3325631149, 3325762229, 3325893331, 3326024437, 3326155513, 3326286599, + 3326417671, 3326548759, 3326679857, 3326810939, 3326942029, 3327073157, 3327204229, + 3327335317, 3327466391, 3327597517, 3327728603, 3327859699, 3327990779, 3328121851, + 3328252943, 3328384019, 3328515097, 3328646219, 3328777301, 3328908391, 3329039471, + 3329170543, 3329301631, 3329432713, 3329563817, 3329694899, 3329826013, 3329957153, + 3330088243, 3330219317, 3330350407, 3330481499, 3330612583, 3330743659, 3330874777, + 3331005863, 3331136951, 3331268033, 3331399121, 3331530193, 3331661279, 3331792357, + 3331923443, 3332054527, 3332185601, 3332316677, 3332447749, 3332578913, 3332710001, + 3332841101, 3332972249, 3333103349, 3333234473, 3333365561, 3333496643, 3333627721, + 3333758797, 3333889883, 3334020961, 3334152043, 3334283131, 3334414207, 3334545281, + 3334676369, 3334807453, 3334938559, 3335069641, 3335200723, 3335331803, 3335462899, + 3335593973, 3335725051, 3335856131, 3335987203, 3336118343, 3336249479, 3336380627, + 3336511709, 3336642787, 3336773873, 3336904969, 3337036081, 3337167173, 3337298281, + 3337429367, 3337560451, 3337691543, 3337822637, 3337953709, 3338084803, 3338215879, + 3338346953, 3338478043, 3338609167, 3338740241, 3338871317, 3339002389, 3339133513, + 3339264641, 3339395723, 3339526831, 3339657967, 3339789071, 3339920153, 3340051229, + 3340182359, 3340313443, 3340444561, 3340575661, 3340706779, 3340837933, 3340969019, + 3341100131, 3341231203, 3341362301, 3341493401, 3341624497, 3341755591, 3341886679, + 3342017753, 3342148829, 3342279907, 3342410993, 3342542101, 3342673199, 3342804271, + 3342935363, 3343066481, 3343197553, 3343328689, 3343459781, 3343590869, 3343721947, + 3343853047, 3343984141, 3344115227, 3344246317, 3344377409, 3344508509, 3344639593, + 3344770669, 3344901757, 3345032833, 3345163909, 3345295027, 3345426103, 3345557179, + 3345688301, 3345819403, 3345950477, 3346081579, 3346212679, 3346343771, 3346474847, + 3346605919, 3346737013, 3346868099, 3346999181, 3347130271, 3347261377, 3347392453, + 3347523559, 3347654647, 3347785747, 3347916829, 3348047917, 3348178991, 3348310067, + 3348441143, 3348572251, 3348703327, 3348834407, 3348965483, 3349096559, 3349227653, + 3349358767, 3349489853, 3349620949, 3349752023, 3349883129, 3350014223, 3350145347, + 3350276431, 3350407507, 3350538601, 3350669681, 3350800753, 3350931839, 3351062921, + 3351193997, 3351325069, 3351456161, 3351587257, 3351718339, 3351849427, 3351980519, + 3352111591, 3352242679, 3352373779, 3352504853, 3352635931, 3352767007, 3352898167, + 3353029243, 3353160331, 3353291407, 3353422481, 3353553563, 3353684683, 3353815763, + 3353946851, 3354077963, 3354209069, 3354340153, 3354471233, 3354602357, 3354733433, + 3354864509, 3354995591, 3355126669, 3355257749, 3355388843, 3355519931, 3355651003, + 3355782077, 3355913177, 3356044277, 3356175353, 3356306467, 3356437543, 3356568619, + 3356699693, 3356830811, 3356961913, 3357093001, 3357224093, 3357355171, 3357486277, + 3357617369, 3357748447, 3357879523, 3358010609, 3358141687, 3358272839, 3358403911, + 3358535021, 3358666097, 3358797173, 3358928269, 3359059349, 3359190427, 3359321521, + 3359452601, 3359583691, 3359714779, 3359845861, 3359976941, 3360108013, 3360239093, + 3360370187, 3360501307, 3360632383, 3360763457, 3360894533, 3361025617, 3361156693, + 3361287779, 3361418867, 3361549987, 3361681067, 3361812173, 3361943293, 3362074367, + 3362205449, 3362336543, 3362467627, 3362598703, 3362729791, 3362860867, 3362991949, + 3363123037, 3363254129, 3363385237, 3363516323, 3363647401, 3363778489, 3363909581, + 3364040653, 3364171753, 3364302833, 3364433923, 3364565003, 3364696129, 3364827227, + 3364958299, 3365089393, 3365220493, 3365351581, 3365482717, 3365613799, 3365744917, + 3365875991, 3366007087, 3366138179, 3366269251, 3366400343, 3366531419, 3366662491, + 3366793589, 3366924703, 3367055807, 3367186883, 3367318007, 3367449149, 3367580231, + 3367711307, 3367842389, 3367973489, 3368104577, 3368235679, 3368366761, 3368497841, + 3368628917, 3368760013, 3368891129, 3369022201, 3369153301, 3369284377, 3369415519, + 3369546611, 3369677687, 3369808789, 3369939871, 3370070953, 3370202039, 3370333133, + 3370464241, 3370595317, 3370726409, 3370857481, 3370988581, 3371119663, 3371250749, + 3371381833, 3371512939, 3371644013, 3371775101, 3371906179, 3372037271, 3372168347, + 3372299431, 3372430541, 3372561637, 3372692723, 3372823807, 3372954883, 3373085959, + 3373217033, 3373348133, 3373479209, 3373610293, 3373741379, 3373872521, 3374003609, + 3374134691, 3374265779, 3374396863, 3374527943, 3374659021, 3374790119, 3374921213, + 3375052297, 3375183403, 3375314479, 3375445639, 3375576733, 3375707809, 3375838897, + 3375969977, 3376101061, 3376232137, 3376363253, 3376494347, 3376625443, 3376756519, + 3376887617, 3377018731, 3377149817, 3377280917, 3377412011, 3377543089, 3377674187, + 3377805269, 3377936351, 3378067453, 3378198529, 3378329609, 3378460697, 3378591779, + 3378722881, 3378853963, 3378985097, 3379116227, 3379247327, 3379378403, 3379509493, + 3379640611, 3379771693, 3379902769, 3380033843, 3380164967, 3380296067, 3380427173, + 3380558297, 3380689387, 3380820479, 3380951593, 3381082669, 3381213743, 3381344833, + 3381475919, 3381606997, 3381738071, 3381869159, 3382000241, 3382131353, 3382262437, + 3382393513, 3382524619, 3382655693, 3382786787, 3382917859, 3383048947, 3383180077, + 3383311157, 3383442259, 3383573353, 3383704481, 3383835577, 3383966681, 3384097757, + 3384228889, 3384359963, 3384491057, 3384622159, 3384753263, 3384884359, 3385015441, + 3385146529, 3385277647, 3385408727, 3385539811, 3385670891, 3385801967, 3385933043, + 3386064161, 3386195233, 3386326313, 3386457421, 3386588497, 3386719591, 3386850683, + 3386981779, 3387112853, 3387243941, 3387375029, 3387506123, 3387637213, 3387768317, + 3387899429, 3388030519, 3388161641, 3388292717, 3388423793, 3388554877, 3388685987, + 3388817059, 3388948139, 3389079227, 3389210317, 3389341393, 3389472467, 3389603563, + 3389734637, 3389865749, 3389996821, 3390127943, 3390259043, 3390390137, 3390521209, + 3390652303, 3390783391, 3390914467, 3391045543, 3391176617, 3391307723, 3391438819, + 3391569899, 3391700993, 3391832071, 3391963147, 3392094221, 3392225293, 3392356367, + 3392487467, 3392618539, 3392749673, 3392880767, 3393011857, 3393142967, 3393274051, + 3393405131, 3393536203, 3393667307, 3393798403, 3393929489, 3394060561, 3394191637, + 3394322713, 3394453813, 3394584889, 3394715983, 3394847063, 3394978157, 3395109271, + 3395240347, 3395371433, 3395502529, 3395633609, 3395764681, 3395895757, 3396026869, + 3396157967, 3396289063, 3396420149, 3396551231, 3396682319, 3396813421, 3396944503, + 3397075667, 3397206751, 3397337831, 3397468903, 3397599983, 3397731067, 3397862177, + 3397993253, 3398124347, 3398255461, 3398386567, 3398517643, 3398648717, 3398779789, + 3398910863, 3399041953, 3399173047, 3399304121, 3399435203, 3399566281, 3399697369, + 3399828457, 3399959531, 3400090637, 3400221709, 3400352783, 3400483909, 3400615013, + 3400746119, 3400877191, 3401008271, 3401139353, 3401270437, 3401401519, 3401532593, + 3401663701, 3401794777, 3401925853, 3402056939, 3402188021, 3402319111, 3402450197, + 3402581323, 3402712433, 3402843523, 3402974599, 3403105711, 3403236827, 3403367911, + 3403499003, 3403630093, 3403761167, 3403892257, 3404023331, 3404154407, 3404285483, + 3404416601, 3404547673, 3404678747, 3404809831, 3404940919, 3405071993, 3405203111, + 3405334199, 3405465277, 3405596351, 3405727439, 3405858517, 3405989591, 3406120727, + 3406251799, 3406382957, 3406514053, 3406645127, 3406776199, 3406907281, 3407038361, + 3407169443, 3407300587, 3407431697, 3407562779, 3407693873, 3407824991, 3407956063, + 3408087149, 3408218239, 3408349327, 3408480401, 3408611489, 3408742567, 3408873641, + 3409004843, 3409135931, 3409267013, 3409398089, 3409529161, 3409660343, 3409791449, + 3409922567, 3410053643, 3410184731, 3410315819, 3410446903, 3410577979, 3410709061, + 3410840137, 3410971243, 3411102337, 3411233443, 3411364529, 3411495629, 3411626707, + 3411757787, 3411888863, 3412020011, 3412151111, 3412282201, 3412413293, 3412544393, + 3412675537, 3412806637, 3412937711, 3413068787, 3413199859, 3413330951, 3413462033, + 3413593109, 3413724187, 3413855261, 3413986351, 3414117433, 3414248531, 3414379643, + 3414510731, 3414641803, 3414772897, 3414904027, 3415035131, 3415166213, 3415297307, + 3415428407, 3415559479, 3415690559, 3415821709, 3415952797, 3416083897, 3416215007, + 3416346083, 3416477159, 3416608241, 3416739341, 3416870417, 3417001517, 3417132613, + 3417263693, 3417394787, 3417525887, 3417656971, 3417788053, 3417919133, 3418050211, + 3418181293, 3418312367, 3418443443, 3418574531, 3418705607, 3418836691, 3418967771, + 3419098913, 3419230013, 3419361097, 3419492203, 3419623301, 3419754389, 3419885477, + 3420016553, 3420147667, 3420278809, 3420409897, 3420541031, 3420672109, 3420803203, + 3420934303, 3421065383, 3421196459, 3421327561, 3421458647, 3421589729, 3421720807, + 3421851883, 3421982969, 3422114089, 3422245199, 3422376283, 3422507369, 3422638451, + 3422769523, 3422900603, 3423031681, 3423162779, 3423293857, 3423424937, 3423556061, + 3423687139, 3423818257, 3423949339, 3424080433, 3424211513, 3424342613, 3424473707, + 3424604779, 3424735879, 3424866989, 3424998061, 3425129137, 3425260247, 3425391329, + 3425522431, 3425653531, 3425784617, 3425915723, 3426046831, 3426177913, 3426308999, + 3426440071, 3426571157, 3426702239, 3426833317, 3426964391, 3427095491, 3427226581, + 3427357679, 3427488761, 3427619837, 3427750913, 3427881991, 3428013073, 3428144183, + 3428275261, 3428406349, 3428537461, 3428668543, 3428799617, 3428930693, 3429061771, + 3429192857, 3429323957, 3429455069, 3429586183, 3429717287, 3429848371, 3429979451, + 3430110571, 3430241669, 3430372769, 3430503841, 3430634929, 3430766011, 3430897087, + 3431028203, 3431159287, 3431290399, 3431421473, 3431552599, 3431683679, 3431814779, + 3431945863, 3432076979, 3432208061, 3432339133, 3432470219, 3432601349, 3432732431, + 3432863521, 3432994619, 3433125701, 3433256797, 3433387873, 3433518947, 3433650023, + 3433781101, 3433912219, 3434043293, 3434174371, 3434305471, 3434436553, 3434567627, + 3434698703, 3434829793, 3434960869, 3435091949, 3435223049, 3435354137, 3435485227, + 3435616307, 3435747389, 3435878461, 3436009547, 3436140689, 3436271767, 3436402841, + 3436533931, 3436665007, 3436796101, 3436927201, 3437058301, 3437189377, 3437320451, + 3437451529, 3437582611, 3437713703, 3437844853, 3437975941, 3438107039, 3438238127, + 3438369229, 3438500311, 3438631397, 3438762497, 3438893587, 3439024697, 3439155773, + 3439286849, 3439417957, 3439549067, 3439680149, 3439811267, 3439942339, 3440073419, + 3440204513, 3440335621, 3440466697, 3440597777, 3440728873, 3440859971, 3440991049, + 3441122147, 3441253241, 3441384343, 3441515417, 3441646517, 3441777589, 3441908693, + 3442039789, 3442170883, 3442301963, 3442433087, 3442564199, 3442695317, 3442826389, + 3442957543, 3443088619, 3443219719, 3443350811, 3443481887, 3443612987, 3443744093, + 3443875187, 3444006271, 3444137371, 3444268483, 3444399599, 3444530723, 3444661799, + 3444792893, 3444923981, 3445055059, 3445186139, 3445317221, 3445448297, 3445579369, + 3445710451, 3445841527, 3445972619, 3446103697, 3446234791, 3446365903, 3446496983, + 3446628079, 3446759153, 3446890229, 3447021301, 3447152381, 3447283459, 3447414557, + 3447545653, 3447676801, 3447807877, 3447938951, 3448070023, 3448201117, 3448332191, + 3448463297, 3448594393, 3448725491, 3448856597, 3448987709, 3449118793, 3449249893, + 3449380967, 3449512063, 3449643139, 3449774227, 3449905331, 3450036419, 3450167531, + 3450298637, 3450429713, 3450560863, 3450691949, 3450823067, 3450954139, 3451085237, + 3451216313, 3451347401, 3451478489, 3451609561, 3451740637, 3451871729, 3452002811, + 3452133931, 3452265023, 3452396107, 3452527187, 3452658259, 3452789377, 3452920477, + 3453051551, 3453182651, 3453313729, 3453444809, 3453575887, 3453707017, 3453838139, + 3453969217, 3454100317, 3454231397, 3454362487, 3454493573, 3454624673, 3454755781, + 3454886861, 3455017939, 3455149013, 3455280109, 3455411191, 3455542271, 3455673359, + 3455804431, 3455935507, 3456066599, 3456197683, 3456328783, 3456459931, 3456591031, + 3456722107, 3456853181, 3456984257, 3457115329, 3457246411, 3457377487, 3457508597, + 3457639687, 3457770761, 3457901849, 3458032937, 3458164009, 3458295121, 3458426249, + 3458557339, 3458688419, 3458819519, 3458950591, 3459081667, 3459212749, 3459343843, + 3459474979, 3459606053, 3459737173, 3459868273, 3459999359, 3460130437, 3460261517, + 3460392643, 3460523747, 3460654859, 3460785949, 3460917023, 3461048099, 3461179193, + 3461310277, 3461441377, 3461572463, 3461703547, 3461834639, 3461965747, 3462096823, + 3462227897, 3462358973, 3462490051, 3462621133, 3462752239, 3462883321, 3463014419, + 3463145533, 3463276613, 3463407691, 3463538779, 3463669883, 3463800961, 3463932041, + 3464063117, 3464194199, 3464325287, 3464456389, 3464587481, 3464718553, 3464849627, + 3464980703, 3465111791, 3465242863, 3465373963, 3465505061, 3465636137, 3465767231, + 3465898327, 3466029401, 3466160473, 3466291547, 3466422623, 3466553719, 3466684799, + 3466815871, 3466946957, 3467078047, 3467209133, 3467340211, 3467471297, 3467602373, + 3467733473, 3467864549, 3467995649, 3468126743, 3468257827, 3468388907, 3468519983, + 3468651059, 3468782173, 3468913267, 3469044349, 3469175429, 3469306537, 3469437613, + 3469568731, 3469699819, 3469830979, 3469962059, 3470093149, 3470224249, 3470355337, + 3470486417, 3470617517, 3470748643, 3470879717, 3471010831, 3471141911, 3471272989, + 3471404071, 3471535159, 3471666251, 3471797327, 3471928423, 3472059533, 3472190621, + 3472321703, 3472452799, 3472583941, 3472715023, 3472846099, 3472977181, 3473108257, + 3473239337, 3473370413, 3473501491, 3473632567, 3473763641, 3473894731, 3474025829, + 3474156901, 3474288007, 3474419083, 3474550229, 3474681311, 3474812389, 3474943499, + 3475074583, 3475205663, 3475336757, 3475467839, 3475598933, 3475730017, 3475861139, + 3475992239, 3476123317, 3476254399, 3476385481, 3476516557, 3476647651, 3476778757, + 3476909833, 3477040921, 3477172057, 3477303133, 3477434227, 3477565319, 3477696401, + 3477827489, 3477958567, 3478089673, 3478220749, 3478351837, 3478482949, 3478614037, + 3478745203, 3478876283, 3479007373, 3479138501, 3479269579, 3479400689, 3479531761, + 3479662873, 3479793959, 3479925049, 3480056183, 3480187289, 3480318431, 3480449549, + 3480580679, 3480711757, 3480842861, 3480973957, 3481105049, 3481236173, 3481367261, + 3481498367, 3481629443, 3481760521, 3481891597, 3482022701, 3482153777, 3482284877, + 3482415971, 3482547049, 3482678153, 3482809229, 3482940313, 3483071387, 3483202517, + 3483333589, 3483464669, 3483595757, 3483726839, 3483857933, 3483989011, 3484120151, + 3484251227, 3484382353, 3484513481, 3484644563, 3484775641, 3484906741, 3485037823, + 3485168899, 3485300003, 3485431093, 3485562167, 3485693261, 3485824337, 3485955409, + 3486086489, 3486217601, 3486348689, 3486479767, 3486610843, 3486741931, 3486873079, + 3487004189, 3487135291, 3487266383, 3487397477, 3487528553, 3487659641, 3487790743, + 3487921831, 3488052941, 3488184023, 3488315107, 3488446193, 3488577277, 3488708359, + 3488839441, 3488970521, 3489101611, 3489232697, 3489363769, 3489494843, 3489625933, + 3489757013, 3489888113, 3490019219, 3490150309, 3490281391, 3490412473, 3490543571, + 3490674667, 3490805743, 3490936819, 3491067893, 3491198981, 3491330083, 3491461199, + 3491592287, 3491723363, 3491854441, 3491985517, 3492116623, 3492247699, 3492378787, + 3492509953, 3492641039, 3492772117, 3492903221, 3493034299, 3493165433, 3493296523, + 3493427621, 3493558699, 3493689791, 3493820881, 3493951973, 3494083091, 3494214167, + 3494345287, 3494476393, 3494607469, 3494738549, 3494869657, 3495000731, 3495131803, + 3495262889, 3495393991, 3495525079, 3495656183, 3495787283, 3495918367, 3496049449, + 3496180591, 3496311683, 3496442843, 3496573921, 3496705039, 3496836121, 3496967209, + 3497098291, 3497229397, 3497360521, 3497491597, 3497622683, 3497753761, 3497884843, + 3498015929, 3498147007, 3498278093, 3498409193, 3498540271, 3498671387, 3498802477, + 3498933553, 3499064651, 3499195787, 3499326863, 3499457987, 3499589069, 3499720141, + 3499851221, 3499982347, 3500113427, 3500244499, 3500375621, 3500506699, 3500637781, + 3500768881, 3500899993, 3501031109, 3501162239, 3501293329, 3501424403, 3501555503, + 3501686579, 3501817651, 3501948727, 3502079807, 3502210883, 3502341971, 3502473067, + 3502604177, 3502735279, 3502866373, 3502997521, 3503128621, 3503259709, 3503390833, + 3503521919, 3503653001, 3503784101, 3503915179, 3504046277, 3504177359, 3504308449, + 3504439531, 3504570613, 3504701693, 3504832781, 3504963863, 3505094941, 3505226057, + 3505357133, 3505488221, 3505619311, 3505750393, 3505881469, 3506012551, 3506143633, + 3506274713, 3506405797, 3506536889, 3506667971, 3506799047, 3506930131, 3507061237, + 3507192313, 3507323399, 3507454493, 3507585569, 3507716647, 3507847723, 3507978857, + 3508109933, 3508241017, 3508372111, 3508503203, 3508634317, 3508765399, 3508896493, + 3509027573, 3509158721, 3509289907, 3509421001, 3509552089, 3509683169, 3509814247, + 3509945347, 3510076481, 3510207557, 3510338633, 3510469741, 3510600833, 3510731911, + 3510862987, 3510994079, 3511125161, 3511256233, 3511387337, 3511518443, 3511649543, + 3511780633, 3511911719, 3512042803, 3512173879, 3512304979, 3512436071, 3512567147, + 3512698243, 3512829343, 3512960417, 3513091499, 3513222577, 3513353663, 3513484759, + 3513615877, 3513746959, 3513878033, 3514009117, 3514140199, 3514271273, 3514402349, + 3514533427, 3514664509, 3514795591, 3514926671, 3515057743, 3515188823, 3515319943, + 3515451047, 3515582137, 3515713211, 3515844337, 3515975413, 3516106501, 3516237607, + 3516368683, 3516499799, 3516630881, 3516761993, 3516893087, 3517024177, 3517155289, + 3517286411, 3517417507, 3517548583, 3517679663, 3517810753, 3517941857, 3518072941, + 3518204023, 3518335097, 3518466221, 3518597377, 3518728457, 3518859541, 3518990653, + 3519121741, 3519252823, 3519383897, 3519515029, 3519646133, 3519777221, 3519908323, + 3520039417, 3520170499, 3520301579, 3520432667, 3520563757, 3520694833, 3520825907, + 3520956991, 3521088079, 3521219153, 3521350229, 3521481311, 3521612383, 3521743469, + 3521874569, 3522005653, 3522136727, 3522267803, 3522398909, 3522529991, 3522661081, + 3522792191, 3522923263, 3523054343, 3523185431, 3523316513, 3523447589, 3523578691, + 3523709789, 3523840963, 3523972037, 3524103127, 3524234261, 3524365333, 3524496413, + 3524627501, 3524758591, 3524889673, 3525020749, 3525151829, 3525282907, 3525413993, + 3525545069, 3525676153, 3525807239, 3525938323, 3526069409, 3526200487, 3526331591, + 3526462663, 3526593737, 3526724809, 3526855901, 3526987031, 3527118139, 3527249227, + 3527380301, 3527511413, 3527642491, 3527773577, 3527904661, 3528035737, 3528166843, + 3528297919, 3528429017, 3528560117, 3528691223, 3528822313, 3528953419, 3529084513, + 3529215593, 3529346669, 3529477759, 3529608839, 3529739923, 3529870999, 3530002081, + 3530133157, 3530264263, 3530395361, 3530526437, 3530657513, 3530788619, 3530919709, + 3531050791, 3531181879, 3531312979, 3531444053, 3531575141, 3531706219, 3531837317, + 3531968423, 3532099499, 3532230593, 3532361669, 3532492753, 3532623841, 3532754933, + 3532886009, 3533017087, 3533148163, 3533279249, 3533410337, 3533541461, 3533672537, + 3533803631, 3533934709, 3534065789, 3534196877, 3534327967, 3534459041, 3534590119, + 3534721237, 3534852329, 3534983423, 3535114507, 3535245587, 3535376681, 3535507763, + 3535638919, 3535770011, 3535901087, 3536032163, 3536163263, 3536294347, 3536425427, + 3536556509, 3536687597, 3536818679, 3536949751, 3537080837, 3537211933, 3537343021, + 3537474103, 3537605179, 3537736253, 3537867353, 3537998447, 3538129519, 3538260619, + 3538391711, 3538522789, 3538653901, 3538784983, 3538916063, 3539047177, 3539178259, + 3539309383, 3539440493, 3539571577, 3539702653, 3539833727, 3539964811, 3540095891, + 3540226967, 3540358051, 3540489131, 3540620219, 3540751351, 3540882431, 3541013519, + 3541144657, 3541275737, 3541406821, 3541537919, 3541669003, 3541800079, 3541931171, + 3542062247, 3542193373, 3542324447, 3542455549, 3542586637, 3542717723, 3542848817, + 3542979917, 3543110999, 3543242081, 3543373157, 3543504247, 3543635339, 3543766451, + 3543897551, 3544028627, 3544159727, 3544290811, 3544421893, 3544552967, 3544684049, + 3544815137, 3544946239, 3545077313, 3545208389, 3545339461, 3545470541, 3545601613, + 3545732711, 3545863829, 3545994901, 3546125977, 3546257053, 3546388141, 3546519269, + 3546650399, 3546781477, 3546912553, 3547043629, 3547174723, 3547305809, 3547436881, + 3547568039, 3547699139, 3547830241, 3547961321, 3548092409, 3548223487, 3548354573, + 3548485663, 3548616739, 3548747849, 3548878933, 3549010027, 3549141139, 3549272239, + 3549403343, 3549534437, 3549665521, 3549796603, 3549927677, 3550058761, 3550189837, + 3550320923, 3550451999, 3550583119, 3550714201, 3550845329, 3550976411, 3551107487, + 3551238563, 3551369669, 3551500751, 3551631833, 3551762911, 3551894009, 3552025109, + 3552156193, 3552287267, 3552418351, 3552549431, 3552680513, 3552811601, 3552942703, + 3553073801, 3553204957, 3553336069, 3553467167, 3553598267, 3553729349, 3553860439, + 3553991513, 3554122589, 3554253671, 3554384767, 3554515843, 3554646919, 3554778049, + 3554909131, 3555040267, 3555171343, 3555302419, 3555433517, 3555564599, 3555695677, + 3555826753, 3555957829, 3556088911, 3556220047, 3556351133, 3556482247, 3556613321, + 3556744417, 3556875499, 3557006599, 3557137673, 3557268761, 3557399843, 3557530931, + 3557662007, 3557793079, 3557924171, 3558055247, 3558186341, 3558317431, 3558448547, + 3558579653, 3558710809, 3558841901, 3558972997, 3559104089, 3559235177, 3559366319, + 3559497397, 3559628489, 3559759613, 3559890701, 3560021789, 3560152891, 3560283983, + 3560415059, 3560546153, 3560677243, 3560808323, 3560939401, 3561070483, 3561201583, + 3561332699, 3561463781, 3561594853, 3561725929, 3561857009, 3561988093, 3562119193, + 3562250267, 3562381343, 3562512419, 3562643503, 3562774583, 3562905667, 3563036753, + 3563167837, 3563298911, 3563430047, 3563561129, 3563692229, 3563823301, 3563954437, + 3564085523, 3564216613, 3564347711, 3564478789, 3564609863, 3564741013, 3564872089, + 3565003163, 3565134247, 3565265377, 3565396487, 3565527571, 3565658683, 3565789769, + 3565920857, 3566051933, 3566183011, 3566314109, 3566445227, 3566576309, 3566707399, + 3566838491, 3566969569, 3567100657, 3567231757, 3567362833, 3567493933, 3567625007, + 3567756161, 3567887233, 3568018339, 3568149421, 3568280497, 3568411591, 3568542689, + 3568673761, 3568804843, 3568935991, 3569067077, 3569198153, 3569329237, 3569460313, + 3569591387, 3569722493, 3569853607, 3569984699, 3570115777, 3570246859, 3570377933, + 3570509011, 3570640093, 3570771179, 3570902261, 3571033343, 3571164473, 3571295549, + 3571426643, 3571557733, 3571688821, 3571819913, 3571951013, 3572082149, 3572213221, + 3572344301, 3572475383, 3572606467, 3572737541, 3572868653, 3572999777, 3573130849, + 3573261929, 3573393001, 3573524089, 3573655177, 3573786263, 3573917339, 3574048451, + 3574179523, 3574310617, 3574441691, 3574572773, 3574703893, 3574834999, 3574966079, + 3575097173, 3575228263, 3575359343, 3575490419, 3575621501, 3575752637, 3575883721, + 3576014797, 3576145873, 3576276971, 3576408071, 3576539149, 3576670241, 3576801383, + 3576932507, 3577063591, 3577194683, 3577325761, 3577456843, 3577587931, 3577719011, + 3577850083, 3577981189, 3578112283, 3578243371, 3578374453, 3578505563, 3578636639, + 3578767711, 3578898793, 3579029893, 3579160979, 3579292099, 3579423173, 3579554269, + 3579685363, 3579816533, 3579947627, 3580078721, 3580209797, 3580340887, 3580471987, + 3580603063, 3580734137, 3580865209, 3580996301, 3581127397, 3581258503, 3581389631, + 3581520721, 3581651797, 3581782871, 3581913943, 3582045017, 3582176093, 3582307213, + 3582438313, 3582569387, 3582700463, 3582831559, 3582962633, 3583093711, 3583224811, + 3583355899, 3583486981, 3583618111, 3583749187, 3583880269, 3584011357, 3584142461, + 3584273569, 3584404657, 3584535743, 3584666837, 3584797927, 3584929003, 3585060077, + 3585191153, 3585322243, 3585453317, 3585584441, 3585715537, 3585846629, 3585977701, + 3586108781, 3586239857, 3586370971, 3586502063, 3586633159, 3586764271, 3586895357, + 3587026439, 3587157551, 3587288647, 3587419721, 3587550829, 3587681941, 3587813017, + 3587944091, 3588075163, 3588206243, 3588337331, 3588468413, 3588599501, 3588730577, + 3588861659, 3588992731, 3589123817, 3589254913, 3589385993, 3589517081, 3589648177, + 3589779317, 3589910393, 3590041471, 3590172559, 3590303641, 3590434747, 3590565827, + 3590696899, 3590827973, 3590959051, 3591090133, 3591221209, 3591352283, 3591483391, + 3591614489, 3591745589, 3591876661, 3592007761, 3592138843, 3592269943, 3592401067, + 3592532171, 3592663297, 3592794377, 3592925459, 3593056553, 3593187659, 3593318789, + 3593449861, 3593580959, 3593712071, 3593843159, 3593974247, 3594105329, 3594236411, + 3594367507, 3594498599, 3594629699, 3594760811, 3594891887, 3595022969, 3595154051, + 3595285123, 3595416229, 3595547321, 3595678399, 3595809493, 3595940587, 3596071663, + 3596202737, 3596333857, 3596464973, 3596596049, 3596727157, 3596858233, 3596989349, + 3597120421, 3597251503, 3597382577, 3597513653, 3597644749, 3597775823, 3597906929, + 3598038001, 3598169111, 3598300219, 3598431311, 3598562467, 3598693541, 3598824613, + 3598955713, 3599086787, 3599217913, 3599349031, 3599480149, 3599611261, 3599742343, + 3599873423, 3600004517, 3600135613, 3600266687, 3600397789, 3600528863, 3600659941, + 3600791039, 3600922219, 3601053311, 3601184413, 3601315493, 3601446571, 3601577647, + 3601708751, 3601839833, 3601970989, 3602102111, 3602233189, 3602364281, 3602495431, + 3602626541, 3602757629, 3602888701, 3603019789, 3603150871, 3603281947, 3603413027, + 3603544103, 3603675191, 3603806293, 3603937369, 3604068451, 3604199569, 3604330643, + 3604461719, 3604592801, 3604723901, 3604854973, 3604986067, 3605117161, 3605248243, + 3605379317, 3605510437, 3605641561, 3605772637, 3605903747, 3606034823, 3606165907, + 3606297041, 3606428143, 3606559223, 3606690313, 3606821389, 3606952487, 3607083569, + 3607214669, 3607345741, 3607476827, 3607607903, 3607738993, 3607870099, 3608001193, + 3608132273, 3608263369, 3608394467, 3608525539, 3608656627, 3608787719, 3608918821, + 3609049921, 3609180997, 3609312071, 3609443197, 3609574303, 3609705389, 3609836521, + 3609967597, 3610098673, 3610229747, 3610360837, 3610491923, 3610623019, 3610754099, + 3610885181, 3611016281, 3611147363, 3611278471, 3611409563, 3611540651, 3611671729, + 3611802889, 3611933977, 3612065071, 3612196157, 3612327281, 3612458371, 3612589459, + 3612720557, 3612851629, 3612982717, 3613113793, 3613244867, 3613375951, 3613507043, + 3613638121, 3613769197, 3613900271, 3614031353, 3614162449, 3614293547, 3614424629, + 3614555719, 3614686793, 3614817881, 3614948971, 3615080071, 3615211169, 3615342259, + 3615473353, 3615604427, 3615735503, 3615866591, 3615997729, 3616128833, 3616259929, + 3616391033, 3616522123, 3616653197, 3616784287, 3616915361, 3617046439, 3617177513, + 3617308609, 3617439703, 3617570791, 3617701939, 3617833031, 3617964109, 3618095231, + 3618226351, 3618357433, 3618488551, 3618619657, 3618750731, 3618881821, 3619012907, + 3619144003, 3619275089, 3619406171, 3619537267, 3619668413, 3619799507, 3619930607, + 3620061691, 3620192791, 3620323879, 3620454967, 3620586043, 3620717119, 3620848199, + 3620979281, 3621110357, 3621241433, 3621372511, 3621503597, 3621634691, 3621765793, + 3621896879, 3622027967, 3622159081, 3622290163, 3622421267, 3622552379, 3622683461, + 3622814537, 3622945619, 3623076727, 3623207803, 3623338891, 3623470001, 3623601073, + 3623732171, 3623863247, 3623994343, 3624125419, 3624256507, 3624387581, 3624518663, + 3624649739, 3624780811, 3624911897, 3625042999, 3625174073, 3625305193, 3625436279, + 3625567369, 3625698457, 3625829561, 3625960633, 3626091709, 3626222801, 3626353883, + 3626485001, 3626616079, 3626747153, 3626878271, 3627009359, 3627140431, 3627271507, + 3627402619, 3627533699, 3627664783, 3627795877, 3627926963, 3628058047, 3628189121, + 3628320203, 3628451291, 3628582379, 3628713457, 3628844537, 3628975657, 3629106731, + 3629237803, 3629368877, 3629499989, 3629631107, 3629762237, 3629893313, 3630024403, + 3630155489, 3630286571, 3630417671, 3630548767, 3630679841, 3630810913, 3630941999, + 3631073077, 3631204153, 3631335247, 3631466329, 3631597447, 3631728559, 3631859639, + 3631990717, 3632121793, 3632252867, 3632384027, 3632515099, 3632646179, 3632777321, + 3632908393, 3633039469, 3633170543, 3633301663, 3633432749, 3633563821, 3633694907, + 3633826087, 3633957193, 3634088267, 3634219343, 3634350431, 3634481507, 3634612589, + 3634743703, 3634874791, 3635005931, 3635137003, 3635268137, 3635399227, 3635530361, + 3635661439, 3635792513, 3635923661, 3636054781, 3636185863, 3636316939, 3636448021, + 3636579103, 3636710183, 3636841277, 3636972397, 3637103497, 3637234589, 3637365691, + 3637496771, 3637627891, 3637758967, 3637890077, 3638021171, 3638152249, 3638283331, + 3638414407, 3638545489, 3638676589, 3638807663, 3638938739, 3639069839, 3639200927, + 3639332023, 3639463097, 3639594173, 3639725249, 3639856331, 3639987409, 3640118513, + 3640249601, 3640380691, 3640511773, 3640642867, 3640773973, 3640905053, 3641036131, + 3641167207, 3641298307, 3641429383, 3641560457, 3641691611, 3641822689, 3641953769, + 3642084847, 3642215939, 3642347011, 3642478109, 3642609209, 3642740303, 3642871391, + 3643002491, 3643133563, 3643264663, 3643395761, 3643526837, 3643657951, 3643789033, + 3643920113, 3644051197, 3644182279, 3644313353, 3644444467, 3644575559, 3644706641, + 3644837717, 3644968823, 3645099911, 3645231013, 3645362087, 3645493177, 3645624253, + 3645755363, 3645886477, 3646017553, 3646148647, 3646279739, 3646410827, 3646541911, + 3646673011, 3646804087, 3646935163, 3647066251, 3647197369, 3647328457, 3647459537, + 3647590621, 3647721751, 3647852827, 3647983919, 3648114997, 3648246089, 3648377177, + 3648508267, 3648639341, 3648770413, 3648901511, 3649032617, 3649163689, 3649294771, + 3649425937, 3649557011, 3649688087, 3649819177, 3649950263, 3650081341, 3650212441, + 3650343539, 3650474621, 3650605697, 3650736799, 3650867887, 3650998961, 3651130033, + 3651261137, 3651392219, 3651523307, 3651654379, 3651785477, 3651916573, 3652047673, + 3652178759, 3652309847, 3652440943, 3652572019, 3652703107, 3652834187, 3652965299, + 3653096387, 3653227463, 3653358563, 3653489657, 3653620753, 3653751841, 3653882917, + 3654014011, 3654145129, 3654276217, 3654407297, 3654538369, 3654669443, 3654800519, + 3654931597, 3655062683, 3655193771, 3655324859, 3655455931, 3655587049, 3655718159, + 3655849237, 3655980311, 3656111383, 3656242463, 3656373569, 3656504641, 3656635733, + 3656766823, 3656897921, 3657029017, 3657160097, 3657291179, 3657422267, 3657553369, + 3657684473, 3657815573, 3657946681, 3658077763, 3658208861, 3658339943, 3658471021, + 3658602139, 3658733227, 3658864301, 3658995383, 3659126459, 3659257549, 3659388697, + 3659519783, 3659650861, 3659781943, 3659913029, 3660044137, 3660175213, 3660306317, + 3660437411, 3660568489, 3660699577, 3660830651, 3660961723, 3661092797, 3661223869, + 3661354969, 3661486057, 3661617139, 3661748261, 3661879343, 3662010431, 3662141503, + 3662272597, 3662403673, 3662534749, 3662665823, 3662796899, 3662927999, 3663059083, + 3663190163, 3663321253, 3663452333, 3663583409, 3663714521, 3663845609, 3663976691, + 3664107809, 3664238917, 3664370041, 3664501133, 3664632281, 3664763357, 3664894463, + 3665025569, 3665156653, 3665287727, 3665418811, 3665549887, 3665680969, 3665812057, + 3665943131, 3666074207, 3666205321, 3666336403, 3666467491, 3666598577, 3666729659, + 3666860741, 3666991813, 3667122913, 3667254013, 3667385093, 3667516219, 3667647307, + 3667778437, 3667909519, 3668040601, 3668171701, 3668302787, 3668433863, 3668564969, + 3668696041, 3668827133, 3668958239, 3669089323, 3669220409, 3669351557, 3669482699, + 3669613777, 3669744863, 3669875953, 3670007063, 3670138163, 3670269329, 3670400417, + 3670531499, 3670662571, 3670793647, 3670924757, 3671055841, 3671186917, 3671317999, + 3671449139, 3671580223, 3671711311, 3671842423, 3671973517, 3672104621, 3672235711, + 3672366787, 3672497887, 3672628961, 3672760051, 3672891133, 3673022207, 3673153301, + 3673284379, 3673415467, 3673546553, 3673677629, 3673808713, 3673939811, 3674070901, + 3674201981, 3674333083, 3674464163, 3674595241, 3674726333, 3674857423, 3674988503, + 3675119597, 3675250679, 3675381763, 3675512837, 3675643921, 3675775001, 3675906097, + 3676037171, 3676168259, 3676299337, 3676430419, 3676561513, 3676692611, 3676823687, + 3676954843, 3677085931, 3677217007, 3677348111, 3677479187, 3677610281, 3677741407, + 3677872493, 3678003629, 3678134729, 3678265807, 3678396881, 3678527971, 3678659057, + 3678790139, 3678921221, 3679052359, 3679183433, 3679314547, 3679445647, 3679576721, + 3679707793, 3679838893, 3679969981, 3680101063, 3680232161, 3680363261, 3680494333, + 3680625419, 3680756491, 3680887597, 3681018683, 3681149767, 3681280843, 3681411941, + 3681543029, 3681674107, 3681805249, 3681936343, 3682067461, 3682198567, 3682329641, + 3682460731, 3682591859, 3682722931, 3682854029, 3682985113, 3683116189, 3683247263, + 3683378339, 3683509411, 3683640511, 3683771587, 3683902661, 3684033733, 3684164821, + 3684295919, 3684427027, 3684558131, 3684689231, 3684820313, 3684951401, 3685082473, + 3685213547, 3685344647, 3685475741, 3685606853, 3685737931, 3685869007, 3686000083, + 3686131171, 3686262259, 3686393363, 3686524441, 3686655521, 3686786603, 3686917693, + 3687048821, 3687179893, 3687310973, 3687442049, 3687573133, 3687704221, 3687835301, + 3687966407, 3688097489, 3688228601, 3688359737, 3688490809, 3688621897, 3688753001, + 3688884079, 3689015171, 3689146243, 3689277323, 3689408407, 3689539531, 3689670641, + 3689801741, 3689932817, 3690063893, 3690194983, 3690326083, 3690457159, 3690588233, + 3690719317, 3690850447, 3690981521, 3691112597, 3691243679, 3691374751, 3691505861, + 3691636933, 3691768027, 3691899137, 3692030213, 3692161289, 3692292361, 3692423489, + 3692554571, 3692685643, 3692816723, 3692947799, 3693078871, 3693209959, 3693341063, + 3693472141, 3693603227, 3693734393, 3693865477, 3693996577, 3694127653, 3694258727, + 3694389847, 3694520923, 3694652009, 3694783093, 3694914193, 3695045267, 3695176339, + 3695307419, 3695438491, 3695569567, 3695700641, 3695831747, 3695962861, 3696093937, + 3696225011, 3696356093, 3696487169, 3696618307, 3696749449, 3696880543, 3697011631, + 3697142723, 3697273813, 3697404943, 3697536019, 3697667111, 3697798193, 3697929269, + 3698060357, 3698191463, 3698322539, 3698453611, 3698584699, 3698715791, 3698846873, + 3698977957, 3699109087, 3699240187, 3699371293, 3699502439, 3699633521, 3699764599, + 3699895711, 3700026791, 3700157863, 3700288939, 3700420013, 3700551089, 3700682197, + 3700813271, 3700944371, 3701075459, 3701206547, 3701337637, 3701468713, 3701599799, + 3701730899, 3701861981, 3701993063, 3702124157, 3702255229, 3702386351, 3702517439, + 3702648511, 3702779669, 3702910751, 3703041851, 3703172947, 3703304023, 3703435123, + 3703566197, 3703697273, 3703828417, 3703959517, 3704090651, 3704221723, 3704352859, + 3704483933, 3704615009, 3704746099, 3704877173, 3705008257, 3705139357, 3705270433, + 3705401509, 3705532609, 3705663707, 3705794831, 3705925903, 3706056983, 3706188061, + 3706319137, 3706450217, 3706581289, 3706712371, 3706843447, 3706974521, 3707105639, + 3707236717, 3707367857, 3707498929, 3707630009, 3707761091, 3707892163, 3708023303, + 3708154391, 3708285479, 3708416597, 3708547681, 3708678767, 3708809843, 3708940919, + 3709071991, 3709203067, 3709334149, 3709465237, 3709596311, 3709727393, 3709858511, + 3709989583, 3710120663, 3710251777, 3710382869, 3710513987, 3710645087, 3710776177, + 3710907257, 3711038377, 3711169559, 3711300679, 3711431767, 3711562861, 3711693949, + 3711825053, 3711956161, 3712087243, 3712218317, 3712349413, 3712480489, 3712611601, + 3712742711, 3712873783, 3713004899, 3713135983, 3713267059, 3713398159, 3713529241, + 3713660323, 3713791399, 3713922479, 3714053561, 3714184651, 3714315727, 3714446833, + 3714577907, 3714709067, 3714840139, 3714971213, 3715102297, 3715233373, 3715364459, + 3715495547, 3715626619, 3715757713, 3715888801, 3716019907, 3716150983, 3716282069, + 3716413171, 3716544283, 3716675359, 3716806439, 3716937557, 3717068633, 3717199771, + 3717330853, 3717461953, 3717593039, 3717724123, 3717855199, 3717986273, 3718117367, + 3718248463, 3718379543, 3718510661, 3718641733, 3718772809, 3718903883, 3719034967, + 3719166053, 3719297149, 3719428231, 3719559307, 3719690407, 3719821481, 3719952623, + 3720083707, 3720214793, 3720345899, 3720477023, 3720608107, 3720739181, 3720870271, + 3721001353, 3721132427, 3721263523, 3721394603, 3721525681, 3721656769, 3721787843, + 3721918961, 3722050093, 3722181173, 3722312261, 3722443337, 3722574413, 3722705489, + 3722836567, 3722967641, 3723098759, 3723229831, 3723360923, 3723492023, 3723623153, + 3723754271, 3723885349, 3724016449, 3724147541, 3724278617, 3724409699, 3724540793, + 3724671871, 3724802951, 3724934023, 3725065139, 3725196217, 3725327297, 3725458369, + 3725589463, 3725720543, 3725851621, 3725982697, 3726113791, 3726244883, 3726375973, + 3726507053, 3726638137, 3726769213, 3726900311, 3727031437, 3727162511, 3727293607, + 3727424681, 3727555781, 3727686857, 3727817941, 3727949063, 3728080163, 3728211259, + 3728342377, 3728473451, 3728604553, 3728735629, 3728866711, 3728997791, 3729128863, + 3729259939, 3729391069, 3729522143, 3729653231, 3729784307, 3729915383, 3730046461, + 3730177543, 3730308641, 3730439729, 3730570819, 3730701899, 3730832983, 3730964063, + 3731095157, 3731226277, 3731357407, 3731488483, 3731619557, 3731750639, 3731881763, + 3732012847, 3732143927, 3732275011, 3732406087, 3732537169, 3732668309, 3732799393, + 3732930469, 3733061561, 3733192643, 3733323751, 3733454827, 3733585913, 3733716991, + 3733848073, 3733979147, 3734110249, 3734241349, 3734372443, 3734503519, 3734634593, + 3734765701, 3734896801, 3735027889, 3735158989, 3735290107, 3735421181, 3735552257, + 3735683333, 3735814417, 3735945529, 3736076623, 3736207711, 3736338791, 3736469879, + 3736600963, 3736732057, 3736863139, 3736994221, 3737125297, 3737256409, 3737387503, + 3737518583, 3737649673, 3737780747, 3737911913, 3738043009, 3738174101, 3738305173, + 3738436277, 3738567379, 3738698471, 3738829547, 3738960697, 3739091773, 3739222867, + 3739354009, 3739485083, 3739616173, 3739747303, 3739878377, 3740009467, 3740140589, + 3740271679, 3740402789, 3740533871, 3740665013, 3740796091, 3740927173, 3741058247, + 3741189359, 3741320431, 3741451513, 3741582589, 3741713693, 3741844811, 3741975883, + 3742106957, 3742238051, 3742369129, 3742500221, 3742631329, 3742762411, 3742893493, + 3743024573, 3743155649, 3743286733, 3743417819, 3743548961, 3743680043, 3743811121, + 3743942227, 3744073337, 3744204421, 3744335503, 3744466633, 3744597713, 3744728837, + 3744859919, 3744991027, 3745122119, 3745253203, 3745384289, 3745515377, 3745646551, + 3745777627, 3745908703, 3746039789, 3746170871, 3746301959, 3746433109, 3746564183, + 3746695261, 3746826337, 3746957413, 3747088487, 3747219583, 3747350671, 3747481763, + 3747612859, 3747743933, 3747875069, 3748006169, 3748137257, 3748268369, 3748399451, + 3748530529, 3748661603, 3748792693, 3748923767, 3749054857, 3749185931, 3749317007, + 3749448083, 3749579159, 3749710253, 3749841341, 3749972419, 3750103493, 3750234577, + 3750365677, 3750496751, 3750627827, 3750758917, 3750890053, 3751021129, 3751152217, + 3751283311, 3751414399, 3751545487, 3751676561, 3751807751, 3751938859, 3752069953, + 3752201041, 3752332141, 3752463269, 3752594347, 3752725433, 3752856511, 3752987591, + 3753118673, 3753249761, 3753380863, 3753511939, 3753643031, 3753774103, 3753905209, + 3754036289, 3754167379, 3754298459, 3754429531, 3754560611, 3754691687, 3754822783, + 3754953883, 3755084987, 3755216063, 3755347159, 3755478241, 3755609321, 3755740451, + 3755871599, 3756002671, 3756133757, 3756264839, 3756395911, 3756526987, 3756658069, + 3756789173, 3756920267, 3757051379, 3757182463, 3757313537, 3757444627, 3757575763, + 3757706863, 3757837973, 3757969063, 3758100179, 3758231287, 3758362381, 3758493469, + 3758624549, 3758755639, 3758886763, 3759017851, 3759148927, 3759280009, 3759411083, + 3759542177, 3759673261, 3759804343, 3759935447, 3760066523, 3760197601, 3760328681, + 3760459777, 3760590871, 3760721977, 3760853087, 3760984159, 3761115233, 3761246341, + 3761377453, 3761508533, 3761639617, 3761770697, 3761901799, 3762032887, 3762163961, + 3762295039, 3762426119, 3762557209, 3762688283, 3762819367, 3762950441, 3763081513, + 3763212589, 3763343677, 3763474763, 3763605847, 3763736927, 3763867999, 3763999093, + 3764130193, 3764261287, 3764392361, 3764523457, 3764654533, 3764785627, 3764916707, + 3765047779, 3765178897, 3765309983, 3765441059, 3765572189, 3765703339, 3765834419, + 3765965501, 3766096577, 3766227659, 3766358749, 3766489843, 3766620953, 3766752049, + 3766883189, 3767014331, 3767145439, 3767276521, 3767407601, 3767538689, 3767669779, + 3767800879, 3767931977, 3768063053, 3768194161, 3768325283, 3768456361, 3768587437, + 3768718511, 3768849593, 3768980669, 3769111747, 3769242821, 3769373897, 3769505041, + 3769636121, 3769767193, 3769898267, 3770029339, 3770160439, 3770291513, 3770422589, + 3770553671, 3770684789, 3770815871, 3770946947, 3771078037, 3771209137, 3771340211, + 3771471323, 3771602441, 3771733531, 3771864617, 3771995723, 3772126807, 3772257893, + 3772388981, 3772520057, 3772651147, 3772782227, 3772913299, 3773044403, 3773175487, + 3773306569, 3773437649, 3773568791, 3773699903, 3773830981, 3773962069, 3774093181, + 3774224273, 3774355373, 3774486479, 3774617557, 3774748657, 3774879751, 3775010831, + 3775141913, 3775273003, 3775404077, 3775535177, 3775666253, 3775797329, 3775928407, + 3776059481, 3776190559, 3776321669, 3776452747, 3776583827, 3776714927, 3776846039, + 3776977121, 3777108217, 3777239303, 3777370381, 3777501457, 3777632561, 3777763637, + 3777894713, 3778025791, 3778156873, 3778287949, 3778419079, 3778550189, 3778681267, + 3778812383, 3778943489, 3779074571, 3779205649, 3779336761, 3779467837, 3779598919, + 3779730023, 3779861149, 3779992231, 3780123311, 3780254417, 3780385493, 3780516611, + 3780647693, 3780778787, 3780909859, 3781040933, 3781172033, 3781303199, 3781434277, + 3781565351, 3781696433, 3781827523, 3781958599, 3782089681, 3782220779, 3782351851, + 3782482927, 3782614001, 3782745073, 3782876173, 3783007279, 3783138353, 3783269459, + 3783400561, 3783531659, 3783662731, 3783793807, 3783924887, 3784056007, 3784187087, + 3784318171, 3784449287, 3784580363, 3784711493, 3784842571, 3784973677, 3785104751, + 3785235823, 3785366909, 3785498027, 3785629117, 3785760247, 3785891321, 3786022439, + 3786153557, 3786284651, 3786415781, 3786546853, 3786677963, 3786809051, 3786940123, + 3787071199, 3787202281, 3787333393, 3787464469, 3787595543, 3787726637, 3787857709, + 3787988791, 3788119913, 3788251003, 3788382077, 3788513203, 3788644283, 3788775407, + 3788906479, 3789037559, 3789168653, 3789299729, 3789430867, 3789561943, 3789693029, + 3789824117, 3789955229, 3790086323, 3790217401, 3790348481, 3790479559, 3790610641, + 3790741729, 3790872803, 3791003921, 3791134993, 3791266081, 3791397173, 3791528281, + 3791659387, 3791790467, 3791921543, 3792052643, 3792183751, 3792314837, 3792445949, + 3792577027, 3792708163, 3792839257, 3792970331, 3793101407, 3793232501, 3793363579, + 3793494667, 3793625761, 3793756861, 3793887953, 3794019049, 3794150123, 3794281199, + 3794412277, 3794543377, 3794674451, 3794805529, 3794936603, 3795067769, 3795198859, + 3795329953, 3795461039, 3795592139, 3795723227, 3795854311, 3795985397, 3796116479, + 3796247591, 3796378687, 3796509763, 3796640851, 3796771933, 3796903013, 3797034103, + 3797165179, 3797296253, 3797427329, 3797558407, 3797689499, 3797820581, 3797951687, + 3798082787, 3798213931, 3798345073, 3798476179, 3798607259, 3798738337, 3798869429, + 3799000549, 3799131653, 3799262777, 3799393859, 3799524941, 3799656053, 3799787137, + 3799918219, 3800049301, 3800180389, 3800311499, 3800442577, 3800573653, 3800704751, + 3800835827, 3800966899, 3801097997, 3801229097, 3801360193, 3801491293, 3801622369, + 3801753451, 3801884549, 3802015663, 3802146739, 3802277819, 3802408891, 3802540003, + 3802671097, 3802802189, 3802933279, 3803064371, 3803195447, 3803326519, 3803457599, + 3803588671, 3803719811, 3803850887, 3803981969, 3804113041, 3804244117, 3804375193, + 3804506267, 3804637351, 3804768427, 3804899509, 3805030583, 3805161667, 3805292747, + 3805423907, 3805554979, 3805686083, 3805817159, 3805948241, 3806079349, 3806210449, + 3806341579, 3806472701, 3806603777, 3806734849, 3806865929, 3806997001, 3807128089, + 3807259163, 3807390253, 3807521329, 3807652477, 3807783571, 3807914701, 3808045777, + 3808176871, 3808307957, 3808439029, 3808570133, 3808701241, 3808832369, 3808963463, + 3809094563, 3809225647, 3809356739, 3809487839, 3809618941, 3809750023, 3809881109, + 3810012203, 3810143297, 3810274399, 3810405481, 3810536581, 3810667673, 3810798749, + 3810929821, 3811060921, 3811191997, 3811323071, 3811454191, 3811585279, 3811716367, + 3811847447, 3811978523, 3812109601, 3812240699, 3812371799, 3812502877, 3812633959, + 3812765057, 3812896141, 3813027227, 3813158329, 3813289423, 3813420521, 3813551603, + 3813682687, 3813813763, 3813944851, 3814075933, 3814207039, 3814338131, 3814469221, + 3814600333, 3814731407, 3814862483, 3814993571, 3815124679, 3815255789, 3815386871, + 3815517949, 3815649041, 3815780119, 3815911243, 3816042341, 3816173429, 3816304519, + 3816435643, 3816566723, 3816697799, 3816828877, 3816960001, 3817091077, 3817222153, + 3817353271, 3817484353, 3817615427, 3817746533, 3817877621, 3818008721, 3818139821, + 3818270927, 3818402039, 3818533123, 3818664209, 3818795293, 3818926373, 3819057457, + 3819188551, 3819319643, 3819450721, 3819581797, 3819712877, 3819843959, 3819975037, + 3820106153, 3820237259, 3820368337, 3820499453, 3820630531, 3820761617, 3820892701, + 3821023783, 3821154901, 3821285989, 3821417081, 3821548153, 3821679227, 3821810339, + 3821941439, 3822072559, 3822203659, 3822334759, 3822465851, 3822596951, 3822728023, + 3822859121, 3822990229, 3823121303, 3823252379, 3823383467, 3823514579, 3823645673, + 3823776767, 3823907851, 3824038937, 3824170073, 3824301157, 3824432267, 3824563339, + 3824694413, 3824825489, 3824956561, 3825087641, 3825218713, 3825349793, 3825480887, + 3825611963, 3825743063, 3825874139, 3826005223, 3826136317, 3826267391, 3826398481, + 3826529561, 3826660633, 3826791721, 3826922809, 3827053897, 3827184973, 3827316067, + 3827447161, 3827578241, 3827709331, 3827840431, 3827971517, 3828102601, 3828233681, + 3828364783, 3828495883, 3828626969, 3828758041, 3828889213, 3829020287, 3829151369, + 3829282451, 3829413527, 3829544617, 3829675747, 3829806821, 3829937893, 3830068973, + 3830200061, 3830331133, 3830462221, 3830593301, 3830724377, 3830855477, 3830986553, + 3831117629, 3831248737, 3831379831, 3831510979, 3831642071, 3831773147, 3831904277, + 3832035373, 3832166473, 3832297583, 3832428673, 3832559761, 3832690867, 3832821991, + 3832953073, 3833084183, 3833215271, 3833346479, 3833477567, 3833608643, 3833739733, + 3833870857, 3834001933, 3834133027, 3834264101, 3834395197, 3834526321, 3834657401, + 3834788473, 3834919547, 3835050619, 3835181719, 3835312799, 3835443889, 3835574983, + 3835706099, 3835837193, 3835968299, 3836099387, 3836230481, 3836361619, 3836492701, + 3836623781, 3836754863, 3836885951, 3837017027, 3837148099, 3837279181, 3837410273, + 3837541363, 3837672437, 3837803531, 3837934643, 3838065761, 3838196833, 3838327937, + 3838459057, 3838590131, 3838721207, 3838852291, 3838983389, 3839114467, 3839245559, + 3839376631, 3839507717, 3839638813, 3839769887, 3839900983, 3840032057, 3840163139, + 3840294217, 3840425321, 3840556397, 3840687479, 3840818557, 3840949639, 3841080731, + 3841211809, 3841342927, 3841474001, 3841605101, 3841736189, 3841867273, 3841998367, + 3842129453, 3842260553, 3842391653, 3842522759, 3842653847, 3842784929, 3842916001, + 3843047083, 3843178193, 3843309271, 3843440431, 3843571547, 3843702637, 3843833723, + 3843964849, 3844095923, 3844227019, 3844358113, 3844489199, 3844620271, 3844751359, + 3844882487, 3845013559, 3845144663, 3845275739, 3845406821, 3845537947, 3845669021, + 3845800183, 3845931347, 3846062471, 3846193553, 3846324689, 3846455773, 3846586847, + 3846717937, 3846849049, 3846980131, 3847111207, 3847242313, 3847373393, 3847504477, + 3847635557, 3847766639, 3847897717, 3848028797, 3848159873, 3848290949, 3848422043, + 3848553119, 3848684219, 3848815297, 3848946371, 3849077483, 3849208579, 3849339671, + 3849470749, 3849601831, 3849732911, 3849864001, 3849995113, 3850126211, 3850257331, + 3850388441, 3850519553, 3850650641, 3850781719, 3850912801, 3851043901, 3851174983, + 3851306083, 3851437157, 3851568277, 3851699387, 3851830513, 3851961601, 3852092677, + 3852223807, 3852354889, 3852485977, 3852617053, 3852748139, 3852879229, 3853010303, + 3853141421, 3853272499, 3853403599, 3853534697, 3853665779, 3853796873, 3853927951, + 3854059031, 3854190107, 3854321189, 3854452337, 3854583437, 3854714527, 3854845633, + 3854976733, 3855107813, 3855238901, 3855369977, 3855501053, 3855632129, 3855763201, + 3855894277, 3856025351, 3856156439, 3856287521, 3856418603, 3856549687, 3856680787, + 3856811867, 3856942997, 3857074127, 3857205203, 3857336303, 3857467391, 3857598523, + 3857729599, 3857860673, 3857991773, 3858122893, 3858253969, 3858385087, 3858516173, + 3858647257, 3858778331, 3858909409, 3859040483, 3859171579, 3859302659, 3859433737, + 3859564811, 3859695901, 3859826981, 3859958083, 3860089169, 3860220241, 3860351323, + 3860482411, 3860613563, 3860744647, 3860875727, 3861006839, 3861137911, 3861268987, + 3861400093, 3861531209, 3861662293, 3861793387, 3861924491, 3862055581, 3862186661, + 3862317751, 3862448827, 3862579909, 3862711003, 3862842077, 3862973161, 3863104241, + 3863235353, 3863366459, 3863497549, 3863628677, 3863759749, 3863890841, 3864021929, + 3864153001, 3864284141, 3864415229, 3864546311, 3864677389, 3864808469, 3864939553, + 3865070647, 3865201771, 3865332871, 3865463947, 3865595023, 3865726097, 3865857169, + 3865988249, 3866119321, 3866250433, 3866381509, 3866512607, 3866643691, 3866774767, + 3866905877, 3867036977, 3867168061, 3867299153, 3867430253, 3867561329, 3867692447, + 3867823573, 3867954647, 3868085723, 3868216867, 3868347949, 3868479053, 3868610131, + 3868741211, 3868872311, 3869003407, 3869134481, 3869265599, 3869396677, 3869527763, + 3869658839, 3869789941, 3869921023, 3870052099, 3870183199, 3870314291, 3870445367, + 3870576461, 3870707591, 3870838691, 3870969799, 3871100897, 3871231997, 3871363079, + 3871494157, 3871625267, 3871756379, 3871887511, 3872018593, 3872149667, 3872280739, + 3872411849, 3872542979, 3872674061, 3872805179, 3872936281, 3873067361, 3873198463, + 3873329567, 3873460663, 3873591737, 3873722837, 3873853927, 3873985001, 3874116083, + 3874247203, 3874378283, 3874509377, 3874640449, 3874771547, 3874902631, 3875033711, + 3875164831, 3875295937, 3875427011, 3875558123, 3875689199, 3875820281, 3875951353, + 3876082447, 3876213559, 3876344657, 3876475747, 3876606847, 3876737959, 3876869081, + 3877000157, 3877131239, 3877262327, 3877393427, 3877524551, 3877655623, 3877786697, + 3877917773, 3878048851, 3878179939, 3878311033, 3878442119, 3878573197, 3878704273, + 3878835361, 3878966459, 3879097571, 3879228649, 3879359741, 3879490829, 3879621917, + 3879753019, 3879884111, 3880015201, 3880146289, 3880277363, 3880408439, 3880539521, + 3880670621, 3880801693, 3880932767, 3881063843, 3881194949, 3881326021, 3881457101, + 3881588177, 3881719271, 3881850353, 3881981533, 3882112649, 3882243721, 3882374801, + 3882505873, 3882636971, 3882768061, 3882899159, 3883030237, 3883161349, 3883292459, + 3883423549, 3883554673, 3883685749, 3883816829, 3883947901, 3884078987, 3884210107, + 3884341193, 3884472301, 3884603383, 3884734457, 3884865557, 3884996657, 3885127747, + 3885258821, 3885389897, 3885520987, 3885652061, 3885783149, 3885914231, 3886045363, + 3886176473, 3886307561, 3886438637, 3886569721, 3886700833, 3886831909, 3886962997, + 3887094073, 3887225201, 3887356273, 3887487377, 3887618467, 3887749549, 3887880683, + 3888011801, 3888142877, 3888273953, 3888405061, 3888536159, 3888667259, 3888798421, + 3888929531, 3889060649, 3889191737, 3889322809, 3889453891, 3889584967, 3889716049, + 3889847153, 3889978231, 3890109319, 3890240423, 3890371517, 3890502589, 3890633713, + 3890764799, 3890895871, 3891026981, 3891158069, 3891289147, 3891420251, 3891551333, + 3891682411, 3891813487, 3891944579, 3892075651, 3892206727, 3892337807, 3892468897, + 3892600003, 3892731109, 3892862209, 3892993297, 3893124407, 3893255593, 3893386687, + 3893517787, 3893648897, 3893779979, 3893911051, 3894042161, 3894173237, 3894304319, + 3894435401, 3894566483, 3894697559, 3894828631, 3894959711, 3895090783, 3895221857, + 3895352977, 3895484053, 3895615159, 3895746259, 3895877339, 3896008411, 3896139493, + 3896270593, 3896401673, 3896532751, 3896663873, 3896794981, 3896926073, 3897057161, + 3897188261, 3897319337, 3897450409, 3897581521, 3897712627, 3897843701, 3897974803, + 3898105877, 3898236971, 3898368043, 3898499183, 3898630259, 3898761337, 3898892423, + 3899023537, 3899154631, 3899285743, 3899416819, 3899547893, 3899678969, 3899810063, + 3899941153, 3900072229, 3900203317, 3900334397, 3900465479, 3900596551, 3900727631, + 3900858757, 3900989857, 3901120933, 3901252031, 3901383131, 3901514209, 3901645303, + 3901776379, 3901907459, 3902038597, 3902169697, 3902300803, 3902431877, 3902562953, + 3902694041, 3902825119, 3902956201, 3903087283, 3903218359, 3903349433, 3903480527, + 3903611603, 3903742681, 3903873763, 3904004837, 3904135957, 3904267033, 3904398149, + 3904529227, 3904660301, 3904791409, 3904922537, 3905053657, 3905184749, 3905315833, + 3905446939, 3905578013, 3905709089, 3905840171, 3905971261, 3906102337, 3906233411, + 3906364513, 3906495599, 3906626671, 3906757763, 3906888877, 3907019953, 3907151057, + 3907282231, 3907413317, 3907544413, 3907675501, 3907806577, 3907937699, 3908068799, + 3908199941, 3908331019, 3908462099, 3908593187, 3908724271, 3908855383, 3908986463, + 3909117601, 3909248699, 3909379819, 3909510971, 3909642049, 3909773129, 3909904213, + 3910035313, 3910166399, 3910297471, 3910428569, 3910559641, 3910690723, 3910821857, + 3910952933, 3911084011, 3911215153, 3911346233, 3911477321, 3911608397, 3911739479, + 3911870591, 3912001663, 3912132739, 3912263819, 3912394891, 3912525989, 3912657113, + 3912788207, 3912919313, 3913050397, 3913181483, 3913312573, 3913443671, 3913574779, + 3913705853, 3913836967, 3913968043, 3914099141, 3914230219, 3914361317, 3914492399, + 3914623477, 3914754551, 3914885657, 3915016741, 3915147823, 3915278897, 3915409997, + 3915541073, 3915672151, 3915803249, 3915934357, 3916065449, 3916196521, 3916327601, + 3916458731, 3916589837, 3916720931, 3916852031, 3916983121, 3917114203, 3917245291, + 3917376373, 3917507491, 3917638567, 3917769641, 3917900761, 3918031841, 3918163003, + 3918294077, 3918425197, 3918556273, 3918687349, 3918818441, 3918949543, 3919080623, + 3919211711, 3919342813, 3919473893, 3919604993, 3919736111, 3919867183, 3919998347, + 3920129431, 3920260541, 3920391623, 3920522699, 3920653771, 3920784853, 3920915927, + 3921047033, 3921178111, 3921309193, 3921440273, 3921571417, 3921702553, 3921833659, + 3921964747, 3922095839, 3922226929, 3922358021, 3922489097, 3922620199, 3922751293, + 3922882373, 3923013499, 3923144591, 3923275663, 3923406737, 3923537833, 3923668913, + 3923800043, 3923931119, 3924062209, 3924193289, 3924324367, 3924455443, 3924586517, + 3924717607, 3924848717, 3924979811, 3925110887, 3925242011, 3925373147, 3925504223, + 3925635319, 3925766401, 3925897487, 3926028571, 3926159683, 3926290769, 3926421841, + 3926552921, 3926684023, 3926815097, 3926946169, 3927077243, 3927208339, 3927339419, + 3927470527, 3927601603, 3927732689, 3927863813, 3927994897, 3928125989, 3928257103, + 3928388179, 3928519271, 3928650347, 3928781419, 3928912499, 3929043583, 3929174677, + 3929305753, 3929436827, 3929567903, 3929699009, 3929830087, 3929961169, 3930092261, + 3930223337, 3930354419, 3930485509, 3930616589, 3930747671, 3930878759, 3931009843, + 3931140919, 3931272001, 3931403123, 3931534199, 3931665271, 3931796347, 3931927421, + 3932058497, 3932189609, 3932320687, 3932451763, 3932582839, 3932713969, 3932845051, + 3932976233, 3933107377, 3933238471, 3933369589, 3933500699, 3933631777, 3933762853, + 3933893981, 3934025093, 3934156241, 3934287323, 3934418441, 3934549519, 3934680593, + 3934811701, 3934942801, 3935073893, 3935204981, 3935336057, 3935467177, 3935598257, + 3935729353, 3935860433, 3935991529, 3936122621, 3936253733, 3936384811, 3936515887, + 3936646969, 3936778051, 3936909133, 3937040243, 3937171327, 3937302407, 3937433527, + 3937564619, 3937695721, 3937826813, 3937957927, 3938089009, 3938220101, 3938351237, + 3938482309, 3938613401, 3938744483, 3938875573, 3939006647, 3939137747, 3939268847, + 3939399929, 3939531019, 3939662099, 3939793177, 3939924271, 3940055347, 3940186421, + 3940317517, 3940448591, 3940579667, 3940710779, 3940841921, 3940972999, 3941104093, + 3941235209, 3941366353, 3941497463, 3941628541, 3941759629, 3941890717, 3942021803, + 3942152897, 3942283979, 3942415067, 3942546193, 3942677287, 3942808367, 3942939439, + 3943070519, 3943201597, 3943332671, 3943463743, 3943594817, 3943725911, 3943856993, + 3943988129, 3944119321, 3944250419, 3944381509, 3944512639, 3944643737, 3944774881, + 3944906011, 3945037099, 3945168181, 3945299279, 3945430409, 3945561481, 3945692561, + 3945823643, 3945954743, 3946085833, 3946216909, 3946348009, 3946479101, 3946610201, + 3946741273, 3946872367, 3947003461, 3947134559, 3947265643, 3947396771, 3947527861, + 3947658971, 3947790089, 3947921161, 3948052243, 3948183341, 3948314429, 3948445511, + 3948576601, 3948707687, 3948838771, 3948969859, 3949100963, 3949232069, 3949363147, + 3949494221, 3949625311, 3949756403, 3949887509, 3950018587, 3950149717, 3950280809, + 3950411953, 3950543033, 3950674109, 3950805233, 3950936317, 3951067399, 3951198529, + 3951329611, 3951460699, 3951591781, 3951722891, 3951853979, 3951985067, 3952116149, + 3952247231, 3952378319, 3952509391, 3952640491, 3952771619, 3952902719, 3953033797, + 3953164879, 3953295961, 3953427047, 3953558137, 3953689231, 3953820337, 3953951411, + 3954082493, 3954213581, 3954344699, 3954475781, 3954606869, 3954737947, 3954869053, + 3955000163, 3955131251, 3955262327, 3955393423, 3955524497, 3955655579, 3955786657, + 3955917737, 3956048839, 3956179967, 3956311039, 3956442121, 3956573197, 3956704277, + 3956835359, 3956966441, 3957097513, 3957228593, 3957359677, 3957490769, 3957621869, + 3957752951, 3957884027, 3958015111, 3958146209, 3958277287, 3958408381, 3958539457, + 3958670537, 3958801619, 3958932713, 3959063809, 3959194903, 3959325977, 3959457079, + 3959588153, 3959719277, 3959850421, 3959981521, 3960112631, 3960243731, 3960374849, + 3960505933, 3960637111, 3960768187, 3960899269, 3961030349, 3961161433, 3961292521, + 3961423603, 3961554683, 3961685771, 3961816853, 3961947931, 3962079013, 3962210101, + 3962341219, 3962472301, 3962603473, 3962734549, 3962865629, 3962996707, 3963127781, + 3963258853, 3963389929, 3963521041, 3963652127, 3963783203, 3963914281, 3964045367, + 3964176449, 3964307551, 3964438717, 3964569797, 3964700869, 3964831957, 3964963039, + 3965094121, 3965225219, 3965356303, 3965487377, 3965618453, 3965749603, 3965880691, + 3966011779, 3966142853, 3966273931, 3966405017, 3966536099, 3966667213, 3966798299, + 3966929381, 3967060453, 3967191581, 3967322677, 3967453751, 3967584827, 3967715923, + 3967847011, 3967978097, 3968109199, 3968240293, 3968371373, 3968502487, 3968633567, + 3968764649, 3968895751, 3969026833, 3969157939, 3969289019, 3969420101, 3969551177, + 3969682259, 3969813359, 3969944443, 3970075537, 3970206637, 3970337729, 3970468819, + 3970599923, 3970731001, 3970862081, 3970993177, 3971124281, 3971255357, 3971386429, + 3971517533, 3971648621, 3971779739, 3971910853, 3972041977, 3972173077, 3972304183, + 3972435319, 3972566401, 3972697489, 3972828577, 3972959677, 3973090777, 3973221851, + 3973352923, 3973483999, 3973615117, 3973746221, 3973877329, 3974008427, 3974139539, + 3974270633, 3974401751, 3974532949, 3974664053, 3974795137, 3974926231, 3975057311, + 3975188407, 3975319483, 3975450593, 3975581677, 3975712753, 3975843847, 3975974923, + 3976105999, 3976237099, 3976368191, 3976499269, 3976630349, 3976761449, 3976892537, + 3977023681, 3977154763, 3977285857, 3977416931, 3977548009, 3977679103, 3977810197, + 3977941271, 3978072347, 3978203419, 3978334519, 3978465593, 3978596669, 3978727763, + 3978858853, 3978989947, 3979121063, 3979252181, 3979383257, 3979514339, 3979645421, + 3979776509, 3979907623, 3980038729, 3980169839, 3980300941, 3980432039, 3980563121, + 3980694197, 3980825327, 3980956477, 3981087553, 3981218641, 3981349717, 3981480817, + 3981611897, 3981742979, 3981874073, 3982005151, 3982136237, 3982267309, 3982398389, + 3982529477, 3982660553, 3982791643, 3982922729, 3983053829, 3983184911, 3983315983, + 3983447059, 3983578141, 3983709253, 3983840353, 3983971441, 3984102557, 3984233647, + 3984364753, 3984495839, 3984626939, 3984758023, 3984889099, 3985020187, 3985151263, + 3985282339, 3985413427, 3985544527, 3985675609, 3985806691, 3985937773, 3986068871, + 3986199953, 3986331053, 3986462131, 3986593213, 3986724307, 3986855387, 3986986483, + 3987117557, 3987248633, 3987379763, 3987510841, 3987641921, 3987773017, 3987904103, + 3988035209, 3988166297, 3988297373, 3988428449, 3988559539, 3988690639, 3988821731, + 3988952819, 3989083927, 3989215003, 3989346103, 3989477179, 3989608253, 3989739349, + 3989870453, 3990001549, 3990132631, 3990263741, 3990394813, 3990525893, 3990657071, + 3990788147, 3990919237, 3991050313, 3991181393, 3991312477, 3991443553, 3991574669, + 3991705741, 3991836833, 3991967921, 3992099009, 3992230093, 3992361179, 3992492261, + 3992623357, 3992754503, 3992885579, 3993016663, 3993147761, 3993278843, 3993409919, + 3993541063, 3993672143, 3993803243, 3993934331, 3994065403, 3994196489, 3994327613, + 3994458697, 3994589771, 3994720883, 3994851961, 3994983061, 3995114171, 3995245307, + 3995376403, 3995507513, 3995638609, 3995769689, 3995900761, 3996031877, 3996162977, + 3996294077, 3996425177, 3996556259, 3996687361, 3996818443, 3996949529, 3997080601, + 3997211681, 3997342757, 3997473829, 3997604909, 3997736009, 3997867099, 3997998181, + 3998129273, 3998260349, 3998391427, 3998522501, 3998653583, 3998784677, 3998915749, + 3999046853, 3999177929, 3999309011, 3999440129, 3999571217, 3999702299, 3999833399, + 3999964471, 4000095551, 4000226647, 4000357729, 4000488827, 4000619929, 4000751009, + 4000882121, 4001013251, 4001144333, 4001275427, 4001406509, 4001537587, 4001668669, + 4001799743, 4001930827, 4002061907, 4002192979, 4002324089, 4002455227, 4002586319, + 4002717391, 4002848467, 4002979559, 4003110653, 4003241743, 4003372817, 4003503899, + 4003634983, 4003766093, 4003897187, 4004028263, 4004159347, 4004290421, 4004421503, + 4004552599, 4004683673, 4004814799, 4004945881, 4005076969, 4005208043, 4005339167, + 4005470239, 4005601339, 4005732439, 4005863551, 4005994661, 4006125733, 4006256831, + 4006387927, 4006519001, 4006650091, 4006781167, 4006912241, 4007043317, 4007174389, + 4007305483, 4007436577, 4007567653, 4007698729, 4007829803, 4007960903, 4008091993, + 4008223067, 4008354151, 4008485251, 4008616327, 4008747419, 4008878557, 4009009657, + 4009140739, 4009271843, 4009402939, 4009534013, 4009665089, 4009796179, 4009927253, + 4010058343, 4010189453, 4010320583, 4010451659, 4010582767, 4010713913, 4010844989, + 4010976061, 4011107147, 4011238241, 4011369343, 4011500459, 4011631541, 4011762613, + 4011893687, 4012024771, 4012155877, 4012286953, 4012418029, 4012549129, 4012680241, + 4012811317, 4012942393, 4013073487, 4013204563, 4013335661, 4013466733, 4013597827, + 4013728931, 4013860057, 4013991131, 4014122209, 4014253289, 4014384371, 4014515489, + 4014646579, 4014777677, 4014908749, 4015039837, 4015170911, 4015301987, 4015433143, + 4015564219, 4015695311, 4015826383, 4015957469, 4016088589, 4016219693, 4016350769, + 4016481871, 4016612953, 4016744027, 4016875129, 4017006223, 4017137303, 4017268379, + 4017399467, 4017530567, 4017661649, 4017792731, 4017923809, 4018054889, 4018185989, + 4018317089, 4018448177, 4018579261, 4018710337, 4018841413, 4018972543, 4019103623, + 4019234753, 4019365829, 4019496931, 4019628007, 4019759087, 4019890177, 4020021287, + 4020152369, 4020283447, 4020414527, 4020545621, 4020676703, 4020807781, 4020938861, + 4021069933, 4021201013, 4021332113, 4021463207, 4021594331, 4021725403, 4021856497, + 4021987591, 4022118703, 4022249789, 4022380861, 4022511973, 4022643047, 4022774159, + 4022905231, 4023036313, 4023167387, 4023298459, 4023429533, 4023560621, 4023691697, + 4023822787, 4023953929, 4024085003, 4024216099, 4024347179, 4024478257, 4024609339, + 4024740431, 4024871527, 4025002601, 4025133683, 4025264783, 4025395859, 4025526931, + 4025658017, 4025789101, 4025920177, 4026051269, 4026182341, 4026313429, 4026444511, + 4026575591, 4026706679, 4026837791, 4026968887, 4027099987, 4027231067, 4027362167, + 4027493243, 4027624327, 4027755409, 4027886521, 4028017607, 4028148679, 4028279767, + 4028410921, 4028542019, 4028673133, 4028804209, 4028935283, 4029066361, 4029197453, + 4029328529, 4029459617, 4029590701, 4029721781, 4029852859, 4029983941, 4030115021, + 4030246097, 4030377173, 4030508267, 4030639391, 4030770467, 4030901549, 4031032627, + 4031163713, 4031294789, 4031425861, 4031556943, 4031688077, 4031819153, 4031950253, + 4032081329, 4032212407, 4032343487, 4032474569, 4032605659, 4032736777, 4032867869, + 4032998947, 4033130047, 4033261121, 4033392247, 4033523321, 4033654403, 4033785493, + 4033916573, 4034047649, 4034178721, 4034309801, 4034440889, 4034571977, 4034703077, + 4034834183, 4034965261, 4035096341, 4035227431, 4035358519, 4035489593, 4035620669, + 4035751747, 4035882827, 4036013951, 4036145051, 4036276147, 4036407259, 4036538371, + 4036669451, 4036800527, 4036931599, 4037062681, 4037193773, 4037324867, 4037455999, + 4037587093, 4037718173, 4037849251, 4037980343, 4038111421, 4038242581, 4038373657, + 4038504731, 4038635807, 4038766913, 4038898007, 4039029079, 4039160189, 4039291271, + 4039422347, 4039553423, 4039684499, 4039815583, 4039946671, 4040077757, 4040208829, + 4040339917, 4040470999, 4040602087, 4040733163, 4040864329, 4040995423, 4041126499, + 4041257581, 4041388717, 4041519799, 4041650881, 4041781979, 4041913061, 4042044143, + 4042175233, 4042306313, 4042437403, 4042568501, 4042699613, 4042830691, 4042961801, + 4043092877, 4043223991, 4043355067, 4043486149, 4043617231, 4043748323, 4043879407, + 4044010513, 4044141643, 4044272719, 4044403801, 4044534899, 4044665971, 4044797051, + 4044928157, 4045059233, 4045190327, 4045321403, 4045452511, 4045583627, 4045714709, + 4045845781, 4045976867, 4046107939, 4046239027, 4046370109, 4046501183, 4046632267, + 4046763353, 4046894431, 4047025519, 4047156601, 4047287687, 4047418783, 4047549859, + 4047680933, 4047812051, 4047943129, 4048074263, 4048205351, 4048336423, 4048467497, + 4048598573, 4048729649, 4048860721, 4048991797, 4049122871, 4049253959, 4049385031, + 4049516129, 4049647201, 4049778323, 4049909401, 4050040487, 4050171563, 4050302657, + 4050433757, 4050564853, 4050695969, 4050827041, 4050958133, 4051089221, 4051220351, + 4051351453, 4051482541, 4051613617, 4051744709, 4051875787, 4052006867, 4052137963, + 4052269043, 4052400127, 4052531201, 4052662291, 4052793377, 4052924459, 4053055541, + 4053186617, 4053317711, 4053448783, 4053579863, 4053710987, 4053842081, 4053973193, + 4054104293, 4054235387, 4054366529, 4054497611, 4054628693, 4054759817, 4054890893, + 4055021981, 4055153083, 4055284157, 4055415251, 4055546329, 4055677421, 4055808499, + 4055939599, 4056070687, 4056201767, 4056332843, 4056463937, 4056595013, 4056726101, + 4056857179, 4056988283, 4057119403, 4057250507, 4057381579, 4057512673, 4057643747, + 4057774823, 4057905959, 4058037073, 4058168171, 4058299261, 4058430367, 4058561459, + 4058692531, 4058823631, 4058954741, 4059085819, 4059216923, 4059348017, 4059479101, + 4059610201, 4059741277, 4059872353, 4060003433, 4060134509, 4060265597, 4060396699, + 4060527799, 4060658873, 4060789963, 4060921057, 4061052197, 4061183279, 4061314379, + 4061445457, 4061576551, 4061707673, 4061838749, 4061969833, 4062100937, 4062232021, + 4062363113, 4062494239, 4062625331, 4062756403, 4062887503, 4063018601, 4063149703, + 4063280783, 4063411867, 4063542953, 4063674031, 4063805131, 4063936211, 4064067283, + 4064198357, 4064329453, 4064460581, 4064591719, 4064722793, 4064853893, 4064984969, + 4065116047, 4065247127, 4065378199, 4065509303, 4065640391, 4065771467, 4065902567, + 4066033661, 4066164743, 4066295843, 4066426939, 4066558039, 4066689113, 4066820207, + 4066951283, 4067082377, 4067213471, 4067344549, 4067475647, 4067606731, 4067737813, + 4067868923, 4068000059, 4068131131, 4068262229, 4068393319, 4068524443, 4068655523, + 4068786599, 4068917693, 4069048769, 4069179841, 4069310933, 4069442009, 4069573087, + 4069704179, 4069835251, 4069966331, 4070097403, 4070228497, 4070359571, 4070490643, + 4070621717, 4070752789, 4070883871, 4071014963, 4071146089, 4071277183, 4071408283, + 4071539413, 4071670487, 4071801583, 4071932699, 4072063811, 4072194913, 4072325989, + 4072457063, 4072588151, 4072719239, 4072850363, 4072981459, 4073112541, 4073243663, + 4073374769, 4073505869, 4073636947, 4073768029, 4073899121, 4074030193, 4074161339, + 4074292421, 4074423511, 4074554587, 4074685697, 4074816773, 4074947857, 4075078933, + 4075210019, 4075341091, 4075472197, 4075603271, 4075734347, 4075865477, 4075996549, + 4076127637, 4076258717, 4076389799, 4076520883, 4076651981, 4076783069, 4076914159, + 4077045257, 4077176329, 4077307411, 4077438487, 4077569567, 4077700663, 4077831881, + 4077962963, 4078094039, 4078225127, 4078356221, 4078487311, 4078618409, 4078749491, + 4078880563, 4079011639, 4079142733, 4079273827, 4079404933, 4079536007, 4079667091, + 4079798179, 4079929253, 4080060331, 4080191407, 4080322489, 4080453581, 4080584657, + 4080715739, 4080846817, 4080977921, 4081109027, 4081240103, 4081371179, 4081502261, + 4081633363, 4081764457, 4081895539, 4082026661, 4082157799, 4082288887, 4082419961, + 4082551043, 4082682127, 4082813201, 4082944277, 4083075407, 4083206483, 4083337567, + 4083468643, 4083599749, 4083730823, 4083861931, 4083993029, 4084124141, 4084255243, + 4084386337, 4084517413, 4084648487, 4084779577, 4084910651, 4085041733, 4085172809, + 4085303897, 4085434973, 4085566091, 4085697179, 4085828273, 4085959351, 4086090451, + 4086221533, 4086352643, 4086483727, 4086614801, 4086745907, 4086876979, 4087008061, + 4087139137, 4087270273, 4087401349, 4087532431, 4087663519, 4087794643, 4087925717, + 4088056807, 4088187919, 4088318999, 4088450083, 4088581157, 4088712241, 4088843327, + 4088974427, 4089105509, 4089236581, 4089367661, 4089498761, 4089629861, 4089760933, + 4089892007, 4090023083, 4090154161, 4090285253, 4090416329, 4090547413, 4090678507, + 4090809587, 4090940687, 4091071771, 4091202851, 4091333969, 4091465057, 4091596129, + 4091727217, 4091858291, 4091989393, 4092120479, 4092251557, 4092382631, 4092513703, + 4092644779, 4092775859, 4092906941, 4093038017, 4093169089, 4093300201, 4093431313, + 4093562401, 4093693477, 4093824551, 4093955641, 4094086723, 4094217817, 4094348903, + 4094479979, 4094611061, 4094742137, 4094873231, 4095004339, 4095135431, 4095266521, + 4095397619, 4095528691, 4095659797, 4095790873, 4095921967, 4096053103, 4096184177, + 4096315261, 4096446353, 4096577453, 4096708529, 4096839601, 4096970681, 4097101769, + 4097232859, 4097363939, 4097495041, 4097626151, 4097757247, 4097888359, 4098019447, + 4098150521, 4098281609, 4098412697, 4098543781, 4098674869, 4098805979, 4098937057, + 4099068131, 4099199233, 4099330331, 4099461409, 4099592491, 4099723577, 4099854659, + 4099985759, 4100116841, 4100247913, 4100378987, 4100510093, 4100641169, 4100772241, + 4100903321, 4101034393, 4101165469, 4101296569, 4101427669, 4101558751, 4101689831, + 4101820913, 4101951989, 4102083077, 4102214167, 4102345253, 4102476331, 4102607417, + 4102738511, 4102869583, 4103000683, 4103131777, 4103262871, 4103393953, 4103525077, + 4103656169, 4103787263, 4103918393, 4104049489, 4104180571, 4104311647, 4104442807, + 4104573883, 4104704969, 4104836069, 4104967193, 4105098271, 4105229351, 4105360423, + 4105491503, 4105622579, 4105753651, 4105884737, 4106015827, 4106146907, 4106278027, + 4106409113, 4106540227, 4106671337, 4106802409, 4106933497, 4107064573, 4107195661, + 4107326759, 4107457843, 4107588931, 4107720037, 4107851141, 4107982237, 4108113311, + 4108244389, 4108375477, 4108506559, 4108637651, 4108768733, 4108899863, 4109030957, + 4109162041, 4109293129, 4109424211, 4109555293, 4109686393, 4109817539, 4109948621, + 4110079693, 4110210781, 4110341867, 4110472943, 4110604021, 4110735121, 4110866209, + 4110997313, 4111128403, 4111259483, 4111390559, 4111521641, 4111652737, 4111783811, + 4111914883, 4112045983, 4112177071, 4112308181, 4112439271, 4112570383, 4112701471, + 4112832551, 4112963627, 4113094709, 4113225799, 4113356879, 4113487967, 4113619039, + 4113750119, 4113881203, 4114012313, 4114143409, 4114274543, 4114405627, 4114536703, + 4114667779, 4114798861, 4114929937, 4115061011, 4115192087, 4115323169, 4115454263, + 4115585347, 4115716441, 4115847517, 4115978597, 4116109709, 4116240781, 4116371863, + 4116502937, 4116634021, 4116765113, 4116896209, 4117027283, 4117158361, 4117289437, + 4117420511, 4117551601, 4117682713, 4117813789, 4117944931, 4118076143, 4118207221, + 4118338309, 4118469391, 4118600467, 4118731543, 4118862623, 4118993737, 4119124879, + 4119255977, 4119387049, 4119518131, 4119649207, 4119780283, 4119911401, 4120042477, + 4120173557, 4120304651, 4120435727, 4120566847, 4120697923, 4120829021, 4120960097, + 4121091173, 4121222267, 4121353391, 4121484469, 4121615573, 4121746649, 4121877731, + 4122008953, 4122140039, 4122271123, 4122402209, 4122533323, 4122664421, 4122795497, + 4122926569, 4123057681, 4123188779, 4123319881, 4123450967, 4123582061, 4123713151, + 4123844239, 4123975313, 4124106397, 4124237471, 4124368543, 4124499619, 4124630737, + 4124761819, 4124892917, 4125023993, 4125155117, 4125286201, 4125417281, 4125548363, + 4125679451, 4125810583, 4125941681, 4126072763, 4126203857, 4126334969, 4126466053, + 4126597129, 4126728233, 4126859311, 4126990393, 4127121491, 4127252603, 4127383691, + 4127514763, 4127645869, 4127776969, 4127908087, 4128039197, 4128170279, 4128301469, + 4128432589, 4128563689, 4128694763, 4128825859, 4128956969, 4129088071, 4129219147, + 4129350227, 4129481309, 4129612397, 4129743487, 4129874563, 4130005643, 4130136719, + 4130267807, 4130398879, 4130529959, 4130661043, 4130792117, 4130923217, 4131054299, + 4131185381, 4131316457, 4131447547, 4131578719, 4131709807, 4131840899, 4131971981, + 4132103069, 4132234147, 4132365269, 4132496341, 4132627439, 4132758523, 4132889627, + 4133020699, 4133151791, 4133282869, 4133413943, 4133545033, 4133676139, 4133807231, + 4133938363, 4134069437, 4134200533, 4134331613, 4134462707, 4134593779, 4134724861, + 4134855947, 4134987023, 4135118107, 4135249187, 4135380299, 4135511381, 4135642457, + 4135773569, 4135904677, 4136035751, 4136166823, 4136297903, 4136428979, 4136560081, + 4136691157, 4136822231, 4136953339, 4137084433, 4137215539, 4137346639, 4137477787, + 4137608861, 4137739993, 4137871069, 4138002149, 4138133267, 4138264379, 4138395461, + 4138526537, 4138657631, 4138788713, 4138919801, 4139050913, 4139182009, 4139313097, + 4139444191, 4139575367, 4139706443, 4139837521, 4139968601, 4140099683, 4140230867, + 4140361963, 4140493057, 4140624149, 4140755231, 4140886313, 4141017401, 4141148483, + 4141279573, 4141410661, 4141541737, 4141672817, 4141803931, 4141935089, 4142066171, + 4142197261, 4142328373, 4142459449, 4142590523, 4142721629, 4142852717, 4142983799, + 4143114889, 4143245999, 4143377093, 4143508169, 4143639259, 4143770339, 4143901481, + 4144032559, 4144163641, 4144294717, 4144425797, 4144556879, 4144687973, 4144819051, + 4144950133, 4145081233, 4145212343, 4145343457, 4145474533, 4145605621, 4145736701, + 4145867777, 4145998859, 4146129931, 4146261047, 4146392149, 4146523291, 4146654419, + 4146785491, 4146916591, 4147047691, 4147178767, 4147309871, 4147440967, 4147572041, + 4147703143, 4147834247, 4147965359, 4148096431, 4148227513, 4148358593, 4148489677, + 4148620757, 4148751833, 4148882909, 4149014027, 4149145123, 4149276233, 4149407363, + 4149538447, 4149669523, 4149800671, 4149931769, 4150062853, 4150193947, 4150325051, + 4150456127, 4150587227, 4150718323, 4150849397, 4150980469, 4151111551, 4151242633, + 4151373739, 4151504837, 4151635919, 4151767019, 4151898133, 4152029213, 4152160297, + 4152291371, 4152422447, 4152553519, 4152684607, 4152815699, 4152946783, 4153077857, + 4153208957, 4153340063, 4153471141, 4153602247, 4153733333, 4153864409, 4153995481, + 4154126593, 4154257669, 4154388751, 4154519827, 4154650939, 4154782033, 4154913107, + 4155044191, 4155175291, 4155306391, 4155437537, 4155568643, 4155699749, 4155830827, + 4155961907, 4156093009, 4156224109, 4156355201, 4156486273, 4156617359, 4156748459, + 4156879537, 4157010631, 4157141717, 4157272829, 4157403911, 4157534999, 4157666077, + 4157797169, 4157928259, 4158059333, 4158190409, 4158321491, 4158452587, 4158583687, + 4158714773, 4158845863, 4158976963, 4159108043, 4159239121, 4159370203, 4159501279, + 4159632457, 4159763533, 4159894649, 4160025733, 4160156821, 4160287897, 4160418973, + 4160550049, 4160681137, 4160812213, 4160943389, 4161074473, 4161205553, 4161336649, + 4161467729, 4161598811, 4161729889, 4161860977, 4161992053, 4162123127, 4162254227, + 4162385299, 4162516373, 4162647451, 4162778563, 4162909657, 4163040773, 4163171869, + 4163302943, 4163434031, 4163565127, 4163696213, 4163827303, 4163958413, 4164089537, + 4164220657, 4164351749, 4164482831, 4164613919, 4164745007, 4164876113, 4165007239, + 4165138339, 4165269421, 4165400501, 4165531577, 4165662661, 4165793767, 4165924877, + 4166056009, 4166187097, 4166318179, 4166449289, 4166580373, 4166711459, 4166842571, + 4166973667, 4167104779, 4167235867, 4167366947, 4167498029, 4167629161, 4167760271, + 4167891353, 4168022429, 4168153559, 4168284683, 4168415767, 4168546853, 4168677959, + 4168809049, 4168940123, 4169071217, 4169202337, 4169333423, 4169464511, 4169595607, + 4169726689, 4169857777, 4169988857, 4170119939, 4170251023, 4170382109, 4170513199, + 4170644279, 4170775373, 4170906451, 4171037561, 4171168633, 4171299731, 4171430807, + 4171561931, 4171693003, 4171824079, 4171955209, 4172086333, 4172217407, 4172348501, + 4172479573, 4172610647, 4172741731, 4172872813, 4173003941, 4173135047, 4173266129, + 4173397211, 4173528283, 4173659383, 4173790463, 4173921569, 4174052669, 4174183771, + 4174314871, 4174445963, 4174577063, 4174708151, 4174839247, 4174970321, 4175101459, + 4175232563, 4175363651, 4175494783, 4175625889, 4175756993, 4175888069, 4176019153, + 4176150233, 4176281323, 4176412447, 4176543521, 4176674629, 4176805709, 4176936793, + 4177067887, 4177198967, 4177330039, 4177461121, 4177592197, 4177723313, 4177854391, + 4177985477, 4178116573, 4178247653, 4178378753, 4178509831, 4178640979, 4178772053, + 4178903167, 4179034253, 4179165329, 4179296413, 4179427487, 4179558569, 4179689653, + 4179820739, 4179951833, 4180082923, 4180214011, 4180345093, 4180476169, 4180607261, + 4180738351, 4180869487, 4181000563, 4181131639, 4181262731, 4181393803, 4181524891, + 4181656009, 4181787089, 4181918189, 4182049337, 4182180437, 4182311519, 4182442619, + 4182573701, 4182704807, 4182835889, 4182966961, 4183098037, 4183229111, 4183360199, + 4183491271, 4183622347, 4183753433, 4183884533, 4184015609, 4184146721, 4184277803, + 4184408903, 4184539981, 4184671061, 4184802133, 4184933213, 4185064307, 4185195383, + 4185326459, 4185457543, 4185588637, 4185719723, 4185850829, 4185981937, 4186113037, + 4186244143, 4186375229, 4186506349, 4186637437, 4186768529, 4186899601, 4187030677, + 4187161757, 4187292833, 4187423917, 4187554993, 4187686073, 4187817173, 4187948269, + 4188079367, 4188210463, 4188341537, 4188472609, 4188603689, 4188734773, 4188865847, + 4188996953, 4189128029, 4189259147, 4189390243, 4189521331, 4189652429, 4189783511, + 4189914583, 4190045663, 4190176747, 4190307827, 4190438911, 4190570003, 4190701103, + 4190832181, 4190963261, 4191094343, 4191225449, 4191356531, 4191487621, 4191618701, + 4191749777, 4191880867, 4192011953, 4192143037, 4192274113, 4192405211, 4192536287, + 4192667387, 4192798459, 4192929547, 4193060629, 4193191711, 4193322797, 4193453897, + 4193584987, 4193716061, 4193847137, 4193978219, 4194109301, 4194240373, 4194371449, + 4194502541, 4194633647, 4194764731, 4194895807, 4195026911, 4195158031, 4195289123, + 4195420213, 4195551287, 4195682389, 4195813471, 4195944563, 4196075641, 4196206727, + 4196337839, 4196468911, 4196599993, 4196731073, 4196862151, 4196993279, 4197124363, + 4197255449, 4197386527, 4197517603, 4197648677, 4197779821, 4197910957, 4198042049, + 4198173131, 4198304213, 4198435289, 4198566391, 4198697533, 4198828609, 4198959719, + 4199090827, 4199221913, 4199352991, 4199484071, 4199615153, 4199746247, 4199877347, + 4200008419, 4200139529, 4200270601, 4200401693, 4200532769, 4200663847, 4200794959, + 4200926069, 4201057151, 4201188239, 4201319333, 4201450423, 4201581499, 4201712587, + 4201843693, 4201974769, 4202105861, 4202236981, 4202368067, 4202499143, 4202630251, + 4202761361, 4202892451, 4203023527, 4203154607, 4203285731, 4203416837, 4203547927, + 4203679001, 4203810077, 4203941167, 4204072253, 4204203331, 4204334429, 4204465523, + 4204596611, 4204727699, 4204858811, 4204989917, 4205120989, 4205252069, 4205383153, + 4205514233, 4205645341, 4205776423, 4205907509, 4206038597, 4206169687, 4206300779, + 4206431909, 4206562991, 4206694067, 4206825157, 4206956239, 4207087319, 4207218439, + 4207349563, 4207480679, 4207611761, 4207742873, 4207873973, 4208005063, 4208136193, + 4208267279, 4208398361, 4208529433, 4208660509, 4208791583, 4208922659, 4209053731, + 4209184813, 4209315899, 4209446971, 4209578129, 4209709241, 4209840367, 4209971501, + 4210102583, 4210233701, 4210364777, 4210495901, 4210626983, 4210758061, 4210889141, + 4211020243, 4211151331, 4211282431, 4211413513, 4211544593, 4211675669, 4211806751, + 4211937823, 4212068899, 4212199987, 4212331061, 4212462151, 4212593233, 4212724349, + 4212855443, 4212986539, 4213117663, 4213248757, 4213379831, 4213510907, 4213641983, + 4213773071, 4213904171, 4214035253, 4214166371, 4214297453, 4214428531, 4214559611, + 4214690699, 4214821823, 4214952899, 4215084001, 4215215077, 4215346151, 4215477239, + 4215608321, 4215739421, 4215870497, 4216001579, 4216132673, 4216263749, 4216394849, + 4216525939, 4216657019, 4216788101, 4216919183, 4217050289, 4217181373, 4217312459, + 4217443537, 4217574619, 4217705717, 4217836789, 4217967883, 4218098959, 4218230053, + 4218361129, 4218492203, 4218623293, 4218754373, 4218885467, 4219016539, 4219147637, + 4219278733, 4219409813, 4219540891, 4219671991, 4219803097, 4219934171, 4220065253, + 4220196347, 4220327429, 4220458549, 4220589623, 4220720729, 4220851801, 4220982889, + 4221114047, 4221245173, 4221376259, 4221507373, 4221638459, 4221769561, 4221900637, + 4222031711, 4222162799, 4222293871, 4222424959, 4222556053, 4222687151, 4222818253, + 4222949377, 4223080451, 4223211523, 4223342611, 4223473687, 4223604779, 4223735861, + 4223866949, 4223998073, 4224129149, 4224260221, 4224391309, 4224522409, 4224653491, + 4224784567, 4224915649, 4225046723, 4225177799, 4225308887, 4225440007, 4225571081, + 4225702153, 4225833229, 4225964321, 4226095403, 4226226479, 4226357579, 4226488663, + 4226619809, 4226750897, 4226881993, 4227013073, 4227144167, 4227275243, 4227406319, + 4227537397, 4227668503, 4227799613, 4227930709, 4228061809, 4228192883, 4228323977, + 4228455061, 4228586161, 4228717237, 4228848331, 4228979407, 4229110493, 4229241581, + 4229372657, 4229503757, 4229634853, 4229765933, 4229897011, 4230028087, 4230159161, + 4230290243, 4230421331, 4230552419, 4230683497, 4230814571, 4230945673, 4231076753, + 4231207861, 4231338967, 4231470041, 4231601113, 4231732187, 4231863269, 4231994381, + 4232125477, 4232256551, 4232387641, 4232518751, 4232649829, 4232780939, 4232912027, + 4233043141, 4233174227, 4233305299, 4233436399, 4233567493, 4233698591, 4233829667, + 4233960743, 4234091819, 4234222913, 4234354021, 4234485097, 4234616249, 4234747339, + 4234878413, 4235009497, 4235140607, 4235271749, 4235402887, 4235533997, 4235665097, + 4235796203, 4235927299, 4236058397, 4236189481, 4236320603, 4236451759, 4236582887, + 4236713969, 4236845143, 4236976223, 4237107337, 4237238419, 4237369501, 4237500583, + 4237631659, 4237762751, 4237893823, 4238024909, 4238156011, 4238287091, 4238418203, + 4238549299, 4238680399, 4238811491, 4238942567, 4239073661, 4239204743, 4239335831, + 4239466939, 4239598039, 4239729121, 4239860213, 4239991333, 4240122413, 4240253489, + 4240384609, 4240515689, 4240646777, 4240777867, 4240908943, 4241040053, 4241171131, + 4241302207, 4241433281, 4241564381, 4241695457, 4241826559, 4241957639, 4242088733, + 4242219809, 4242350911, 4242482021, 4242613099, 4242744263, 4242875353, 4243006441, + 4243137527, 4243268633, 4243399709, 4243530793, 4243661869, 4243792961, 4243924033, + 4244055121, 4244186213, 4244317289, 4244448367, 4244579441, 4244710529, 4244841637, + 4244972717, 4245103801, 4245234901, 4245365981, 4245497063, 4245628151, 4245759233, + 4245890317, 4246021411, 4246152517, 4246283623, 4246414699, 4246545773, 4246676867, + 4246807973, 4246939051, 4247070181, 4247201263, 4247332337, 4247463421, 4247594503, + 4247725577, 4247856653, 4247987741, 4248118817, 4248249893, 4248380987, 4248512083, + 4248643171, 4248774289, 4248905371, 4249036459, 4249167541, 4249298617, 4249429739, + 4249560853, 4249691959, 4249823051, 4249954127, 4250085209, 4250216303, 4250347379, + 4250478451, 4250609533, 4250740621, 4250871727, 4251002803, 4251133919, 4251265027, + 4251396101, 4251527179, 4251658267, 4251789349, 4251920423, 4252051501, 4252182589, + 4252313687, 4252444811, 4252575907, 4252706981, 4252838089, 4252969163, 4253100251, + 4253231329, 4253362411, 4253493499, 4253624593, 4253755669, 4253886773, 4254017869, + 4254149017, 4254280109, 4254411181, 4254542287, 4254673411, 4254804487, 4254935579, + 4255066657, 4255197743, 4255328821, 4255459919, 4255591013, 4255722101, 4255853179, + 4255984259, 4256115373, 4256246447, 4256377523, 4256508617, 4256639689, 4256770789, + 4256902007, 4257033103, 4257164207, 4257295283, 4257426361, 4257557461, 4257688579, + 4257819691, 4257950783, 4258081871, 4258212947, 4258344053, 4258475153, 4258606243, + 4258737361, 4258868437, 4258999529, 4259130653, 4259261731, 4259392807, 4259523881, + 4259654953, 4259786057, 4259917133, 4260048229, 4260179303, 4260310387, 4260441461, + 4260572543, 4260703639, 4260834731, 4260965827, 4261096927, 4261228019, 4261359097, + 4261490179, 4261621279, 4261752353, 4261883473, 4262014591, 4262145673, 4262276747, + 4262407819, 4262538913, 4262670031, 4262801111, 4262932183, 4263063281, 4263194393, + 4263325511, 4263456599, 4263587677, 4263718757, 4263849829, 4263980927, 4264112009, + 4264243091, 4264374181, 4264505257, 4264636339, 4264767439, 4264898513, 4265029589, + 4265160661, 4265291791, 4265422873, 4265553977, 4265685089, 4265816189, 4265947261, + 4266078353, 4266209443, 4266340517, 4266471631, 4266602723, 4266733813, 4266864949, + 4266996037, 4267127119, 4267258223, 4267389331, 4267520437, 4267651519, 4267782613, + 4267913687, 4268044771, 4268175881, 4268306963, 4268438087, 4268569177, 4268700283, + 4268831381, 4268962469, 4269093551, 4269224689, 4269355771, 4269486901, 4269617977, + 4269749063, 4269880169, 4270011253, 4270142339, 4270273429, 4270404623, 4270535707, + 4270666823, 4270797901, 4270928983, 4271060069, 4271191151, 4271322343, 4271453423, + 4271584511, 4271715611, 4271846713, 4271977807, 4272108881, 4272239957, 4272371053, + 4272502183, 4272633257, 4272764333, 4272895411, 4273026509, 4273157593, 4273288681, + 4273419763, 4273550843, 4273681931, 4273813067, 4273944197, 4274075279, 4274206361, + 4274337433, 4274468531, 4274599639, 4274730739, 4274861849, 4274992949, 4275124081, + 4275255161, 4275386237, 4275517327, 4275648409, 4275779483, 4275910607, 4276041689, + 4276172779, 4276303853, 4276434947, 4276566023, 4276697107, 4276828243, 4276959317, + 4277090393, 4277221469, 4277352553, 4277483641, 4277614729, 4277745803, 4277876963, + 4278008039, 4278139153, 4278270247, 4278401321, 4278532393, 4278663497, 4278794599, + 4278925741, 4279056829, 4279187903, 4279318997, 4279450121, 4279581197, 4279712287, + 4279843441, 4279974551, 4280105651, 4280236747, 4280367853, 4280498939, 4280630033, + 4280761129, 4280892271, 4281023377, 4281154453, 4281285529, 4281416609, 4281547691, + 4281678787, 4281809863, 4281940961, 4282072051, 4282203157, 4282334239, 4282465367, + 4282596443, 4282727521, 4282858607, 4282989703, 4283120813, 4283251891, 4283382977, + 4283514061, 4283645147, 4283776249, 4283907337, 4284038411, 4284169489, 4284300569, + 4284431707, 4284562781, 4284693877, 4284824969, 4284956047, 4285087123, 4285218199, + 4285349293, 4285480379, 4285611527, 4285742603, 4285873679, 4286004761, 4286135851, + 4286266927, 4286398001, 4286529077, 4286660219, 4286791307, 4286922407, 4287053483, + 4287184591, 4287315671, 4287446771, 4287577843, 4287708917, 4287840049, 4287971141, + 4288102237, 4288233311, 4288364387, 4288495459, 4288626539, 4288757611, 4288888687, + 4289019773, 4289150851, 4289281933, 4289413027, 4289544143, 4289675233, 4289806309, + 4289937389, 4290068521, 4290199597, 4290330677, 4290461759, 4290592837, 4290723929, + 4290855011, 4290986101, 4291117183, 4291248257, 4291379329, 4291510403, 4291641509, + 4291772581, 4291903663, 4292034737, 4292165879, 4292296963, 4292428037, 4292559163, + 4292690239, 4292821333, 4292952407, 4293083503, 4293214589, 4293345677, 4293476749, + 4293607841, 4293738937, 4293870011, 4294001149, 4294132229, 4294263373, 4294394509, + 4294525637, 4294656731, 4294787813, 4294918949, 4295050069, 4295181169, 4295312243, + 4295443367, 4295574457, 4295705543, 4295836631, 4295967703, 4296098783, 4296229871, + 4296360947, 4296492043, 4296623137, 4296754213, 4296885289, 4297016369, 4297147487, + 4297278571, 4297409671, 4297540763, 4297671863, 4297802941, 4297934041, 4298065117, + 4298196191, 4298327263, 4298458363, 4298589437, 4298720537, 4298851621, 4298982719, + 4299113801, 4299244891, 4299375991, 4299507067, 4299638141, 4299769237, 4299900329, + 4300031431, 4300162513, 4300293589, 4300424677, 4300555771, 4300686847, 4300817957, + 4300949033, 4301080123, 4301211221, 4301342317, 4301473453, 4301604529, 4301735617, + 4301866697, 4301997773, 4302128921, 4302259993, 4302391073, 4302522151, 4302653231, + 4302784313, 4302915433, 4303046509, 4303177597, 4303308701, 4303439801, 4303570891, + 4303701977, 4303833091, 4303964167, 4304095261, 4304226359, 4304357437, 4304488541, + 4304619637, 4304750731, 4304881811, 4305012919, 4305144007, 4305275099, 4305406199, + 4305537277, 4305668383, 4305799471, 4305930571, 4306061671, 4306192757, 4306323859, + 4306454939, 4306586021, 4306717109, 4306848229, 4306979309, 4307110397, 4307241469, + 4307372551, 4307503631, 4307634703, 4307765801, 4307896889, 4308027961, 4308159059, + 4308290159, 4308421267, 4308552341, 4308683429, 4308814501, 4308945577, 4309076669, + 4309207741, 4309338827, 4309469939, 4309601039, 4309732123, 4309863197, 4309994281, + 4310125363, 4310256469, 4310387567, 4310518643, 4310649743, 4310780843, 4310911951, + 4311043069, 4311174167, 4311305261, 4311436417, 4311567493, 4311698639, 4311829723, + 4311960799, 4312091881, 4312222961, 4312354037, 4312485109, 4312616197, 4312747291, + 4312878377, 4313009471, 4313140561, 4313271659, 4313402749, 4313533831, 4313664907, + 4313796029, 4313927113, 4314058201, 4314189283, 4314320377, 4314451459, 4314582533, + 4314713609, 4314844687, 4314975793, 4315106897, 4315237973, 4315369087, 4315500169, + 4315631249, 4315762327, 4315893497, 4316024593, 4316155667, 4316286787, 4316417863, + 4316548939, 4316680031, 4316811131, 4316942249, 4317073333, 4317204421, 4317335501, + 4317466639, 4317597727, 4317728803, 4317859891, 4317990967, 4318122059, 4318253131, + 4318384207, 4318515293, 4318646377, 4318777457, 4318908551, 4319039651, 4319170729, + 4319301841, 4319432939, 4319564027, 4319695117, 4319826193, 4319957321, 4320088393, + 4320219499, 4320350599, 4320481691, 4320612833, 4320743909, 4320874997, 4321006091, + 4321137169, 4321268251, 4321399331, 4321530419, 4321661501, 4321792577, 4321923677, + 4322054753, 4322185841, 4322316937, 4322448049, 4322579123, 4322710219, 4322841301, + 4322972387, 4323103493, 4323234581, 4323365653, 4323496769, 4323627863, 4323758947, + 4323890027, 4324021109, 4324152227, 4324283323, 4324414397, 4324545469, 4324676549, + 4324807621, 4324938767, 4325069843, 4325200937, 4325332043, 4325463127, 4325594213, + 4325725297, 4325856371, 4325987461, 4326118547, 4326249619, 4326380701, 4326511789, + 4326642883, 4326773963, 4326905119, 4327036199, 4327167289, 4327298363, 4327429451, + 4327560533, 4327691611, 4327822703, 4327953793, 4328084867, 4328215961, 4328347087, + 4328478173, 4328609249, 4328740321, 4328871401, 4329002567, 4329133687, 4329264763, + 4329395881, 4329526961, 4329658057, 4329789161, 4329920233, 4330051321, 4330182397, + 4330313473, 4330444579, 4330575671, 4330706747, 4330837859, 4330968989, 4331100061, + 4331231141, 4331362219, 4331493293, 4331624383, 4331755459, 4331886593, 4332017687, + 4332148771, 4332279901, 4332410981, 4332542057, 4332673133, 4332804253, 4332935329, + 4333066453, 4333197527, 4333328599, 4333459673, 4333590823, 4333721921, 4333853011, + 4333984103, 4334115217, 4334246291, 4334377429, 4334508509, 4334639627, 4334770709, + 4334901787, 4335032873, 4335163961, 4335295061, 4335426133, 4335557221, 4335688309, + 4335819403, 4335950539, 4336081619, 4336212707, 4336343807, 4336474889, 4336605983, + 4336737059, 4336868203, 4336999283, 4337130373, 4337261449, 4337392567, 4337523719, + 4337654791, 4337785873, 4337916953, 4338048031, 4338179143, 4338310237, 4338441337, + 4338572411, 4338703547, 4338834629, 4338965711, 4339096793, 4339227869, 4339358981, + 4339490053, 4339621141, 4339752239, 4339883351, 4340014433, 4340145521, 4340276593, + 4340407667, 4340538767, 4340669849, 4340800943, 4340932051, 4341063131, 4341194219, + 4341325297, 4341456391, 4341587491, 4341718571, 4341849667, 4341980767, 4342111841, + 4342242917, 4342373989, 4342505071, 4342636153, 4342767229, 4342898311, 4343029409, + 4343160487, 4343291599, 4343422687, 4343553761, 4343684833, 4343815909, 4343947019, + 4344078107, 4344209197, 4344340307, 4344471421, 4344602527, 4344733637, 4344864739, + 4344995819, 4345126913, 4345257989, 4345389067, 4345520149, 4345651223, 4345782323, + 4345913399, 4346044481, 4346175557, 4346306659, 4346437793, 4346568893, 4346699989, + 4346831107, 4346962189, 4347093271, 4347224347, 4347355429, 4347486503, 4347617579, + 4347748697, 4347879779, 4348010851, 4348141951, 4348273043, 4348404209, 4348535287, + 4348666367, 4348797449, 4348928561, 4349059633, 4349190709, 4349321783, 4349452859, + 4349583941, 4349715043, 4349846129, 4349977201, 4350108293, 4350239371, 4350370457, + 4350501559, 4350632653, 4350763741, 4350894817, 4351025971, 4351157047, 4351288141, + 4351419217, 4351550303, 4351681381, 4351812467, 4351943581, 4352074663, 4352205743, + 4352336881, 4352467963, 4352599039, 4352730127, 4352861269, 4352992361, 4353123443, + 4353254519, 4353385591, 4353516667, 4353647743, 4353778867, 4353909943, 4354041019, + 4354172111, 4354303189, 4354434299, 4354565417, 4354696517, 4354827643, 4354958747, + 4355089841, 4355220923, 4355351999, 4355483071, 4355614187, 4355745281, 4355876363, + 4356007441, 4356138559, 4356269653, 4356400729, 4356531833, 4356662909, 4356793997, + 4356925091, 4357056167, 4357187257, 4357318333, 4357449443, 4357580551, 4357711637, + 4357842733, 4357973827, 4358104909, 4358236007, 4358367131, 4358498237, 4358629309, + 4358760391, 4358891473, 4359022553, 4359153671, 4359284837, 4359415909, 4359547013, + 4359678131, 4359809213, 4359940313, 4360071389, 4360202501, 4360333573, 4360464659, + 4360595747, 4360726849, 4360857923, 4360989001, 4361120111, 4361251189, 4361382367, + 4361513501, 4361644577, 4361775661, 4361906743, 4362037817, 4362168901, 4362299983, + 4362431063, 4362562153, 4362693259, 4362824357, 4362955447, 4363086523, 4363217597, + 4363348681, 4363479761, 4363610837, 4363741957, 4363873039, 4364004119, 4364135201, + 4364266327, 4364397409, 4364528501, 4364659589, 4364790679, 4364921789, 4365052871, + 4365183967, 4365315043, 4365446117, 4365577217, 4365708289, 4365839389, 4365970517, + 4366101601, 4366232683, 4366363777, 4366494877, 4366625951, 4366757051, 4366888159, + 4367019253, 4367150351, 4367281439, 4367412521, 4367543611, 4367674687, 4367805769, + 4367936851, 4368067939, 4368199027, 4368330103, 4368461213, 4368592297, 4368723383, + 4368854467, 4368985573, 4369116659, 4369247731, 4369378813, 4369509901, 4369640981, + 4369772063, 4369903163, 4370034283, 4370165363, 4370296459, 4370427553, 4370558627, + 4370689699, 4370820787, 4370951861, 4371083053, 4371214153, 4371345227, 4371476323, + 4371607397, 4371738509, 4371869591, 4372000669, 4372131749, 4372262849, 4372393939, + 4372525013, 4372656097, 4372787173, 4372918259, 4373049337, 4373180411, 4373311511, + 4373442611, 4373573683, 4373704799, 4373835877, 4373966957, 4374098039, 4374229121, + 4374360281, 4374491383, 4374622457, 4374753541, 4374884617, 4375015691, 4375146781, + 4375277857, 4375408963, 4375540063, 4375671163, 4375802293, 4375933381, 4376064461, + 4376195581, 4376326657, 4376457763, 4376588903, 4376720011, 4376851109, 4376982221, + 4377113311, 4377244387, 4377375461, 4377506537, 4377637613, 4377768737, 4377899809, + 4378030903, 4378161979, 4378293053, 4378424143, 4378555229, 4378686313, 4378817411, + 4378948507, 4379079581, 4379210669, 4379341753, 4379472863, 4379603953, 4379735027, + 4379866109, 4379997187, 4380128281, 4380259381, 4380390479, 4380521591, 4380652691, + 4380783767, 4380914851, 4381046027, 4381177121, 4381308209, 4381439329, 4381570409, + 4381701487, 4381832563, 4381963637, 4382094737, 4382225819, 4382356903, 4382487983, + 4382619067, 4382750173, 4382881301, 4383012377, 4383143449, 4383274537, 4383405623, + 4383536701, 4383667777, 4383798869, 4383930071, 4384061147, 4384192231, 4384323313, + 4384454413, 4384585523, 4384716599, 4384847671, 4384978747, 4385109847, 4385240939, + 4385372011, 4385503093, 4385634173, 4385765249, 4385896363, 4386027449, 4386158533, + 4386289613, 4386420691, 4386551809, 4386682903, 4386813979, 4386945053, 4387076129, + 4387207213, 4387338323, 4387469413, 4387600493, 4387731583, 4387862657, 4387993747, + 4388124833, 4388255923, 4388387023, 4388518111, 4388649193, 4388780269, 4388911343, + 4389042433, 4389173549, 4389304631, 4389435707, 4389566809, 4389697883, 4389828983, + 4389960061, 4390091143, 4390222223, 4390353301, 4390484387, 4390615459, 4390746551, + 4390877651, 4391008747, 4391139869, 4391270941, 4391402021, 4391533093, 4391664169, + 4391795341, 4391926417, 4392057497, 4392188569, 4392319643, 4392450721, 4392581803, + 4392712879, 4392843967, 4392975061, 4393106161, 4393237259, 4393368337, 4393499413, + 4393630489, 4393761569, 4393892651, 4394023747, 4394154841, 4394285927, 4394417011, + 4394548087, 4394679173, 4394810269, 4394941391, 4395072463, 4395203581, 4395334693, + 4395465793, 4395596897, 4395727979, 4395859067, 4395990167, 4396121291, 4396252363, + 4396383469, 4396514569, 4396645667, 4396776749, 4396907831, 4397038903, 4397170049, + 4397301163, 4397432293, 4397563369, 4397694463, 4397825543, 4397956637, 4398087737, + 4398218809, 4398349883, 4398480959, 4398612067, 4398743177, 4398874261, 4399005349, + 4399136431, 4399267507, 4399398581, 4399529689, 4399660801, 4399791883, 4399922981, + 4400054059, 4400185159, 4400316241, 4400447321, 4400578397, 4400709493, 4400840581, + 4400971661, 4401102733, 4401233827, 4401364901, 4401495991, 4401627067, 4401758171, + 4401889279, 4402020373, 4402151461, 4402282559, 4402413649, 4402544767, 4402675891, + 4402806983, 4402938073, 4403069149, 4403200223, 4403331323, 4403462461, 4403593549, + 4403724629, 4403855713, 4403986789, 4404117929, 4404249029, 4404380107, 4404511207, + 4404642317, 4404773411, 4404904487, 4405035589, 4405166669, 4405297747, 4405428857, + 4405559933, 4405691071, 4405822147, 4405953221, 4406084317, 4406215423, 4406346499, + 4406477627, 4406608747, 4406739829, 4406870921, 4407001997, 4407133117, 4407264217, + 4407395303, 4407526411, 4407657491, 4407788597, 4407919673, 4408050799, 4408181891, + 4408312967, 4408444081, 4408575179, 4408706273, 4408837361, 4408968439, 4409099537, + 4409230681, 4409361821, 4409492897, 4409623969, 4409755081, 4409886161, 4410017257, + 4410148331, 4410279413, 4410410497, 4410541613, 4410672691, 4410803767, 4410934841, + 4411065913, 4411197029, 4411328101, 4411459177, 4411590251, 4411721351, 4411852441, + 4411983551, 4412114657, 4412245729, 4412376851, 4412507941, 4412639027, 4412770127, + 4412901209, 4413032293, 4413163393, 4413294481, 4413425591, 4413556663, 4413687767, + 4413818863, 4413950003, 4414081079, 4414212161, 4414343237, 4414474331, 4414605467, + 4414736561, 4414867643, 4414998781, 4415129879, 4415260957, 4415392039, 4415523113, + 4415654197, 4415785277, 4415916359, 4416047437, 4416178567, 4416309647, 4416440719, + 4416571799, 4416702877, 4416833999, 4416965071, 4417096147, 4417227253, 4417358347, + 4417489469, 4417620541, 4417751621, 4417882697, 4418013773, 4418144869, 4418275957, + 4418407033, 4418538109, 4418669191, 4418800291, 4418931383, 4419062489, 4419193577, + 4419324649, 4419455743, 4419586817, 4419717899, 4419848977, 4419980057, 4420111147, + 4420242221, 4420373311, 4420504409, 4420635481, 4420766579, 4420897667, 4421028749, + 4421159833, 4421290927, 4421422009, 4421553091, 4421684177, 4421815271, 4421946343, + 4422077437, 4422208529, 4422339611, 4422470683, 4422601811, 4422732883, 4422864001, + 4422995099, 4423126193, 4423257269, 4423388351, 4423519427, 4423650523, 4423781603, + 4423912693, 4424043791, 4424174891, 4424305993, 4424437133, 4424568227, 4424699371, + 4424830483, 4424961557, 4425092681, 4425223757, 4425354839, 4425485923, 4425617011, + 4425748097, 4425879223, 4426010297, 4426141373, 4426272449, 4426403537, 4426534691, + 4426665781, 4426796863, 4426927963, 4427059069, 4427190143, 4427321243, 4427452319, + 4427583403, 4427714527, 4427845601, 4427976677, 4428107753, 4428238879, 4428369961, + 4428501059, 4428632183, 4428763259, 4428894373, 4429025477, 4429156549, 4429287631, + 4429418717, 4429549799, 4429680901, 4429812001, 4429943143, 4430074223, 4430205331, + 4430336447, 4430467577, 4430598659, 4430729747, 4430860831, 4430991923, 4431123017, + 4431254101, 4431385213, 4431516311, 4431647411, 4431778487, 4431909577, 4432040651, + 4432171741, 4432302817, 4432433903, 4432565017, 4432696123, 4432827199, 4432958287, + 4433089363, 4433220443, 4433351599, 4433482687, 4433613781, 4433744933, 4433876009, + 4434007087, 4434138179, 4434269251, 4434400337, 4434531427, 4434662503, 4434793589, + 4434924667, 4435055767, 4435186871, 4435317961, 4435449043, 4435580117, 4435711199, + 4435842287, 4435973359, 4436104441, 4436235523, 4436366621, 4436497711, 4436628799, + 4436759879, 4436890957, 4437022081, 4437153157, 4437284279, 4437415357, 4437546467, + 4437677551, 4437808649, 4437939721, 4438070803, 4438201891, 4438332971, 4438464047, + 4438595123, 4438726199, 4438857287, 4438988479, 4439119571, 4439250659, 4439381747, + 4439512823, 4439643899, 4439774971, 4439906071, 4440037159, 4440168241, 4440299323, + 4440430399, 4440561523, 4440692611, 4440823711, 4440954803, 4441085879, 4441216951, + 4441348099, 4441479173, 4441610269, 4441741399, 4441872481, 4442003557, 4442134637, + 4442265757, 4442396867, 4442527961, 4442659037, 4442790127, 4442921213, 4443052309, + 4443183413, 4443314507, 4443445579, 4443576667, 4443707761, 4443838849, 4443969953, + 4444101047, 4444232147, 4444363237, 4444494311, 4444625411, 4444756487, 4444887581, + 4445018741, 4445149837, 4445280971, 4445412061, 4445543149, 4445674223, 4445805349, + 4445936423, 4446067537, 4446198611, 4446329687, 4446460787, 4446591871, 4446722947, + 4446854023, 4446985097, 4447116187, 4447247261, 4447378339, 4447509413, 4447640507, + 4447771583, 4447902713, 4448033797, 4448164873, 4448295947, 4448427019, 4448558117, + 4448689199, 4448820307, 4448951389, 4449082481, 4449213619, 4449344707, 4449475781, + 4449606853, 4449737959, 4449869033, 4450000109, 4450131197, 4450262287, 4450393361, + 4450524523, 4450655603, 4450786723, 4450917817, 4451048893, 4451179969, 4451311061, + 4451442137, 4451573219, 4451704297, 4451835371, 4451966473, 4452097567, 4452228653, + 4452359759, 4452490877, 4452621949, 4452753031, 4452884123, 4453015201, 4453146283, + 4453277357, 4453408457, 4453539533, 4453670609, 4453801691, 4453932767, 4454063879, + 4454194951, 4454326031, 4454457149, 4454588263, 4454719349, 4454850467, 4454981543, + 4455112661, 4455243733, 4455374831, 4455505981, 4455637093, 4455768169, 4455899243, + 4456030333, 4456161439, 4456292513, 4456423603, 4456554691, 4456685777, 4456816853, + 4456947931, 4457079007, 4457210113, 4457341219, 4457472319, 4457603401, 4457734483, + 4457865571, 4457996651, 4458127741, 4458258839, 4458389921, 4458521009, 4458652087, + 4458783193, 4458914269, 4459045369, 4459176473, 4459307609, 4459438769, 4459569847, + 4459700929, 4459832009, 4459963093, 4460094167, 4460225279, 4460356363, 4460487439, + 4460618521, 4460749613, 4460880689, 4461011761, 4461142837, 4461273923, 4461405019, + 4461536111, 4461667207, 4461798307, 4461929383, 4462060457, 4462191551, 4462322647, + 4462453739, 4462584851, 4462715969, 4462847069, 4462978183, 4463109271, 4463240351, + 4463371459, 4463502551, 4463633641, 4463764717, 4463895859, 4464026951, 4464158057, + 4464289169, 4464420241, 4464551389, 4464682463, 4464813623, 4464944741, 4465075831, + 4465206997, 4465338103, 4465469189, 4465600291, 4465731379, 4465862503, 4465993603, + 4466124679, 4466255771, 4466386843, 4466517917, 4466648999, 4466780077, 4466911159, + 4467042233, 4467173341, 4467304433, 4467435527, 4467566603, 4467697691, 4467828787, + 4467959861, 4468090961, 4468222049, 4468353133, 4468484233, 4468615313, 4468746389, + 4468877473, 4469008549, 4469139671, 4469270759, 4469401873, 4469532979, 4469664053, + 4469795173, 4469926267, 4470057373, 4470188473, 4470319573, 4470450653, 4470581729, + 4470712823, 4470843907, 4470975043, 4471106141, 4471237217, 4471368289, 4471499407, + 4471630483, 4471761599, 4471892671, 4472023753, 4472154839, 4472285927, 4472417003, + 4472548079, 4472679191, 4472810269, 4472941367, 4473072479, 4473203561, 4473334633, + 4473465709, 4473596783, 4473727883, 4473858967, 4473990041, 4474121137, 4474252229, + 4474383301, 4474514381, 4474645457, 4474776529, 4474907609, 4475038693, 4475169767, + 4475300861, 4475431943, 4475563019, 4475694109, 4475825191, 4475956279, 4476087353, + 4476218441, 4476349523, 4476480599, 4476611687, 4476742763, 4476873839, 4477004951, + 4477136023, 4477267133, 4477398217, 4477529321, 4477660417, 4477791491, 4477922573, + 4478053663, 4478184749, 4478315843, 4478446957, 4478578033, 4478709113, 4478840221, + 4478971297, 4479102373, 4479233453, 4479364531, 4479495611, 4479626707, 4479757787, + 4479888877, 4480020031, 4480151119, 4480282211, 4480413299, 4480544381, 4480675457, + 4480806601, 4480937677, 4481068769, 4481199841, 4481330921, 4481462009, 4481593111, + 4481724187, 4481855267, 4481986339, 4482117421, 4482248501, 4482379591, 4482510667, + 4482641749, 4482772873, 4482903949, 4483035071, 4483166189, 4483297267, 4483428353, + 4483559429, 4483690511, 4483821611, 4483952713, 4484083787, 4484214877, 4484345959, + 4484477069, 4484608151, 4484739227, 4484870311, 4485001399, 4485132481, 4485263579, + 4485394673, 4485525763, 4485656849, 4485787921, 4485919001, 4486050077, 4486181179, + 4486312297, 4486443371, 4486574473, 4486705577, 4486836667, 4486967747, 4487098823, + 4487229907, 4487360993, 4487492071, 4487623169, 4487754241, 4487885317, 4488016397, + 4488147493, 4488278567, 4488409697, 4488540769, 4488671861, 4488802949, 4488934061, + 4489065167, 4489196249, 4489327321, 4489458397, 4489589471, 4489720549, 4489851629, + 4489982711, 4490113861, 4490244991, 4490376083, 4490507191, 4490638279, 4490769359, + 4490900503, 4491031591, 4491162667, 4491293773, 4491424849, 4491555973, 4491687047, + 4491818131, 4491949309, 4492080401, 4492211483, 4492342597, 4492473697, 4492604771, + 4492735859, 4492866949, 4492998049, 4493129167, 4493260273, 4493391373, 4493522521, + 4493653603, 4493784679, 4493915761, 4494046841, 4494177917, 4494308993, 4494440081, + 4494571157, 4494702239, 4494833311, 4494964423, 4495095529, 4495226611, 4495357721, + 4495488797, 4495619881, 4495750957, 4495882037, 4496013121, 4496144201, 4496275279, + 4496406359, 4496537449, 4496668523, 4496799607, 4496930693, 4497061817, 4497192899, + 4497323981, 4497455063, 4497586141, 4497717223, 4497848309, 4497979411, 4498110493, + 4498241641, 4498372741, 4498503827, 4498634951, 4498766023, 4498897127, 4499028199, + 4499159279, 4499290373, 4499421461, 4499552539, 4499683663, 4499814757, 4499945831, + 4500076927, 4500208001, 4500339073, 4500470147, 4500601249, 4500732347, 4500863429, + 4500994517, 4501125611, 4501256701, 4501387783, 4501518869, 4501649941, 4501781021, + 4501912097, 4502043187, 4502174267, 4502305363, 4502436467, 4502567551, 4502698631, + 4502829707, 4502960789, 4503091883, 4503223001, 4503354139, 4503485219, 4503616291, + 4503747371, 4503878443, 4504009547, 4504140637, 4504271731, 4504402813, 4504533893, + 4504664971, 4504796063, 4504927187, 4505058281, 4505189357, 4505320441, 4505451553, + 4505582647, 4505713781, 4505844859, 4505975933, 4506107033, 4506238147, 4506369223, + 4506500303, 4506631403, 4506762503, 4506893627, 4507024699, 4507155781, 4507286869, + 4507417979, 4507549051, 4507680193, 4507811281, 4507942357, 4508073433, 4508204507, + 4508335603, 4508466719, 4508597813, 4508728897, 4508859973, 4508991103, 4509122221, + 4509253313, 4509384389, 4509515473, 4509646549, 4509777653, 4509908749, 4510039829, + 4510170937, 4510302019, 4510433093, 4510564243, 4510695367, 4510826459, 4510957543, + 4511088643, 4511219731, 4511350813, 4511481899, 4511612977, 4511744057, 4511875133, + 4512006269, 4512137363, 4512268459, 4512399553, 4512530651, 4512661729, 4512792811, + 4512923903, 4513054999, 4513186087, 4513317167, 4513448243, 4513579321, 4513710403, + 4513841483, 4513972591, 4514103677, 4514234761, 4514365841, 4514496941, 4514628031, + 4514759107, 4514890187, 4515021263, 4515152359, 4515283447, 4515414539, 4515545611, + 4515676699, 4515807827, 4515938927, 4516070011, 4516201091, 4516332169, 4516463243, + 4516594343, 4516725431, 4516856543, 4516987627, 4517118713, 4517249903, 4517381059, + 4517512171, 4517643259, 4517774353, 4517905429, 4518036521, 4518167593, 4518298693, + 4518429911, 4518561001, 4518692093, 4518823189, 4518954269, 4519085359, 4519216477, + 4519347563, 4519478657, 4519609751, 4519740913, 4519872001, 4520003077, 4520134169, + 4520265257, 4520396351, 4520527523, 4520658629, 4520789717, 4520920841, 4521051943, + 4521183053, 4521314129, 4521445207, 4521576287, 4521707369, 4521838499, 4521969601, + 4522100677, 4522231771, 4522362857, 4522493939, 4522625011, 4522756111, 4522887199, + 4523018341, 4523149441, 4523280521, 4523411597, 4523542679, 4523673751, 4523804827, + 4523935919, 4524067003, 4524198079, 4524329189, 4524460279, 4524591377, 4524722467, + 4524853559, 4524984679, 4525115831, 4525246907, 4525378001, 4525509083, 4525640173, + 4525771267, 4525902341, 4526033417, 4526164493, 4526295589, 4526426683, 4526557781, + 4526688869, 4526819951, 4526951047, 4527082129, 4527213209, 4527344281, 4527475357, + 4527606431, 4527737531, 4527868607, 4527999701, 4528130801, 4528261939, 4528393021, + 4528524101, 4528655179, 4528786253, 4528917331, 4529048413, 4529179493, 4529310571, + 4529441671, 4529572753, 4529703877, 4529834989, 4529966071, 4530097157, 4530228253, + 4530359377, 4530490469, 4530621553, 4530752627, 4530883703, 4531014809, 4531145893, + 4531276993, 4531408081, 4531539161, 4531670233, 4531801349, 4531932467, 4532063567, + 4532194651, 4532325727, 4532456861, 4532587951, 4532719049, 4532850139, 4532981227, + 4533112301, 4533243419, 4533374501, 4533505633, 4533636739, 4533767827, 4533898903, + 4534030001, 4534161089, 4534292177, 4534423259, 4534554331, 4534685423, 4534816499, + 4534947601, 4535078689, 4535209771, 4535340853, 4535471929, 4535603027, 4535734103, + 4535865179, 4535996251, 4536127333, 4536258407, 4536389489, 4536520577, 4536651667, + 4536782759, 4536913853, 4537044943, 4537176031, 4537307113, 4537438187, 4537569307, + 4537700459, 4537831531, 4537962613, 4538093699, 4538224771, 4538355847, 4538486941, + 4538618033, 4538749121, 4538880217, 4539011311, 4539142411, 4539273503, 4539404581, + 4539535673, 4539666749, 4539797849, 4539928957, 4540060039, 4540191121, 4540322197, + 4540453273, 4540584361, 4540715441, 4540846573, 4540977647, 4541108729, 4541239811, + 4541370917, 4541502011, 4541633101, 4541764177, 4541895269, 4542026369, 4542157441, + 4542288529, 4542419603, 4542550681, 4542681761, 4542812843, 4542943921, 4543075013, + 4543206097, 4543337221, 4543468343, 4543599421, 4543730537, 4543861633, 4543992737, + 4544123827, 4544254907, 4544385997, 4544517097, 4544648183, 4544779279, 4544910353, + 4545041437, 4545172543, 4545303619, 4545434693, 4545565793, 4545696871, 4545827959, + 4545959101, 4546090177, 4546221259, 4546352333, 4546483421, 4546614497, 4546745573, + 4546876669, 4547007749, 4547138821, 4547269907, 4547400983, 4547532061, 4547663147, + 4547794259, 4547925359, 4548056441, 4548187543, 4548318623, 4548449699, 4548580781, + 4548711877, 4548842959, 4548974041, 4549105177, 4549236269, 4549367359, 4549498441, + 4549629521, 4549760597, 4549891681, 4550022761, 4550153837, 4550284913, 4550416007, + 4550547149, 4550678281, 4550809363, 4550940437, 4551071527, 4551202657, 4551333751, + 4551464843, 4551595921, 4551727007, 4551858107, 4551989203, 4552120319, 4552251397, + 4552382491, 4552513591, 4552644731, 4552775803, 4552906877, 4553037949, 4553169043, + 4553300117, 4553431189, 4553562263, 4553693351, 4553824427, 4553955547, 4554086623, + 4554217699, 4554348779, 4554479851, 4554610927, 4554742009, 4554873091, 4555004213, + 4555135313, 4555266421, 4555397519, 4555528609, 4555659683, 4555790777, 4555921849, + 4556052929, 4556184019, 4556315147, 4556446241, 4556577331, 4556708417, 4556839517, + 4556970601, 4557101693, 4557232781, 4557363857, 4557494941, 4557626057, 4557757133, + 4557888217, 4558019299, 4558150391, 4558281487, 4558412581, 4558543663, 4558674739, + 4558805819, 4558936901, 4559067983, 4559199061, 4559330161, 4559461237, 4559592377, + 4559723449, 4559854543, 4559985631, 4560116731, 4560247823, 4560378913, 4560510011, + 4560641083, 4560772169, 4560903247, 4561034327, 4561165423, 4561296527, 4561427609, + 4561558681, 4561689757, 4561820833, 4561951931, 4562083007, 4562214103, 4562345209, + 4562476283, 4562607367, 4562738561, 4562869667, 4563000791, 4563131863, 4563262943, + 4563394021, 4563525137, 4563656221, 4563787337, 4563918431, 4564049537, 4564180609, + 4564311683, 4564442777, 4564573861, 4564704941, 4564836049, 4564967123, 4565098199, + 4565229287, 4565360399, 4565491477, 4565622559, 4565753641, 4565884717, 4566015791, + 4566146881, 4566277981, 4566409073, 4566540191, 4566671273, 4566802349, 4566933467, + 4567064597, 4567195687, 4567326767, 4567457857, 4567588931, 4567720037, 4567851121, + 4567982197, 4568113271, 4568244353, 4568375453, 4568506529, 4568637611, 4568768753, + 4568899831, 4569030911, 4569162023, 4569293129, 4569424201, 4569555299, 4569686413, + 4569817507, 4569948587, 4570079681, 4570210763, 4570341859, 4570472947, 4570604021, + 4570735111, 4570866221, 4570997357, 4571128483, 4571259569, 4571390641, 4571521727, + 4571652851, 4571783947, 4571915021, 4572046117, 4572177191, 4572308341, 4572439439, + 4572570517, 4572701663, 4572832751, 4572963877, 4573094987, 4573226087, 4573357169, + 4573488259, 4573619339, 4573750429, 4573881511, 4574012609, 4574143703, 4574274797, + 4574405873, 4574536969, 4574668067, 4574799167, 4574930263, 4575061417, 4575192509, + 4575323581, 4575454711, 4575585793, 4575716879, 4575848023, 4575979123, 4576110197, + 4576241279, 4576372351, 4576503493, 4576634567, 4576765651, 4576896767, 4577027839, + 4577158921, 4577290009, 4577421083, 4577552197, 4577683273, 4577814347, 4577945447, + 4578076553, 4578207653, 4578338767, 4578469867, 4578601031, 4578732127, 4578863227, + 4578994313, 4579125443, 4579256531, 4579387633, 4579518721, 4579649843, 4579780921, + 4579911997, 4580043077, 4580174149, 4580305253, 4580436347, 4580567423, 4580698517, + 4580829593, 4580960677, 4581091759, 4581222847, 4581353971, 4581485053, 4581616141, + 4581747217, 4581878297, 4582009387, 4582140467, 4582271557, 4582402633, 4582533733, + 4582664809, 4582795939, 4582927021, 4583058097, 4583189251, 4583320337, 4583451409, + 4583582513, 4583713597, 4583844721, 4583975821, 4584106909, 4584237997, 4584369137, + 4584500209, 4584631283, 4584762359, 4584893449, 4585024529, 4585155613, 4585286707, + 4585417787, 4585548859, 4585679953, 4585811033, 4585942111, 4586073229, 4586204303, + 4586335421, 4586466509, 4586597611, 4586728693, 4586859773, 4586990861, 4587121937, + 4587253019, 4587384103, 4587515197, 4587646279, 4587777391, 4587908477, 4588039549, + 4588170623, 4588301701, 4588432811, 4588563883, 4588694977, 4588826089, 4588957201, + 4589088277, 4589219351, 4589350511, 4589481593, 4589612681, 4589743849, 4589874923, + 4590006019, 4590137107, 4590268187, 4590399269, 4590530387, 4590661469, 4590792551, + 4590923633, 4591054723, 4591185799, 4591316903, 4591447999, 4591579073, 4591710169, + 4591841251, 4591972327, 4592103421, 4592234501, 4592365573, 4592496653, 4592627759, + 4592758861, 4592889943, 4593021077, 4593152149, 4593283223, 4593414299, 4593545377, + 4593676501, 4593807607, 4593938689, 4594069763, 4594200841, 4594331953, 4594463053, + 4594594127, 4594725257, 4594856401, 4594987483, 4595118557, 4595249657, 4595380729, + 4595511821, 4595642897, 4595773969, 4595905073, 4596036199, 4596167299, 4596298393, + 4596429473, 4596560587, 4596691681, 4596822823, 4596953909, 4597084997, 4597216093, + 4597347197, 4597478339, 4597609469, 4597740577, 4597871657, 4598002729, 4598133811, + 4598264939, 4598396027, 4598527099, 4598658173, 4598789263, 4598920351, 4599051451, + 4599182527, 4599313619, 4599444721, 4599575809, 4599706883, 4599837959, 4599969041, + 4600100123, 4600231231, 4600362359, 4600493477, 4600624571, 4600755647, 4600886723, + 4601017807, 4601148941, 4601280017, 4601411093, 4601542177, 4601673269, 4601804353, + 4601935447, 4602066533, 4602197617, 4602328693, 4602459769, 4602590879, 4602721969, + 4602853043, 4602984131, 4603115221, 4603246301, 4603377421, 4603508519, 4603639591, + 4603770671, 4603901759, 4604032831, 4604163929, 4604295001, 4604426087, 4604557159, + 4604688259, 4604819339, 4604950423, 4605081497, 4605212593, 4605343679, 4605474763, + 4605605863, 4605736939, 4605868031, 4605999109, 4606130203, 4606261279, 4606392359, + 4606523477, 4606654571, 4606785649, 4606916723, 4607047799, 4607178893, 4607309969, + 4607441057, 4607572133, 4607703257, 4607834339, 4607965423, 4608096509, 4608227599, + 4608358687, 4608489779, 4608620857, 4608751943, 4608883043, 4609014121, 4609145197, + 4609276277, 4609407373, 4609538471, 4609669543, 4609800619, 4609931707, 4610062811, + 4610193883, 4610324981, 4610456107, 4610587181, 4610718271, 4610849417, 4610980501, + 4611111581, 4611242659, 4611373759, 4611504893, 4611635969, 4611767047, 4611898121, + 4612029203, 4612160279, 4612291379, 4612422499, 4612553573, 4612684673, 4612815749, + 4612946827, 4613077901, 4613208979, 4613340059, 4613471143, 4613602243, 4613733391, + 4613864473, 4613995591, 4614126677, 4614257771, 4614388861, 4614519937, 4614651017, + 4614782099, 4614913181, 4615044289, 4615175399, 4615306519, 4615437601, 4615568693, + 4615699783, 4615830883, 4615961983, 4616093071, 4616224159, 4616355371, 4616486509, + 4616617591, 4616748673, 4616879753, 4617010891, 4617141967, 4617273043, 4617404117, + 4617535201, 4617666337, 4617797419, 4617928507, 4618059587, 4618190671, 4618321769, + 4618452841, 4618583927, 4618715021, 4618846121, 4618977227, 4619108309, 4619239403, + 4619370479, 4619501561, 4619632651, 4619763727, 4619894827, 4620025951, 4620157027, + 4620288103, 4620419189, 4620550261, 4620681341, 4620812431, 4620943541, 4621074637, + 4621205737, 4621336813, 4621467919, 4621598999, 4621730159, 4621861261, 4621992343, + 4622123417, 4622254493, 4622385583, 4622516659, 4622647747, 4622778821, 4622909899, + 4623040991, 4623172069, 4623303151, 4623434239, 4623565319, 4623696391, 4623827473, + 4623958589, 4624089683, 4624220767, 4624351873, 4624482949, 4624614047, 4624745123, + 4624876229, 4625007307, 4625138381, 4625269457, 4625400607, 4625531681, 4625662759, + 4625793841, 4625924921, 4626056041, 4626187141, 4626318217, 4626449297, 4626580369, + 4626711491, 4626842567, 4626973679, 4627104791, 4627235897, 4627367009, 4627498147, + 4627629229, 4627760329, 4627891403, 4628022479, 4628153557, 4628284673, 4628415817, + 4628546891, 4628677981, 4628809067, 4628940143, 4629071231, 4629202321, 4629333407, + 4629464501, 4629595573, 4629726697, 4629857797, 4629988873, 4630119953, 4630251071, + 4630382147, 4630513243, 4630644377, 4630775453, 4630906541, 4631037661, 4631168741, + 4631299831, 4631430913, 4631561989, 4631693111, 4631824189, 4631955277, 4632086359, + 4632217481, 4632348563, 4632479653, 4632610727, 4632741809, 4632872891, 4633003981, + 4633135057, 4633266137, 4633397221, 4633528297, 4633659377, 4633790479, 4633921559, + 4634052659, 4634183747, 4634314843, 4634445917, 4634576993, 4634708069, 4634839163, + 4634970251, 4635101327, 4635232417, 4635363503, 4635494593, 4635625711, 4635756803, + 4635887891, 4636019009, 4636150091, 4636281187, 4636412269, 4636543349, 4636674437, + 4636805513, 4636936589, 4637067689, 4637198771, 4637329877, 4637460953, 4637592031, + 4637723117, 4637854223, 4637985301, 4638116377, 4638247451, 4638378527, 4638509677, + 4638640771, 4638771847, 4638902921, 4639033999, 4639165073, 4639296169, 4639427257, + 4639558337, 4639689409, 4639820483, 4639951571, 4640082649, 4640213723, 4640344801, + 4640475911, 4640606989, 4640738077, 4640869169, 4641000311, 4641131431, 4641262567, + 4641393649, 4641524747, 4641655819, 4641786899, 4641918007, 4642049081, 4642180189, + 4642311269, 4642442353, 4642573433, 4642704541, 4642835623, 4642966733, 4643097829, + 4643228917, 4643359993, 4643491081, 4643622163, 4643753243, 4643884331, 4644015413, + 4644146527, 4644277601, 4644408677, 4644539749, 4644670837, 4644801911, 4644932993, + 4645064069, 4645195153, 4645326233, 4645457309, 4645588397, 4645719479, 4645850579, + 4645981651, 4646112787, 4646243863, 4646374939, 4646506019, 4646637091, 4646768171, + 4646899247, 4647030337, 4647161419, 4647292519, 4647423607, 4647554699, 4647685781, + 4647816857, 4647947929, 4648079011, 4648210121, 4648341289, 4648472377, 4648603489, + 4648734577, 4648865653, 4648996769, 4649127881, 4649258981, 4649390059, 4649521133, + 4649652233, 4649783351, 4649914447, 4650045523, 4650176599, 4650307679, 4650438787, + 4650569879, 4650700969, 4650832057, 4650963137, 4651094219, 4651225331, 4651356407, + 4651487497, 4651618613, 4651749769, 4651880887, 4652011963, 4652143079, 4652274157, + 4652405231, 4652536367, 4652667473, 4652798551, 4652929661, 4653060733, 4653191819, + 4653322907, 4653454037, 4653585121, 4653716203, 4653847277, 4653978353, 4654109459, + 4654240531, 4654371637, 4654502717, 4654633799, 4654764871, 4654895951, 4655027051, + 4655158129, 4655289203, 4655420279, 4655551357, 4655682463, 4655813549, 4655944627, + 4656075703, 4656206801, 4656337891, 4656468967, 4656600041, 4656731117, 4656862211, + 4656993283, 4657124357, 4657255429, 4657386511, 4657517629, 4657648703, 4657779787, + 4657910861, 4658041937, 4658173033, 4658304121, 4658435209, 4658566291, 4658697377, + 4658828477, 4658959549, 4659090641, 4659221713, 4659352799, 4659483887, 4659614959, + 4659746089, 4659877193, 4660008271, 4660139353, 4660270481, 4660401601, 4660532741, + 4660663829, 4660794907, 4660925987, 4661057077, 4661188157, 4661319241, 4661450341, + 4661581439, 4661712521, 4661843611, 4661974777, 4662105853, 4662236933, 4662368021, + 4662499103, 4662630187, 4662761261, 4662892387, 4663023467, 4663154611, 4663285687, + 4663416763, 4663547879, 4663678961, 4663810043, 4663941151, 4664072293, 4664203393, + 4664334541, 4664465621, 4664596723, 4664727811, 4664858893, 4664989999, 4665121093, + 4665252187, 4665383297, 4665514393, 4665645521, 4665776593, 4665907699, 4666038869, + 4666169951, 4666301039, 4666432171, 4666563271, 4666694353, 4666825447, 4666956523, + 4667087597, 4667218669, 4667349749, 4667480821, 4667611933, 4667743013, 4667874089, + 4668005171, 4668136247, 4668267343, 4668398419, 4668529499, 4668660583, 4668791711, + 4668922787, 4669053869, 4669184951, 4669316027, 4669447129, 4669578217, 4669709321, + 4669840423, 4669971499, 4670102573, 4670233681, 4670364767, 4670495857, 4670626967, + 4670758063, 4670889163, 4671020239, 4671151339, 4671282431, 4671413507, 4671544589, + 4671675677, 4671806801, 4671937889, 4672069001, 4672200167, 4672331291, 4672462363, + 4672593439, 4672724521, 4672855601, 4672986677, 4673117873, 4673248961, 4673380057, + 4673511133, 4673642209, 4673773319, 4673904397, 4674035503, 4674166579, 4674297689, + 4674428761, 4674559861, 4674690941, 4674822023, 4674953117, 4675084207, 4675215287, + 4675346371, 4675477453, 4675608529, 4675739611, 4675870699, 4676001773, 4676132887, + 4676263961, 4676395067, 4676526157, 4676657233, 4676788313, 4676919409, 4677050491, + 4677181589, 4677312667, 4677443741, 4677574813, 4677705917, 4677837019, 4677968101, + 4678099177, 4678230269, 4678361371, 4678492447, 4678623583, 4678754657, 4678885751, + 4679016829, 4679147903, 4679278991, 4679410063, 4679541151, 4679672269, 4679803351, + 4679934439, 4680065539, 4680196643, 4680327737, 4680458837, 4680589919, 4680721009, + 4680852083, 4680983171, 4681114247, 4681245323, 4681376407, 4681507507, 4681638583, + 4681769707, 4681900781, 4682031929, 4682163007, 4682294107, 4682425193, 4682556317, + 4682687393, 4682818499, 4682949599, 4683080671, 4683211747, 4683342841, 4683473933, + 4683605011, 4683736093, 4683867197, 4683998269, 4684129361, 4684260433, 4684391507, + 4684522589, 4684653667, 4684784743, 4684915819, 4685046901, 4685177999, 4685309117, + 4685440237, 4685571313, 4685702429, 4685833501, 4685964607, 4686095681, 4686226771, + 4686357889, 4686488971, 4686620053, 4686751133, 4686882227, 4687013311, 4687144391, + 4687275497, 4687406569, 4687537663, 4687668749, 4687799839, 4687930913, 4688061991, + 4688193101, 4688324197, 4688455271, 4688586359, 4688717443, 4688848559, 4688979653, + 4689110749, 4689241847, 4689372937, 4689504023, 4689635101, 4689766231, 4689897307, + 4690028401, 4690159493, 4690290587, 4690421677, 4690552751, 4690683827, 4690814899, + 4690945993, 4691077073, 4691208173, 4691339281, 4691470369, 4691601457, 4691732543, + 4691863663, 4691994793, 4692125891, 4692256963, 4692388037, 4692519109, 4692650201, + 4692781273, 4692912361, 4693043461, 4693174559, 4693305637, 4693436711, 4693567787, + 4693698881, 4693829971, 4693961057, 4694092129, 4694223223, 4694354309, 4694485409, + 4694616517, 4694747623, 4694878757, 4695009857, 4695140941, 4695272033, 4695403109, + 4695534187, 4695665267, 4695796351, 4695927589, 4696058687, 4696189789, 4696320869, + 4696451957, 4696583033, 4696714109, 4696845253, 4696976327, 4697107399, 4697238589, + 4697369681, 4697500757, 4697631847, 4697762929, 4697894011, 4698025093, 4698156181, + 4698287281, 4698418381, 4698549487, 4698680573, 4698811669, 4698942779, 4699073879, + 4699204981, 4699336087, 4699467173, 4699598287, 4699729379, 4699860467, 4699991539, + 4700122613, 4700253689, 4700384761, 4700515871, 4700646943, 4700778037, 4700909113, + 4701040189, 4701171283, 4701302381, 4701433459, 4701564533, 4701695611, 4701826687, + 4701957761, 4702088843, 4702219919, 4702350997, 4702482073, 4702613177, 4702744273, + 4702875361, 4703006453, 4703137577, 4703268649, 4703399797, 4703530891, 4703661973, + 4703793077, 4703924161, 4704055253, 4704186329, 4704317419, 4704448501, 4704579599, + 4704710693, 4704841777, 4704972871, 4705103959, 4705235131, 4705366223, 4705497299, + 4705628371, 4705759447, 4705890521, 4706021597, 4706152669, 4706283779, 4706414891, + 4706545973, 4706677049, 4706808133, 4706939207, 4707070283, 4707201361, 4707332459, + 4707463559, 4707594649, 4707725723, 4707856799, 4707987877, 4708118951, 4708250033, + 4708381121, 4708512223, 4708643309, 4708774391, 4708905491, 4709036621, 4709167693, + 4709298767, 4709429843, 4709560931, 4709692007, 4709823121, 4709954231, 4710085319, + 4710216421, 4710347503, 4710478579, 4710609653, 4710740789, 4710871883, 4711003043, + 4711134157, 4711265311, 4711396433, 4711527511, 4711658599, 4711789697, 4711920799, + 4712051957, 4712183039, 4712314121, 4712445211, 4712576399, 4712707471, 4712838547, + 4712969621, 4713100697, 4713231773, 4713362861, 4713493963, 4713625073, 4713756149, + 4713887239, 4714018327, 4714149409, 4714280503, 4714411621, 4714542709, 4714673797, + 4714804877, 4714935949, 4715067043, 4715198129, 4715329231, 4715460311, 4715591401, + 4715722507, 4715853619, 4715984717, 4716115823, 4716246901, 4716377977, 4716509059, + 4716640133, 4716771221, 4716902341, 4717033427, 4717164503, 4717295591, 4717426687, + 4717557769, 4717688851, 4717819987, 4717951079, 4718082157, 4718213243, 4718344333, + 4718475451, 4718606527, 4718737643, 4718868743, 4718999843, 4719130931, 4719262003, + 4719393079, 4719524167, 4719655249, 4719786343, 4719917429, 4720048511, 4720179587, + 4720310659, 4720441753, 4720572841, 4720703917, 4720834999, 4720966163, 4721097263, + 4721228399, 4721359481, 4721490559, 4721621651, 4721752733, 4721883809, 4722014897, + 4722145973, 4722277099, 4722408209, 4722539321, 4722670411, 4722801541, 4722932633, + 4723063711, 4723194787, 4723325869, 4723456957, 4723588033, 4723719151, 4723850227, + 4723981373, 4724112451, 4724243527, 4724374607, 4724505689, 4724636779, 4724767897, + 4724898977, 4725030113, 4725161191, 4725292283, 4725423359, 4725554443, 4725685537, + 4725816611, 4725947683, 4726078769, 4726209883, 4726340963, 4726472077, 4726603199, + 4726734283, 4726865369, 4726996441, 4727127523, 4727258617, 4727389697, 4727520781, + 4727651861, 4727782967, 4727914049, 4728045137, 4728176209, 4728307303, 4728438409, + 4728569497, 4728700577, 4728831649, 4728962723, 4729093841, 4729224937, 4729356011, + 4729487089, 4729618171, 4729749281, 4729880359, 4730011459, 4730142551, 4730273671, + 4730404801, 4730535893, 4730666977, 4730798117, 4730929223, 4731060343, 4731191417, + 4731322493, 4731453569, 4731584651, 4731715763, 4731846839, 4731977941, 4732109051, + 4732240129, 4732371221, 4732502293, 4732633429, 4732764523, 4732895599, 4733026681, + 4733157823, 4733288927, 4733420009, 4733551093, 4733682179, 4733813267, 4733944343, + 4734075421, 4734206501, 4734337591, 4734468709, 4734599783, 4734730867, 4734861961, + 4734993061, 4735124143, 4735255223, 4735386319, 4735517401, 4735648487, 4735779569, + 4735910659, 4736041753, 4736172829, 4736303927, 4736435021, 4736566117, 4736697193, + 4736828267, 4736959517, 4737090599, 4737221677, 4737352751, 4737483841, 4737614929, + 4737746017, 4737877093, 4738008179, 4738139261, 4738270337, 4738401413, 4738532507, + 4738663603, 4738794691, 4738925777, 4739056871, 4739187949, 4739319031, 4739450143, + 4739581219, 4739712301, 4739843393, 4739974507, 4740105583, 4740236659, 4740367733, + 4740498811, 4740629893, 4740760991, 4740892069, 4741023149, 4741154239, 4741285321, + 4741416409, 4741547509, 4741678583, 4741809659, 4741940767, 4742071843, 4742202923, + 4742334043, 4742465137, 4742596217, 4742727299, 4742858371, 4742989463, 4743120587, + 4743251717, 4743382801, 4743513883, 4743644987, 4743776087, 4743907163, 4744038281, + 4744169357, 4744300439, 4744431521, 4744562609, 4744693687, 4744824787, 4744955881, + 4745086987, 4745218063, 4745349137, 4745480219, 4745611331, 4745742451, 4745873537, + 4746004649, 4746135727, 4746266807, 4746397907, 4746529027, 4746660101, 4746791177, + 4746922249, 4747053341, 4747184437, 4747315519, 4747446607, 4747577687, 4747708787, + 4747839869, 4747970957, 4748102039, 4748233123, 4748364277, 4748495357, 4748626429, + 4748757521, 4748888603, 4749019687, 4749150773, 4749281869, 4749412949, 4749544021, + 4749675107, 4749806183, 4749937307, 4750068383, 4750199537, 4750330609, 4750461701, + 4750592807, 4750723927, 4750855001, 4750986077, 4751117159, 4751248231, 4751379323, + 4751510411, 4751641483, 4751772569, 4751903669, 4752034747, 4752165833, 4752296917, + 4752428053, 4752559127, 4752690233, 4752821321, 4752952397, 4753083473, 4753214549, + 4753345621, 4753476703, 4753607801, 4753738879, 4753869959, 4754001037, 4754132153, + 4754263249, 4754394341, 4754525453, 4754656549, 4754787637, 4754918711, 4755049807, + 4755180893, 4755311969, 4755443053, 4755574129, 4755705203, 4755836279, 4755967357, + 4756098443, 4756229521, 4756360633, 4756491763, 4756622837, 4756753933, 4756885027, + 4757016107, 4757147207, 4757278319, 4757409409, 4757540483, 4757671579, 4757802659, + 4757933731, 4758064921, 4758195997, 4758327071, 4758458161, 4758589261, 4758720341, + 4758851437, 4758982511, 4759113587, 4759244669, 4759375771, 4759506889, 4759637969, + 4759769041, 4759900127, 4760031223, 4760162371, 4760293451, 4760424527, 4760555627, + 4760686699, 4760817779, 4760948887, 4761079979, 4761211057, 4761342143, 4761473219, + 4761604303, 4761735397, 4761866513, 4761997589, 4762128661, 4762259741, 4762390819, + 4762521923, 4762653001, 4762784077, 4762915159, 4763046251, 4763177339, 4763308411, + 4763439563, 4763570657, 4763701753, 4763832833, 4763963923, 4764094997, 4764226099, + 4764357181, 4764488257, 4764619381, 4764750457, 4764881531, 4765012607, 4765143701, + 4765274779, 4765405961, 4765537037, 4765668109, 4765799209, 4765930283, 4766061407, + 4766192479, 4766323559, 4766454683, 4766585767, 4766716841, 4766847919, 4766979073, + 4767110147, 4767241231, 4767372317, 4767503393, 4767634471, 4767765553, 4767896629, + 4768027717, 4768158797, 4768289879, 4768420957, 4768552039, 4768683149, 4768814249, + 4768945367, 4769076443, 4769207539, 4769338643, 4769469721, 4769600809, 4769731907, + 4769862983, 4769994091, 4770125179, 4770256279, 4770387367, 4770518453, 4770649529, + 4770780613, 4770911707, 4771042799, 4771173877, 4771304959, 4771436057, 4771567159, + 4771698233, 4771829329, 4771960423, 4772091551, 4772222639, 4772353741, 4772484833, + 4772615917, 4772746999, 4772878081, 4773009169, 4773140243, 4773271343, 4773402457, + 4773533549, 4773664627, 4773795703, 4773926777, 4774057903, 4774189001, 4774320077, + 4774451153, 4774582229, 4774713301, 4774844441, 4774975531, 4775106617, 4775237689, + 4775368811, 4775499901, 4775630983, 4775762083, 4775893163, 4776024247, 4776155353, + 4776286429, 4776417509, 4776548611, 4776679711, 4776810803, 4776941879, 4777072987, + 4777204079, 4777335151, 4777466227, 4777597309, 4777728427, 4777859521, 4777990601, + 4778121697, 4778252771, 4778383861, 4778514941, 4778646031, 4778777189, 4778908327, + 4779039403, 4779170489, 4779301567, 4779432727, 4779563801, 4779694879, 4779825977, + 4779957089, 4780088167, 4780219261, 4780350361, 4780481443, 4780612519, 4780743631, + 4780874717, 4781005807, 4781136911, 4781267989, 4781399071, 4781530153, 4781661253, + 4781792333, 4781923409, 4782054481, 4782185567, 4782316697, 4782447809, 4782578897, + 4782710017, 4782841103, 4782972197, 4783103321, 4783234397, 4783365481, 4783496579, + 4783627679, 4783758779, 4783889923, 4784021003, 4784152213, 4784283299, 4784414387, + 4784545459, 4784676551, 4784807627, 4784938727, 4785069811, 4785200911, 4785331987, + 4785463069, 4785594161, 4785725239, 4785856373, 4785987457, 4786118537, 4786249621, + 4786380721, 4786511801, 4786642873, 4786773967, 4786905043, 4787036131, 4787167223, + 4787298301, 4787429377, 4787560471, 4787691551, 4787822629, 4787953739, 4788084839, + 4788215911, 4788347051, 4788478127, 4788609209, 4788740287, 4788871363, 4789002473, + 4789133561, 4789264651, 4789395749, 4789526849, 4789657993, 4789789111, 4789920193, + 4790051303, 4790182417, 4790313491, 4790444573, 4790575651, 4790706727, 4790837827, + 4790968901, 4791099991, 4791231077, 4791362207, 4791493327, 4791624401, 4791755533, + 4791886643, 4792017719, 4792148797, 4792279901, 4792410991, 4792542067, 4792673173, + 4792804279, 4792935353, 4793066459, 4793197531, 4793328649, 4793459753, 4793590843, + 4793721941, 4793853017, 4793984101, 4794115189, 4794246287, 4794377443, 4794508573, + 4794639649, 4794770723, 4794901823, 4795032941, 4795164013, 4795295119, 4795426199, + 4795557287, 4795688377, 4795819453, 4795950539, 4796081627, 4796212711, 4796343787, + 4796474863, 4796605937, 4796737027, 4796868107, 4796999183, 4797130271, 4797261349, + 4797392423, 4797523519, 4797654593, 4797785669, 4797916741, 4798047817, 4798178899, + 4798309981, 4798441057, 4798572131, 4798703267, 4798834349, 4798965461, 4799096587, + 4799227663, 4799358737, 4799489831, 4799620907, 4799751991, 4799883073, 4800014171, + 4800145243, 4800276317, 4800407413, 4800538517, 4800669607, 4800800701, 4800931783, + 4801062857, 4801193933, 4801325027, 4801456133, 4801587239, 4801718329, 4801849421, + 4801980511, 4802111641, 4802242717, 4802373791, 4802504911, 4802635991, 4802767063, + 4802898151, 4803029239, 4803160339, 4803291413, 4803422501, 4803553589, 4803684667, + 4803815743, 4803946817, 4804077907, 4804208999, 4804340089, 4804471187, 4804602263, + 4804733347, 4804864423, 4804995497, 4805126591, 4805257679, 4805388751, 4805519827, + 4805650903, 4805781979, 4805913059, 4806044137, 4806175237, 4806306311, 4806437401, + 4806568477, 4806699571, 4806830659, 4806961739, 4807092827, 4807223903, 4807355009, + 4807486097, 4807617173, 4807748317, 4807879393, 4808010469, 4808141543, 4808272619, + 4808403703, 4808534777, 4808665859, 4808796943, 4808928029, 4809059119, 4809190223, + 4809321299, 4809452377, 4809583453, 4809714527, 4809845609, 4809976747, 4810107859, + 4810238971, 4810370057, 4810501147, 4810632251, 4810763323, 4810894409, 4811025493, + 4811156639, 4811287739, 4811418853, 4811549983, 4811681059, 4811812147, 4811943223, + 4812074297, 4812205439, 4812336577, 4812467659, 4812598733, 4812729847, 4812860933, + 4812992033, 4813123141, 4813254233, 4813385327, 4813516423, 4813647533, 4813778657, + 4813909757, 4814040911, 4814172019, 4814303101, 4814434223, 4814565299, 4814696371, + 4814827447, 4814958527, 4815089621, 4815220703, 4815351787, 4815482869, 4815613961, + 4815745063, 4815876139, 4816007227, 4816138321, 4816269413, 4816400527, 4816531633, + 4816662731, 4816793803, 4816924901, 4817055973, 4817187049, 4817318131, 4817449211, + 4817580337, 4817711411, 4817842501, 4817973577, 4818104701, 4818235801, 4818366893, + 4818497977, 4818629051, 4818760123, 4818891239, 4819022333, 4819153457, 4819284529, + 4819415617, 4819546727, 4819677857, 4819808933, 4819940023, 4820071097, 4820202223, + 4820333351, 4820464457, 4820595587, 4820726663, 4820857747, 4820988827, 4821119903, + 4821250999, 4821382117, 4821513223, 4821644341, 4821775421, 4821906517, 4822037621, + 4822168709, 4822299791, 4822430863, 4822561943, 4822693021, 4822824133, 4822955209, + 4823086327, 4823217403, 4823348479, 4823479553, 4823610637, 4823741753, 4823872829, + 4824003913, 4824135011, 4824266089, 4824397163, 4824528259, 4824659339, 4824790423, + 4824921539, 4825052611, 4825183717, 4825314821, 4825445929, 4825577011, 4825708123, + 4825839197, 4825970297, 4826101387, 4826232469, 4826363543, 4826494693, 4826625779, + 4826756863, 4826887937, 4827019019, 4827150091, 4827281171, 4827412279, 4827543353, + 4827674443, 4827805517, 4827936593, 4828067693, 4828198769, 4828329859, 4828460933, + 4828592033, 4828723111, 4828854193, 4828985333, 4829116417, 4829247539, 4829378629, + 4829509717, 4829640793, 4829771879, 4829903011, 4830034103, 4830165181, 4830296257, + 4830427331, 4830558407, 4830689489, 4830820597, 4830951679, 4831082759, 4831213843, + 4831344919, 4831475993, 4831607069, 4831738141, 4831869221, 4832000317, 4832131393, + 4832262467, 4832393543, 4832524633, 4832655713, 4832786789, 4832917867, 4833048947, + 4833180031, 4833311113, 4833442189, 4833573299, 4833704371, 4833835451, 4833966523, + 4834097621, 4834228699, 4834359773, 4834490867, 4834621943, 4834753093, 4834884227, + 4835015299, 4835146453, 4835277527, 4835408621, 4835539733, 4835670809, 4835801897, + 4835932987, 4836064063, 4836195151, 4836326233, 4836457349, 4836588431, 4836719509, + 4836850589, 4836981689, 4837112767, 4837243843, 4837374917, 4837505989, 4837637093, + 4837768171, 4837899247, 4838030369, 4838161451, 4838292541, 4838423621, 4838554703, + 4838685793, 4838816867, 4838947951, 4839079027, 4839210113, 4839341189, 4839472289, + 4839603371, 4839734443, 4839865519, 4839996649, 4840127737, 4840258847, 4840389929, + 4840521001, 4840652081, 4840783229, 4840914307, 4841045381, 4841176463, 4841307551, + 4841438663, 4841569753, 4841700833, 4841831927, 4841963039, 4842094141, 4842225217, + 4842356293, 4842487387, 4842618463, 4842749543, 4842880619, 4843011703, 4843142783, + 4843273867, 4843404971, 4843536043, 4843667141, 4843798213, 4843929341, 4844060423, + 4844191507, 4844322619, 4844453699, 4844584807, 4844715881, 4844846957, 4844978041, + 4845109121, 4845240203, 4845371281, 4845502373, 4845633449, 4845764527, 4845895609, + 4846026739, 4846157831, 4846288927, 4846420037, 4846551121, 4846682219, 4846813333, + 4846944407, 4847075489, 4847206577, 4847337673, 4847468767, 4847599843, 4847730941, + 4847862029, 4847993113, 4848124187, 4848255317, 4848386401, 4848517483, 4848648559, + 4848779699, 4848910771, 4849041877, 4849172963, 4849304039, 4849435127, 4849566199, + 4849697297, 4849828381, 4849959481, 4850090617, 4850221741, 4850352821, 4850483899, + 4850614973, 4850746081, 4850877167, 4851008243, 4851139331, 4851270491, 4851401609, + 4851532687, 4851663767, 4851794897, 4851925979, 4852057051, 4852188139, 4852319221, + 4852450349, 4852581431, 4852712531, 4852843621, 4852974697, 4853105783, 4853236859, + 4853367941, 4853499019, 4853630113, 4853761189, 4853892311, 4854023387, 4854154463, + 4854285589, 4854416669, 4854547769, 4854678893, 4854809987, 4854941059, 4855072153, + 4855203289, 4855334401, 4855465477, 4855596563, 4855727651, 4855858723, 4855989799, + 4856120903, 4856251997, 4856383073, 4856514149, 4856645231, 4856776313, 4856907389, + 4857038467, 4857169547, 4857300647, 4857431731, 4857562817, 4857693901, 4857824989, + 4857956071, 4858087151, 4858218259, 4858349341, 4858480421, 4858611503, 4858742591, + 4858873699, 4859004793, 4859135887, 4859266981, 4859398069, 4859529149, 4859660231, + 4859791327, 4859922409, 4860053501, 4860184597, 4860315737, 4860446819, 4860577903, + 4860709013, 4860840143, 4860971293, 4861102369, 4861233451, 4861364537, 4861495651, + 4861626733, 4861757843, 4861888961, 4862020057, 4862151137, 4862282213, 4862413289, + 4862544367, 4862675471, 4862806549, 4862937623, 4863068701, 4863199813, 4863330911, + 4863462007, 4863593083, 4863724189, 4863855307, 4863986383, 4864117499, 4864248581, + 4864379659, 4864510733, 4864641811, 4864772893, 4864903993, 4865035067, 4865166161, + 4865297243, 4865428327, 4865559437, 4865690569, 4865821673, 4865952757, 4866083951, + 4866215027, 4866346127, 4866477199, 4866608273, 4866739351, 4866870439, 4867001533, + 4867132609, 4867263689, 4867394767, 4867525843, 4867656953, 4867788031, 4867919267, + 4868050357, 4868181431, 4868312513, 4868443589, 4868574661, 4868705741, 4868836813, + 4868967931, 4869099007, 4869230143, 4869361223, 4869492317, 4869623389, 4869754471, + 4869885557, 4870016633, 4870147753, 4870278827, 4870409909, 4870541017, 4870672111, + 4870803193, 4870934267, 4871065363, 4871196443, 4871327533, 4871458609, 4871589689, + 4871720761, 4871851837, 4871982931, 4872114059, 4872245143, 4872376279, 4872507359, + 4872638443, 4872769529, 4872900611, 4873031711, 4873162787, 4873293883, 4873424977, + 4873556113, 4873687199, 4873818283, 4873949413, 4874080501, 4874211577, 4874342651, + 4874473727, 4874604799, 4874735909, 4874866999, 4874998087, 4875129163, 4875260261, + 4875391333, 4875522409, 4875653527, 4875784649, 4875915731, 4876046803, 4876177903, + 4876308989, 4876440073, 4876571149, 4876702249, 4876833337, 4876964431, 4877095519, + 4877226617, 4877357699, 4877488793, 4877619871, 4877750947, 4877882039, 4878013123, + 4878144223, 4878275329, 4878406409, 4878537491, 4878668563, 4878799643, 4878930733, + 4879061807, 4879192891, 4879324007, 4879455089, 4879586171, 4879717259, 4879848401, + 4879979477, 4880110577, 4880241649, 4880372729, 4880503813, 4880634893, 4880765969, + 4880897057, 4881028133, 4881159229, 4881290321, 4881421397, 4881552469, 4881683549, + 4881814633, 4881945713, 4882076803, 4882207903, 4882338983, 4882470059, 4882601137, + 4882732229, 4882863311, 4882994401, 4883125529, 4883256629, 4883387737, 4883518813, + 4883649889, 4883780977, 4883912071, 4884043147, 4884174227, 4884305299, 4884436391, + 4884567463, 4884698537, 4884829613, 4884960697, 4885091773, 4885222871, 4885353943, + 4885485061, 4885616143, 4885747259, 4885878391, 4886009477, 4886140559, 4886271647, + 4886402723, 4886533811, 4886664901, 4886795981, 4886927113, 4887058207, 4887189323, + 4887320413, 4887451501, 4887582577, 4887713687, 4887844771, 4887975857, 4888106929, + 4888238011, 4888369117, 4888500191, 4888631281, 4888762363, 4888893463, 4889024549, + 4889155631, 4889286707, 4889417779, 4889548861, 4889679947, 4889811019, 4889942107, + 4890073229, 4890204313, 4890335389, 4890466499, 4890597611, 4890728723, 4890859807, + 4890990889, 4891121981, 4891253057, 4891384133, 4891515257, 4891646339, 4891777433, + 4891908523, 4892039617, 4892170721, 4892301833, 4892432921, 4892563999, 4892695109, + 4892826199, 4892957339, 4893088441, 4893219563, 4893350701, 4893481783, 4893612863, + 4893743977, 4893875057, 4894006153, 4894137229, 4894268321, 4894399403, 4894530481, + 4894661581, 4894792691, 4894923799, 4895054887, 4895185961, 4895317051, 4895448223, + 4895579309, 4895710399, 4895841499, 4895972581, 4896103657, 4896234769, 4896365843, + 4896496919, 4896628019, 4896759151, 4896890237, 4897021313, 4897152401, 4897283509, + 4897414591, 4897545677, 4897676801, 4897807877, 4897938953, 4898070031, 4898201129, + 4898332211, 4898463287, 4898594359, 4898725441, 4898856517, 4898987593, 4899118717, + 4899249791, 4899380887, 4899511973, 4899643097, 4899774181, 4899905261, 4900036343, + 4900167449, 4900298551, 4900429627, 4900560761, 4900691839, 4900822967, 4900954039, + 4901085127, 4901216207, 4901347313, 4901478391, 4901609467, 4901740541, 4901871641, + 4902002713, 4902133829, 4902264901, 4902395983, 4902527093, 4902658171, 4902789247, + 4902920339, 4903051451, 4903182533, 4903313669, 4903444751, 4903575823, 4903706923, + 4903838033, 4903969111, 4904100209, 4904231291, 4904362369, 4904493443, 4904624531, + 4904755649, 4904886731, 4905017809, 4905148909, 4905279983, 4905411067, 4905542167, + 4905673271, 4905804353, 4905935449, 4906066531, 4906197607, 4906328689, 4906459763, + 4906590841, 4906721929, 4906853027, 4906984183, 4907115277, 4907246363, 4907377439, + 4907508523, 4907639617, 4907770697, 4907901773, 4908032851, 4908163963, 4908295039, + 4908426119, 4908557201, 4908688283, 4908819361, 4908950461, 4909081561, 4909212643, + 4909343723, 4909474813, 4909605901, 4909736981, 4909868057, 4909999141, 4910130217, + 4910261299, 4910392379, 4910523451, 4910654531, 4910785613, 4910916713, 4911047821, + 4911178903, 4911309989, 4911441071, 4911572167, 4911703241, 4911834329, 4911965417, + 4912096517, 4912227623, 4912358767, 4912489853, 4912620931, 4912752017, 4912883089, + 4913014189, 4913145311, 4913276411, 4913407511, 4913538613, 4913669687, 4913800823, + 4913931929, 4914063013, 4914194093, 4914325183, 4914456269, 4914587351, 4914718427, + 4914849551, 4914980683, 4915111771, 4915242847, 4915373927, 4915505003, 4915636079, + 4915767151, 4915898227, 4916029331, 4916160407, 4916291483, 4916422561, 4916553637, + 4916684713, 4916815807, 4916946911, 4917077983, 4917209159, 4917340243, 4917471329, + 4917602483, 4917733663, 4917864767, 4917995851, 4918126933, 4918258019, 4918389097, + 4918520203, 4918651279, 4918782383, 4918913537, 4919044609, 4919175707, 4919306839, + 4919437927, 4919569033, 4919700113, 4919831201, 4919962273, 4920093371, 4920224453, + 4920355529, 4920486617, 4920617711, 4920748813, 4920879889, 4921011047, 4921142119, + 4921273207, 4921404289, 4921535371, 4921666469, 4921797589, 4921928699, 4922059783, + 4922190857, 4922321941, 4922453023, 4922584097, 4922715181, 4922846303, 4922977403, + 4923108583, 4923239669, 4923370757, 4923501881, 4923632993, 4923764071, 4923895153, + 4924026227, 4924157299, 4924288373, 4924419497, 4924550569, 4924681651, 4924812727, + 4924943813, 4925074897, 4925205991, 4925337077, 4925468183, 4925599277, 4925730349, + 4925861453, 4925992537, 4926123623, 4926254719, 4926385819, 4926516899, 4926647983, + 4926779119, 4926910207, 4927041281, 4927172353, 4927303427, 4927434503, 4927565623, + 4927696699, 4927827787, 4927958869, 4928089961, 4928221043, 4928352157, 4928483239, + 4928614331, 4928745487, 4928876629, 4929007723, 4929138803, 4929269879, 4929400979, + 4929532057, 4929663131, 4929794267, 4929925339, 4930056419, 4930187497, 4930318577, + 4930449697, 4930580789, 4930711883, 4930842977, 4930974079, 4931105159, 4931236319, + 4931367401, 4931498479, 4931629567, 4931760653, 4931891729, 4932022811, 4932153899, + 4932284983, 4932416089, 4932547199, 4932678271, 4932809417, 4932940489, 4933071629, + 4933202719, 4933333817, 4933464937, 4933596023, 4933727111, 4933858217, 4933989289, + 4934120447, 4934251519, 4934382599, 4934513681, 4934644753, 4934775829, 4934906927, + 4935038011, 4935169103, 4935300191, 4935431269, 4935562351, 4935693431, 4935824513, + 4935955589, 4936086671, 4936217747, 4936348819, 4936479917, 4936611047, 4936742137, + 4936873211, 4937004311, 4937135407, 4937266511, 4937397599, 4937528683, 4937659787, + 4937790863, 4937921953, 4938053027, 4938184099, 4938315203, 4938446281, 4938577373, + 4938708449, 4938839533, 4938970627, 4939101707, 4939232783, 4939363879, 4939494953, + 4939626031, 4939757143, 4939888229, 4940019311, 4940150387, 4940281469, 4940412553, + 4940543651, 4940674723, 4940805799, 4940936893, 4941067981, 4941199093, 4941330187, + 4941461269, 4941592367, 4941723467, 4941854557, 4941985637, 4942116709, 4942247801, + 4942378877, 4942509953, 4942641031, 4942772171, 4942903247, 4943034329, 4943165401, + 4943296489, 4943427563, 4943558687, 4943689787, 4943820901, 4943951977, 4944083051, + 4944214129, 4944345223, 4944476309, 4944607399, 4944738479, 4944869599, 4945000691, + 4945131781, 4945262857, 4945393933, 4945525009, 4945656101, 4945787177, 4945918249, + 4946049337, 4946180411, 4946311507, 4946442593, 4946573689, 4946704771, 4946835847, + 4946966957, 4947098029, 4947229121, 4947360203, 4947491303, 4947622399, 4947753487, + 4947884573, 4948015649, 4948146739, 4948277827, 4948408957, 4948540057, 4948671131, + 4948802267, 4948933357, 4949064467, 4949195549, 4949326631, 4949457703, 4949588801, + 4949719897, 4949850979, 4949982077, 4950113171, 4950244267, 4950375379, 4950506479, + 4950637561, 4950768661, 4950899741, 4951030823, 4951161947, 4951293029, 4951424119, + 4951555223, 4951686301, 4951817459, 4951948559, 4952079641, 4952210717, 4952341789, + 4952472901, 4952603987, 4952735077, 4952866199, 4952997281, 4953128357, 4953259439, + 4953390527, 4953521623, 4953652699, 4953783773, 4953914851, 4954045931, 4954177013, + 4954308091, 4954439167, 4954570249, 4954701329, 4954832401, 4954963477, 4955094559, + 4955225633, 4955356711, 4955487787, 4955618903, 4955749979, 4955881057, 4956012133, + 4956143207, 4956274303, 4956405397, 4956536527, 4956667609, 4956798733, 4956929827, + 4957060909, 4957191983, 4957323067, 4957454143, 4957585219, 4957716311, 4957847399, + 4957978471, 4958109617, 4958240717, 4958371799, 4958502893, 4958633969, 4958765041, + 4958896157, 4959027233, 4959158333, 4959289411, 4959420497, 4959551603, 4959682681, + 4959813773, 4959944887, 4960075961, 4960207069, 4960338161, 4960469233, 4960600321, + 4960731397, 4960862477, 4960993553, 4961124647, 4961255743, 4961386831, 4961517919, + 4961649029, 4961780141, 4961911219, 4962042301, 4962173449, 4962304531, 4962435617, + 4962566717, 4962697793, 4962828881, 4962959993, 4963091083, 4963222189, 4963353319, + 4963484429, 4963615507, 4963746589, 4963877669, 4964008759, 4964139857, 4964270933, + 4964402017, 4964533109, 4964664197, 4964795291, 4964926391, 4965057499, 4965188573, + 4965319669, 4965450767, 4965581857, 4965712931, 4965844021, 4965975107, 4966106191, + 4966237279, 4966368359, 4966499431, 4966630519, 4966761601, 4966892729, 4967023813, + 4967154889, 4967285971, 4967417069, 4967548141, 4967679229, 4967810311, 4967941441, + 4968072601, 4968203683, 4968334759, 4968465847, 4968596923, 4968727997, 4968859097, + 4968990179, 4969121257, 4969252367, 4969383487, 4969514567, 4969645657, 4969776751, + 4969907849, 4970038963, 4970170067, 4970301163, 4970432237, 4970563319, 4970694397, + 4970825501, 4970956591, 4971087673, 4971218779, 4971349871, 4971480961, 4971612059, + 4971743137, 4971874211, 4972005319, 4972136401, 4972267483, 4972398581, 4972529693, + 4972660787, 4972791869, 4972922993, 4973054101, 4973185201, 4973316287, 4973447371, + 4973578447, 4973709539, 4973840623, 4973971729, 4974102803, 4974233879, 4974364957, + 4974496031, 4974627107, 4974758179, 4974889267, 4975020353, 4975151429, 4975282511, + 4975413589, 4975544737, 4975675829, 4975806907, 4975937983, 4976069069, 4976200171, + 4976331259, 4976462353, 4976593429, 4976724509, 4976855623, 4976986733, 4977117833, + 4977248959, 4977380047, 4977511129, 4977642223, 4977773327, 4977904403, 4978035493, + 4978166569, 4978297679, 4978428757, 4978559843, 4978690939, 4978822019, 4978953107, + 4979084203, 4979215309, 4979346389, 4979477471, 4979608553, 4979739631, 4979870719, + 4980001801, 4980132877, 4980263957, 4980395029, 4980526129, 4980657233, 4980788311, + 4980919421, 4981050493, 4981181567, 4981312663, 4981443739, 4981574813, 4981705889, + 4981836973, 4981968109, 4982099183, 4982230339, 4982361427, 4982492527, 4982623627, + 4982754709, 4982885801, 4983016879, 4983147971, 4983279053, 4983410143, 4983541223, + 4983672329, 4983803413, 4983934493, 4984065587, 4984196681, 4984327753, 4984458851, + 4984589927, 4984721017, 4984852091, 4984983167, 4985114243, 4985245417, 4985376493, + 4985507633, 4985638781, 4985770001, 4985901073, 4986032167, 4986163243, 4986294329, + 4986425407, 4986556507, 4986687581, 4986818653, 4986949729, 4987080851, 4987211927, + 4987342999, 4987474109, 4987605209, 4987736287, 4987867369, 4987998467, 4988129539, + 4988260643, 4988391739, 4988522813, 4988653897, 4988785049, 4988916143, 4989047221, + 4989178319, 4989309401, 4989440497, 4989571571, 4989702667, 4989833741, 4989964823, + 4990095919, 4990226999, 4990358101, 4990489241, 4990620331, 4990751407, 4990882489, + 4991013563, 4991144657, 4991275771, 4991406853, 4991537953, 4991669027, 4991800159, + 4991931251, 4992062329, 4992193411, 4992324503, 4992455581, 4992586693, 4992717773, + 4992848867, 4992979973, 4993111049, 4993242143, 4993373233, 4993504343, 4993635431, + 4993766527, 4993897613, 4994028701, 4994159813, 4994290907, 4994422057, 4994553139, + 4994684231, 4994815321, 4994946427, 4995077501, 4995208579, 4995339667, 4995470741, + 4995601823, 4995732923, 4995864011, 4995995089, 4996126199, 4996257349, 4996388429, + 4996519501, 4996650619, 4996781701, 4996912801, 4997043913, 4997174989, 4997306089, + 4997437163, 4997568239, 4997699323, 4997830403, 4997961481, 4998092569, 4998223693, + 4998354791, 4998485887, 4998616963, 4998748043, 4998879143, 4999010267, 4999141339, + 4999272451, 4999403567, 4999534669, 4999665791, 4999796873, 4999927967, 5000059081, + 5000190163, 5000321237, 5000452309, 5000583383, 5000714461, 5000845537, 5000976619, + 5001107693, 5001238769, 5001369851, 5001500923, 5001631997, 5001763097, 5001894169, + 5002025261, 5002156339, 5002287421, 5002418497, 5002549571, 5002680679, 5002811761, + 5002942837, 5003073923, 5003205017, 5003336159, 5003467241, 5003598329, 5003729429, + 5003860517, 5003991607, 5004122689, 5004253777, 5004384899, 5004515977, 5004647069, + 5004778169, 5004909251, 5005040323, 5005171397, 5005302559, 5005433633, 5005564709, + 5005695791, 5005826879, 5005957963, 5006089061, 5006220133, 5006351227, 5006482301, + 5006613433, 5006744537, 5006875609, 5007006703, 5007137797, 5007268879, 5007399953, + 5007531031, 5007662117, 5007793237, 5007924331, 5008055419, 5008186507, 5008317581, + 5008448663, 5008579747, 5008710853, 5008841927, 5008972999, 5009104073, 5009235151, + 5009366233, 5009497349, 5009628451, 5009759551, 5009890651, 5010021733, 5010152831, + 5010283903, 5010414979, 5010546053, 5010677197, 5010808301, 5010939403, 5011070503, + 5011201583, 5011332659, 5011463747, 5011594897, 5011725989, 5011857061, 5011988153, + 5012119249, 5012250329, 5012381443, 5012512559, 5012643677, 5012774749, 5012905847, + 5013036923, 5013168049, 5013299191, 5013430273, 5013561361, 5013692449, 5013823541, + 5013954629, 5014085737, 5014216813, 5014347889, 5014478969, 5014610059, 5014741181, + 5014872253, 5015003327, 5015134427, 5015265499, 5015396609, 5015527681, 5015658787, + 5015789861, 5015920957, 5016052043, 5016183119, 5016314227, 5016445309, 5016576401, + 5016707473, 5016838553, 5016969649, 5017100743, 5017231823, 5017362913, 5017494007, + 5017625083, 5017756169, 5017887241, 5018018339, 5018149463, 5018280559, 5018411677, + 5018542819, 5018673931, 5018805031, 5018936113, 5019067231, 5019198307, 5019329383, + 5019460493, 5019591593, 5019722671, 5019853757, 5019984841, 5020115921, 5020246993, + 5020378073, 5020509181, 5020640267, 5020771387, 5020902463, 5021033539, 5021164627, + 5021295709, 5021426783, 5021557907, 5021689003, 5021820101, 5021951177, 5022082249, + 5022213331, 5022344449, 5022475543, 5022606629, 5022737719, 5022868819, 5022999901, + 5023130993, 5023262089, 5023393183, 5023524257, 5023655341, 5023786421, 5023917499, + 5024048581, 5024179687, 5024310773, 5024441869, 5024572951, 5024704063, 5024835181, + 5024966291, 5025097367, 5025228457, 5025359567, 5025490669, 5025621749, 5025752843, + 5025883921, 5026015003, 5026146109, 5026277197, 5026408291, 5026539367, 5026670443, + 5026801517, 5026932607, 5027063683, 5027194807, 5027325883, 5027456999, 5027588089, + 5027719217, 5027850313, 5027981411, 5028112483, 5028243557, 5028374639, 5028505717, + 5028636791, 5028767893, 5028898981, 5029030057, 5029161131, 5029292227, 5029423307, + 5029554379, 5029685477, 5029816567, 5029947667, 5030078759, 5030209831, 5030340923, + 5030472001, 5030603099, 5030734199, 5030865313, 5030996401, 5031127483, 5031258569, + 5031389641, 5031520721, 5031651797, 5031782869, 5031913979, 5032045079, 5032176161, + 5032307233, 5032438309, 5032569383, 5032700459, 5032831547, 5032962643, 5033093731, + 5033224843, 5033355917, 5033486989, 5033618113, 5033749207, 5033880337, 5034011417, + 5034142489, 5034273577, 5034404653, 5034535733, 5034666853, 5034797927, 5034928999, + 5035060073, 5035191173, 5035322251, 5035453333, 5035584461, 5035715539, 5035846657, + 5035977731, 5036108807, 5036239889, 5036370979, 5036502061, 5036633149, 5036764261, + 5036895361, 5037026453, 5037157549, 5037288623, 5037419729, 5037550801, 5037681923, + 5037813019, 5037944111, 5038075247, 5038206319, 5038337393, 5038468493, 5038599571, + 5038730659, 5038861757, 5038992839, 5039123911, 5039255021, 5039386111, 5039517199, + 5039648303, 5039779411, 5039910487, 5040041579, 5040172667, 5040303773, 5040434891, + 5040565967, 5040697049, 5040828157, 5040959237, 5041090309, 5041221413, 5041352513, + 5041483607, 5041614689, 5041745767, 5041876843, 5042007961, 5042139043, 5042270143, + 5042401237, 5042532347, 5042663443, 5042794529, 5042925653, 5043056789, 5043187873, + 5043318961, 5043450043, 5043581117, 5043712189, 5043843289, 5043974389, 5044105481, + 5044236569, 5044367723, 5044498817, 5044629917, 5044761013, 5044892107, 5045023213, + 5045154287, 5045285419, 5045416517, 5045547599, 5045678689, 5045809817, 5045940899, + 5046071977, 5046203077, 5046334151, 5046465223, 5046596297, 5046727373, 5046858457, + 5046989561, 5047120649, 5047251743, 5047382819, 5047513901, 5047645007, 5047776079, + 5047907153, 5048038319, 5048169391, 5048300471, 5048431567, 5048562671, 5048693761, + 5048824843, 5048955931, 5049087011, 5049218107, 5049349187, 5049480269, 5049611401, + 5049742487, 5049873607, 5050004689, 5050135781, 5050266877, 5050397969, 5050529041, + 5050660171, 5050791247, 5050922407, 5051053489, 5051184569, 5051315641, 5051446721, + 5051577799, 5051708873, 5051839981, 5051971063, 5052102161, 5052233239, 5052364327, + 5052495433, 5052626521, 5052757643, 5052888739, 5053019813, 5053150889, 5053281967, + 5053413041, 5053544113, 5053675201, 5053806299, 5053937393, 5054068469, 5054199559, + 5054330663, 5054461739, 5054592833, 5054723929, 5054855017, 5054986093, 5055117173, + 5055248257, 5055379333, 5055510413, 5055641497, 5055772571, 5055903647, 5056034771, + 5056165843, 5056296919, 5056427993, 5056559113, 5056690207, 5056821283, 5056952387, + 5057083489, 5057214581, 5057345659, 5057476733, 5057607869, 5057738971, 5057870047, + 5058001133, 5058132223, 5058263311, 5058394391, 5058525463, 5058656573, 5058787663, + 5058918749, 5059049837, 5059180913, 5059311991, 5059443113, 5059574189, 5059705279, + 5059836373, 5059967477, 5060098579, 5060229653, 5060360779, 5060491853, 5060622949, + 5060754037, 5060885131, 5061016223, 5061147317, 5061278393, 5061409499, 5061540623, + 5061671711, 5061802783, 5061933871, 5062064957, 5062196039, 5062327129, 5062458221, + 5062589293, 5062720367, 5062851487, 5062982563, 5063113639, 5063244721, 5063375803, + 5063506901, 5063637973, 5063769101, 5063900173, 5064031283, 5064162377, 5064293477, + 5064424553, 5064555631, 5064686717, 5064817817, 5064948929, 5065080001, 5065211077, + 5065342153, 5065473307, 5065604381, 5065735471, 5065866557, 5065997639, 5066128723, + 5066259797, 5066390899, 5066521973, 5066653061, 5066784139, 5066915219, 5067046297, + 5067177421, 5067308497, 5067439579, 5067570707, 5067701801, 5067832873, 5067963949, + 5068095037, 5068226123, 5068357201, 5068488277, 5068619357, 5068750429, 5068881523, + 5069012633, 5069143721, 5069274811, 5069405959, 5069537059, 5069668151, 5069799223, + 5069930323, 5070061411, 5070192493, 5070323591, 5070454667, 5070585749, 5070716843, + 5070847919, 5070979003, 5071110091, 5071241179, 5071372283, 5071503413, 5071634537, + 5071765609, 5071896721, 5072027813, 5072158901, 5072290021, 5072421113, 5072552209, + 5072683333, 5072814407, 5072945497, 5073076577, 5073207653, 5073338741, 5073469969, + 5073601079, 5073732163, 5073863237, 5073994333, 5074125409, 5074256503, 5074387583, + 5074518667, 5074649779, 5074780859, 5074911931, 5075043011, 5075174107, 5075305181, + 5075436259, 5075567339, 5075698423, 5075829509, 5075960581, 5076091681, 5076222803, + 5076353903, 5076485027, 5076616121, 5076747211, 5076878311, 5077009409, 5077140503, + 5077271593, 5077402709, 5077533781, 5077664959, 5077796039, 5077927133, 5078058241, + 5078189321, 5078320421, 5078451523, 5078582611, 5078713693, 5078844781, 5078975873, + 5079106969, 5079238049, 5079369121, 5079500201, 5079631273, 5079762349, 5079893453, + 5080024531, 5080155607, 5080286683, 5080417781, 5080548877, 5080679953, 5080811039, + 5080942123, 5081073247, 5081204329, 5081335423, 5081466527, 5081597617, 5081728693, + 5081859773, 5081990873, 5082121973, 5082253049, 5082384133, 5082515213, 5082646291, + 5082777367, 5082908461, 5083039541, 5083170619, 5083301701, 5083432789, 5083563871, + 5083694947, 5083826039, 5083957157, 5084088253, 5084219339, 5084350423, 5084481539, + 5084612627, 5084743747, 5084874857, 5085005951, 5085137027, 5085268103, 5085399181, + 5085530257, 5085661337, 5085792421, 5085923503, 5086054651, 5086185733, 5086316843, + 5086447921, 5086579021, 5086710103, 5086841183, 5086972259, 5087103337, 5087234417, + 5087365489, 5087496577, 5087627653, 5087758747, 5087889853, 5088020947, 5088152039, + 5088283111, 5088414197, 5088545311, 5088676441, 5088807539, 5088938639, 5089069757, + 5089200829, 5089331957, 5089463039, 5089594127, 5089725227, 5089856311, 5089987411, + 5090118493, 5090249617, 5090380693, 5090511821, 5090642899, 5090773973, 5090905069, + 5091036143, 5091167267, 5091298339, 5091429461, 5091560543, 5091691637, 5091822709, + 5091953791, 5092084871, 5092215971, 5092347047, 5092478143, 5092609229, 5092740313, + 5092871387, 5093002469, 5093133541, 5093264633, 5093395717, 5093526793, 5093657869, + 5093788949, 5093920021, 5094051113, 5094182231, 5094313303, 5094444379, 5094575461, + 5094706541, 5094837613, 5094968713, 5095099819, 5095230923, 5095362037, 5095493119, + 5095624207, 5095755299, 5095886401, 5096017477, 5096148557, 5096279647, 5096410721, + 5096541811, 5096672887, 5096803973, 5096935073, 5097066211, 5097197381, 5097328469, + 5097459541, 5097590627, 5097721729, 5097852853, 5097983941, 5098115063, 5098246151, + 5098377239, 5098508329, 5098639411, 5098770487, 5098901641, 5099032739, 5099163829, + 5099294903, 5099425997, 5099557097, 5099688173, 5099819267, 5099950363, 5100081457, + 5100212549, 5100343627, 5100474707, 5100605813, 5100736919, 5100868001, 5100999083, + 5101130161, 5101261267, 5101392367, 5101523467, 5101654577, 5101785649, 5101916821, + 5102047901, 5102178979, 5102310089, 5102441209, 5102572289, 5102703373, 5102834483, + 5102965561, 5103096643, 5103227743, 5103358831, 5103489907, 5103621013, 5103752111, + 5103883219, 5104014299, 5104145383, 5104276483, 5104407569, 5104538653, 5104669727, + 5104800821, 5104931899, 5105062993, 5105194069, 5105325149, 5105456227, 5105587313, + 5105718403, 5105849477, 5105980553, 5106111643, 5106242731, 5106373807, 5106504883, + 5106635957, 5106767053, 5106898151, 5107029223, 5107160297, 5107291391, 5107422469, + 5107553543, 5107684619, 5107815703, 5107946791, 5108077879, 5108208961, 5108340077, + 5108471171, 5108602267, 5108733367, 5108864441, 5108995531, 5109126623, 5109257711, + 5109388829, 5109519901, 5109650983, 5109782057, 5109913141, 5110044217, 5110175293, + 5110306429, 5110437539, 5110568627, 5110699709, 5110830797, 5110961917, 5111092999, + 5111224073, 5111355181, 5111486257, 5111617337, 5111748437, 5111879537, 5112010621, + 5112141719, 5112272797, 5112403873, 5112534983, 5112666079, 5112797177, 5112928277, + 5113059361, 5113190441, 5113321513, 5113452587, 5113583711, 5113714783, 5113845899, + 5113976983, 5114108081, 5114239157, 5114370241, 5114501321, 5114632441, 5114763541, + 5114894627, 5115025781, 5115156863, 5115287993, 5115419107, 5115550211, 5115681283, + 5115812357, 5115943453, 5116074541, 5116205669, 5116336789, 5116467869, 5116598947, + 5116730027, 5116861117, 5116992191, 5117123311, 5117254397, 5117385487, 5117516567, + 5117647771, 5117778847, 5117909921, 5118041003, 5118172153, 5118303241, 5118434323, + 5118565447, 5118696521, 5118827603, 5118958681, 5119089761, 5119220851, 5119351961, + 5119483043, 5119614121, 5119745207, 5119876301, 5120007457, 5120138609, 5120269681, + 5120400773, 5120531849, 5120662927, 5120794001, 5120925077, 5121056159, 5121187231, + 5121318317, 5121449453, 5121580571, 5121711659, 5121842741, 5121973837, 5122104919, + 5122236013, 5122367101, 5122498207, 5122629289, 5122760389, 5122891507, 5123022581, + 5123153663, 5123284757, 5123415833, 5123546947, 5123678023, 5123809109, 5123940221, + 5124071327, 5124202469, 5124333619, 5124464693, 5124595789, 5124726869, 5124857987, + 5124989059, 5125120139, 5125251221, 5125382347, 5125513483, 5125644593, 5125775701, + 5125906781, 5126037877, 5126168987, 5126300059, 5126431139, 5126562227, 5126693321, + 5126824393, 5126955469, 5127086557, 5127217651, 5127348763, 5127479843, 5127610927, + 5127742003, 5127873089, 5128004171, 5128135253, 5128266331, 5128397419, 5128528541, + 5128659631, 5128790713, 5128921841, 5129052913, 5129183987, 5129315101, 5129446199, + 5129577289, 5129708383, 5129839457, 5129970533, 5130101609, 5130232699, 5130363809, + 5130494899, 5130625999, 5130757129, 5130888223, 5131019317, 5131150403, 5131281481, + 5131412563, 5131543657, 5131674749, 5131805857, 5131936937, 5132068021, 5132199101, + 5132330191, 5132461273, 5132592397, 5132723473, 5132854583, 5132985721, 5133116827, + 5133247907, 5133379019, 5133510113, 5133641203, 5133772277, 5133903361, 5134034449, + 5134165567, 5134296649, 5134427807, 5134558889, 5134689961, 5134821053, 5134952161, + 5135083237, 5135214311, 5135345387, 5135476459, 5135607557, 5135738653, 5135869729, + 5136000839, 5136131929, 5136263047, 5136394157, 5136525307, 5136656381, 5136787471, + 5136918557, 5137049633, 5137180757, 5137311833, 5137442911, 5137573993, 5137705103, + 5137836191, 5137967267, 5138098373, 5138229491, 5138360567, 5138491639, 5138622733, + 5138753833, 5138884939, 5139016087, 5139147187, 5139278273, 5139409357, 5139540443, + 5139671521, 5139802601, 5139933691, 5140064773, 5140195861, 5140326959, 5140458053, + 5140589141, 5140720223, 5140851341, 5140982477, 5141113567, 5141244643, 5141375783, + 5141506919, 5141637997, 5141769097, 5141900173, 5142031249, 5142162331, 5142293413, + 5142424493, 5142555577, 5142686657, 5142817769, 5142948847, 5143079927, 5143210999, + 5143342081, 5143473169, 5143604251, 5143735349, 5143866439, 5143997519, 5144128601, + 5144259677, 5144390767, 5144521841, 5144652917, 5144784019, 5144915099, 5145046199, + 5145177277, 5145308369, 5145439441, 5145570517, 5145701591, 5145832667, 5145963763, + 5146094879, 5146225951, 5146357031, 5146488107, 5146619197, 5146750303, 5146881379, + 5147012471, 5147143553, 5147274653, 5147405759, 5147536841, 5147667919, 5147799001, + 5147930083, 5148061157, 5148192233, 5148323329, 5148454417, 5148585503, 5148716591, + 5148847663, 5148978781, 5149109887, 5149240979, 5149372061, 5149503137, 5149634219, + 5149765303, 5149896413, 5150027503, 5150158577, 5150289671, 5150420749, 5150551849, + 5150682923, 5150814073, 5150945153, 5151076237, 5151207311, 5151338383, 5151469457, + 5151600533, 5151731623, 5151862753, 5151993829, 5152124917, 5152256033, 5152387169, + 5152518251, 5152649377, 5152780463, 5152911553, 5153042677, 5153173783, 5153304881, + 5153436011, 5153567093, 5153698177, 5153829257, 5153960341, 5154091447, 5154222527, + 5154353609, 5154484747, 5154615827, 5154746963, 5154878051, 5155009133, 5155140217, + 5155271327, 5155402403, 5155533497, 5155664587, 5155795699, 5155926779, 5156057861, + 5156188957, 5156320069, 5156451187, 5156582281, 5156713363, 5156844439, 5156975533, + 5157106609, 5157237689, 5157368779, 5157499877, 5157630949, 5157762031, 5157893131, + 5158024241, 5158155341, 5158286417, 5158417489, 5158548587, 5158679671, 5158810747, + 5158941833, 5159072939, 5159204059, 5159335133, 5159466211, 5159597293, 5159728367, + 5159859473, 5159990557, 5160121643, 5160252737, 5160383843, 5160514927, 5160646009, + 5160777101, 5160908173, 5161039283, 5161170379, 5161301459, 5161432547, 5161563697, + 5161694777, 5161825871, 5161956967, 5162088047, 5162219119, 5162350247, 5162481343, + 5162612459, 5162743543, 5162874643, 5163005719, 5163136813, 5163267911, 5163398987, + 5163530063, 5163661147, 5163792223, 5163923333, 5164054411, 5164185511, 5164316639, + 5164447711, 5164578821, 5164709897, 5164840979, 5164972073, 5165103191, 5165234273, + 5165365351, 5165496439, 5165627521, 5165758621, 5165889697, 5166020801, 5166151933, + 5166283013, 5166414101, 5166545201, 5166676303, 5166807383, 5166938461, 5167069541, + 5167200617, 5167331749, 5167462823, 5167593943, 5167725041, 5167856123, 5167987211, + 5168118323, 5168249419, 5168380507, 5168511583, 5168642659, 5168773751, 5168904823, + 5169035897, 5169166969, 5169298049, 5169429197, 5169560281, 5169691367, 5169822439, + 5169953531, 5170084631, 5170215709, 5170346791, 5170477867, 5170608943, 5170740019, + 5170871093, 5171002259, 5171133337, 5171264467, 5171395549, 5171526641, 5171657717, + 5171788819, 5171919967, 5172051041, 5172182123, 5172313243, 5172444331, 5172575407, + 5172706529, 5172837613, 5172968693, 5173099777, 5173230851, 5173361929, 5173493053, + 5173624129, 5173755211, 5173886287, 5174017361, 5174148437, 5174279573, 5174410673, + 5174541761, 5174672849, 5174803967, 5174935049, 5175066133, 5175197231, 5175328307, + 5175459389, 5175590477, 5175721567, 5175852667, 5175983783, 5176114861, 5176245937, + 5176377029, 5176508119, 5176639231, 5176770329, 5176901407, 5177032507, 5177163613, + 5177294701, 5177425777, 5177556851, 5177687923, 5177819021, 5177950093, 5178081173, + 5178212251, 5178343367, 5178474439, 5178605513, 5178736657, 5178867737, 5178998831, + 5179129913, 5179260991, 5179392067, 5179523147, 5179654219, 5179785313, 5179916393, + 5180047529, 5180178643, 5180309723, 5180440819, 5180571917, 5180703061, 5180834147, + 5180965259, 5181096353, 5181227449, 5181358531, 5181489623, 5181620699, 5181751789, + 5181882883, 5182013957, 5182145047, 5182276153, 5182407229, 5182538341, 5182669421, + 5182800509, 5182931623, 5183062721, 5183193797, 5183324893, 5183455997, 5183587081, + 5183718157, 5183849257, 5183980343, 5184111467, 5184242579, 5184373679, 5184504757, + 5184635837, 5184766967, 5184898039, 5185029119, 5185160207, 5185291303, 5185422409, + 5185553497, 5185684579, 5185815667, 5185946741, 5186077837, 5186208913, 5186339993, + 5186471093, 5186602193, 5186733271, 5186864357, 5186995433, 5187126517, 5187257599, + 5187388693, 5187519773, 5187650863, 5187781943, 5187913021, 5188044143, 5188175227, + 5188306303, 5188437379, 5188568471, 5188699547, 5188830629, 5188961711, 5189092819, + 5189223947, 5189355037, 5189486111, 5189617187, 5189748259, 5189879341, 5190010451, + 5190141527, 5190272611, 5190403693, 5190534883, 5190665957, 5190797047, 5190928139, + 5191059239, 5191190357, 5191321451, 5191452523, 5191583599, 5191714673, 5191845749, + 5191976827, 5192107919, 5192239033, 5192370109, 5192501189, 5192632267, 5192763343, + 5192894417, 5193025493, 5193156587, 5193287663, 5193418777, 5193549857, 5193680939, + 5193812011, 5193943087, 5194074161, 5194205249, 5194336321, 5194467403, 5194598501, + 5194729591, 5194860703, 5194991777, 5195122909, 5195253991, 5195385071, 5195516153, + 5195647229, 5195778311, 5195909417, 5196040489, 5196171571, 5196302653, 5196433763, + 5196564871, 5196695993, 5196827071, 5196958171, 5197089251, 5197220363, 5197351441, + 5197482527, 5197613611, 5197744753, 5197875829, 5198006903, 5198137999, 5198269081, + 5198400187, 5198531291, 5198662367, 5198793461, 5198924567, 5199055639, 5199186763, + 5199317839, 5199448921, 5199580039, 5199711149, 5199842281, 5199973369, 5200104461, + 5200235539, 5200366621, 5200497697, 5200628827, 5200759903, 5200891009, 5201022097, + 5201153171, 5201284261, 5201415361, 5201546437, 5201677511, 5201808607, 5201939723, + 5202070799, 5202201883, 5202332959, 5202464087, 5202595159, 5202726239, 5202857353, + 5202988463, 5203119589, 5203250737, 5203381853, 5203512943, 5203644059, 5203775147, + 5203906237, 5204037323, 5204168413, 5204299489, 5204430577, 5204561651, 5204692741, + 5204823817, 5204954893, 5205085979, 5205217057, 5205348179, 5205479281, 5205610369, + 5205741449, 5205872557, 5206003639, 5206134793, 5206265873, 5206396963, 5206528037, + 5206659119, 5206790213, 5206921333, 5207052511, 5207183587, 5207314669, 5207445779, + 5207576879, 5207707987, 5207839097, 5207970239, 5208101357, 5208232453, 5208363527, + 5208494611, 5208625687, 5208756793, 5208887897, 5209018979, 5209150087, 5209281169, + 5209412251, 5209543333, 5209674427, 5209805539, 5209936657, 5210067739, 5210198839, + 5210329913, 5210460989, 5210592061, 5210723149, 5210854247, 5210985319, 5211116411, + 5211247487, 5211378559, 5211509669, 5211640783, 5211771869, 5211902981, 5212034081, + 5212165159, 5212296241, 5212427329, 5212558423, 5212689523, 5212820611, 5212951693, + 5213082767, 5213213851, 5213345021, 5213476097, 5213607193, 5213738267, 5213869361, + 5214000481, 5214131567, 5214262667, 5214393739, 5214524857, 5214655931, 5214787013, + 5214918089, 5215049197, 5215180283, 5215311359, 5215442443, 5215573523, 5215704617, + 5215835689, 5215966793, 5216097877, 5216229001, 5216360113, 5216491237, 5216622337, + 5216753413, 5216884637, 5217015731, 5217146827, 5217277903, 5217409003, 5217540101, + 5217671183, 5217802267, 5217933353, 5218064461, 5218195573, 5218326697, 5218457771, + 5218588853, 5218719937, 5218851013, 5218982089, 5219113177, 5219244287, 5219375407, + 5219506547, 5219637623, 5219768717, 5219899831, 5220030923, 5220162007, 5220293087, + 5220424169, 5220555251, 5220686329, 5220817411, 5220948511, 5221079621, 5221210693, + 5221341773, 5221472863, 5221603939, 5221735019, 5221866113, 5221997191, 5222128333, + 5222259409, 5222390501, 5222521631, 5222652703, 5222783791, 5222914897, 5223045973, + 5223177061, 5223308137, 5223439217, 5223570311, 5223701423, 5223832529, 5223963623, + 5224094723, 5224225813, 5224356901, 5224487987, 5224619087, 5224750189, 5224881293, + 5225012371, 5225143463, 5225274583, 5225405659, 5225536733, 5225667877, 5225798953, + 5225930029, 5226061109, 5226192197, 5226323299, 5226454399, 5226585541, 5226716641, + 5226847723, 5226978817, 5227109911, 5227241059, 5227372141, 5227503241, 5227634323, + 5227765481, 5227896581, 5228027653, 5228158739, 5228289851, 5228420957, 5228552051, + 5228683123, 5228814209, 5228945287, 5229076387, 5229207461, 5229338539, 5229469613, + 5229600697, 5229731809, 5229862901, 5229993983, 5230125071, 5230256153, 5230387237, + 5230518311, 5230649399, 5230780481, 5230911557, 5231042629, 5231173741, 5231304817, + 5231435899, 5231566979, 5231698063, 5231829143, 5231960291, 5232091363, 5232222449, + 5232353561, 5232484633, 5232615721, 5232746797, 5232877873, 5233008997, 5233140091, + 5233271171, 5233402249, 5233533353, 5233664441, 5233795529, 5233926601, 5234057681, + 5234188783, 5234319863, 5234450951, 5234582039, 5234713153, 5234844227, 5234975357, + 5235106447, 5235237541, 5235368627, 5235499699, 5235630779, 5235761857, 5235892943, + 5236024033, 5236155131, 5236286203, 5236417349, 5236548433, 5236679563, 5236810639, + 5236941761, 5237072839, 5237203913, 5237334989, 5237466079, 5237597173, 5237728267, + 5237859377, 5237990449, 5238121529, 5238252631, 5238383729, 5238514811, 5238645911, + 5238776993, 5238908089, 5239039171, 5239170263, 5239301381, 5239432477, 5239563551, + 5239694641, 5239825729, 5239956803, 5240087893, 5240218967, 5240350051, 5240481139, + 5240612227, 5240743301, 5240874389, 5241005477, 5241136553, 5241267673, 5241398807, + 5241529883, 5241660959, 5241792041, 5241923119, 5242054273, 5242185349, 5242316461, + 5242447549, 5242578631, 5242709749, 5242840843, 5242971941, 5243103037, 5243234137, + 5243365217, 5243496301, 5243627381, 5243758489, 5243889659, 5244020777, 5244151849, + 5244282937, 5244414011, 5244545083, 5244676163, 5244807257, 5244938357, 5245069433, + 5245200511, 5245331591, 5245462681, 5245593799, 5245724893, 5245855997, 5245987069, + 5246118181, 5246249273, 5246380361, 5246511443, 5246642521, 5246773621, 5246904709, + 5247035797, 5247166871, 5247297953, 5247429029, 5247560107, 5247691199, 5247822299, + 5247953371, 5248084451, 5248215523, 5248346617, 5248477699, 5248608817, 5248739891, + 5248870993, 5249002067, 5249133151, 5249264287, 5249395421, 5249526523, 5249657617, + 5249788727, 5249919839, 5250050921, 5250181997, 5250313139, 5250444223, 5250575339, + 5250706423, 5250837521, 5250968599, 5251099691, 5251230779, 5251361851, 5251492997, + 5251624069, 5251755143, 5251886221, 5252017307, 5252148383, 5252279479, 5252410573, + 5252541661, 5252672741, 5252803813, 5252934917, 5253065989, 5253197077, 5253328187, + 5253459317, 5253590417, 5253721511, 5253852587, 5253983687, 5254114771, 5254245853, + 5254376971, 5254508089, 5254639189, 5254770263, 5254901339, 5255032439, 5255163517, + 5255294591, 5255425699, 5255556781, 5255687867, 5255818961, 5255950043, 5256081121, + 5256212209, 5256343327, 5256474451, 5256605527, 5256736601, 5256867683, 5256998777, + 5257129853, 5257260941, 5257392013, 5257523107, 5257654189, 5257785319, 5257916401, + 5258047499, 5258178571, 5258309669, 5258440819, 5258571931, 5258703031, 5258834129, + 5258965207, 5259096307, 5259227381, 5259358469, 5259489577, 5259620669, 5259751759, + 5259882833, 5260013923, 5260145021, 5260276093, 5260407167, 5260538249, 5260669331, + 5260800439, 5260931513, 5261062613, 5261193709, 5261324791, 5261455999, 5261587099, + 5261718173, 5261849249, 5261980351, 5262111443, 5262242521, 5262373601, 5262504697, + 5262635813, 5262766897, 5262897977, 5263029067, 5263160171, 5263291247, 5263422397, + 5263553479, 5263684553, 5263815691, 5263946767, 5264077849, 5264208947, 5264340049, + 5264471131, 5264602241, 5264733319, 5264864393, 5264995469, 5265126541, 5265257623, + 5265388769, 5265519887, 5265650989, 5265782063, 5265913139, 5266044211, 5266175287, + 5266306403, 5266437479, 5266568551, 5266699651, 5266830733, 5266961809, 5267092889, + 5267223971, 5267355059, 5267486153, 5267617249, 5267748329, 5267879423, 5268010511, + 5268141629, 5268272707, 5268403783, 5268534857, 5268665929, 5268797011, 5268928087, + 5269059161, 5269190233, 5269321307, 5269452401, 5269583489, 5269714579, 5269845673, + 5269976807, 5270107901, 5270238973, 5270370067, 5270501141, 5270632259, 5270763341, + 5270894413, 5271025489, 5271156563, 5271287641, 5271418723, 5271549809, 5271680899, + 5271812017, 5271943109, 5272074239, 5272205321, 5272336393, 5272467469, 5272598561, + 5272729633, 5272860751, 5272991833, 5273122937, 5273254013, 5273385097, 5273516197, + 5273647273, 5273778359, 5273909447, 5274040529, 5274171619, 5274302711, 5274433811, + 5274564913, 5274696019, 5274827113, 5274958193, 5275089269, 5275220341, 5275351421, + 5275482521, 5275613617, 5275744697, 5275875853, 5276006927, 5276138009, 5276269093, + 5276400193, 5276531279, 5276662373, 5276793463, 5276924573, 5277055681, 5277186763, + 5277317863, 5277448951, 5277580129, 5277711211, 5277842291, 5277973423, 5278104521, + 5278235609, 5278366711, 5278497793, 5278628867, 5278759939, 5278891019, 5279022097, + 5279153197, 5279284321, 5279415419, 5279546491, 5279677583, 5279808691, 5279939767, + 5280070841, 5280201919, 5280332999, 5280464071, 5280595169, 5280726257, 5280857353, + 5280988451, 5281119527, 5281250633, 5281381709, 5281512787, 5281643891, 5281774991, + 5281906087, 5282037161, 5282168267, 5282299349, 5282430427, 5282561527, 5282692661, + 5282823737, 5282954821, 5283085967, 5283217039, 5283348127, 5283479219, 5283610291, + 5283741373, 5283872449, 5284003561, 5284134637, 5284265713, 5284396813, 5284527887, + 5284658959, 5284790039, 5284921151, 5285052313, 5285183399, 5285314481, 5285445559, + 5285576671, 5285707807, 5285838881, 5285969957, 5286101081, 5286232169, 5286363317, + 5286494401, 5286625481, 5286756569, 5286887741, 5287018813, 5287149899, 5287281001, + 5287412077, 5287543189, 5287674269, 5287805353, 5287936439, 5288067523, 5288198599, + 5288329687, 5288460761, 5288591843, 5288723003, 5288854121, 5288985193, 5289116299, + 5289247409, 5289378509, 5289509587, 5289640711, 5289771787, 5289902867, 5290033943, + 5290165031, 5290296119, 5290427201, 5290558289, 5290689361, 5290820443, 5290951517, + 5291082611, 5291213699, 5291344783, 5291475863, 5291606963, 5291738069, 5291869183, + 5292000271, 5292131357, 5292262471, 5292393553, 5292524771, 5292655867, 5292786949, + 5292918041, 5293049131, 5293180213, 5293311299, 5293442377, 5293573457, 5293704557, + 5293835633, 5293966709, 5294097811, 5294228897, 5294359991, 5294491063, 5294622163, + 5294753257, 5294884333, 5295015491, 5295146629, 5295277763, 5295408847, 5295539957, + 5295671033, 5295802111, 5295933199, 5296064299, 5296195379, 5296326457, 5296457561, + 5296588639, 5296719713, 5296850809, 5296981889, 5297112979, 5297244059, 5297375131, + 5297506213, 5297637343, 5297768417, 5297899517, 5298030593, 5298161677, 5298292757, + 5298423829, 5298554923, 5298686011, 5298817151, 5298948223, 5299079341, 5299210429, + 5299341533, 5299472627, 5299603711, 5299734857, 5299865933, 5299997029, 5300128121, + 5300259227, 5300390327, 5300521417, 5300652491, 5300783599, 5300914679, 5301045781, + 5301176891, 5301307969, 5301439049, 5301570151, 5301701257, 5301832337, 5301963437, + 5302094519, 5302225597, 5302356671, 5302487747, 5302618891, 5302749989, 5302881061, + 5303012137, 5303143213, 5303274313, 5303405399, 5303536493, 5303667571, 5303798657, + 5303929733, 5304060851, 5304191933, 5304323009, 5304454081, 5304585173, 5304716257, + 5304847337, 5304978409, 5305109507, 5305240607, 5305371749, 5305502821, 5305633933, + 5305765019, 5305896103, 5306027197, 5306158283, 5306289367, 5306420479, 5306551571, + 5306682643, 5306813717, 5306944829, 5307075911, 5307207007, 5307338083, 5307469159, + 5307600257, 5307731399, 5307862487, 5307993599, 5308124687, 5308255789, 5308386899, + 5308518029, 5308649161, 5308780261, 5308911337, 5309042411, 5309173543, 5309304667, + 5309435773, 5309566883, 5309697971, 5309829067, 5309960167, 5310091271, 5310222343, + 5310353423, 5310484523, 5310615619, 5310746699, 5310877771, 5311008853, 5311139927, + 5311271023, 5311402127, 5311533223, 5311664329, 5311795427, 5311926517, 5312057593, + 5312188667, 5312319767, 5312450903, 5312581987, 5312713067, 5312844149, 5312975231, + 5313106303, 5313237379, 5313368477, 5313499553, 5313630631, 5313761707, 5313892783, + 5314023901, 5314154983, 5314286063, 5314417151, 5314548257, 5314679333, 5314810411, + 5314941487, 5315072573, 5315203651, 5315334727, 5315465851, 5315596931, 5315728031, + 5315859151, 5315990233, 5316121319, 5316252401, 5316383477, 5316514549, 5316645629, + 5316776713, 5316907823, 5317038931, 5317170013, 5317301113, 5317432189, 5317563287, + 5317694411, 5317825483, 5317956557, 5318087641, 5318218721, 5318349847, 5318480933, + 5318612009, 5318743139, 5318874217, 5319005353, 5319136463, 5319267559, 5319398639, + 5319529741, 5319660821, 5319791933, 5319923027, 5320054099, 5320185179, 5320316273, + 5320447351, 5320578427, 5320709501, 5320840573, 5320971647, 5321102737, 5321233843, + 5321364959, 5321496031, 5321627111, 5321758207, 5321889299, 5322020381, 5322151453, + 5322282557, 5322413633, 5322544723, 5322675829, 5322806933, 5322938009, 5323069091, + 5323200163, 5323331267, 5323462363, 5323593439, 5323724531, 5323855631, 5323986727, + 5324117807, 5324248901, 5324379979, 5324511067, 5324642153, 5324773253, 5324904331, + 5325035413, 5325166489, 5325297581, 5325428657, 5325559747, 5325690833, 5325821911, + 5325952991, 5326084063, 5326215149, 5326346237, 5326477313, 5326608401, 5326739477, + 5326870589, 5327001721, 5327132827, 5327263951, 5327395039, 5327526121, 5327657243, + 5327788351, 5327919463, 5328050591, 5328181673, 5328312749, 5328443821, 5328574919, + 5328706001, 5328837089, 5328968201, 5329099273, 5329230419, 5329361491, 5329492577, + 5329623653, 5329754737, 5329885837, 5330016929, 5330148011, 5330279111, 5330410193, + 5330541269, 5330672341, 5330803433, 5330934517, 5331065617, 5331196709, 5331327791, + 5331458863, 5331589969, 5331721051, 5331852133, 5331983219, 5332114301, 5332245377, + 5332376449, 5332507541, 5332638643, 5332769723, 5332900813, 5333031901, 5333162977, + 5333294051, 5333425133, 5333556223, 5333687297, 5333818379, 5333949469, 5334080561, + 5334211637, 5334342733, 5334473813, 5334604903, 5334736021, 5334867107, 5334998237, + 5335129321, 5335260397, 5335391471, 5335522547, 5335653619, 5335784737, 5335915829, + 5336046913, 5336177993, 5336309071, 5336440147, 5336571257, 5336702353, 5336833441, + 5336964553, 5337095633, 5337226709, 5337357787, 5337488869, 5337619943, 5337751019, + 5337882103, 5338013201, 5338144291, 5338275379, 5338406587, 5338537679, 5338668757, + 5338799831, 5338930939, 5339062049, 5339193131, 5339324231, 5339455309, 5339586391, + 5339717473, 5339848583, 5339979661, 5340110753, 5340241831, 5340372929, 5340504023, + 5340635141, 5340766217, 5340897301, 5341028387, 5341159459, 5341290533, 5341421627, + 5341552747, 5341683827, 5341814899, 5341945981, 5342077063, 5342208149, 5342339263, + 5342470339, 5342601419, 5342732501, 5342863577, 5342994649, 5343125731, 5343256823, + 5343387901, 5343518977, 5343650051, 5343781169, 5343912251, 5344043323, 5344174411, + 5344305511, 5344436623, 5344567733, 5344698829, 5344829911, 5344960991, 5345092073, + 5345223193, 5345354281, 5345485363, 5345616457, 5345747543, 5345878631, 5346009743, + 5346140857, 5346271951, 5346403039, 5346534121, 5346665209, 5346796303, 5346927409, + 5347058491, 5347189567, 5347320647, 5347451729, 5347582843, 5347713977, 5347845053, + 5347976141, 5348107273, 5348238349, 5348369431, 5348500529, 5348631601, 5348762681, + 5348893793, 5349024869, 5349155951, 5349287023, 5349418103, 5349549181, 5349680269, + 5349811343, 5349942419, 5350073507, 5350204591, 5350335689, 5350466773, 5350597951, + 5350729031, 5350860107, 5350991207, 5351122279, 5351253361, 5351384449, 5351515531, + 5351646617, 5351777689, 5351908763, 5352039839, 5352170939, 5352302023, 5352433117, + 5352564197, 5352695279, 5352826373, 5352957451, 5353088561, 5353219633, 5353350721, + 5353481801, 5353612883, 5353743977, 5353875053, 5354006131, 5354137237, 5354268313, + 5354399419, 5354530501, 5354661601, 5354792687, 5354923793, 5355054871, 5355185971, + 5355317087, 5355448177, 5355579259, 5355710351, 5355841457, 5355972541, 5356103617, + 5356234699, 5356365779, 5356496861, 5356627967, 5356759061, 5356890139, 5357021239, + 5357152313, 5357283403, 5357414479, 5357545559, 5357676637, 5357807713, 5357938811, + 5358069887, 5358200971, 5358332069, 5358463153, 5358594281, 5358725353, 5358856427, + 5358987509, 5359118599, 5359249681, 5359380791, 5359511863, 5359642963, 5359774037, + 5359905121, 5360036257, 5360167339, 5360298413, 5360429489, 5360560577, 5360691649, + 5360822807, 5360953883, 5361084977, 5361216059, 5361347153, 5361478249, 5361609343, + 5361740431, 5361871517, 5362002617, 5362133701, 5362264777, 5362395851, 5362526941, + 5362658069, 5362789147, 5362920229, 5363051311, 5363182471, 5363313547, 5363444629, + 5363575703, 5363706779, 5363837851, 5363968949, 5364100033, 5364231113, 5364362221, + 5364493313, 5364624389, 5364755489, 5364886561, 5365017673, 5365148783, 5365279891, + 5365410989, 5365542067, 5365673149, 5365804243, 5365935319, 5366066413, 5366197489, + 5366328571, 5366459653, 5366590739, 5366721863, 5366852941, 5366984071, 5367115153, + 5367246271, 5367377357, 5367508451, 5367639523, 5367770609, 5367901681, 5368032793, + 5368163869, 5368294949, 5368426051, 5368557133, 5368688291, 5368819363, 5368950497, + 5369081573, 5369212657, 5369343799, 5369474893, 5369605973, 5369737081, 5369868169, + 5369999251, 5370130343, 5370261433, 5370392509, 5370523583, 5370654691, 5370785767, + 5370916843, 5371047937, 5371179013, 5371310099, 5371441199, 5371572277, 5371703357, + 5371834519, 5371965593, 5372096687, 5372227759, 5372358839, 5372489933, 5372621053, + 5372752139, 5372883211, 5373014299, 5373145397, 5373276481, 5373407569, 5373538741, + 5373669817, 5373800893, 5373931973, 5374063067, 5374194157, 5374325233, 5374456333, + 5374587431, 5374718543, 5374849703, 5374980799, 5375111887, 5375242963, 5375374051, + 5375505133, 5375636213, 5375767289, 5375898377, 5376029471, 5376160619, 5376291703, + 5376422791, 5376553979, 5376685109, 5376816187, 5376947273, 5377078349, 5377209421, + 5377340513, 5377471601, 5377602679, 5377733821, 5377864909, 5377995983, 5378127091, + 5378258167, 5378389243, 5378520319, 5378651413, 5378782529, 5378913613, 5379044743, + 5379175829, 5379306913, 5379437989, 5379569087, 5379700163, 5379831239, 5379962383, + 5380093483, 5380224557, 5380355633, 5380486777, 5380617937, 5380749037, 5380880129, + 5381011201, 5381142281, 5381273363, 5381404499, 5381535587, 5381666669, 5381797769, + 5381928889, 5382059983, 5382191117, 5382322229, 5382453311, 5382584413, 5382715493, + 5382846577, 5382977653, 5383108727, 5383239817, 5383370917, 5383501997, 5383633081, + 5383764167, 5383895263, 5384026337, 5384157421, 5384288519, 5384419637, 5384550757, + 5384681843, 5384812949, 5384944027, 5385075139, 5385206221, 5385337297, 5385468427, + 5385599501, 5385730579, 5385861653, 5385992747, 5386123823, 5386254901, 5386386001, + 5386517089, 5386648187, 5386779271, 5386910363, 5387041453, 5387172541, 5387303641, + 5387434721, 5387565797, 5387696869, 5387827961, 5387959081, 5388090157, 5388221287, + 5388352373, 5388483461, 5388614563, 5388745643, 5388876743, 5389007917, 5389139047, + 5389270163, 5389401247, 5389532353, 5389663451, 5389794533, 5389925621, 5390056697, + 5390187769, 5390318849, 5390449931, 5390581019, 5390712127, 5390843203, 5390974279, + 5391105371, 5391236507, 5391367621, 5391498709, 5391629797, 5391760877, 5391891949, + 5392023029, 5392154111, 5392285189, 5392416319, 5392547393, 5392678537, 5392809619, + 5392940701, 5393071799, 5393202887, 5393333983, 5393465057, 5393596157, 5393727233, + 5393858329, 5393989421, 5394120493, 5394251567, 5394382661, 5394513737, 5394644809, + 5394775907, 5394906991, 5395038083, 5395169191, 5395300271, 5395431397, 5395562503, + 5395693591, 5395824673, 5395955783, 5396086859, 5396217941, 5396349031, 5396480113, + 5396611217, 5396742289, 5396873381, 5397004499, 5397135577, 5397266663, 5397397771, + 5397528853, 5397659957, 5397791029, 5397922109, 5398053191, 5398184263, 5398315343, + 5398446437, 5398577539, 5398708613, 5398839701, 5398970791, 5399101913, 5399232991, + 5399364073, 5399495147, 5399626237, 5399757313, 5399888401, 5400019477, 5400150557, + 5400281629, 5400412711, 5400543839, 5400674953, 5400806029, 5400937121, 5401068221, + 5401199317, 5401330391, 5401461463, 5401592543, 5401723699, 5401854781, 5401985887, + 5402116987, 5402248067, 5402379163, 5402510237, 5402641319, 5402772407, 5402903483, + 5403034577, 5403165659, 5403296737, 5403427811, 5403558917, 5403690029, 5403821153, + 5403952237, 5404083319, 5404214437, 5404345511, 5404476587, 5404607699, 5404738771, + 5404869859, 5405000969, 5405132041, 5405263133, 5405394217, 5405525299, 5405656387, + 5405787463, 5405918549, 5406049637, 5406180757, 5406311849, 5406442927, 5406574007, + 5406705079, 5406836167, 5406967273, 5407098349, 5407229461, 5407360603, 5407491697, + 5407622777, 5407753849, 5407884929, 5408016007, 5408147123, 5408278201, 5408409311, + 5408540407, 5408671487, 5408802571, 5408933681, 5409064763, 5409195877, 5409326953, + 5409458069, 5409589147, 5409720241, 5409851389, 5409982493, 5410113571, 5410244647, + 5410375787, 5410506859, 5410637951, 5410769093, 5410900171, 5411031247, 5411162333, + 5411293417, 5411424503, 5411555587, 5411686751, 5411817841, 5411948939, 5412080017, + 5412211097, 5412342191, 5412473281, 5412604361, 5412735457, 5412866573, 5412997649, + 5413128731, 5413259837, 5413390987, 5413522061, 5413653139, 5413784219, 5413915291, + 5414046377, 5414177449, 5414308561, 5414439697, 5414570779, 5414701861, 5414832949, + 5414964031, 5415095143, 5415226217, 5415357301, 5415488383, 5415619459, 5415750559, + 5415881677, 5416012753, 5416143839, 5416274917, 5416405997, 5416537069, 5416668151, + 5416799231, 5416930333, 5417061437, 5417192537, 5417323619, 5417454703, 5417585777, + 5417716853, 5417847931, 5417979019, 5418110143, 5418241243, 5418372317, 5418503399, + 5418634493, 5418765581, 5418896663, 5419027777, 5419158881, 5419289963, 5419421039, + 5419552121, 5419683197, 5419814269, 5419945381, 5420076509, 5420207581, 5420338657, + 5420469799, 5420600891, 5420731963, 5420863037, 5420994121, 5421125221, 5421256319, + 5421387407, 5421518489, 5421649567, 5421780659, 5421911741, 5422042831, 5422173943, + 5422305019, 5422436147, 5422567247, 5422698349, 5422829429, 5422960507, 5423091631, + 5423222729, 5423353813, 5423484889, 5423615963, 5423747039, 5423878121, 5424009193, + 5424140317, 5424271403, 5424402479, 5424533581, 5424664667, 5424795743, 5424926863, + 5425057949, 5425189027, 5425320107, 5425451183, 5425582277, 5425713379, 5425844467, + 5425975549, 5426106667, 5426237753, 5426368841, 5426499919, 5426630999, 5426762119, + 5426893207, 5427024287, 5427155359, 5427286457, 5427417539, 5427548657, 5427679729, + 5427810803, 5427941933, 5428073011, 5428204097, 5428335191, 5428466293, 5428597381, + 5428728491, 5428859563, 5428990643, 5429121721, 5429252809, 5429383889, 5429514967, + 5429646043, 5429777123, 5429908201, 5430039281, 5430170443, 5430301549, 5430432673, + 5430563771, 5430694861, 5430825937, 5430957013, 5431088101, 5431219181, 5431350263, + 5431481339, 5431612423, 5431743547, 5431874633, 5432005729, 5432136811, 5432267909, + 5432398997, 5432530073, 5432661187, 5432792263, 5432923339, 5433054437, 5433185539, + 5433316613, 5433447787, 5433578861, 5433709933, 5433841013, 5433972091, 5434103167, + 5434234243, 5434365383, 5434496479, 5434627553, 5434758647, 5434889773, 5435020859, + 5435151949, 5435283023, 5435414203, 5435545277, 5435676377, 5435807453, 5435938531, + 5436069629, 5436200729, 5436331801, 5436462877, 5436593989, 5436725083, 5436856181, + 5436987263, 5437118383, 5437249483, 5437380577, 5437511663, 5437642739, 5437773811, + 5437904893, 5438036011, 5438167121, 5438298211, 5438429291, 5438560367, 5438691509, + 5438822611, 5438953691, 5439084817, 5439215897, 5439346973, 5439478067, 5439609157, + 5439740263, 5439871343, 5440002433, 5440133533, 5440264637, 5440395721, 5440526803, + 5440657907, 5440788979, 5440920059, 5441051159, 5441182259, 5441313331, 5441444423, + 5441575511, 5441706601, 5441837701, 5441968789, 5442099889, 5442231001, 5442362087, + 5442493211, 5442624283, 5442755387, 5442886459, 5443017539, 5443148611, 5443279693, + 5443410767, 5443541869, 5443672979, 5443804081, 5443935163, 5444066237, 5444197331, + 5444328431, 5444459551, 5444590631, 5444721727, 5444852807, 5444983889, 5445114973, + 5445246061, 5445377149, 5445508231, 5445639313, 5445770431, 5445901511, 5446032587, + 5446163687, 5446294759, 5446425857, 5446556933, 5446688011, 5446819093, 5446950169, + 5447081243, 5447212333, 5447343409, 5447474489, 5447605567, 5447736643, 5447867731, + 5447998813, 5448129913, 5448261019, 5448392093, 5448523187, 5448654259, 5448785347, + 5448916433, 5449047511, 5449178591, 5449309667, 5449440739, 5449571821, 5449702897, + 5449833971, 5449965049, 5450096131, 5450227261, 5450358343, 5450489417, 5450620507, + 5450751583, 5450882663, 5451013783, 5451144889, 5451275983, 5451407063, 5451538163, + 5451669239, 5451800327, 5451931409, 5452062547, 5452193629, 5452324729, 5452455847, + 5452586939, 5452718039, 5452849133, 5452980223, 5453111297, 5453242381, 5453373461, + 5453504561, 5453635637, 5453766733, 5453897863, 5454028963, 5454160051, 5454291173, + 5454422269, 5454553399, 5454684497, 5454815591, 5454946697, 5455077769, 5455208867, + 5455339949, 5455471051, 5455602179, 5455733267, 5455864367, 5455995451, 5456126531, + 5456257603, 5456388683, 5456519773, 5456650867, 5456781959, 5456913037, 5457044161, + 5457175261, 5457306389, 5457437467, 5457568591, 5457699671, 5457830789, 5457961867, + 5458092949, 5458224041, 5458355143, 5458486217, 5458617319, 5458748441, 5458879519, + 5459010611, 5459141689, 5459272817, 5459403899, 5459534981, 5459666071, 5459797177, + 5459928251, 5460059383, 5460190469, 5460321541, 5460452629, 5460583721, 5460714793, + 5460845867, 5460976943, 5461108019, 5461239101, 5461370179, 5461501267, 5461632343, + 5461763431, 5461894511, 5462025587, 5462156663, 5462287739, 5462418811, 5462549893, + 5462680981, 5462812057, 5462943173, 5463074249, 5463205369, 5463336493, 5463467579, + 5463598663, 5463729763, 5463860851, 5463991969, 5464123061, 5464254161, 5464385257, + 5464516333, 5464647469, 5464778563, 5464909661, 5465040733, 5465171851, 5465302943, + 5465434027, 5465565109, 5465696233, 5465827307, 5465958391, 5466089467, 5466220547, + 5466351629, 5466482701, 5466613777, 5466744863, 5466875969, 5467007089, 5467138267, + 5467269371, 5467400453, 5467531529, 5467662617, 5467793693, 5467924783, 5468055877, + 5468186987, 5468318069, 5468449171, 5468580251, 5468711327, 5468842399, 5468973473, + 5469104567, 5469235663, 5469366757, 5469497857, 5469628937, 5469760027, 5469891103, + 5470022179, 5470153289, 5470284427, 5470415537, 5470546667, 5470677739, 5470808831, + 5470939931, 5471071007, 5471202103, 5471333177, 5471464259, 5471595331, 5471726441, + 5471857513, 5471988631, 5472119717, 5472250807, 5472381907, 5472512989, 5472644069, + 5472775151, 5472906239, 5473037369, 5473168483, 5473299563, 5473430647, 5473561721, + 5473692799, 5473823879, 5473954961, 5474086039, 5474217113, 5474348221, 5474479303, + 5474610377, 5474741479, 5474872577, 5475003671, 5475134771, 5475265867, 5475396961, + 5475528067, 5475659141, 5475790213, 5475921287, 5476052383, 5476183469, 5476314541, + 5476445621, 5476576711, 5476707787, 5476838893, 5476969999, 5477101093, 5477232181, + 5477363291, 5477494381, 5477625457, 5477756539, 5477887619, 5478018701, 5478149783, + 5478280897, 5478412007, 5478543079, 5478674153, 5478805231, 5478936347, 5479067423, + 5479198601, 5479329677, 5479460801, 5479591891, 5479722979, 5479854067, 5479985143, + 5480116217, 5480247317, 5480378413, 5480509513, 5480640617, 5480771693, 5480902769, + 5481033847, 5481164999, 5481296081, 5481427169, 5481558241, 5481689327, 5481820429, + 5481951521, 5482082603, 5482213729, 5482344809, 5482475909, 5482607003, 5482738103, + 5482869187, 5483000309, 5483131399, 5483262481, 5483393557, 5483524661, 5483655757, + 5483786851, 5483917969, 5484049049, 5484180133, 5484311207, 5484442289, 5484573427, + 5484704501, 5484835589, 5484966727, 5485097803, 5485228901, 5485360003, 5485491091, + 5485622171, 5485753277, 5485884359, 5486015461, 5486146537, 5486277613, 5486408701, + 5486539789, 5486670877, 5486801981, 5486933059, 5487064151, 5487195239, 5487326323, + 5487457433, 5487588527, 5487719651, 5487850727, 5487981817, 5488112897, 5488243987, + 5488375073, 5488506161, 5488637251, 5488768343, 5488899457, 5489030609, 5489161687, + 5489292763, 5489423837, 5489554933, 5489686043, 5489817163, 5489948263, 5490079363, + 5490210437, 5490341537, 5490472613, 5490603689, 5490734827, 5490865903, 5490996983, + 5491128103, 5491259287, 5491390397, 5491521491, 5491652597, 5491783691, 5491914767, + 5492045843, 5492176967, 5492308043, 5492439133, 5492570231, 5492701321, 5492832407, + 5492963503, 5493094603, 5493225707, 5493356797, 5493487903, 5493618989, 5493750061, + 5493881167, 5494012243, 5494143383, 5494274459, 5494405547, 5494536643, 5494667791, + 5494798889, 5494929971, 5495061059, 5495192167, 5495323243, 5495454361, 5495585443, + 5495716529, 5495847611, 5495978689, 5496109781, 5496240889, 5496371963, 5496503041, + 5496634141, 5496765229, 5496896309, 5497027387, 5497158497, 5497289579, 5497420673, + 5497551757, 5497682837, 5497813921, 5497945003, 5498076107, 5498207207, 5498338289, + 5498469433, 5498600543, 5498731633, 5498862749, 5498993837, 5499124927, 5499256019, + 5499387133, 5499518221, 5499649307, 5499780379, 5499911453, 5500042543, 5500173631, + 5500304707, 5500435823, 5500566913, 5500698017, 5500829093, 5500960177, 5501091313, + 5501222393, 5501353469, 5501484581, 5501615687, 5501746813, 5501877919, 5502009017, + 5502140089, 5502271183, 5502402271, 5502533353, 5502664451, 5502795533, 5502926629, + 5503057733, 5503188811, 5503319893, 5503450999, 5503582079, 5503713157, 5503844233, + 5503975331, 5504106437, 5504237527, 5504368607, 5504499719, 5504630797, 5504761877, + 5504892959, 5505024103, 5505155189, 5505286291, 5505417373, 5505548483, 5505679559, + 5505810637, 5505941719, 5506072801, 5506203881, 5506334963, 5506466051, 5506597189, + 5506728277, 5506859353, 5506990427, 5507121539, 5507252633, 5507383727, 5507514833, + 5507645911, 5507776999, 5507908073, 5508039167, 5508170263, 5508301363, 5508432437, + 5508563519, 5508694591, 5508825677, 5508956771, 5509087853, 5509219013, 5509350097, + 5509481179, 5509612253, 5509743353, 5509874449, 5510005549, 5510136631, 5510267713, + 5510398871, 5510530001, 5510661073, 5510792171, 5510923277, 5511054371, 5511185461, + 5511316541, 5511447619, 5511578713, 5511709789, 5511840883, 5511971987, 5512103059, + 5512234141, 5512365239, 5512496321, 5512627411, 5512758499, 5512889587, 5513020693, + 5513151767, 5513282843, 5513413937, 5513545013, 5513676109, 5513807191, 5513938271, + 5514069349, 5514200437, 5514331513, 5514462637, 5514593717, 5514724793, 5514855869, + 5514986959, 5515118041, 5515249121, 5515380217, 5515511327, 5515642427, 5515773499, + 5515904621, 5516035703, 5516166781, 5516297869, 5516428949, 5516560117, 5516691209, + 5516822293, 5516953369, 5517084487, 5517215569, 5517346687, 5517477769, 5517608849, + 5517739979, 5517871127, 5518002209, 5518133281, 5518264357, 5518395433, 5518526509, + 5518657583, 5518788661, 5518919743, 5519050841, 5519181917, 5519312999, 5519444087, + 5519575219, 5519706301, 5519837381, 5519968541, 5520099617, 5520230731, 5520361807, + 5520492881, 5520623959, 5520755059, 5520886157, 5521017233, 5521148317, 5521279409, + 5521410491, 5521541581, 5521672661, 5521803739, 5521934813, 5522065889, 5522196961, + 5522328067, 5522459191, 5522590277, 5522721349, 5522852443, 5522983519, 5523114593, + 5523245677, 5523376759, 5523507833, 5523638909, 5523770017, 5523901139, 5524032223, + 5524163297, 5524294397, 5524425481, 5524556563, 5524687657, 5524818743, 5524949821, + 5525080919, 5525212009, 5525343091, 5525474167, 5525605313, 5525736409, 5525867483, + 5525998579, 5526129659, 5526260731, 5526391811, 5526522893, 5526653983, 5526785083, + 5526916217, 5527047301, 5527178383, 5527309471, 5527440577, 5527571689, 5527702777, + 5527833853, 5527964927, 5528096003, 5528227097, 5528358181, 5528489287, 5528620367, + 5528751439, 5528882543, 5529013639, 5529144713, 5529275803, 5529406889, 5529537973, + 5529669071, 5529800161, 5529931283, 5530062383, 5530193503, 5530324609, 5530455703, + 5530586779, 5530717853, 5530848931, 5530980019, 5531111123, 5531242201, 5531373277, + 5531504351, 5531635427, 5531766503, 5531897593, 5532028679, 5532159793, 5532290893, + 5532421967, 5532553067, 5532684161, 5532815251, 5532946339, 5533077437, 5533208537, + 5533339667, 5533470793, 5533601867, 5533732949, 5533864027, 5533995121, 5534126201, + 5534257291, 5534388373, 5534519449, 5534650523, 5534781599, 5534912689, 5535043777, + 5535174859, 5535305953, 5535437041, 5535568117, 5535699209, 5535830297, 5535961463, + 5536092539, 5536223611, 5536354687, 5536485763, 5536616861, 5536747949, 5536879043, + 5537010131, 5537141219, 5537272291, 5537403373, 5537534449, 5537665543, 5537796659, + 5537927753, 5538058847, 5538189931, 5538321053, 5538452149, 5538583229, 5538714319, + 5538845407, 5538976517, 5539107589, 5539238681, 5539369799, 5539500877, 5539631957, + 5539763029, 5539894111, 5540025199, 5540156273, 5540287351, 5540418451, 5540549593, + 5540680667, 5540811769, 5540942861, 5541073939, 5541205031, 5541336131, 5541467209, + 5541598291, 5541729409, 5541860503, 5541991603, 5542122679, 5542253837, 5542384927, + 5542516027, 5542647107, 5542778179, 5542909261, 5543040341, 5543171441, 5543302543, + 5543433617, 5543564707, 5543695783, 5543826863, 5543957953, 5544089039, 5544220111, + 5544351203, 5544482291, 5544613387, 5544744473, 5544875561, 5545006639, 5545137727, + 5545268831, 5545399931, 5545531037, 5545662113, 5545793191, 5545924271, 5546055373, + 5546186453, 5546317537, 5546448617, 5546579707, 5546710817, 5546841899, 5546973001, + 5547104081, 5547235157, 5547366233, 5547497309, 5547628397, 5547759493, 5547890567, + 5548021657, 5548152737, 5548283837, 5548414931, 5548546007, 5548677091, 5548808179, + 5548939259, 5549070341, 5549201419, 5549332501, 5549463613, 5549594711, 5549725787, + 5549856859, 5549988019, 5550119123, 5550250207, 5550381341, 5550512419, 5550643547, + 5550774673, 5550905761, 5551036859, 5551167943, 5551299031, 5551430117, 5551561193, + 5551692281, 5551823371, 5551954453, 5552085527, 5552216599, 5552347733, 5552478847, + 5552609941, 5552741017, 5552872097, 5553003257, 5553134347, 5553265427, 5553396503, + 5553527587, 5553658667, 5553789781, 5553920861, 5554051967, 5554183049, 5554314127, + 5554445249, 5554576333, 5554707409, 5554838503, 5554969579, 5555100671, 5555231777, + 5555362859, 5555493989, 5555625067, 5555756147, 5555887219, 5556018311, 5556149407, + 5556280487, 5556411559, 5556542639, 5556673729, 5556804859, 5556935933, 5557067011, + 5557198111, 5557329187, 5557460281, 5557591411, 5557722539, 5557853611, 5557984703, + 5558115781, 5558246873, 5558377963, 5558509067, 5558640167, 5558771269, 5558902397, + 5559033479, 5559164557, 5559295667, 5559426767, 5559557867, 5559688943, 5559820027, + 5559951109, 5560082189, 5560213261, 5560344337, 5560475461, 5560606549, 5560737631, + 5560868743, 5560999849, 5561130943, 5561262059, 5561393137, 5561524259, 5561655343, + 5561786443, 5561917549, 5562048629, 5562179717, 5562310799, 5562441971, 5562573073, + 5562704149, 5562835247, 5562966329, 5563097401, 5563228493, 5563359583, 5563490663, + 5563621751, 5563752823, 5563883933, 5564015063, 5564146157, 5564277233, 5564408309, + 5564539381, 5564670487, 5564801563, 5564932649, 5565063743, 5565194821, 5565325901, + 5565456983, 5565588073, 5565719183, 5565850289, 5565981371, 5566112459, 5566243531, + 5566374607, 5566505699, 5566636771, 5566767859, 5566898933, 5567030017, 5567161111, + 5567292217, 5567423297, 5567554393, 5567685493, 5567816567, 5567947657, 5568078739, + 5568209813, 5568340891, 5568471983, 5568603091, 5568734191, 5568865277, 5568996361, + 5569127467, 5569258547, 5569389629, 5569520713, 5569651793, 5569782871, 5569913953, + 5570045027, 5570176099, 5570307181, 5570438273, 5570569451, 5570700529, 5570831653, + 5570962741, 5571093823, 5571224899, 5571356023, 5571487109, 5571618193, 5571749291, + 5571880367, 5572011481, 5572142561, 5572273639, 5572404713, 5572535797, 5572666877, + 5572798003, 5572929079, 5573060153, 5573191229, 5573322301, 5573453377, 5573584477, + 5573715559, 5573846671, 5573977789, 5574108863, 5574239977, 5574371063, 5574502151, + 5574633223, 5574764411, 5574895483, 5575026559, 5575157677, 5575288753, 5575419827, + 5575550947, 5575682029, 5575813123, 5575944197, 5576075279, 5576206351, 5576337449, + 5576468531, 5576599603, 5576730689, 5576861761, 5576992843, 5577123977, 5577255049, + 5577386147, 5577517223, 5577648359, 5577779447, 5577910523, 5578041607, 5578172683, + 5578303763, 5578434839, 5578565957, 5578697041, 5578828133, 5578959209, 5579090323, + 5579221441, 5579352533, 5579483629, 5579614709, 5579745803, 5579876881, 5580007969, + 5580139057, 5580270133, 5580401219, 5580532327, 5580663419, 5580794501, 5580925579, + 5581056671, 5581187743, 5581318817, 5581449893, 5581580971, 5581712063, 5581843181, + 5581974263, 5582105369, 5582236441, 5582367521, 5582498599, 5582629681, 5582760787, + 5582891879, 5583022961, 5583154039, 5583285157, 5583416239, 5583547331, 5583678413, + 5583809513, 5583940591, 5584071667, 5584202759, 5584333849, 5584464943, 5584596053, + 5584727143, 5584858217, 5584989307, 5585120399, 5585251471, 5585382547, 5585513621, + 5585644693, 5585775773, 5585906849, 5586037921, 5586168997, 5586300089, 5586431173, + 5586562249, 5586693331, 5586824423, 5586955513, 5587086599, 5587217677, 5587348751, + 5587479827, 5587610921, 5587742021, 5587873117, 5588004197, 5588135281, 5588266357, + 5588397473, 5588528551, 5588659627, 5588790733, 5588921843, 5589052981, 5589184063, + 5589315161, 5589446249, 5589577321, 5589708407, 5589839483, 5589970571, 5590101661, + 5590232741, 5590363829, 5590494913, 5590626073, 5590757149, 5590888267, 5591019349, + 5591150423, 5591281499, 5591412581, 5591543653, 5591674729, 5591805827, 5591936921, + 5592068003, 5592199099, 5592330181, 5592461263, 5592592349, 5592723439, 5592854513, + 5592985589, 5593116667, 5593247743, 5593378849, 5593509931, 5593641037, 5593772113, + 5593903207, 5594034307, 5594165407, 5594296507, 5594427599, 5594558677, 5594689757, + 5594820893, 5594951987, 5595083107, 5595214181, 5595345257, 5595476387, 5595607469, + 5595738541, 5595869621, 5596000699, 5596131773, 5596262851, 5596393937, 5596525057, + 5596656133, 5596787237, 5596918309, 5597049391, 5597180473, 5597311589, 5597442671, + 5597573753, 5597704837, 5597835913, 5597966999, 5598098071, 5598229171, 5598360281, + 5598491359, 5598622459, 5598753539, 5598884653, 5599015759, 5599146869, 5599277951, + 5599409033, 5599540129, 5599671247, 5599802381, 5599933457, 5600064529, 5600195621, + 5600326727, 5600457817, 5600588899, 5600719981, 5600851057, 5600982131, 5601113207, + 5601244279, 5601375371, 5601506473, 5601637583, 5601768671, 5601899761, 5602030849, + 5602161937, 5602293023, 5602424117, 5602555193, 5602686269, 5602817357, 5602948433, + 5603079527, 5603210617, 5603341697, 5603472793, 5603603891, 5603734967, 5603866057, + 5603997143, 5604128239, 5604259369, 5604390443, 5604521537, 5604652681, 5604783781, + 5604914857, 5605045933, 5605177033, 5605308113, 5605439219, 5605570297, 5605701371, + 5605832483, 5605963577, 5606094667, 5606225743, 5606356831, 5606487907, 5606618999, + 5606750099, 5606881177, 5607012269, 5607143357, 5607274481, 5607405637, 5607536731, + 5607667811, 5607798883, 5607929993, 5608061077, 5608192151, 5608323223, 5608454363, + 5608585457, 5608716559, 5608847693, 5608978849, 5609109929, 5609241007, 5609372129, + 5609503201, 5609634299, 5609765377, 5609896477, 5610027559, 5610158641, 5610289757, + 5610420863, 5610551941, 5610683047, 5610814127, 5610945203, 5611076293, 5611207367, + 5611338463, 5611469537, 5611600609, 5611731691, 5611862777, 5611993873, 5612124971, + 5612256103, 5612387227, 5612518321, 5612649397, 5612780471, 5612911567, 5613042649, + 5613173737, 5613304861, 5613435937, 5613567049, 5613698131, 5613829217, 5613960299, + 5614091383, 5614222457, 5614353539, 5614484683, 5614615763, 5614746871, 5614877953, + 5615009041, 5615140133, 5615271223, 5615402333, 5615533411, 5615664497, 5615795579, + 5615926651, 5616057731, 5616188803, 5616319909, 5616451003, 5616582079, 5616713153, + 5616844253, 5616975349, 5617106431, 5617237543, 5617368661, 5617499743, 5617630847, + 5617761923, 5617893041, 5618024131, 5618155217, 5618286391, 5618417471, 5618548561, + 5618679691, 5618810837, 5618941943, 5619073037, 5619204121, 5619335201, 5619466327, + 5619597433, 5619728531, 5619859603, 5619990689, 5620121791, 5620252889, 5620383961, + 5620515041, 5620646113, 5620777193, 5620908287, 5621039377, 5621170481, 5621301589, + 5621432731, 5621563807, 5621694889, 5621825981, 5621957113, 5622088189, 5622219271, + 5622350351, 5622481441, 5622612547, 5622743653, 5622874759, 5623005893, 5623136969, + 5623268069, 5623399169, 5623530251, 5623661327, 5623792439, 5623923523, 5624054603, + 5624185711, 5624316827, 5624447911, 5624579003, 5624710081, 5624841179, 5624972261, + 5625103333, 5625234427, 5625365513, 5625496601, 5625627767, 5625758851, 5625889931, + 5626021067, 5626152167, 5626283239, 5626414351, 5626545439, 5626676519, 5626807591, + 5626938689, 5627069771, 5627200847, 5627331929, 5627463031, 5627594117, 5627725193, + 5627856277, 5627987389, 5628118471, 5628249581, 5628380663, 5628511781, 5628642883, + 5628773957, 5628905041, 5629036139, 5629167217, 5629298299, 5629429387, 5629560479, + 5629691567, 5629822643, 5629953737, 5630084819, 5630215901, 5630346973, 5630478083, + 5630609167, 5630740249, 5630871343, 5631002417, 5631133513, 5631264619, 5631395699, + 5631526781, 5631657947, 5631789047, 5631920137, 5632051253, 5632182373, 5632313471, + 5632444553, 5632575661, 5632706759, 5632837841, 5632968917, 5633100007, 5633231081, + 5633362177, 5633493251, 5633624323, 5633755399, 5633886473, 5634017563, 5634148643, + 5634279719, 5634410833, 5634541907, 5634672991, 5634804083, 5634935213, 5635066319, + 5635197457, 5635328551, 5635459649, 5635590721, 5635721801, 5635852883, 5635984001, + 5636115151, 5636246267, 5636377367, 5636508481, 5636639557, 5636770637, 5636901791, + 5637032867, 5637163963, 5637295049, 5637426127, 5637557227, 5637688339, 5637819413, + 5637950491, 5638081573, 5638212647, 5638343729, 5638474811, 5638605919, 5638737023, + 5638868111, 5638999187, 5639130281, 5639261363, 5639392453, 5639523557, 5639654641, + 5639785721, 5639916811, 5640047911, 5640178993, 5640310073, 5640441173, 5640572269, + 5640703351, 5640834427, 5640965507, 5641096579, 5641227653, 5641358729, 5641489801, + 5641620893, 5641751977, 5641883057, 5642014129, 5642145211, 5642276287, 5642407363, + 5642538437, 5642669537, 5642800619, 5642931713, 5643062813, 5643193901, 5643324997, + 5643456079, 5643587219, 5643718313, 5643849389, 5643980471, 5644111547, 5644242629, + 5644373729, 5644504829, 5644635907, 5644766983, 5644898087, 5645029193, 5645160277, + 5645291359, 5645422459, 5645553553, 5645684647, 5645815739, 5645946811, 5646077887, + 5646208987, 5646340087, 5646471203, 5646602293, 5646733373, 5646864469, 5646995561, + 5647126633, 5647257773, 5647388861, 5647519937, 5647651049, 5647782121, 5647913203, + 5648044279, 5648175371, 5648306449, 5648437523, 5648568599, 5648699671, 5648830753, + 5648961833, 5649092929, 5649224071, 5649355181, 5649486263, 5649617353, 5649748427, + 5649879503, 5650010581, 5650141661, 5650272767, 5650403851, 5650534931, 5650666061, + 5650797133, 5650928237, 5651059327, 5651190409, 5651321521, 5651452649, 5651583737, + 5651714819, 5651845909, 5651976997, 5652108157, 5652239261, 5652370351, 5652501457, + 5652632539, 5652763631, 5652894727, 5653025809, 5653156919, 5653288007, 5653419131, + 5653550237, 5653681321, 5653812397, 5653943473, 5654074579, 5654205659, 5654336759, + 5654467843, 5654598919, 5654729999, 5654861087, 5654992163, 5655123239, 5655254321, + 5655385531, 5655516617, 5655647689, 5655778769, 5655909863, 5656040993, 5656172077, + 5656303199, 5656434281, 5656565357, 5656696439, 5656827511, 5656958603, 5657089723, + 5657220799, 5657351891, 5657482969, 5657614051, 5657745131, 5657876243, 5658007331, + 5658138403, 5658269497, 5658400609, 5658531713, 5658662813, 5658793897, 5658925007, + 5659056113, 5659187251, 5659318333, 5659449407, 5659580533, 5659711613, 5659842703, + 5659973849, 5660104951, 5660236027, 5660367127, 5660498201, 5660629279, 5660760359, + 5660891441, 5661022531, 5661153623, 5661284701, 5661415777, 5661546851, 5661677933, + 5661809009, 5661940087, 5662071197, 5662202269, 5662333363, 5662464463, 5662595591, + 5662726669, 5662857751, 5662988843, 5663119919, 5663250997, 5663382143, 5663513221, + 5663644297, 5663775419, 5663906581, 5664037657, 5664168733, 5664299831, 5664430909, + 5664561983, 5664693061, 5664824149, 5664955229, 5665086319, 5665217401, 5665348483, + 5665479571, 5665610647, 5665741721, 5665872803, 5666003947, 5666135051, 5666266129, + 5666397223, 5666528297, 5666659429, 5666790529, 5666921633, 5667052711, 5667183787, + 5667314881, 5667445963, 5667577087, 5667708199, 5667839273, 5667970369, 5668101463, + 5668232561, 5668363637, 5668494719, 5668625821, 5668756909, 5668887989, 5669019089, + 5669150197, 5669281279, 5669412361, 5669543449, 5669674559, 5669805649, 5669936749, + 5670067853, 5670198973, 5670330049, 5670461141, 5670592217, 5670723313, 5670854389, + 5670985487, 5671116587, 5671247693, 5671378771, 5671509853, 5671640971, 5671772083, + 5671903183, 5672034271, 5672165351, 5672296439, 5672427577, 5672558651, 5672689733, + 5672820841, 5672951917, 5673082993, 5673214069, 5673345149, 5673476233, 5673607337, + 5673738449, 5673869521, 5674000637, 5674131713, 5674262857, 5674393981, 5674525111, + 5674656191, 5674787333, 5674918429, 5675049511, 5675180603, 5675311679, 5675442781, + 5675573983, 5675705107, 5675836193, 5675967281, 5676098377, 5676229463, 5676360581, + 5676491659, 5676622747, 5676753827, 5676884911, 5677015991, 5677147079, 5677278161, + 5677409261, 5677540333, 5677671443, 5677802521, 5677933631, 5678064713, 5678195801, + 5678326873, 5678457947, 5678589047, 5678720191, 5678851267, 5678982343, 5679113437, + 5679244511, 5679375587, 5679506671, 5679637759, 5679768847, 5679899921, 5680030999, + 5680162121, 5680293193, 5680424279, 5680555357, 5680686461, 5680817609, 5680948709, + 5681079793, 5681210893, 5681341969, 5681473079, 5681604157, 5681735233, 5681866313, + 5681997403, 5682128503, 5682259589, 5682390661, 5682521759, 5682652847, 5682783937, + 5682915011, 5683046087, 5683177177, 5683308259, 5683439381, 5683570463, 5683701539, + 5683832639, 5683963723, 5684094799, 5684225873, 5684356949, 5684488037, 5684619113, + 5684750191, 5684881289, 5685012391, 5685143467, 5685274571, 5685405679, 5685536761, + 5685667837, 5685798929, 5685930001, 5686061083, 5686192219, 5686323301, 5686454399, + 5686585477, 5686716551, 5686847623, 5686978697, 5687109787, 5687240861, 5687371939, + 5687503013, 5687634107, 5687765179, 5687896271, 5688027379, 5688158453, 5688289531, + 5688420613, 5688551699, 5688682777, 5688813929, 5688945019, 5689076101, 5689207177, + 5689338289, 5689469399, 5689600573, 5689731667, 5689862767, 5689993849, 5690124943, + 5690256043, 5690387161, 5690518241, 5690649329, 5690780441, 5690911519, 5691042607, + 5691173681, 5691304763, 5691435863, 5691566939, 5691698011, 5691829133, 5691960221, + 5692091303, 5692222379, 5692353497, 5692484579, 5692615651, 5692746749, 5692877837, + 5693008913, 5693139989, 5693271091, 5693402189, 5693533273, 5693664349, 5693795461, + 5693926541, 5694057619, 5694188701, 5694319789, 5694450871, 5694581951, 5694713071, + 5694844151, 5694975229, 5695106321, 5695237397, 5695368473, 5695499587, 5695630673, + 5695761749, 5695892831, 5696023903, 5696154977, 5696286059, 5696417147, 5696548259, + 5696679343, 5696810443, 5696941561, 5697072637, 5697203741, 5697334817, 5697465911, + 5697597011, 5697728083, 5697859157, 5697990239, 5698121327, 5698252409, 5698383491, + 5698514567, 5698645639, 5698776749, 5698907821, 5699038897, 5699170003, 5699301103, + 5699432183, 5699563279, 5699694361, 5699825437, 5699956529, 5700087649, 5700218753, + 5700349891, 5700480983, 5700612061, 5700743137, 5700874211, 5701005319, 5701136393, + 5701267469, 5701398557, 5701529677, 5701660807, 5701791889, 5701922977, 5702054119, + 5702185201, 5702316281, 5702447357, 5702578477, 5702709559, 5702840653, 5702971783, + 5703102883, 5703234011, 5703365099, 5703496187, 5703627263, 5703758351, 5703889463, + 5704020547, 5704151623, 5704282709, 5704413787, 5704544861, 5704676023, 5704807099, + 5704938191, 5705069281, 5705200381, 5705331469, 5705462563, 5705593637, 5705724751, + 5705855941, 5705987041, 5706118129, 5706249203, 5706380279, 5706511361, 5706642443, + 5706773521, 5706904603, 5707035689, 5707166789, 5707297891, 5707428977, 5707560073, + 5707691149, 5707822283, 5707953379, 5708084479, 5708215553, 5708346671, 5708477759, + 5708608837, 5708739913, 5708871013, 5709002093, 5709133187, 5709264277, 5709395381, + 5709526453, 5709657539, 5709788611, 5709919703, 5710050779, 5710181863, 5710312961, + 5710444079, 5710575151, 5710706233, 5710837333, 5710968407, 5711099483, 5711230561, + 5711361641, 5711492713, 5711623789, 5711754899, 5711885999, 5712017099, 5712148177, + 5712279281, 5712410383, 5712541459, 5712672547, 5712803647, 5712934753, 5713065881, + 5713196989, 5713328069, 5713459151, 5713590229, 5713721303, 5713852411, 5713983529, + 5714114617, 5714245709, 5714376781, 5714507863, 5714638991, 5714770063, 5714901139, + 5715032231, 5715163327, 5715294437, 5715425509, 5715556643, 5715687721, 5715818807, + 5715949879, 5716080971, 5716212049, 5716343137, 5716474219, 5716605299, 5716736429, + 5716867529, 5716998601, 5717129681, 5717260753, 5717391829, 5717522957, 5717654029, + 5717785103, 5717916181, 5718047317, 5718178391, 5718309469, 5718440551, 5718571669, + 5718702751, 5718833863, 5718964957, 5719096043, 5719227149, 5719358261, 5719489339, + 5719620449, 5719751561, 5719882639, 5720013721, 5720144803, 5720275903, 5720406983, + 5720538121, 5720669203, 5720800277, 5720931371, 5721062443, 5721193537, 5721324641, + 5721455717, 5721586811, 5721717887, 5721848971, 5721980057, 5722111139, 5722242233, + 5722373323, 5722504429, 5722635533, 5722766629, 5722897709, 5723028811, 5723159921, + 5723290999, 5723422087, 5723553161, 5723684293, 5723815367, 5723946457, 5724077587, + 5724208663, 5724339743, 5724470849, 5724601937, 5724733013, 5724864107, 5724995179, + 5725126279, 5725257361, 5725388443, 5725519519, 5725650629, 5725781707, 5725912781, + 5726043863, 5726174947, 5726306039, 5726437111, 5726568193, 5726699267, 5726830399, + 5726961533, 5727092627, 5727223709, 5727354803, 5727485887, 5727616981, 5727748063, + 5727879149, 5728010251, 5728141339, 5728272419, 5728403503, 5728534589, 5728665697, + 5728796803, 5728927889, 5729058967, 5729190041, 5729321119, 5729452213, 5729583313, + 5729714387, 5729845469, 5729976563, 5730107659, 5730238783, 5730369881, 5730500953, + 5730632041, 5730763117, 5730894229, 5731025317, 5731156397, 5731287491, 5731418591, + 5731549687, 5731680793, 5731811873, 5731942969, 5732074063, 5732205137, 5732336209, + 5732467289, 5732598379, 5732729459, 5732860537, 5732991611, 5733122683, 5733253783, + 5733384859, 5733515941, 5733647033, 5733778151, 5733909239, 5734040359, 5734171453, + 5734302527, 5734433611, 5734564711, 5734695793, 5734826939, 5734958027, 5735089099, + 5735220199, 5735351291, 5735482439, 5735613601, 5735744683, 5735875787, 5736006863, + 5736137941, 5736269051, 5736400127, 5736531217, 5736662317, 5736793399, 5736924491, + 5737055573, 5737186649, 5737317749, 5737448833, 5737579909, 5737710989, 5737842101, + 5737973173, 5738104259, 5738235341, 5738366467, 5738497547, 5738628629, 5738759701, + 5738890847, 5739021931, 5739153047, 5739284143, 5739415229, 5739546311, 5739677387, + 5739808471, 5739939559, 5740070641, 5740201721, 5740332809, 5740463887, 5740594991, + 5740726091, 5740857173, 5740988251, 5741119327, 5741250413, 5741381507, 5741512591, + 5741643673, 5741774791, 5741905867, 5742036961, 5742168059, 5742299137, 5742430223, + 5742561299, 5742692381, 5742823453, 5742954541, 5743085629, 5743216723, 5743347853, + 5743478927, 5743610003, 5743741099, 5743872181, 5744003257, 5744134339, 5744265431, + 5744396549, 5744527661, 5744658757, 5744789839, 5744920957, 5745052043, 5745183151, + 5745314261, 5745445351, 5745576437, 5745707519, 5745838627, 5745969707, 5746100791, + 5746231873, 5746362949, 5746494067, 5746625167, 5746756303, 5746887427, 5747018509, + 5747149609, 5747280709, 5747411801, 5747542873, 5747674001, 5747805073, 5747936153, + 5748067229, 5748198317, 5748329401, 5748460493, 5748591571, 5748722647, 5748853723, + 5748984931, 5749116017, 5749247089, 5749378183, 5749509263, 5749640359, 5749771453, + 5749902541, 5750033621, 5750164729, 5750295809, 5750426909, 5750557999, 5750689079, + 5750820191, 5750951263, 5751082339, 5751213427, 5751344531, 5751475637, 5751606727, + 5751737809, 5751868891, 5751999977, 5752131053, 5752262147, 5752393237, 5752524329, + 5752655411, 5752786483, 5752917571, 5753048663, 5753179753, 5753310839, 5753441963, + 5753573039, 5753704133, 5753835209, 5753966291, 5754097367, 5754228439, 5754359537, + 5754490631, 5754621731, 5754752831, 5754883919, 5755015001, 5755146073, 5755277179, + 5755408279, 5755539371, 5755670461, 5755801547, 5755932619, 5756063707, 5756194819, + 5756325931, 5756457017, 5756588107, 5756719183, 5756850259, 5756981359, 5757112447, + 5757243533, 5757374627, 5757505703, 5757636779, 5757767867, 5757898957, 5758030087, + 5758161161, 5758292261, 5758423337, 5758554419, 5758685507, 5758816597, 5758947673, + 5759078807, 5759209879, 5759340973, 5759472053, 5759603173, 5759734289, 5759865373, + 5759996449, 5760127531, 5760258607, 5760389681, 5760520769, 5760651859, 5760782939, + 5760914017, 5761045111, 5761176209, 5761307291, 5761438369, 5761569469, 5761700563, + 5761831651, 5761962797, 5762093893, 5762224967, 5762356049, 5762487121, 5762618203, + 5762749313, 5762880407, 5763011483, 5763142559, 5763273647, 5763404723, 5763535801, + 5763666907, 5763797983, 5763929071, 5764060187, 5764191269, 5764322341, 5764453439, + 5764584517, 5764715599, 5764846699, 5764977791, 5765108903, 5765239981, 5765371057, + 5765502131, 5765633207, 5765764289, 5765895361, 5766026437, 5766157519, 5766288617, + 5766419717, 5766550793, 5766681917, 5766813053, 5766944137, 5767075229, 5767206301, + 5767337383, 5767468463, 5767599559, 5767730663, 5767861741, 5767992821, 5768123899, + 5768255041, 5768386121, 5768517193, 5768648269, 5768779351, 5768910443, 5769041521, + 5769172603, 5769303779, 5769434863, 5769565943, 5769697019, 5769828109, 5769959213, + 5770090289, 5770221361, 5770352437, 5770483517, 5770614617, 5770745753, 5770876849, + 5771007967, 5771139133, 5771270209, 5771401283, 5771532391, 5771663467, 5771794541, + 5771925637, 5772056713, 5772187807, 5772318889, 5772449987, 5772581099, 5772712181, + 5772843253, 5772974351, 5773105427, 5773236541, 5773367617, 5773498691, 5773629773, + 5773760851, 5773891939, 5774023019, 5774154097, 5774285227, 5774416309, 5774547407, + 5774678479, 5774809553, 5774940629, 5775071719, 5775202799, 5775333887, 5775464971, + 5775596053, 5775727151, 5775858227, 5775989311, 5776120393, 5776251493, 5776382581, + 5776513669, 5776644779, 5776775857, 5776906937, 5777038019, 5777169107, 5777300183, + 5777431277, 5777562367, 5777693447, 5777824523, 5777955607, 5778086719, 5778217811, + 5778348883, 5778479963, 5778611089, 5778742181, 5778873307, 5779004411, 5779135489, + 5779266599, 5779397681, 5779528801, 5779659877, 5779790959, 5779922129, 5780053229, + 5780184301, 5780315393, 5780446487, 5780577581, 5780708669, 5780839751, 5780970823, + 5781101897, 5781232987, 5781364067, 5781495173, 5781626273, 5781757351, 5781888467, + 5782019567, 5782150643, 5782281731, 5782412803, 5782543883, 5782674971, 5782806049, + 5782937137, 5783068223, 5783199311, 5783330383, 5783461483, 5783592557, 5783723669, + 5783854759, 5783985839, 5784116917, 5784247993, 5784379087, 5784510161, 5784641237, + 5784772337, 5784903409, 5785034599, 5785165679, 5785296773, 5785427849, 5785558921, + 5785690007, 5785821109, 5785952203, 5786083283, 5786214359, 5786345431, 5786476513, + 5786607601, 5786738719, 5786869793, 5787000881, 5787131969, 5787263047, 5787394127, + 5787525223, 5787656311, 5787787387, 5787918469, 5788049563, 5788180637, 5788311733, + 5788442819, 5788573949, 5788705049, 5788836143, 5788967227, 5789098303, 5789229401, + 5789360483, 5789491579, 5789622653, 5789753741, 5789884853, 5790015953, 5790147031, + 5790278119, 5790409199, 5790540311, 5790671431, 5790802517, 5790933593, 5791064693, + 5791195793, 5791326889, 5791458007, 5791589081, 5791720169, 5791851251, 5791982323, + 5792113409, 5792244499, 5792375599, 5792506697, 5792637769, 5792768843, 5792899919, + 5793031009, 5793162121, 5793293203, 5793424277, 5793555403, 5793686491, 5793817591, + 5793948691, 5794079777, 5794210859, 5794341989, 5794473077, 5794604149, 5794735229, + 5794866383, 5794997479, 5795128583, 5795259667, 5795390803, 5795521957, 5795653067, + 5795784139, 5795915231, 5796046327, 5796177407, 5796308501, 5796439589, 5796570707, + 5796701791, 5796832891, 5796964021, 5797095097, 5797226177, 5797357283, 5797488379, + 5797619459, 5797750531, 5797881613, 5798012687, 5798143763, 5798274841, 5798405927, + 5798536999, 5798668087, 5798799277, 5798930353, 5799061453, 5799192533, 5799323669, + 5799454741, 5799585817, 5799716939, 5799848017, 5799979099, 5800110181, 5800241261, + 5800372337, 5800503409, 5800634503, 5800765583, 5800896659, 5801027741, 5801158813, + 5801289911, 5801420987, 5801552129, 5801683207, 5801814283, 5801945447, 5802076541, + 5802207613, 5802338699, 5802469787, 5802600889, 5802731971, 5802863051, 5802994159, + 5803125299, 5803256401, 5803387511, 5803518583, 5803649659, 5803780733, 5803911829, + 5804042903, 5804174023, 5804305099, 5804436173, 5804567309, 5804698423, 5804829533, + 5804960659, 5805091753, 5805222851, 5805353927, 5805485003, 5805616081, 5805747161, + 5805878237, 5806009333, 5806140409, 5806271483, 5806402571, 5806533673, 5806664749, + 5806795829, 5806926901, 5807057983, 5807189083, 5807320157, 5807451233, 5807582321, + 5807713393, 5807844467, 5807975539, 5808106613, 5808237703, 5808368789, 5808499883, + 5808630959, 5808762067, 5808893191, 5809024271, 5809155371, 5809286453, 5809417541, + 5809548643, 5809679797, 5809810891, 5809941967, 5810073047, 5810204149, 5810335229, + 5810466313, 5810597393, 5810728481, 5810859557, 5810990659, 5811121753, 5811252833, + 5811383933, 5811515023, 5811646097, 5811777193, 5811908327, 5812039421, 5812170499, + 5812301617, 5812432693, 5812563781, 5812694869, 5812825951, 5812957027, 5813088109, + 5813219183, 5813350297, 5813481383, 5813612459, 5813743541, 5813874613, 5814005731, + 5814136807, 5814267997, 5814399113, 5814530207, 5814661301, 5814792397, 5814923573, + 5815054667, 5815185769, 5815316863, 5815447943, 5815579019, 5815710091, 5815841177, + 5815972249, 5816103329, 5816234401, 5816365487, 5816496571, 5816627669, 5816758751, + 5816889833, 5817020921, 5817151999, 5817283081, 5817414179, 5817545257, 5817676339, + 5817807433, 5817938507, 5818069597, 5818200673, 5818331777, 5818462873, 5818593947, + 5818725049, 5818856123, 5818987247, 5819118341, 5819249419, 5819380499, 5819511571, + 5819642651, 5819773723, 5819904851, 5820035929, 5820167011, 5820298091, 5820429191, + 5820560293, 5820691379, 5820822509, 5820953581, 5821084657, 5821215749, 5821346833, + 5821477913, 5821609019, 5821740107, 5821871201, 5822002301, 5822133379, 5822264519, + 5822395597, 5822526691, 5822657833, 5822788919, 5822920057, 5823051133, 5823182213, + 5823313291, 5823444371, 5823575477, 5823706613, 5823837697, 5823968789, 5824099873, + 5824231057, 5824362139, 5824493219, 5824624291, 5824755367, 5824886447, 5825017529, + 5825148619, 5825279699, 5825410777, 5825541889, 5825672987, 5825804063, 5825935153, + 5826066269, 5826197357, 5826328481, 5826459559, 5826590633, 5826721753, 5826852841, + 5826983917, 5827114991, 5827246099, 5827377187, 5827508273, 5827639351, 5827770439, + 5827901543, 5828032627, 5828163751, 5828294827, 5828425907, 5828557001, 5828688079, + 5828819173, 5828950277, 5829081359, 5829212461, 5829343579, 5829474661, 5829605759, + 5829736831, 5829867917, 5829999001, 5830130081, 5830261159, 5830392263, 5830523351, + 5830654483, 5830785577, 5830916719, 5831047811, 5831178887, 5831309983, 5831441071, + 5831572189, 5831703281, 5831834357, 5831965439, 5832096511, 5832227651, 5832358757, + 5832489847, 5832620939, 5832752033, 5832883127, 5833014203, 5833145291, 5833276381, + 5833407469, 5833538561, 5833669651, 5833800727, 5833931833, 5834062919, 5834194027, + 5834325173, 5834456281, 5834587417, 5834718541, 5834849623, 5834980733, 5835111823, + 5835242921, 5835374059, 5835505141, 5835636229, 5835767303, 5835898391, 5836029491, + 5836160567, 5836291711, 5836422803, 5836553897, 5836684979, 5836816079, 5836947157, + 5837078237, 5837209331, 5837340413, 5837471491, 5837602577, 5837733691, 5837864833, + 5837995927, 5838127013, 5838258103, 5838389197, 5838520271, 5838651359, 5838782437, + 5838913523, 5839044599, 5839175677, 5839306751, 5839437839, 5839568941, 5839700017, + 5839831091, 5839962199, 5840093291, 5840224391, 5840355467, 5840486543, 5840617669, + 5840748743, 5840879827, 5841010907, 5841141983, 5841273071, 5841404147, 5841535241, + 5841666329, 5841797419, 5841928549, 5842059649, 5842190741, 5842321841, 5842452919, + 5842584001, 5842715077, 5842846183, 5842977269, 5843108351, 5843239459, 5843370539, + 5843501621, 5843632721, 5843763799, 5843894897, 5844025987, 5844157061, 5844288157, + 5844419281, 5844550367, 5844681443, 5844812527, 5844943607, 5845074679, 5845205777, + 5845336853, 5845467961, 5845599047, 5845730119, 5845861193, 5845992319, 5846123401, + 5846254499, 5846385593, 5846516693, 5846647799, 5846778881, 5846909989, 5847041077, + 5847172181, 5847303277, 5847434389, 5847565511, 5847696587, 5847827677, 5847958759, + 5848089833, 5848220909, 5848352011, 5848483103, 5848614197, 5848745311, 5848876391, + 5849007469, 5849138573, 5849269649, 5849400761, 5849531837, 5849662913, 5849793991, + 5849925073, 5850056153, 5850187247, 5850318323, 5850449399, 5850580471, 5850711563, + 5850842659, 5850973747, 5851104859, 5851235963, 5851367069, 5851498189, 5851629271, + 5851760351, 5851891439, 5852022529, 5852153611, 5852284717, 5852415839, 5852546911, + 5852678071, 5852809169, 5852940259, 5853071333, 5853202409, 5853333481, 5853464563, + 5853595663, 5853726751, 5853857833, 5853988937, 5854120031, 5854251103, 5854382267, + 5854513351, 5854644427, 5854775561, 5854906633, 5855037707, 5855168779, 5855299867, + 5855430979, 5855562079, 5855693153, 5855824229, 5855955307, 5856086389, 5856217469, + 5856348583, 5856479693, 5856610769, 5856741853, 5856872933, 5857004009, 5857135169, + 5857266251, 5857397323, 5857528403, 5857659487, 5857790563, 5857921639, 5858052731, + 5858183839, 5858314927, 5858446043, 5858577121, 5858708213, 5858839291, 5858970449, + 5859101539, 5859232637, 5859363737, 5859494857, 5859625931, 5859757039, 5859888149, + 5860019237, 5860150313, 5860281403, 5860412477, 5860543607, 5860674709, 5860805813, + 5860936891, 5861067967, 5861199053, 5861330147, 5861461223, 5861592311, 5861723401, + 5861854487, 5861985587, 5862116747, 5862247823, 5862378911, 5862510001, 5862641087, + 5862772169, 5862903257, 5863034329, 5863165409, 5863296493, 5863427599, 5863558721, + 5863689823, 5863820923, 5863951997, 5864083073, 5864214157, 5864345233, 5864476327, + 5864607403, 5864738491, 5864869651, 5865000727, 5865131803, 5865262877, 5865393977, + 5865525049, 5865656123, 5865787211, 5865918283, 5866049377, 5866180553, 5866311677, + 5866442753, 5866573829, 5866704911, 5866835987, 5866967063, 5867098147, 5867229223, + 5867360311, 5867491411, 5867622493, 5867753569, 5867884667, 5868015793, 5868146899, + 5868277973, 5868409051, 5868540143, 5868671257, 5868802333, 5868933439, 5869064521, + 5869195597, 5869326703, 5869457779, 5869588853, 5869719929, 5869851011, 5869982089, + 5870113163, 5870244241, 5870375323, 5870506409, 5870637481, 5870768573, 5870899669, + 5871030749, 5871161897, 5871293003, 5871424093, 5871555167, 5871686243, 5871817319, + 5871948437, 5872079513, 5872210607, 5872341703, 5872472779, 5872603853, 5872734941, + 5872866017, 5872997093, 5873128187, 5873259283, 5873390437, 5873521517, 5873652593, + 5873783719, 5873914799, 5874045883, 5874177007, 5874308081, 5874439159, 5874570239, + 5874701317, 5874832423, 5874963499, 5875094587, 5875225663, 5875356743, 5875487843, + 5875618933, 5875750009, 5875881083, 5876012159, 5876143283, 5876274359, 5876405489, + 5876536577, 5876667703, 5876798779, 5876929853, 5877060953, 5877192053, 5877323161, + 5877454237, 5877585313, 5877716387, 5877847471, 5877978563, 5878109647, 5878240723, + 5878371823, 5878502951, 5878634023, 5878765127, 5878896217, 5879027299, 5879158379, + 5879289461, 5879420543, 5879551649, 5879682773, 5879813861, 5879944969, 5880076099, + 5880207199, 5880338273, 5880469351, 5880600431, 5880731531, 5880862633, 5880993721, + 5881124801, 5881255921, 5881387003, 5881518089, 5881649161, 5881780243, 5881911319, + 5882042399, 5882173477, 5882304557, 5882435707, 5882566787, 5882697869, 5882828957, + 5882960093, 5883091199, 5883222277, 5883353369, 5883484447, 5883615539, 5883746629, + 5883877721, 5884008803, 5884139879, 5884270963, 5884402039, 5884533133, 5884664207, + 5884795289, 5884926361, 5885057471, 5885188553, 5885319637, 5885450713, 5885581799, + 5885712907, 5885844043, 5885975153, 5886106243, 5886237317, 5886368393, 5886499499, + 5886630587, 5886761663, 5886892789, 5887023889, 5887154993, 5887286071, 5887417177, + 5887548253, 5887679333, 5887810417, 5887941503, 5888072629, 5888203709, 5888334839, + 5888465939, 5888597023, 5888728099, 5888859191, 5888990291, 5889121369, 5889252449, + 5889383527, 5889514621, 5889645703, 5889776777, 5889907897, 5890038989, 5890170079, + 5890301177, 5890432253, 5890563383, 5890694533, 5890825613, 5890956727, 5891087801, + 5891218897, 5891350001, 5891481091, 5891612203, 5891743283, 5891874367, 5892005447, + 5892136519, 5892267599, 5892398671, 5892529763, 5892660889, 5892791963, 5892923041, + 5893054129, 5893185211, 5893316309, 5893447381, 5893578503, 5893709587, 5893840669, + 5893971763, 5894102869, 5894233981, 5894365067, 5894496149, 5894627251, 5894758327, + 5894889439, 5895020563, 5895151687, 5895282761, 5895413837, 5895544909, 5895675991, + 5895807089, 5895938189, 5896069271, 5896200371, 5896331473, 5896462549, 5896593631, + 5896724741, 5896855847, 5896986941, 5897118037, 5897249131, 5897380207, 5897511283, + 5897642369, 5897773513, 5897904611, 5898035699, 5898166777, 5898297871, 5898429011, + 5898560093, 5898691171, 5898822253, 5898953329, 5899084403, 5899215499, 5899346599, + 5899477679, 5899608761, 5899739863, 5899870939, 5900002013, 5900133097, 5900264189, + 5900395271, 5900526367, 5900657453, 5900788541, 5900919613, 5901050689, 5901181799, + 5901312887, 5901443981, 5901575089, 5901706177, 5901837287, 5901968363, 5902099439, + 5902230553, 5902361627, 5902492753, 5902623829, 5902754911, 5902886021, 5903017103, + 5903148193, 5903279267, 5903410339, 5903541437, 5903672513, 5903803627, 5903934719, + 5904065807, 5904196889, 5904327977, 5904459049, 5904590173, 5904721267, 5904852347, + 5904983429, 5905114529, 5905245649, 5905376761, 5905507849, 5905638941, 5905770049, + 5905901123, 5906032199, 5906163293, 5906294371, 5906425451, 5906556533, 5906687609, + 5906818699, 5906949791, 5907080887, 5907211963, 5907343037, 5907474191, 5907605293, + 5907736379, 5907867457, 5907998531, 5908129627, 5908260727, 5908391807, 5908522883, + 5908653983, 5908785073, 5908916147, 5909047241, 5909178323, 5909309407, 5909440513, + 5909571611, 5909702693, 5909833793, 5909964869, 5910095941, 5910227023, 5910358163, + 5910489259, 5910620381, 5910751453, 5910882553, 5911013659, 5911144781, 5911275893, + 5911406987, 5911538069, 5911669163, 5911800259, 5911931341, 5912062433, 5912193509, + 5912324591, 5912455697, 5912586781, 5912717869, 5912848957, 5912980043, 5913111131, + 5913242227, 5913373303, 5913504379, 5913635461, 5913766543, 5913897617, 5914028699, + 5914159777, 5914290869, 5914421959, 5914553033, 5914684133, 5914815281, 5914946353, + 5915077429, 5915208511, 5915339609, 5915470703, 5915601779, 5915732857, 5915863937, + 5915995013, 5916126091, 5916257173, 5916388267, 5916519431, 5916650533, 5916781631, + 5916912733, 5917043827, 5917174903, 5917305997, 5917437133, 5917568263, 5917699339, + 5917830419, 5917961501, 5918092573, 5918223659, 5918354737, 5918485813, 5918616911, + 5918747983, 5918879081, 5919010159, 5919141299, 5919272417, 5919403513, 5919534601, + 5919665701, 5919796793, 5919927889, 5920058983, 5920190057, 5920321139, 5920452217, + 5920583297, 5920714391, 5920845473, 5920976569, 5921107657, 5921238779, 5921369863, + 5921500943, 5921632043, 5921763121, 5921894281, 5922025357, 5922156473, 5922287587, + 5922418751, 5922549833, 5922680917, 5922811991, 5922943087, 5923074161, 5923205243, + 5923336337, 5923467421, 5923598501, 5923729589, 5923860673, 5923991747, 5924122823, + 5924253901, 5924384987, 5924516069, 5924647151, 5924778259, 5924909339, 5925040417, + 5925171491, 5925302567, 5925433649, 5925564721, 5925695801, 5925826877, 5925957959, + 5926089031, 5926220117, 5926351243, 5926482323, 5926613447, 5926744519, 5926875601, + 5927006707, 5927137787, 5927268869, 5927399977, 5927531053, 5927662127, 5927793217, + 5927924309, 5928055391, 5928186491, 5928317573, 5928448681, 5928579757, 5928710831, + 5928841903, 5928972979, 5929104053, 5929235167, 5929366243, 5929497347, 5929628423, + 5929759523, 5929890643, 5930021803, 5930152927, 5930284021, 5930415107, 5930546189, + 5930677279, 5930808379, 5930939453, 5931070531, 5931201607, 5931332681, 5931463801, + 5931594883, 5931725977, 5931857069, 5931988267, 5932119341, 5932250449, 5932381529, + 5932512617, 5932643729, 5932774817, 5932905899, 5933036999, 5933168071, 5933299181, + 5933430263, 5933561341, 5933692417, 5933823517, 5933954597, 5934085669, 5934216751, + 5934347857, 5934478937, 5934610013, 5934741107, 5934872191, 5935003379, 5935134473, + 5935265593, 5935396697, 5935527799, 5935658899, 5935790039, 5935921141, 5936052223, + 5936183303, 5936314393, 5936445469, 5936576551, 5936707631, 5936838709, 5936969821, + 5937100907, 5937232033, 5937363109, 5937494197, 5937625273, 5937756353, 5937887453, + 5938018531, 5938149617, 5938280731, 5938411819, 5938542899, 5938673989, 5938805063, + 5938936139, 5939067229, 5939198303, 5939329393, 5939460473, 5939591551, 5939722651, + 5939853757, 5939984833, 5940115913, 5940247013, 5940378089, 5940509171, 5940640243, + 5940771349, 5940902441, 5941033519, 5941164599, 5941295671, 5941426759, 5941557863, + 5941688939, 5941820021, 5941951153, 5942082247, 5942213363, 5942344489, 5942475599, + 5942606671, 5942737747, 5942868821, 5942999917, 5943131081, 5943262181, 5943393257, + 5943524329, 5943655427, 5943786559, 5943917657, 5944048757, 5944179883, 5944310963, + 5944442041, 5944573139, 5944704217, 5944835291, 5944966369, 5945097449, 5945228537, + 5945359619, 5945490737, 5945621819, 5945752909, 5945883989, 5946015071, 5946146147, + 5946277229, 5946408323, 5946539413, 5946670501, 5946801587, 5946932713, 5947063823, + 5947194917, 5947325999, 5947457149, 5947588223, 5947719313, 5947850399, 5947981489, + 5948112607, 5948243701, 5948374813, 5948505889, 5948636989, 5948768081, 5948899169, + 5949030251, 5949161363, 5949292471, 5949423563, 5949554669, 5949685751, 5949816863, + 5949947981, 5950079053, 5950210127, 5950341227, 5950472327, 5950603427, 5950734523, + 5950865597, 5950996699, 5951127773, 5951258849, 5951389957, 5951521061, 5951652139, + 5951783219, 5951914303, 5952045377, 5952176449, 5952307547, 5952438623, 5952569713, + 5952700801, 5952831887, 5952962959, 5953094053, 5953225127, 5953356229, 5953487311, + 5953618397, 5953749497, 5953880683, 5954011787, 5954142899, 5954274043, 5954405123, + 5954536219, 5954667307, 5954798407, 5954929493, 5955060589, 5955191687, 5955322759, + 5955453853, 5955584927, 5955716009, 5955847109, 5955978187, 5956109287, 5956240373, + 5956371493, 5956502639, 5956633717, 5956764823, 5956895911, 5957027009, 5957158111, + 5957289211, 5957420291, 5957551363, 5957682439, 5957813629, 5957944709, 5958075793, + 5958206867, 5958337967, 5958469051, 5958600143, 5958731221, 5958862297, 5958993421, + 5959124531, 5959255609, 5959386683, 5959517783, 5959648873, 5959779949, 5959911029, + 5960042107, 5960173187, 5960304277, 5960435353, 5960566433, 5960697529, 5960828623, + 5960959751, 5961090859, 5961221947, 5961353029, 5961484117, 5961615223, 5961746317, + 5961877393, 5962008473, 5962139549, 5962270627, 5962401703, 5962532827, 5962663919, + 5962794997, 5962926121, 5963057237, 5963188327, 5963319403, 5963450497, 5963581607, + 5963712683, 5963843813, 5963974909, 5964105997, 5964237073, 5964368153, 5964499253, + 5964630337, 5964761431, 5964892553, 5965023637, 5965154729, 5965285841, 5965416913, + 5965547989, 5965679087, 5965810163, 5965941239, 5966072341, 5966203469, 5966334541, + 5966465629, 5966596703, 5966727787, 5966858869, 5966989949, 5967121033, 5967252107, + 5967383237, 5967514313, 5967645427, 5967776527, 5967907601, 5968038677, 5968169761, + 5968300847, 5968431947, 5968563019, 5968694107, 5968825189, 5968956269, 5969087359, + 5969218447, 5969349521, 5969480597, 5969611673, 5969742749, 5969873821, 5970004921, + 5970136049, 5970267133, 5970398227, 5970529307, 5970660379, 5970791461, 5970922547, + 5971053619, 5971184719, 5971315793, 5971446931, 5971578013, 5971709089, 5971840169, + 5971971253, 5972102351, 5972233439, 5972364527, 5972495609, 5972626697, 5972757809, + 5972888903, 5973019981, 5973151099, 5973282173, 5973413261, 5973544333, 5973675427, + 5973806533, 5973937631, 5974068703, 5974199807, 5974330909, 5974462001, 5974593109, + 5974724219, 5974855301, 5974986397, 5975117497, 5975248579, 5975379659, 5975510731, + 5975641807, 5975772889, 5975903977, 5976035071, 5976166169, 5976297263, 5976428389, + 5976559481, 5976690557, 5976821629, 5976952727, 5977083857, 5977214933, 5977346071, + 5977477193, 5977608283, 5977739377, 5977870487, 5978001569, 5978132681, 5978263769, + 5978394871, 5978525947, 5978657039, 5978788117, 5978919239, 5979050317, 5979181399, + 5979312473, 5979443563, 5979574681, 5979705757, 5979836857, 5979967969, 5980099043, + 5980230127, 5980361209, 5980492283, 5980623361, 5980754449, 5980885579, 5981016659, + 5981147747, 5981278879, 5981409953, 5981541053, 5981672149, 5981803271, 5981934377, + 5982065459, 5982196547, 5982327677, 5982458753, 5982589861, 5982720941, 5982852019, + 5982983119, 5983114219, 5983245299, 5983376411, 5983507489, 5983638571, 5983769647, + 5983900733, 5984031811, 5984162953, 5984294039, 5984425129, 5984556209, 5984687281, + 5984818361, 5984949469, 5985080551, 5985211637, 5985342767, 5985473843, 5985604951, + 5985736033, 5985867133, 5985998243, 5986129333, 5986260407, 5986391479, 5986522609, + 5986653697, 5986784773, 5986915849, 5987046929, 5987178013, 5987309099, 5987440181, + 5987571257, 5987702377, 5987833499, 5987964583, 5988095671, 5988226747, 5988357857, + 5988488959, 5988620041, 5988751123, 5988882227, 5989013323, 5989144423, 5989275499, + 5989406581, 5989537657, 5989668733, 5989799821, 5989930897, 5990062009, 5990193101, + 5990324177, 5990455279, 5990586367, 5990717449, 5990848553, 5990979649, 5991110729, + 5991241811, 5991372973, 5991504049, 5991635173, 5991766289, 5991897377, 5992028453, + 5992159543, 5992290617, 5992421713, 5992552843, 5992683919, 5992815011, 5992946101, + 5993077177, 5993208283, 5993339371, 5993470451, 5993601541, 5993732621, 5993863741, + 5993994829, 5994125903, 5994256981, 5994388061, 5994519149, 5994650231, 5994781307, + 5994912379, 5995043479, 5995174561, 5995305643, 5995436731, 5995567861, 5995698977, + 5995830077, 5995961159, 5996092243, 5996223347, 5996354443, 5996485559, 5996616631, + 5996747741, 5996878813, 5997009901, 5997140977, 5997272101, 5997403177, 5997534269, + 5997665369, 5997796487, 5997927571, 5998058659, 5998189733, 5998320827, 5998451903, + 5998583021, 5998714103, 5998845179, 5998976281, 5999107357, 5999238461, 5999369539, + 5999500631, 5999631713, 5999762803, 5999893909, 6000025039, 6000156121, 6000287213, + 6000418301, 6000549403, 6000680489, 6000811567, 6000942671, 6001073747, 6001204831, + 6001335917, 6001467001, 6001598089, 6001729193, 6001860283, 6001991363, 6002122537, + 6002253613, 6002384693, 6002515769, 6002646857, 6002777951, 6002909047, 6003040151, + 6003171247, 6003302323, 6003433411, 6003564487, 6003695567, 6003826639, 6003957719, + 6004088807, 6004219927, 6004351013, 6004482091, 6004613189, 6004744289, 6004875379, + 6005006461, 6005137603, 6005268701, 6005399791, 6005530901, 6005662009, 6005793083, + 6005924189, 6006055271, 6006186409, 6006317501, 6006448573, 6006579679, 6006710761, + 6006841847, 6006972929, 6007104041, 6007235119, 6007366201, 6007497283, 6007628399, + 6007759493, 6007890587, 6008021671, 6008152753, 6008283839, 6008414911, 6008546003, + 6008677079, 6008808187, 6008939273, 6009070351, 6009201433, 6009332507, 6009463591, + 6009594671, 6009725819, 6009856891, 6009987967, 6010119053, 6010250153, 6010381241, + 6010512337, 6010643411, 6010774501, 6010905613, 6011036699, 6011167781, 6011298859, + 6011429939, 6011561021, 6011692111, 6011823217, 6011954303, 6012085379, 6012216451, + 6012347533, 6012478607, 6012609683, 6012740809, 6012871903, 6013003063, 6013134163, + 6013265243, 6013396331, 6013527413, 6013658491, 6013789597, 6013920709, 6014051833, + 6014182907, 6014313997, 6014445119, 6014576207, 6014707319, 6014838413, 6014969507, + 6015100583, 6015231689, 6015362777, 6015493873, 6015624977, 6015756073, 6015887147, + 6016018297, 6016149371, 6016280497, 6016411573, 6016542659, 6016673731, 6016804813, + 6016935889, 6017066969, 6017198041, 6017329177, 6017460271, 6017591347, 6017722421, + 6017853509, 6017984593, 6018115667, 6018246743, 6018377819, 6018508921, 6018640007, + 6018771089, 6018902161, 6019033261, 6019164379, 6019295467, 6019426547, 6019557647, + 6019688747, 6019819843, 6019950917, 6020081989, 6020213063, 6020344151, 6020475233, + 6020606311, 6020737417, 6020868499, 6020999627, 6021130699, 6021261787, 6021392869, + 6021523943, 6021655043, 6021786143, 6021917221, 6022048343, 6022179437, 6022310521, + 6022441597, 6022572727, 6022703821, 6022834903, 6022966069, 6023097151, 6023228251, + 6023359327, 6023490457, 6023621609, 6023752717, 6023883851, 6024014981, 6024146081, + 6024277177, 6024408263, 6024539359, 6024670433, 6024801521, 6024932603, 6025063741, + 6025194817, 6025325947, 6025457021, 6025588109, 6025719181, 6025850269, 6025981349, + 6026112437, 6026243519, 6026374619, 6026505713, 6026636789, 6026767867, 6026899027, + 6027030133, 6027161207, 6027292283, 6027423383, 6027554521, 6027685607, 6027816727, + 6027947867, 6028079027, 6028210099, 6028341181, 6028472267, 6028603369, 6028734469, + 6028865587, 6028996669, 6029127761, 6029258861, 6029389969, 6029521061, 6029652143, + 6029783257, 6029914333, 6030045419, 6030176521, 6030307603, 6030438683, 6030569759, + 6030700849, 6030831943, 6030963041, 6031094117, 6031225253, 6031356329, 6031487431, + 6031618543, 6031749667, 6031880741, 6032011813, 6032142911, 6032273993, 6032405081, + 6032536183, 6032667269, 6032798371, 6032929471, 6033060547, 6033191623, 6033322697, + 6033453773, 6033584873, 6033715949, 6033847049, 6033978151, 6034109227, 6034240351, + 6034371449, 6034502521, 6034633597, 6034764683, 6034895761, 6035026891, 6035158007, + 6035289083, 6035420177, 6035551289, 6035682371, 6035813503, 6035944583, 6036075707, + 6036206783, 6036337861, 6036468943, 6036600041, 6036731117, 6036862199, 6036993341, + 6037124453, 6037255531, 6037386623, 6037517699, 6037648777, 6037779851, 6037910947, + 6038042047, 6038173123, 6038304203, 6038435321, 6038566403, 6038697491, 6038828581, + 6038959697, 6039090787, 6039221861, 6039352951, 6039484043, 6039615119, 6039746191, + 6039877273, 6040008347, 6040139449, 6040270529, 6040401607, 6040532761, 6040663877, + 6040794953, 6040926041, 6041057119, 6041188213, 6041319289, 6041450381, 6041581453, + 6041712529, 6041843609, 6041974693, 6042105787, 6042236861, 6042367943, 6042499061, + 6042630133, 6042761209, 6042892291, 6043023367, 6043154443, 6043285529, 6043416611, + 6043547729, 6043678819, 6043809901, 6043940977, 6044072053, 6044203133, 6044334209, + 6044465309, 6044596423, 6044727499, 6044858593, 6044989667, 6045120749, 6045251827, + 6045382901, 6045514003, 6045645091, 6045776207, 6045907289, 6046038409, 6046169483, + 6046300613, 6046431737, 6046562833, 6046693907, 6046824983, 6046956073, 6047087149, + 6047218249, 6047349377, 6047480477, 6047611579, 6047742653, 6047873747, 6048004829, + 6048135901, 6048266993, 6048398089, 6048529163, 6048660257, 6048791347, 6048922427, + 6049053539, 6049184611, 6049315709, 6049446811, 6049577899, 6049708981, 6049840057, + 6049971133, 6050102221, 6050233307, 6050364401, 6050495491, 6050626573, 6050757653, + 6050888731, 6051019811, 6051150883, 6051281969, 6051413047, 6051544123, 6051675197, + 6051806311, 6051937391, 6052068467, 6052199581, 6052330657, 6052461743, 6052592831, + 6052723909, 6052855013, 6052986089, 6053117171, 6053248283, 6053379401, 6053510479, + 6053641567, 6053772653, 6053903743, 6054034817, 6054165913, 6054297043, 6054428117, + 6054559201, 6054690287, 6054821363, 6054952499, 6055083581, 6055214657, 6055345763, + 6055476997, 6055608079, 6055739213, 6055870309, 6056001421, 6056132497, 6056263621, + 6056394697, 6056525773, 6056656883, 6056787973, 6056919109, 6057050213, 6057181301, + 6057312379, 6057443453, 6057574591, 6057705683, 6057836777, 6057967879, 6058098953, + 6058230131, 6058361209, 6058492301, 6058623379, 6058754473, 6058885571, 6059016643, + 6059147723, 6059278831, 6059409907, 6059540983, 6059672063, 6059803147, 6059934227, + 6060065309, 6060196399, 6060327473, 6060458581, 6060589663, 6060720739, 6060851821, + 6060982897, 6061113983, 6061245061, 6061376137, 6061507213, 6061638301, 6061769377, + 6061900457, 6062031533, 6062162609, 6062293697, 6062424787, 6062555867, 6062686939, + 6062818049, 6062949127, 6063080227, 6063211303, 6063342379, 6063473459, 6063604543, + 6063735619, 6063866713, 6063997813, 6064128899, 6064259983, 6064391143, 6064522279, + 6064653359, 6064784437, 6064915513, 6065046607, 6065177681, 6065308757, 6065439839, + 6065570911, 6065702003, 6065833097, 6065964209, 6066095281, 6066226357, 6066357439, + 6066488557, 6066619631, 6066750731, 6066881831, 6067012937, 6067144009, 6067275101, + 6067406179, 6067537261, 6067668337, 6067799447, 6067930529, 6068061607, 6068192693, + 6068323771, 6068454857, 6068585953, 6068717047, 6068848133, 6068979289, 6069110387, + 6069241469, 6069372583, 6069503681, 6069634757, 6069765881, 6069896977, 6070028057, + 6070159133, 6070290223, 6070421297, 6070552381, 6070683481, 6070814569, 6070945717, + 6071076793, 6071207873, 6071338961, 6071470039, 6071601227, 6071732327, 6071863417, + 6071994527, 6072125627, 6072256709, 6072387781, 6072518899, 6072649997, 6072781069, + 6072912149, 6073043231, 6073174313, 6073305397, 6073436471, 6073567559, 6073698637, + 6073829743, 6073960817, 6074091889, 6074222969, 6074354089, 6074485199, 6074616323, + 6074747473, 6074878567, 6075009641, 6075140779, 6075271889, 6075402961, 6075534041, + 6075665117, 6075796189, 6075927283, 6076058363, 6076189439, 6076320511, 6076451597, + 6076582691, 6076713803, 6076844911, 6076976021, 6077107159, 6077238253, 6077369351, + 6077500447, 6077631541, 6077762641, 6077893729, 6078024851, 6078155929, 6078287003, + 6078418111, 6078549193, 6078680287, 6078811441, 6078942563, 6079073647, 6079204739, + 6079335841, 6079466923, 6079597999, 6079729087, 6079860173, 6079991251, 6080122327, + 6080253427, 6080384507, 6080515621, 6080646701, 6080777783, 6080908859, 6081039967, + 6081171053, 6081302141, 6081433213, 6081564301, 6081695381, 6081826463, 6081957569, + 6082088647, 6082219723, 6082350871, 6082481987, 6082613059, 6082744153, 6082875263, + 6083006357, 6083137433, 6083268533, 6083399627, 6083530703, 6083661781, 6083792857, + 6083923931, 6084055039, 6084186133, 6084317209, 6084448301, 6084579377, 6084710449, + 6084841531, 6084972643, 6085103741, 6085234819, 6085365899, 6085496999, 6085628071, + 6085759153, 6085890241, 6086021341, 6086152421, 6086283503, 6086414627, 6086545763, + 6086676839, 6086807911, 6086938987, 6087070091, 6087201167, 6087332327, 6087463423, + 6087594503, 6087725587, 6087856661, 6087987751, 6088118873, 6088249949, 6088381027, + 6088512119, 6088643221, 6088774301, 6088905377, 6089036479, 6089167561, 6089298637, + 6089429743, 6089560823, 6089691929, 6089823023, 6089954111, 6090085213, 6090216313, + 6090347387, 6090478469, 6090609541, 6090740639, 6090871739, 6091002823, 6091133897, + 6091264973, 6091396063, 6091527139, 6091658227, 6091789309, 6091920397, 6092051477, + 6092182549, 6092313671, 6092444749, 6092575847, 6092706979, 6092838079, 6092969171, + 6093100243, 6093231329, 6093362417, 6093493501, 6093624583, 6093755671, 6093886769, + 6094017871, 6094148959, 6094280041, 6094411123, 6094542199, 6094673279, 6094804361, + 6094935433, 6095066507, 6095197579, 6095328677, 6095459761, 6095590843, 6095721953, + 6095853053, 6095984131, 6096115229, 6096246307, 6096377381, 6096508471, 6096639547, + 6096770621, 6096901747, 6097032853, 6097164013, 6097295117, 6097426217, 6097557317, + 6097688407, 6097819489, 6097950581, 6098081669, 6098212751, 6098343829, 6098474903, + 6098606039, 6098737133, 6098868211, 6098999311, 6099130391, 6099261491, 6099392573, + 6099523649, 6099654727, 6099785807, 6099916961, 6100048057, 6100179131, 6100310219, + 6100441343, 6100572437, 6100703519, 6100834613, 6100965709, 6101096803, 6101227879, + 6101359031, 6101490113, 6101621209, 6101752343, 6101883439, 6102014531, 6102145607, + 6102276709, 6102407797, 6102538889, 6102670087, 6102801167, 6102932243, 6103063327, + 6103194431, 6103325509, 6103456591, 6103587667, 6103718741, 6103849823, 6103980901, + 6104111977, 6104243059, 6104374151, 6104505289, 6104636383, 6104767481, 6104898559, + 6105029641, 6105160753, 6105291859, 6105422941, 6105554017, 6105685121, 6105816209, + 6105947291, 6106078379, 6106209457, 6106340549, 6106471633, 6106602709, 6106733791, + 6106864877, 6106995977, 6107127053, 6107258159, 6107389259, 6107520347, 6107651467, + 6107782567, 6107913659, 6108044737, 6108175817, 6108306889, 6108437981, 6108569053, + 6108700139, 6108831241, 6108962341, 6109093469, 6109224553, 6109355639, 6109486729, + 6109617817, 6109748933, 6109880083, 6110011207, 6110142281, 6110273353, 6110404439, + 6110535521, 6110666599, 6110797703, 6110928799, 6111059893, 6111190973, 6111322069, + 6111453149, 6111584233, 6111715331, 6111846407, 6111977483, 6112108571, 6112239643, + 6112370717, 6112501807, 6112632907, 6112764011, 6112895141, 6113026219, 6113157293, + 6113288393, 6113419493, 6113550587, 6113681659, 6113812739, 6113943827, 6114074903, + 6114205987, 6114337069, 6114468161, 6114599261, 6114730337, 6114861449, 6114992537, + 6115123639, 6115254713, 6115385821, 6115516903, 6115647991, 6115779067, 6115910189, + 6116041279, 6116172353, 6116303429, 6116434501, 6116565583, 6116696687, 6116827799, + 6116958899, 6117089977, 6117221081, 6117352193, 6117483277, 6117614381, 6117745453, + 6117876529, 6118007603, 6118138709, 6118269803, 6118400917, 6118532029, 6118663121, + 6118794277, 6118925353, 6119056441, 6119187517, 6119318627, 6119449709, 6119580791, + 6119711893, 6119842979, 6119974087, 6120105193, 6120236273, 6120367369, 6120498451, + 6120629569, 6120760649, 6120891737, 6121022851, 6121153957, 6121285031, 6121416113, + 6121547207, 6121678309, 6121809403, 6121940509, 6122071597, 6122202677, 6122333759, + 6122464879, 6122596001, 6122727073, 6122858171, 6122989259, 6123120337, 6123251413, + 6123382493, 6123513569, 6123644699, 6123775793, 6123906881, 6124037957, 6124169069, + 6124300159, 6124431241, 6124562317, 6124693423, 6124824523, 6124955621, 6125086729, + 6125217823, 6125348899, 6125479993, 6125611081, 6125742193, 6125873287, 6126004369, + 6126135461, 6126266533, 6126397679, 6126528773, 6126659879, 6126790951, 6126922027, + 6127053103, 6127184209, 6127315307, 6127446419, 6127577497, 6127708577, 6127839691, + 6127970791, 6128101867, 6128232959, 6128364041, 6128495129, 6128626201, 6128757289, + 6128888393, 6129019493, 6129150589, 6129281701, 6129412829, 6129543949, 6129675061, + 6129806159, 6129937243, 6130068337, 6130199417, 6130330499, 6130461593, 6130592669, + 6130723747, 6130854853, 6130985929, 6131117021, 6131248093, 6131379197, 6131510279, + 6131641363, 6131772461, 6131903539, 6132034621, 6132165703, 6132296791, 6132427871, + 6132558953, 6132690037, 6132821119, 6132952193, 6133083293, 6133214401, 6133345487, + 6133476607, 6133607719, 6133738811, 6133869887, 6134000987, 6134132077, 6134263181, + 6134394263, 6134525347, 6134656421, 6134787497, 6134918623, 6135049729, 6135180809, + 6135311881, 6135442961, 6135574043, 6135705137, 6135836233, 6135967309, 6136098407, + 6136229483, 6136360567, 6136491671, 6136622747, 6136753849, 6136884953, 6137016043, + 6137147123, 6137278241, 6137409323, 6137540407, 6137671487, 6137802589, 6137933743, + 6138064837, 6138195913, 6138327011, 6138458083, 6138589169, 6138720257, 6138851371, + 6138982457, 6139113529, 6139244609, 6139375709, 6139506781, 6139637857, 6139768933, + 6139900007, 6140031097, 6140162263, 6140293343, 6140424461, 6140555543, 6140686621, + 6140817721, 6140948797, 6141079877, 6141210991, 6141342083, 6141473197, 6141604309, + 6141735419, 6141866503, 6141997577, 6142128653, 6142259737, 6142390817, 6142521893, + 6142652983, 6142784057, 6142915139, 6143046253, 6143177353, 6143308427, 6143439551, + 6143570659, 6143701763, 6143832839, 6143963911, 6144094993, 6144226073, 6144357179, + 6144488263, 6144619339, 6144750421, 6144881497, 6145012579, 6145143677, 6145274753, + 6145405829, 6145537039, 6145668119, 6145799201, 6145930291, 6146061367, 6146192477, + 6146323627, 6146454719, 6146585869, 6146716943, 6146848027, 6146979101, 6147110237, + 6147241333, 6147372419, 6147503513, 6147634607, 6147765683, 6147896761, 6148027843, + 6148158923, 6148289999, 6148421077, 6148552159, 6148683257, 6148814341, 6148945421, + 6149076503, 6149207591, 6149338681, 6149469779, 6149600867, 6149731943, 6149863051, + 6149994161, 6150125287, 6150256361, 6150387437, 6150518533, 6150649607, 6150780707, + 6150911791, 6151042879, 6151173967, 6151305053, 6151436131, 6151567211, 6151698317, + 6151829399, 6151960483, 6152091599, 6152222717, 6152353793, 6152484869, 6152616011, + 6152747113, 6152878253, 6153009341, 6153140437, 6153271511, 6153402583, 6153533663, + 6153664807, 6153795913, 6153926993, 6154058069, 6154189199, 6154320307, 6154451383, + 6154582459, 6154713553, 6154844669, 6154975741, 6155106833, 6155237947, 6155369063, + 6155500139, 6155631211, 6155762311, 6155893399, 6156024481, 6156155557, 6156286639, + 6156417713, 6156548803, 6156679889, 6156810997, 6156942073, 6157073161, 6157204247, + 6157335341, 6157466429, 6157597519, 6157728637, 6157859761, 6157990843, 6158121917, + 6158253007, 6158384083, 6158515171, 6158646257, 6158777333, 6158908411, 6159039503, + 6159170581, 6159301661, 6159432733, 6159563827, 6159694909, 6159826031, 6159957107, + 6160088201, 6160219277, 6160350359, 6160481441, 6160612543, 6160743707, 6160874779, + 6161005859, 6161136941, 6161268013, 6161399129, 6161530223, 6161661299, 6161792383, + 6161923463, 6162054553, 6162185641, 6162316729, 6162447883, 6162578957, 6162710053, + 6162841151, 6162972223, 6163103311, 6163234397, 6163365469, 6163496543, 6163627619, + 6163758721, 6163889861, 6164020969, 6164152051, 6164283131, 6164414213, 6164545337, + 6164676433, 6164807533, 6164938669, 6165069749, 6165200849, 6165331927, 6165463013, + 6165594101, 6165725227, 6165856303, 6165987409, 6166118509, 6166249597, 6166380677, + 6166511759, 6166642847, 6166773997, 6166905103, 6167036177, 6167167267, 6167298341, + 6167429417, 6167560499, 6167691581, 6167822663, 6167953789, 6168084917, 6168216001, + 6168347111, 6168478201, 6168609299, 6168740387, 6168871477, 6169002577, 6169133651, + 6169264757, 6169395847, 6169526921, 6169657997, 6169789099, 6169920227, 6170051311, + 6170182393, 6170313559, 6170444689, 6170575847, 6170706967, 6170838043, 6170969141, + 6171100213, 6171231289, 6171362381, 6171493457, 6171624559, 6171755651, 6171886741, + 6172017833, 6172148933, 6172280039, 6172411129, 6172542247, 6172673357, 6172804441, + 6172935521, 6173066609, 6173197687, 6173328773, 6173459857, 6173590939, 6173722081, + 6173853199, 6173984291, 6174115373, 6174246553, 6174377633, 6174508709, 6174639781, + 6174770869, 6174902009, 6175033099, 6175164187, 6175295281, 6175426391, 6175557491, + 6175688569, 6175819649, 6175950721, 6176081797, 6176212871, 6176343949, 6176475049, + 6176606143, 6176737249, 6176868331, 6176999417, 6177130507, 6177261581, 6177392653, + 6177523727, 6177654817, 6177785893, 6177916967, 6178048039, 6178179113, 6178310197, + 6178441273, 6178572359, 6178703437, 6178834547, 6178965679, 6179096771, 6179227853, + 6179358931, 6179490007, 6179621137, 6179752213, 6179883287, 6180014359, 6180145441, + 6180276533, 6180407729, 6180538801, 6180669883, 6180800981, 6180932057, 6181063139, + 6181194263, 6181325357, 6181456429, 6181587527, 6181718603, 6181849691, 6181980773, + 6182111861, 6182242943, 6182374027, 6182505103, 6182636209, 6182767291, 6182898367, + 6183029507, 6183160579, 6183291677, 6183422759, 6183553847, 6183684929, 6183816007, + 6183947083, 6184078163, 6184209307, 6184340387, 6184471459, 6184602623, 6184733699, + 6184864783, 6184995871, 6185126951, 6185258039, 6185389117, 6185520197, 6185651317, + 6185782399, 6185913473, 6186044563, 6186175661, 6186306743, 6186437863, 6186568937, + 6186700019, 6186831109, 6186962219, 6187093307, 6187224401, 6187355483, 6187486559, + 6187617637, 6187748729, 6187879811, 6188010883, 6188142007, 6188273107, 6188404181, + 6188535263, 6188666401, 6188797501, 6188928671, 6189059749, 6189190831, 6189321907, + 6189453001, 6189584083, 6189715157, 6189846233, 6189977357, 6190108451, 6190239533, + 6190370623, 6190501697, 6190632803, 6190763903, 6190894979, 6191026057, 6191157139, + 6191288219, 6191419303, 6191550397, 6191681501, 6191812631, 6191943721, 6192074821, + 6192205897, 6192336973, 6192468151, 6192599279, 6192730373, 6192861491, 6192992579, + 6193123661, 6193254733, 6193385827, 6193516907, 6193647983, 6193779071, 6193910153, + 6194041229, 6194172307, 6194303399, 6194434471, 6194565557, 6194696639, 6194827741, + 6194958829, 6195089903, 6195220979, 6195352057, 6195483139, 6195614219, 6195745307, + 6195876397, 6196007491, 6196138573, 6196269649, 6196400723, 6196531799, 6196662947, + 6196794031, 6196925113, 6197056231, 6197187317, 6197318401, 6197449481, 6197580611, + 6197711687, 6197842789, 6197973893, 6198105029, 6198236117, 6198367247, 6198498373, + 6198629453, 6198760531, 6198891619, 6199022693, 6199153799, 6199284893, 6199416019, + 6199547143, 6199678231, 6199809311, 6199940389, 6200071489, 6200202563, 6200333677, + 6200464763, 6200595859, 6200726971, 6200858047, 6200989141, 6201120221, 6201251311, + 6201382391, 6201513463, 6201644549, 6201775667, 6201906757, 6202037857, 6202168957, + 6202300073, 6202431149, 6202562239, 6202693319, 6202824449, 6202955531, 6203086609, + 6203217719, 6203348803, 6203479883, 6203610971, 6203742043, 6203873119, 6204004201, + 6204135323, 6204266401, 6204397487, 6204528587, 6204659663, 6204790751, 6204921823, + 6205052897, 6205184039, 6205315111, 6205446193, 6205577321, 6205708417, 6205839491, + 6205970567, 6206101639, 6206232719, 6206363819, 6206494909, 6206625991, 6206757071, + 6206888143, 6207019261, 6207150353, 6207281453, 6207412567, 6207543647, 6207674771, + 6207805909, 6207936983, 6208068071, 6208199147, 6208330229, 6208461313, 6208592393, + 6208723481, 6208854571, 6208985681, 6209116757, 6209247839, 6209378921, 6209510003, + 6209641079, 6209772181, 6209903281, 6210034357, 6210165457, 6210296551, 6210427631, + 6210558707, 6210689783, 6210820879, 6210951997, 6211083079, 6211214153, 6211345237, + 6211476353, 6211607483, 6211738583, 6211869661, 6212000737, 6212131817, 6212262899, + 6212393983, 6212525069, 6212656181, 6212787299, 6212918389, 6213049541, 6213180629, + 6213311719, 6213442793, 6213573871, 6213704951, 6213836023, 6213967099, 6214098227, + 6214229303, 6214360379, 6214491469, 6214622569, 6214753667, 6214884749, 6215015827, + 6215146901, 6215277989, 6215409097, 6215540183, 6215671279, 6215802407, 6215933483, + 6216064601, 6216195677, 6216326783, 6216457873, 6216588949, 6216720031, 6216851203, + 6216982319, 6217113451, 6217244531, 6217375607, 6217506689, 6217637779, 6217768861, + 6217899943, 6218031023, 6218162101, 6218293177, 6218424269, 6218555351, 6218686429, + 6218817547, 6218948623, 6219079709, 6219210791, 6219341899, 6219472979, 6219604117, + 6219735191, 6219866267, 6219997351, 6220128449, 6220259543, 6220390697, 6220521781, + 6220652857, 6220783963, 6220915061, 6221046133, 6221177219, 6221308297, 6221439377, + 6221570479, 6221701609, 6221832689, 6221963831, 6222094903, 6222225991, 6222357109, + 6222488203, 6222619297, 6222750407, 6222881491, 6223012597, 6223143671, 6223274753, + 6223405841, 6223536961, 6223668053, 6223799147, 6223930241, 6224061313, 6224192393, + 6224323493, 6224454581, 6224585669, 6224716747, 6224847821, 6224978897, 6225110027, + 6225241117, 6225372191, 6225503267, 6225634339, 6225765431, 6225896503, 6226027649, + 6226158721, 6226289801, 6226420903, 6226552001, 6226683077, 6226814171, 6226945261, + 6227076337, 6227207461, 6227338541, 6227469629, 6227600723, 6227731799, 6227862871, + 6227993951, 6228125023, 6228256103, 6228387181, 6228518291, 6228649367, 6228780461, + 6228911539, 6229042613, 6229173701, 6229304773, 6229435867, 6229566949, 6229698047, + 6229829119, 6229960201, 6230091281, 6230222371, 6230353453, 6230484539, 6230615653, + 6230746747, 6230877857, 6231008957, 6231140081, 6231271183, 6231402263, 6231533411, + 6231664487, 6231795569, 6231926647, 6232057771, 6232188863, 6232319957, 6232451033, + 6232582121, 6232713197, 6232844273, 6232975363, 6233106461, 6233237533, 6233368607, + 6233499697, 6233630791, 6233761871, 6233892961, 6234024037, 6234155117, 6234286207, + 6234417289, 6234548377, 6234679459, 6234810607, 6234941689, 6235072793, 6235203881, + 6235334957, 6235466047, 6235597189, 6235728263, 6235859381, 6235990459, 6236121557, + 6236252629, 6236383709, 6236514793, 6236645879, 6236776963, 6236908049, 6237039131, + 6237170263, 6237301363, 6237432473, 6237563641, 6237694721, 6237825899, 6237956987, + 6238088063, 6238219201, 6238350289, 6238481369, 6238612469, 6238743547, 6238874641, + 6239005723, 6239136811, 6239267887, 6239399017, 6239530097, 6239661173, 6239792249, + 6239923331, 6240054413, 6240185509, 6240316591, 6240447667, 6240578741, 6240709823, + 6240840901, 6240971977, 6241103051, 6241234127, 6241365199, 6241496273, 6241627361, + 6241758463, 6241889543, 6242020633, 6242151731, 6242282821, 6242413901, 6242545039, + 6242676163, 6242807261, 6242938343, 6243069473, 6243200597, 6243331673, 6243462749, + 6243593833, 6243724909, 6243856037, 6243987121, 6244118197, 6244249279, 6244380367, + 6244511453, 6244642559, 6244773637, 6244904779, 6245035879, 6245166997, 6245298071, + 6245429147, 6245560219, 6245691301, 6245822393, 6245953507, 6246084587, 6246215671, + 6246346751, 6246477877, 6246608959, 6246740047, 6246871123, 6247002277, 6247133351, + 6247264447, 6247395527, 6247526617, 6247657699, 6247788773, 6247919857, 6248050931, + 6248182013, 6248313091, 6248444179, 6248575259, 6248706367, 6248837467, 6248968543, + 6249099737, 6249230809, 6249361883, 6249492973, 6249624113, 6249755209, 6249886297, + 6250017391, 6250148497, 6250279573, 6250410679, 6250541761, 6250672837, 6250803917, + 6250935049, 6251066183, 6251197261, 6251328337, 6251459429, 6251590529, 6251721617, + 6251852693, 6251983781, 6252114853, 6252245927, 6252377029, 6252508111, 6252639233, + 6252770351, 6252901423, 6253032553, 6253163629, 6253294711, 6253425793, 6253556921, + 6253688041, 6253819127, 6253950203, 6254081369, 6254212451, 6254343587, 6254474693, + 6254605783, 6254736911, 6254867999, 6254999077, 6255130151, 6255261247, 6255392329, + 6255523433, 6255654511, 6255785593, 6255916703, 6256047781, 6256178879, 6256310003, + 6256441097, 6256572181, 6256703291, 6256834403, 6256965479, 6257096557, 6257227637, + 6257358727, 6257489813, 6257620921, 6257752009, 6257883083, 6258014171, 6258145259, + 6258276331, 6258407431, 6258538511, 6258669611, 6258800683, 6258931807, 6259062893, + 6259193971, 6259325053, 6259456153, 6259587233, 6259718347, 6259849469, 6259980553, + 6260111629, 6260242739, 6260373857, 6260504933, 6260636047, 6260767129, 6260898211, + 6261029293, 6261160379, 6261291457, 6261422533, 6261553633, 6261684721, 6261815821, + 6261946913, 6262078001, 6262209073, 6262340153, 6262471249, 6262602337, 6262733413, + 6262864501, 6262995577, 6263126663, 6263257747, 6263388827, 6263519923, 6263650999, + 6263782087, 6263913167, 6264044243, 6264175343, 6264306457, 6264437537, 6264568633, + 6264699731, 6264830813, 6264961897, 6265092971, 6265224089, 6265355177, 6265486261, + 6265617343, 6265748417, 6265879523, 6266010613, 6266141711, 6266272783, 6266403859, + 6266534969, 6266666101, 6266797177, 6266928259, 6267059341, 6267190417, 6267321521, + 6267452599, 6267583687, 6267714769, 6267845867, 6267976969, 6268108061, 6268239149, + 6268370231, 6268501303, 6268632439, 6268763533, 6268894657, 6269025731, 6269156813, + 6269287933, 6269419043, 6269550121, 6269681203, 6269812301, 6269943389, 6270074483, + 6270205573, 6270336647, 6270467773, 6270598849, 6270729931, 6270861007, 6270992081, + 6271123153, 6271254257, 6271385359, 6271516457, 6271647563, 6271778659, 6271909733, + 6272040823, 6272171953, 6272303029, 6272434117, 6272565199, 6272696273, 6272827387, + 6272958463, 6273089551, 6273220631, 6273351703, 6273482777, 6273613849, 6273744943, + 6273876017, 6274007143, 6274138229, 6274269341, 6274400413, 6274531507, 6274662593, + 6274793683, 6274924801, 6275055887, 6275186963, 6275318039, 6275449129, 6275580203, + 6275711287, 6275842373, 6275973449, 6276104531, 6276235621, 6276366703, 6276497779, + 6276628879, 6276759959, 6276891037, 6277022111, 6277153199, 6277284281, 6277415383, + 6277546481, 6277677607, 6277808687, 6277939771, 6278070857, 6278201959, 6278333041, + 6278464133, 6278595283, 6278726387, 6278857489, 6278988571, 6279119653, 6279250729, + 6279381811, 6279512893, 6279643967, 6279775049, 6279906121, 6280037221, 6280168303, + 6280299379, 6280430473, 6280561561, 6280692637, 6280823753, 6280954837, 6281085919, + 6281216999, 6281348081, 6281479153, 6281610263, 6281741339, 6281872481, 6282003589, + 6282134671, 6282265771, 6282396859, 6282527941, 6282659029, 6282790117, 6282921233, + 6283052311, 6283183433, 6283314509, 6283445653, 6283576727, 6283707803, 6283838879, + 6283969973, 6284101049, 6284232133, 6284363219, 6284494343, 6284625449, 6284756587, + 6284887669, 6285018763, 6285149867, 6285280943, 6285412019, 6285543101, 6285674249, + 6285805327, 6285936403, 6286067477, 6286198559, 6286329661, 6286460743, 6286591849, + 6286722929, 6286854037, 6286985123, 6287116223, 6287247319, 6287378411, 6287509489, + 6287640563, 6287771663, 6287902739, 6288033841, 6288164951, 6288296041, 6288427133, + 6288558239, 6288689321, 6288820409, 6288951509, 6289082599, 6289213703, 6289344823, + 6289475897, 6289606991, 6289738067, 6289869241, 6290000351, 6290131459, 6290262551, + 6290393623, 6290524711, 6290655797, 6290786891, 6290917973, 6291049069, 6291180167, + 6291311249, 6291442321, 6291573439, 6291704521, 6291835597, 6291966691, 6292097771, + 6292228849, 6292359947, 6292491071, 6292622143, 6292753237, 6292884329, 6293015431, + 6293146507, 6293277589, 6293408669, 6293539751, 6293670829, 6293801923, 6293933071, + 6294064151, 6294195263, 6294326341, 6294457441, 6294588529, 6294719611, 6294850733, + 6294981811, 6295112891, 6295243963, 6295375063, 6295506149, 6295637239, 6295768327, + 6295899419, 6296030501, 6296161583, 6296292659, 6296423743, 6296554861, 6296685953, + 6296817041, 6296948113, 6297079213, 6297210323, 6297341417, 6297472543, 6297603629, + 6297734713, 6297865787, 6297996863, 6298128097, 6298259197, 6298390277, 6298521349, + 6298652443, 6298783549, 6298914649, 6299045729, 6299176811, 6299307901, 6299438987, + 6299570083, 6299701159, 6299832251, 6299963333, 6300094421, 6300225559, 6300356651, + 6300487729, 6300618809, 6300749951, 6300881029, 6301012117, 6301143197, 6301274293, + 6301405367, 6301536443, 6301667521, 6301798619, 6301929707, 6302060783, 6302191867, + 6302322941, 6302454017, 6302585089, 6302716163, 6302847263, 6302978347, 6303109427, + 6303240529, 6303371603, 6303502679, 6303633767, 6303764861, 6303895937, 6304027027, + 6304158103, 6304289179, 6304420253, 6304551349, 6304682431, 6304813577, 6304944721, + 6305075801, 6305206877, 6305337949, 6305469047, 6305600131, 6305731213, 6305862287, + 6305993359, 6306124457, 6306255541, 6306386663, 6306517739, 6306648833, 6306779909, + 6306910991, 6307042067, 6307173149, 6307304233, 6307435327, 6307566409, 6307697509, + 6307828607, 6307959683, 6308090809, 6308221921, 6308353021, 6308484113, 6308615207, + 6308746289, 6308877409, 6309008483, 6309139579, 6309270659, 6309401731, 6309532819, + 6309663907, 6309794983, 6309926059, 6310057183, 6310188257, 6310319339, 6310450429, + 6310581503, 6310712593, 6310843687, 6310974767, 6311105839, 6311236937, 6311368079, + 6311499151, 6311630243, 6311761319, 6311892409, 6312023519, 6312154603, 6312285701, + 6312416777, 6312547849, 6312678937, 6312810043, 6312941149, 6313072273, 6313203361, + 6313334449, 6313465567, 6313596643, 6313727731, 6313858813, 6313989887, 6314120959, + 6314252129, 6314383249, 6314514329, 6314645419, 6314776519, 6314907611, 6315038711, + 6315169787, 6315300863, 6315431939, 6315563011, 6315694087, 6315825163, 6315956261, + 6316087399, 6316218499, 6316349621, 6316480697, 6316611779, 6316742879, 6316873961, + 6317005033, 6317136121, 6317267219, 6317398303, 6317529451, 6317660533, 6317791609, + 6317922701, 6318053801, 6318184879, 6318315961, 6318447053, 6318578141, 6318709273, + 6318840349, 6318971441, 6319102541, 6319233629, 6319364773, 6319495907, 6319626979, + 6319758059, 6319889131, 6320020261, 6320151361, 6320282443, 6320413531, 6320544611, + 6320675689, 6320806813, 6320937911, 6321068989, 6321200063, 6321331171, 6321462271, + 6321593353, 6321724433, 6321855511, 6321986599, 6322117691, 6322248797, 6322379881, + 6322510967, 6322642111, 6322773187, 6322904261, 6323035351, 6323166433, 6323297507, + 6323428583, 6323559667, 6323690749, 6323821831, 6323952967, 6324084043, 6324215147, + 6324346219, 6324477293, 6324608369, 6324739489, 6324870619, 6325001693, 6325132787, + 6325263869, 6325394947, 6325526047, 6325657189, 6325788263, 6325919339, 6326050417, + 6326181497, 6326312581, 6326443657, 6326574797, 6326705881, 6326836963, 6326968057, + 6327099133, 6327230207, 6327361301, 6327492389, 6327623479, 6327754571, 6327885643, + 6328016759, 6328147873, 6328278959, 6328410037, 6328541111, 6328672199, 6328803277, + 6328934351, 6329065427, 6329196529, 6329327603, 6329458679, 6329589751, 6329720827, + 6329851903, 6329983027, 6330114137, 6330245209, 6330376289, 6330507389, 6330638527, + 6330769603, 6330900679, 6331031809, 6331162913, 6331294009, 6331425097, 6331556191, + 6331687267, 6331818377, 6331949467, 6332080571, 6332211647, 6332342749, 6332473859, + 6332604961, 6332736089, 6332867161, 6332998271, 6333129347, 6333260477, 6333391601, + 6333522677, 6333653759, 6333784859, 6333915941, 6334047047, 6334178119, 6334309193, + 6334440271, 6334571377, 6334702457, 6334833541, 6334964617, 6335095721, 6335226803, + 6335357939, 6335489057, 6335620183, 6335751259, 6335882339, 6336013421, 6336144523, + 6336275609, 6336406693, 6336537803, 6336668879, 6336799981, 6336931079, 6337062161, + 6337193237, 6337324337, 6337455413, 6337586503, 6337717591, 6337848679, 6337979761, + 6338110843, 6338241929, 6338373011, 6338504089, 6338635169, 6338766289, 6338897371, + 6339028447, 6339159523, 6339290611, 6339421709, 6339552809, 6339683897, 6339815021, + 6339946141, 6340077217, 6340208311, 6340339391, 6340470473, 6340601573, 6340732663, + 6340863751, 6340994831, 6341125927, 6341257003, 6341388091, 6341519179, 6341650297, + 6341781443, 6341912569, 6342043679, 6342174793, 6342305869, 6342436943, 6342568031, + 6342699119, 6342830231, 6342961333, 6343092433, 6343223519, 6343354603, 6343485703, + 6343616779, 6343747867, 6343878941, 6344010019, 6344141099, 6344272199, 6344403277, + 6344534377, 6344665451, 6344796539, 6344927681, 6345058781, 6345189853, 6345320951, + 6345452023, 6345583141, 6345714223, 6345845333, 6345976409, 6346107511, 6346238597, + 6346369681, 6346500767, 6346631869, 6346762963, 6346894039, 6347025137, 6347156213, + 6347287301, 6347418421, 6347549557, 6347680649, 6347811731, 6347942827, 6348073903, + 6348204983, 6348336073, 6348467149, 6348598229, 6348729311, 6348860459, 6348991541, + 6349122613, 6349253699, 6349384801, 6349515917, 6349647047, 6349778209, 6349909297, + 6350040371, 6350171467, 6350302547, 6350433619, 6350564699, 6350695829, 6350826929, + 6350958011, 6351089099, 6351220219, 6351351311, 6351482411, 6351613487, 6351744571, + 6351875659, 6352006747, 6352137859, 6352268941, 6352400027, 6352531111, 6352662191, + 6352793281, 6352924363, 6353055473, 6353186563, 6353317681, 6353448757, 6353579849, + 6353710931, 6353842031, 6353973113, 6354104201, 6354235291, 6354366367, 6354497453, + 6354628541, 6354759629, 6354890749, 6355021837, 6355152919, 6355284011, 6355415083, + 6355546177, 6355677277, 6355808399, 6355939501, 6356070587, 6356201681, 6356332777, + 6356463857, 6356594953, 6356726083, 6356857181, 6356988269, 6357119357, 6357250429, + 6357381521, 6357512611, 6357643723, 6357774803, 6357905881, 6358036957, 6358168031, + 6358299131, 6358430207, 6358561309, 6358692397, 6358823477, 6358954559, 6359085643, + 6359216749, 6359347829, 6359478901, 6359609983, 6359741081, 6359872199, 6360003283, + 6360134357, 6360265469, 6360396577, 6360527681, 6360658781, 6360789889, 6360920989, + 6361052081, 6361183187, 6361314283, 6361445371, 6361576457, 6361707529, 6361838603, + 6361969693, 6362100769, 6362231849, 6362362957, 6362494031, 6362625127, 6362756207, + 6362887339, 6363018413, 6363149519, 6363280613, 6363411697, 6363542777, 6363673873, + 6363804977, 6363936127, 6364067201, 6364198331, 6364329403, 6364460521, 6364591603, + 6364722677, 6364853749, 6364984837, 6365115917, 6365247001, 6365378099, 6365509231, + 6365640311, 6365771383, 6365902471, 6366033559, 6366164683, 6366295769, 6366426851, + 6366557957, 6366689089, 6366820193, 6366951277, 6367082383, 6367213471, 6367344553, + 6367475627, 6367606753, 6367737829, 6367868933, 6368000017, 6368131109, 6368262191, + 6368393293, 6368524387, 6368655463, 6368786573, 6368917699, 6369048779, 6369179879, + 6369310951, 6369442069, 6369573157, 6369704233, 6369835309, 6369966413, 6370097501, + 6370228577, 6370359679, 6370490759, 6370621847, 6370752961, 6370884041, 6371015117, + 6371146189, 6371277299, 6371408413, 6371539501, 6371670619, 6371801693, 6371932771, + 6372063853, 6372194947, 6372326057, 6372457151, 6372588223, 6372719299, 6372850381, + 6372981467, 6373112567, 6373243651, 6373374737, 6373505821, 6373636901, 6373767977, + 6373899079, 6374030171, 6374161247, 6374292359, 6374423431, 6374554507, 6374685631, + 6374816717, 6374947837, 6375078937, 6375210043, 6375341143, 6375472247, 6375603323, + 6375734401, 6375865477, 6375996553, 6376127671, 6376258793, 6376389881, 6376520987, + 6376652099, 6376783183, 6376914277, 6377045351, 6377176427, 6377307523, 6377438653, + 6377569729, 6377700869, 6377831959, 6377963051, 6378094139, 6378225211, 6378356287, + 6378487361, 6378618437, 6378749513, 6378880609, 6379011707, 6379142807, 6379273963, + 6379405069, 6379536157, 6379667309, 6379798441, 6379929529, 6380060623, 6380191709, + 6380322829, 6380453909, 6380585011, 6380716087, 6380847163, 6380978269, 6381109349, + 6381240487, 6381371567, 6381502643, 6381633749, 6381764843, 6381895937, 6382027027, + 6382158103, 6382289227, 6382420309, 6382551389, 6382682461, 6382813537, 6382944649, + 6383075747, 6383206831, 6383337943, 6383469031, 6383600141, 6383731241, 6383862343, + 6383993417, 6384124489, 6384255589, 6384386681, 6384517829, 6384648929, 6384780011, + 6384911083, 6385042171, 6385173247, 6385304353, 6385435447, 6385566533, 6385697609, + 6385828699, 6385959779, 6386090897, 6386221997, 6386353073, 6386484173, 6386615281, + 6386746381, 6386877479, 6387008591, 6387139663, 6387270763, 6387401861, 6387532933, + 6387664021, 6387795097, 6387926191, 6388057297, 6388188371, 6388319447, 6388450529, + 6388581631, 6388712747, 6388843823, 6388974919, 6389106011, 6389237083, 6389368211, + 6389499331, 6389630419, 6389761513, 6389892611, 6390023693, 6390154777, 6390285877, + 6390416959, 6390548039, 6390679129, 6390810211, 6390941341, 6391072417, 6391203493, + 6391334581, 6391465697, 6391596803, 6391727891, 6391859003, 6391990091, 6392121163, + 6392252287, 6392383373, 6392514481, 6392645591, 6392776681, 6392907769, 6393038863, + 6393169963, 6393301037, 6393432127, 6393563219, 6393694327, 6393825419, 6393956497, + 6394087571, 6394218643, 6394349729, 6394480817, 6394611901, 6394742983, 6394874063, + 6395005147, 6395136221, 6395267297, 6395398531, 6395529631, 6395660731, 6395791823, + 6395922901, 6396053977, 6396185071, 6396316153, 6396447229, 6396578327, 6396709411, + 6396840487, 6396971563, 6397102651, 6397233751, 6397364833, 6397495927, 6397627001, + 6397758089, 6397889167, 6398020273, 6398151359, 6398282453, 6398413537, 6398544623, + 6398675707, 6398806781, 6398937997, 6399069077, 6399200167, 6399331243, 6399462343, + 6399593419, 6399724517, 6399855589, 6399986669, 6400117769, 6400248853, 6400379969, + 6400511041, 6400642123, 6400773199, 6400904299, 6401035373, 6401166461, 6401297593, + 6401428699, 6401559779, 6401690873, 6401821967, 6401953067, 6402084149, 6402215233, + 6402346337, 6402477413, 6402608489, 6402739573, 6402870671, 6403001777, 6403132859, + 6403263947, 6403395023, 6403526099, 6403657181, 6403788277, 6403919359, 6404050489, + 6404181577, 6404312659, 6404443751, 6404574857, 6404705929, 6404837009, 6404968111, + 6405099191, 6405230291, 6405361423, 6405492539, 6405623639, 6405754757, 6405885833, + 6406016909, 6406147997, 6406279073, 6406410149, 6406541227, 6406672303, 6406803407, + 6406934489, 6407065571, 6407196647, 6407327723, 6407458801, 6407589883, 6407720959, + 6407852039, 6407983139, 6408114217, 6408245297, 6408376369, 6408507449, 6408638521, + 6408769643, 6408900739, 6409031869, 6409162987, 6409294069, 6409425149, 6409556323, + 6409687409, 6409818581, 6409949659, 6410080763, 6410211859, 6410342963, 6410474047, + 6410605129, 6410736209, 6410867293, 6410998453, 6411129553, 6411260627, 6411391699, + 6411522839, 6411653947, 6411785063, 6411916151, 6412047227, 6412178317, 6412309417, + 6412440491, 6412571567, 6412702643, 6412833761, 6412964849, 6413095921, 6413227001, + 6413358073, 6413489167, 6413620247, 6413751329, 6413882413, 6414013499, 6414144593, + 6414275701, 6414406787, 6414537889, 6414668969, 6414800047, 6414931123, 6415062211, + 6415193293, 6415324367, 6415455451, 6415586537, 6415717661, 6415848737, 6415979813, + 6416110891, 6416241991, 6416373071, 6416504177, 6416635273, 6416766373, 6416897477, + 6417028559, 6417159667, 6417290741, 6417421819, 6417552907, 6417683989, 6417815087, + 6417946169, 6418077257, 6418208333, 6418339423, 6418470511, 6418601621, 6418732693, + 6418863769, 6418994851, 6419125987, 6419257081, 6419388181, 6419519269, 6419650343, + 6419781421, 6419912503, 6420043583, 6420174659, 6420305761, 6420436849, 6420567941, + 6420699071, 6420830153, 6420961249, 6421092329, 6421223401, 6421354483, 6421485557, + 6421616633, 6421747747, 6421878847, 6422009939, 6422141039, 6422272123, 6422403227, + 6422534311, 6422665397, 6422796481, 6422927579, 6423058657, 6423189733, 6423320821, + 6423451897, 6423582973, 6423714053, 6423845149, 6423976231, 6424107311, 6424238393, + 6424369481, 6424500557, 6424631701, 6424762781, 6424893877, 6425025053, 6425156141, + 6425287223, 6425418301, 6425549419, 6425680531, 6425811629, 6425942701, 6426073777, + 6426204877, 6426336001, 6426467119, 6426598193, 6426729289, 6426860389, 6426991469, + 6427122587, 6427253681, 6427384763, 6427515869, 6427646983, 6427778083, 6427909157, + 6428040239, 6428171311, 6428302393, 6428433469, 6428564587, 6428695667, 6428826739, + 6428957849, 6429088933, 6429220013, 6429351197, 6429482287, 6429613391, 6429744473, + 6429875579, 6430006651, 6430137731, 6430268809, 6430399903, 6430531073, 6430662193, + 6430793287, 6430924387, 6431055467, 6431186543, 6431317663, 6431448739, 6431579813, + 6431710897, 6431841973, 6431973071, 6432104183, 6432235279, 6432366407, 6432497509, + 6432628597, 6432759689, 6432890767, 6433021849, 6433152949, 6433284029, 6433415117, + 6433546211, 6433677293, 6433808387, 6433939513, 6434070611, 6434201699, 6434332781, + 6434463857, 6434594941, 6434726021, 6434857103, 6434988187, 6435119263, 6435250337, + 6435381413, 6435512507, 6435643609, 6435774703, 6435905803, 6436036913, 6436168009, + 6436299119, 6436430191, 6436561283, 6436692373, 6436823453, 6436954543, 6437085617, + 6437216689, 6437347837, 6437478913, 6437609987, 6437741071, 6437872159, 6438003259, + 6438134359, 6438265451, 6438396623, 6438527717, 6438658817, 6438789893, 6438921019, + 6439052093, 6439183183, 6439314311, 6439445399, 6439576477, 6439707557, 6439838653, + 6439969741, 6440100817, 6440231891, 6440362997, 6440494069, 6440625157, 6440756233, + 6440887351, 6441018427, 6441149509, 6441280583, 6441411667, 6441542741, 6441673837, + 6441804949, 6441936037, 6442067117, 6442198193, 6442329269, 6442460347, 6442591447, + 6442722607, 6442853687, 6442984787, 6443115883, 6443246969, 6443378047, 6443509139, + 6443640211, 6443771291, 6443902363, 6444033451, 6444164543, 6444295681, 6444426811, + 6444557893, 6444688973, 6444820069, 6444951179, 6445082261, 6445213337, 6445344421, + 6445475501, 6445606589, 6445737671, 6445868771, 6445999843, 6446130937, 6446262029, + 6446393111, 6446524211, 6446655301, 6446786383, 6446917523, 6447048607, 6447179707, + 6447310783, 6447441877, 6447572953, 6447704051, 6447835139, 6447966271, 6448097389, + 6448228489, 6448359563, 6448490681, 6448621783, 6448752887, 6448883981, 6449015071, + 6449146153, 6449277253, 6449408369, 6449539507, 6449670607, 6449801719, 6449932799, + 6450063883, 6450194963, 6450326083, 6450457159, 6450588247, 6450719323, 6450850429, + 6450981541, 6451112623, 6451243703, 6451374827, 6451505927, 6451637021, 6451768123, + 6451899203, 6452030303, 6452161421, 6452292499, 6452423629, 6452554741, 6452685859, + 6452816947, 6452948023, 6453079141, 6453210227, 6453341299, 6453472397, 6453603469, + 6453734549, 6453865631, 6453996727, 6454127807, 6454258891, 6454389967, 6454521071, + 6454652143, 6454783249, 6454914359, 6455045431, 6455176517, 6455307631, 6455438707, + 6455569787, 6455700859, 6455831939, 6455963011, 6456094111, 6456225203, 6456356287, + 6456487379, 6456618457, 6456749531, 6456880603, 6457011719, 6457142899, 6457273993, + 6457405079, 6457536157, 6457667263, 6457798349, 6457929449, 6458060561, 6458191661, + 6458322733, 6458453839, 6458584927, 6458716003, 6458847089, 6458978177, 6459109301, + 6459240373, 6459371453, 6459502537, 6459633643, 6459764747, 6459895829, 6460026919, + 6460158031, 6460289111, 6460420193, 6460551269, 6460682341, 6460813421, 6460944493, + 6461075581, 6461206657, 6461337739, 6461468869, 6461599957, 6461731039, 6461862119, + 6461993201, 6462124297, 6462255439, 6462386527, 6462517613, 6462648707, 6462779783, + 6462910877, 6463041953, 6463173049, 6463304131, 6463435213, 6463566341, 6463697431, + 6463828513, 6463959587, 6464090669, 6464221747, 6464352847, 6464483923, 6464615009, + 6464746109, 6464877197, 6465008273, 6465139349, 6465270439, 6465401513, 6465532609, + 6465663697, 6465794827, 6465925913, 6466056997, 6466188073, 6466319147, 6466450231, + 6466581311, 6466712389, 6466843463, 6466974559, 6467105651, 6467236817, 6467367889, + 6467498963, 6467630053, 6467761141, 6467892227, 6468023351, 6468154447, 6468285557, + 6468416651, 6468547733, 6468678841, 6468809917, 6468941033, 6469072111, 6469203199, + 6469334303, 6469465391, 6469596473, 6469727549, 6469858651, 6469989731, 6470120897, + 6470251979, 6470383081, 6470514187, 6470645261, 6470776337, 6470907409, 6471038503, + 6471169583, 6471300673, 6471431767, 6471562841, 6471693953, 6471825053, 6471956137, + 6472087213, 6472218287, 6472349393, 6472480501, 6472611601, 6472742701, 6472873787, + 6473004859, 6473135941, 6473267023, 6473398147, 6473529241, 6473660321, 6473791453, + 6473922557, 6474053629, 6474184711, 6474315811, 6474446911, 6474577987, 6474709103, + 6474840199, 6474971281, 6475102363, 6475233437, 6475364629, 6475495711, 6475626799, + 6475757881, 6475888957, 6476020039, 6476151133, 6476282231, 6476413373, 6476544449, + 6476675567, 6476806709, 6476937791, 6477068869, 6477199943, 6477331019, 6477462149, + 6477593263, 6477724339, 6477855413, 6477986539, 6478117649, 6478248761, 6478379917, + 6478510991, 6478642069, 6478773143, 6478904251, 6479035327, 6479166403, 6479297509, + 6479428607, 6479559689, 6479690761, 6479821849, 6479952923, 6480083999, 6480215087, + 6480346183, 6480477259, 6480608357, 6480739471, 6480870547, 6481001641, 6481132753, + 6481263917, 6481395017, 6481526089, 6481657183, 6481788301, 6481919377, 6482050459, + 6482181539, 6482312701, 6482443777, 6482574851, 6482705941, 6482837027, 6482968099, + 6483099173, 6483230261, 6483361333, 6483492439, 6483623533, 6483754633, 6483885719, + 6484016807, 6484147883, 6484278967, 6484410067, 6484541177, 6484672267, 6484803349, + 6484934459, 6485065537, 6485196631, 6485327711, 6485458783, 6485589911, 6485721001, + 6485852081, 6485983201, 6486114289, 6486245371, 6486376447, 6486507551, 6486638629, + 6486769721, 6486900809, 6487031951, 6487163069, 6487294243, 6487425383, 6487556497, + 6487687571, 6487818691, 6487949771, 6488080849, 6488211931, 6488343013, 6488474101, + 6488605177, 6488736253, 6488867339, 6488998423, 6489129497, 6489260633, 6489391717, + 6489522797, 6489653879, 6489784979, 6489916067, 6490047163, 6490178237, 6490309333, + 6490440427, 6490571509, 6490702583, 6490833659, 6490964743, 6491095823, 6491226923, + 6491358001, 6491489077, 6491620169, 6491751241, 6491882339, 6492013421, 6492144497, + 6492275609, 6492406681, 6492537757, 6492668893, 6492799969, 6492931087, 6493062181, + 6493193261, 6493324333, 6493455407, 6493586483, 6493717577, 6493848679, 6493979759, + 6494110867, 6494241947, 6494373019, 6494504153, 6494635229, 6494766301, 6494897377, + 6495028451, 6495159523, 6495290611, 6495421721, 6495552793, 6495683879, 6495814993, + 6495946087, 6496077173, 6496208309, 6496339391, 6496470509, 6496601593, 6496732729, + 6496863809, 6496994923, 6497126017, 6497257223, 6497388299, 6497519393, 6497650469, + 6497781581, 6497912683, 6498043787, 6498174899, 6498305999, 6498437107, 6498568187, + 6498699283, 6498830369, 6498961531, 6499092637, 6499223737, 6499354867, 6499485977, + 6499617053, 6499748141, 6499879223, 6500010337, 6500141441, 6500272529, 6500403601, + 6500534687, 6500665771, 6500796859, 6500927987, 6501059077, 6501190181, 6501321263, + 6501452351, 6501583423, 6501714533, 6501845621, 6501976693, 6502107769, 6502238867, + 6502369963, 6502501087, 6502632161, 6502763233, 6502894319, 6503025401, 6503156477, + 6503287577, 6503418683, 6503549761, 6503680877, 6503811953, 6503943053, 6504074141, + 6504205217, 6504336361, 6504467441, 6504598517, 6504729617, 6504860741, 6504991819, + 6505122893, 6505253977, 6505385063, 6505516159, 6505647251, 6505778329, 6505909429, + 6506040503, 6506171587, 6506302681, 6506433763, 6506564837, 6506695919, 6506827003, + 6506958079, 6507089179, 6507220309, 6507351397, 6507482473, 6507613547, 6507744631, + 6507875729, 6508006823, 6508137907, 6508268983, 6508400057, 6508531129, 6508662221, + 6508793293, 6508924381, 6509055463, 6509186543, 6509317631, 6509448709, 6509579827, + 6509710937, 6509842021, 6509973161, 6510104291, 6510235363, 6510366437, 6510497533, + 6510628609, 6510759683, 6510890783, 6511021871, 6511152971, 6511284047, 6511415147, + 6511546231, 6511677311, 6511808389, 6511939463, 6512070557, 6512201629, 6512332709, + 6512463781, 6512594863, 6512725943, 6512857019, 6512988109, 6513119233, 6513250309, + 6513381383, 6513512497, 6513643583, 6513774667, 6513905743, 6514036819, 6514167923, + 6514299031, 6514430113, 6514561223, 6514692311, 6514823389, 6514954469, 6515085587, + 6515216699, 6515347781, 6515478881, 6515609981, 6515741059, 6515872133, 6516003209, + 6516134291, 6516265433, 6516396533, 6516527617, 6516658691, 6516789871, 6516920951, + 6517052023, 6517183109, 6517314197, 6517445269, 6517576361, 6517707433, 6517838513, + 6517969603, 6518100707, 6518231803, 6518363009, 6518494097, 6518625181, 6518756261, + 6518887363, 6519018439, 6519149537, 6519280613, 6519411779, 6519542923, 6519673997, + 6519805073, 6519936149, 6520067237, 6520198337, 6520329421, 6520460501, 6520591573, + 6520722653, 6520853737, 6520984837, 6521115947, 6521247053, 6521378183, 6521509261, + 6521640337, 6521771411, 6521902507, 6522033587, 6522164689, 6522295823, 6522426919, + 6522557999, 6522689083, 6522820159, 6522951233, 6523082323, 6523213423, 6523344497, + 6523475611, 6523606757, 6523737853, 6523868927, 6524000009, 6524131091, 6524262167, + 6524393243, 6524524327, 6524655421, 6524786509, 6524917601, 6525048697, 6525179779, + 6525310859, 6525442003, 6525573181, 6525704291, 6525835363, 6525966451, 6526097549, + 6526228627, 6526359703, 6526490801, 6526621891, 6526752971, 6526884071, 6527015167, + 6527146253, 6527277373, 6527408449, 6527539553, 6527670631, 6527801717, 6527932891, + 6528063967, 6528195059, 6528326149, 6528457237, 6528588329, 6528719401, 6528850501, + 6528981581, 6529112669, 6529243741, 6529374821, 6529505893, 6529636991, 6529768073, + 6529899149, 6530030233, 6530161373, 6530292449, 6530423573, 6530554673, 6530685787, + 6530816861, 6530947967, 6531079109, 6531210197, 6531341281, 6531472379, 6531603511, + 6531734591, 6531865667, 6531996749, 6532127827, 6532258939, 6532390013, 6532521113, + 6532652233, 6532783333, 6532914433, 6533045531, 6533176609, 6533307707, 6533438801, + 6533569949, 6533701037, 6533832133, 6533963207, 6534094289, 6534225361, 6534356441, + 6534487559, 6534618631, 6534749717, 6534880811, 6535011887, 6535142959, 6535274059, + 6535405147, 6535536221, 6535667351, 6535798441, 6535929539, 6536060617, 6536191699, + 6536322799, 6536453873, 6536584973, 6536716051, 6536847137, 6536978233, 6537109361, + 6537240461, 6537371569, 6537502651, 6537633733, 6537764819, 6537895961, 6538027037, + 6538158119, 6538289201, 6538420307, 6538551413, 6538682509, 6538813613, 6538944703, + 6539075783, 6539206879, 6539337971, 6539469047, 6539600147, 6539731279, 6539862353, + 6539993429, 6540124537, 6540255613, 6540386717, 6540517811, 6540648889, 6540780007, + 6540911119, 6541042219, 6541173293, 6541304381, 6541435507, 6541566593, 6541697719, + 6541828861, 6541959937, 6542091037, 6542222131, 6542353247, 6542484331, 6542615407, + 6542746517, 6542877641, 6543008723, 6543139831, 6543270907, 6543401981, 6543533057, + 6543664187, 6543795287, 6543926383, 6544057483, 6544188559, 6544319633, 6544450711, + 6544581809, 6544712903, 6544844003, 6544975091, 6545106179, 6545237261, 6545368337, + 6545499419, 6545630491, 6545761571, 6545892671, 6546023761, 6546154883, 6546285959, + 6546417037, 6546548117, 6546679189, 6546810287, 6546941389, 6547072463, 6547203547, + 6547334623, 6547465699, 6547596779, 6547727867, 6547858939, 6547990019, 6548121113, + 6548252189, 6548383267, 6548514347, 6548645449, 6548776523, 6548907619, 6549038747, + 6549169841, 6549300913, 6549431989, 6549563071, 6549694181, 6549825307, 6549956389, + 6550087469, 6550218557, 6550349629, 6550480711, 6550611799, 6550742873, 6550873957, + 6551005037, 6551136113, 6551267197, 6551398279, 6551529371, 6551660449, 6551791601, + 6551922673, 6552053779, 6552184913, 6552316031, 6552447127, 6552578231, 6552709333, + 6552840407, 6552971489, 6553102573, 6553233649, 6553364737, 6553495813, 6553626971, + 6553758049, 6553889137, 6554020229, 6554151313, 6554282401, 6554413499, 6554544571, + 6554675693, 6554806771, 6554937859, 6555068939, 6555200023, 6555331109, 6555462197, + 6555593269, 6555724367, 6555855451, 6555986531, 6556117621, 6556248697, 6556379773, + 6556510867, 6556641941, 6556773053, 6556904129, 6557035211, 6557166289, 6557297363, + 6557428441, 6557559523, 6557690603, 6557821693, 6557952767, 6558083839, 6558214913, + 6558345991, 6558477067, 6558608159, 6558739249, 6558870323, 6559001399, 6559132499, + 6559263583, 6559394657, 6559525729, 6559656847, 6559787939, 6559919029, 6560050153, + 6560181227, 6560312321, 6560443427, 6560574521, 6560705617, 6560836693, 6560967781, + 6561098861, 6561229937, 6561361019, 6561492097, 6561623197, 6561754301, 6561885377, + 6562016459, 6562147547, 6562278631, 6562409723, 6562540807, 6562671881, 6562802959, + 6562934033, 6563065109, 6563196229, 6563327321, 6563458393, 6563589467, 6563720557, + 6563851631, 6563982713, 6564113789, 6564244871, 6564375943, 6564507017, 6564638231, + 6564769307, 6564900401, 6565031497, 6565162577, 6565293661, 6565424737, 6565555837, + 6565686923, 6565818019, 6565949167, 6566080291, 6566211383, 6566342467, 6566473561, + 6566604701, 6566735783, 6566866877, 6566997977, 6567129077, 6567260159, 6567391267, + 6567522343, 6567653441, 6567784519, 6567915671, 6568046743, 6568177831, 6568308913, + 6568440001, 6568571089, 6568702169, 6568833259, 6568964357, 6569095433, 6569226533, + 6569357609, 6569488691, 6569619781, 6569750893, 6569881993, 6570013123, 6570144199, + 6570275287, 6570406393, 6570537487, 6570668563, 6570799657, 6570930799, 6571061873, + 6571192951, 6571324103, 6571455181, 6571586291, 6571717423, 6571848509, 6571979611, + 6572110709, 6572241791, 6572372867, 6572503961, 6572635033, 6572766107, 6572897179, + 6573028261, 6573159413, 6573290489, 6573421577, 6573552653, 6573683749, 6573814823, + 6573945899, 6574076983, 6574208087, 6574339171, 6574470247, 6574601323, 6574732447, + 6574863527, 6574994623, 6575125741, 6575256823, 6575387899, 6575519009, 6575650091, + 6575781197, 6575912281, 6576043373, 6576174457, 6576305537, 6576436637, 6576567719, + 6576698801, 6576829877, 6576960967, 6577092061, 6577223183, 6577354313, 6577485391, + 6577616491, 6577747567, 6577878677, 6578009759, 6578140831, 6578271913, 6578402993, + 6578534069, 6578665147, 6578796229, 6578927347, 6579058457, 6579189541, 6579320617, + 6579451699, 6579582839, 6579713963, 6579845047, 6579976163, 6580107253, 6580238377, + 6580369459, 6580500557, 6580631639, 6580762711, 6580893829, 6581024903, 6581155979, + 6581287087, 6581418187, 6581549263, 6581680363, 6581811479, 6581942567, 6582073643, + 6582204731, 6582335807, 6582466883, 6582597971, 6582729059, 6582860147, 6582991297, + 6583122373, 6583253477, 6583384601, 6583515691, 6583646767, 6583777841, 6583908967, + 6584040049, 6584171123, 6584302223, 6584433301, 6584564387, 6584695471, 6584826551, + 6584957651, 6585088733, 6585219811, 6585350887, 6585481961, 6585613039, 6585744127, + 6585875207, 6586006303, 6586137427, 6586268567, 6586399643, 6586530739, 6586661881, + 6586793047, 6586924129, 6587055221, 6587186293, 6587317381, 6587448487, 6587579591, + 6587710663, 6587841761, 6587972849, 6588103937, 6588235021, 6588366139, 6588497219, + 6588628297, 6588759391, 6588890501, 6589021601, 6589152679, 6589283783, 6589414879, + 6589545959, 6589677043, 6589808227, 6589939303, 6590070397, 6590201503, 6590332601, + 6590463679, 6590594783, 6590725913, 6590856989, 6590988067, 6591119149, 6591250229, + 6591381311, 6591512387, 6591643463, 6591774571, 6591905651, 6592036753, 6592167871, + 6592298969, 6592430063, 6592561163, 6592692289, 6592823401, 6592954493, 6593085589, + 6593216677, 6593347753, 6593478887, 6593609983, 6593741087, 6593872193, 6594003281, + 6594134377, 6594265511, 6594396583, 6594527663, 6594658789, 6594789869, 6594921017, + 6595052117, 6595183211, 6595314353, 6595445459, 6595576567, 6595707647, 6595838749, + 6595969829, 6596100911, 6596232001, 6596363089, 6596494171, 6596625247, 6596756401, + 6596887481, 6597018569, 6597149641, 6597280771, 6597411859, 6597542947, 6597674023, + 6597805099, 6597936173, 6598067263, 6598198351, 6598329427, 6598460503, 6598591609, + 6598722761, 6598853851, 6598984927, 6599116003, 6599247077, 6599378161, 6599509243, + 6599640323, 6599771419, 6599902513, 6600033611, 6600164689, 6600295783, 6600426869, + 6600557969, 6600689087, 6600820183, 6600951257, 6601082329, 6601213447, 6601344539, + 6601475651, 6601606723, 6601737803, 6601868891, 6601999967, 6602131121, 6602262197, + 6602393311, 6602524399, 6602655503, 6602786609, 6602917703, 6603048787, 6603179879, + 6603310957, 6603442037, 6603573121, 6603704197, 6603835313, 6603966419, 6604097503, + 6604228619, 6604359709, 6604490797, 6604621957, 6604753063, 6604884157, 6605015231, + 6605146367, 6605277443, 6605408519, 6605539597, 6605670749, 6605801821, 6605932903, + 6606064007, 6606195143, 6606326219, 6606457307, 6606588409, 6606719491, 6606850609, + 6606981707, 6607112783, 6607243859, 6607374973, 6607506071, 6607637143, 6607768231, + 6607899323, 6608030411, 6608161489, 6608292571, 6608423699, 6608554831, 6608685931, + 6608817011, 6608948113, 6609079199, 6609210281, 6609341357, 6609472523, 6609603599, + 6609734689, 6609865763, 6609996839, 6610127917, 6610259021, 6610390103, 6610521187, + 6610652329, 6610783423, 6610914503, 6611045593, 6611176679, 6611307767, 6611438843, + 6611569931, 6611701043, 6611832121, 6611963201, 6612094273, 6612225353, 6612356449, + 6612487529, 6612618629, 6612749701, 6612880789, 6613011863, 6613142947, 6613274021, + 6613405103, 6613536221, 6613667293, 6613798379, 6613929463, 6614060567, 6614191667, + 6614322749, 6614453843, 6614584937, 6614716013, 6614847089, 6614978189, 6615109261, + 6615240347, 6615371467, 6615502547, 6615633637, 6615764713, 6615895787, 6616026887, + 6616157959, 6616289047, 6616420147, 6616551223, 6616682323, 6616813417, 6616944563, + 6617075639, 6617206733, 6617337809, 6617468933, 6617600051, 6617731181, 6617862253, + 6617993329, 6618124421, 6618255559, 6618386647, 6618517727, 6618648809, 6618779911, + 6618910993, 6619042117, 6619173229, 6619304359, 6619435447, 6619566523, 6619697611, + 6619828687, 6619959763, 6620090837, 6620221921, 6620353009, 6620484083, 6620615219, + 6620746309, 6620877391, 6621008467, 6621139571, 6621270661, 6621401747, 6621532837, + 6621663941, 6621795031, 6621926117, 6622057199, 6622188319, 6622319399, 6622450477, + 6622581583, 6622712669, 6622843763, 6622974863, 6623105959, 6623237041, 6623368117, + 6623499227, 6623630303, 6623761379, 6623892467, 6624023563, 6624154637, 6624285727, + 6624416803, 6624547877, 6624678959, 6624810043, 6624941129, 6625072219, 6625203349, + 6625334473, 6625465549, 6625596629, 6625727741, 6625858823, 6625989901, 6626120983, + 6626252099, 6626383201, 6626514283, 6626645359, 6626776439, 6626907517, 6627038591, + 6627169663, 6627300761, 6627431849, 6627562939, 6627694027, 6627825101, 6627956183, + 6628087343, 6628218427, 6628349503, 6628480583, 6628611739, 6628742821, 6628873931, + 6629005021, 6629136133, 6629267251, 6629398331, 6629529421, 6629660549, 6629791621, + 6629922697, 6630053777, 6630184849, 6630315931, 6630447023, 6630578117, 6630709207, + 6630840283, 6630971357, 6631102507, 6631233589, 6631364681, 6631495753, 6631626853, + 6631757941, 6631889021, 6632020097, 6632151179, 6632282257, 6632413367, 6632544439, + 6632675551, 6632806637, 6632937713, 6633068821, 6633199913, 6633331009, 6633462091, + 6633593167, 6633724283, 6633855359, 6633986501, 6634117573, 6634248697, 6634379783, + 6634510871, 6634641947, 6634773043, 6634904117, 6635035217, 6635166319, 6635297413, + 6635428489, 6635559587, 6635690671, 6635821757, 6635952871, 6636083969, 6636215041, + 6636346121, 6636477251, 6636608453, 6636739541, 6636870619, 6637001713, 6637132787, + 6637263869, 6637394941, 6637526017, 6637657093, 6637788167, 6637919279, 6638050399, + 6638181479, 6638312563, 6638443699, 6638574773, 6638705851, 6638836927, 6638968013, + 6639099101, 6639230183, 6639361277, 6639492383, 6639623467, 6639754547, 6639885647, + 6640016741, 6640147819, 6640278929, 6640410013, 6640541087, 6640672163, 6640803241, + 6640934323, 6641065397, 6641196493, 6641327569, 6641458651, 6641589727, 6641720849, + 6641851943, 6641983021, 6642114109, 6642245189, 6642376261, 6642507371, 6642638467, + 6642769543, 6642900629, 6643031723, 6643162807, 6643293911, 6643424989, 6643556071, + 6643687147, 6643818239, 6643949327, 6644080427, 6644211529, 6644342629, 6644473723, + 6644604829, 6644735939, 6644867057, 6644998141, 6645129221, 6645260311, 6645391387, + 6645522467, 6645653593, 6645784667, 6645915739, 6646046831, 6646177907, 6646308989, + 6646440061, 6646571137, 6646702261, 6646833337, 6646964473, 6647095561, 6647226667, + 6647357741, 6647488871, 6647619947, 6647751041, 6647882207, 6648013291, 6648144397, + 6648275479, 6648406553, 6648537641, 6648668827, 6648799901, 6648931019, 6649062113, + 6649193231, 6649324309, 6649455409, 6649586483, 6649717579, 6649848701, 6649979773, + 6650110853, 6650241937, 6650373029, 6650504101, 6650635177, 6650766277, 6650897353, + 6651028429, 6651159511, 6651290593, 6651421687, 6651552799, 6651683887, 6651814991, + 6651946097, 6652077209, 6652208323, 6652339457, 6652470547, 6652601647, 6652732721, + 6652863799, 6652994899, 6653126003, 6653257097, 6653388179, 6653519287, 6653650361, + 6653781451, 6653912527, 6654043601, 6654174679, 6654305783, 6654436879, 6654567967, + 6654699091, 6654830179, 6654961297, 6655092371, 6655223459, 6655354571, 6655485647, + 6655616753, 6655747853, 6655878937, 6656010019, 6656141117, 6656272193, 6656403319, + 6656534393, 6656665511, 6656796659, 6656927747, 6657058819, 6657189901, 6657320977, + 6657452057, 6657583133, 6657714229, 6657845329, 6657976427, 6658107541, 6658238617, + 6658369693, 6658500791, 6658631869, 6658762949, 6658894027, 6659025119, 6659156191, + 6659287301, 6659418379, 6659549459, 6659680571, 6659811643, 6659942747, 6660073859, + 6660204949, 6660336043, 6660467147, 6660598271, 6660729359, 6660860441, 6660991517, + 6661122649, 6661253747, 6661384837, 6661515911, 6661646983, 6661778059, 6661909157, + 6662040241, 6662171377, 6662302457, 6662433553, 6662564663, 6662695789, 6662826917, + 6662957989, 6663089063, 6663220139, 6663351217, 6663482291, 6663613381, 6663744457, + 6663875539, 6664006633, 6664137731, 6664268827, 6664399913, 6664530989, 6664662061, + 6664793141, 6664924237, 6665055317, 6665186389, 6665317489, 6665448607, 6665579707, + 6665710847, 6665841971, 6665973043, 6666104117, 6666235231, 6666366319, 6666497401, + 6666628481, 6666759557, 6666890669, 6667021763, 6667152847, 6667283971, 6667415071, + 6667546189, 6667677271, 6667808419, 6667939507, 6668070593, 6668201671, 6668332789, + 6668463871, 6668594951, 6668726033, 6668857109, 6668988197, 6669119273, 6669250349, + 6669381427, 6669512533, 6669643639, 6669774733, 6669905819, 6670036931, 6670168013, + 6670299131, 6670430227, 6670561309, 6670692419, 6670823491, 6670954579, 6671085727, + 6671216819, 6671347957, 6671479033, 6671610107, 6671741191, 6671872271, 6672003343, + 6672134453, 6672265591, 6672396667, 6672527753, 6672658879, 6672789971, 6672921053, + 6673052147, 6673183219, 6673314299, 6673445413, 6673576499, 6673707571, 6673838653, + 6673969733, 6674100809, 6674231911, 6674362987, 6674494063, 6674625149, 6674756233, + 6674887367, 6675018461, 6675149549, 6675280649, 6675411731, 6675542803, 6675673891, + 6675804973, 6675936089, 6676067173, 6676198261, 6676329389, 6676460467, 6676591541, + 6676722641, 6676853723, 6676984823, 6677115899, 6677246993, 6677378111, 6677509211, + 6677640317, 6677771423, 6677902573, 6678033679, 6678164761, 6678295837, 6678426913, + 6678558023, 6678689099, 6678820177, 6678951277, 6679082353, 6679213427, 6679344521, + 6679475597, 6679606691, 6679737781, 6679868861, 6679999957, 6680131033, 6680262131, + 6680393231, 6680524351, 6680655439, 6680786549, 6680917631, 6681048721, 6681179807, + 6681310891, 6681441967, 6681573043, 6681704137, 6681835253, 6681966329, 6682097407, + 6682228489, 6682359571, 6682490651, 6682621793, 6682752899, 6682883989, 6683015069, + 6683146159, 6683277247, 6683408323, 6683539439, 6683670517, 6683801599, 6683932681, + 6684063767, 6684194903, 6684325979, 6684457061, 6684588133, 6684719231, 6684850321, + 6684981397, 6685112471, 6685243601, 6685374691, 6685505767, 6685636843, 6685767997, + 6685899091, 6686030171, 6686161267, 6686292367, 6686423453, 6686554573, 6686685671, + 6686816761, 6686947859, 6687078947, 6687210031, 6687341147, 6687472277, 6687603359, + 6687734491, 6687865571, 6687996671, 6688127759, 6688258831, 6688389931, 6688521013, + 6688652093, 6688783181, 6688914269, 6689045351, 6689176433, 6689307517, 6689438593, + 6689569669, 6689700793, 6689831873, 6689962949, 6690094039, 6690225149, 6690356227, + 6690487337, 6690618421, 6690749497, 6690880579, 6691011653, 6691142791, 6691273877, + 6691404983, 6691536113, 6691667189, 6691798279, 6691929397, 6692060491, 6692191589, + 6692322733, 6692453827, 6692584967, 6692716049, 6692847121, 6692978207, 6693109279, + 6693240377, 6693371449, 6693502523, 6693633599, 6693764677, 6693895753, 6694026847, + 6694157923, 6694289003, 6694420091, 6694551167, 6694682249, 6694813361, 6694944439, + 6695075537, 6695206613, 6695337689, 6695468777, 6695599853, 6695730947, 6695862031, + 6695993111, 6696124187, 6696255263, 6696386341, 6696517423, 6696648499, 6696779627, + 6696910709, 6697041839, 6697172929, 6697304017, 6697435109, 6697566191, 6697697273, + 6697828363, 6697959449, 6698090527, 6698221603, 6698352677, 6698483777, 6698614861, + 6698745941, 6698877043, 6699008143, 6699139217, 6699270299, 6699401393, 6699532501, + 6699663577, 6699794663, 6699925753, 6700056827, 6700187899, 6700318979, 6700450063, + 6700581137, 6700712209, 6700843379, 6700974457, 6701105539, 6701236637, 6701367733, + 6701498827, 6701629919, 6701761007, 6701892101, 6702023183, 6702154267, 6702285347, + 6702416443, 6702547519, 6702678599, 6702809681, 6702940771, 6703071853, 6703202929, + 6703334003, 6703465133, 6703596257, 6703727357, 6703858529, 6703989601, 6704120693, + 6704251811, 6704382899, 6704513993, 6704645071, 6704776159, 6704907241, 6705038339, + 6705169417, 6705300523, 6705431627, 6705562711, 6705693829, 6705824903, 6705955979, + 6706087051, 6706218137, 6706349249, 6706480321, 6706611403, 6706742489, 6706873583, + 6707004683, 6707135767, 6707266847, 6707397943, 6707529043, 6707660143, 6707791219, + 6707922293, 6708053369, 6708184481, 6708315553, 6708446651, 6708577751, 6708708829, + 6708839923, 6708971029, 6709102109, 6709233191, 6709364267, 6709495339, 6709626421, + 6709757503, 6709888607, 6710019683, 6710150773, 6710281847, 6710412949, 6710544023, + 6710675099, 6710806171, 6710937269, 6711068417, 6711199511, 6711330583, 6711461657, + 6711592733, 6711723833, 6711854921, 6711986009, 6712117081, 6712248163, 6712379239, + 6712510331, 6712641407, 6712772489, 6712903567, 6713034677, 6713165749, 6713296829, + 6713427911, 6713559001, 6713690077, 6713821151, 6713952229, 6714083303, 6714214421, + 6714345497, 6714476569, 6714607663, 6714738739, 6714869881, 6715001023, 6715132111, + 6715263197, 6715394297, 6715525391, 6715656487, 6715787581, 6715918667, 6716049761, + 6716180839, 6716311963, 6716443061, 6716574133, 6716705207, 6716836283, 6716967379, + 6717098461, 6717229553, 6717360631, 6717491717, 6717622799, 6717753883, 6717884993, + 6718016077, 6718147169, 6718278271, 6718409371, 6718540447, 6718671521, 6718802593, + 6718933667, 6719064739, 6719195839, 6719326949, 6719458037, 6719589131, 6719720251, + 6719851349, 6719982433, 6720113507, 6720244589, 6720375667, 6720506761, 6720637867, + 6720768947, 6720900041, 6721031117, 6721162223, 6721293307, 6721424383, 6721555537, + 6721686611, 6721817717, 6721948799, 6722079883, 6722210977, 6722342057, 6722473171, + 6722604299, 6722735429, 6722866517, 6722997629, 6723128717, 6723259813, 6723390917, + 6723522019, 6723653093, 6723784213, 6723915307, 6724046419, 6724177517, 6724308599, + 6724439671, 6724570751, 6724701829, 6724832929, 6724964041, 6725095129, 6725226203, + 6725357291, 6725488373, 6725619469, 6725750593, 6725881681, 6726012767, 6726143863, + 6726274939, 6726406109, 6726537199, 6726668281, 6726799421, 6726930493, 6727061569, + 6727192709, 6727323781, 6727454861, 6727585973, 6727717063, 6727848139, 6727979213, + 6728110289, 6728241397, 6728372501, 6728503583, 6728634683, 6728765863, 6728896961, + 6729028037, 6729159121, 6729290209, 6729421339, 6729552419, 6729683497, 6729814571, + 6729945679, 6730076783, 6730207919, 6730339003, 6730470091, 6730601179, 6730732303, + 6730863383, 6730994489, 6731125561, 6731256643, 6731387753, 6731518847, 6731649979, + 6731781053, 6731912141, 6732043243, 6732174377, 6732305453, 6732436531, 6732567607, + 6732698701, 6732829841, 6732960917, 6733091993, 6733223083, 6733354171, 6733485251, + 6733616381, 6733747457, 6733878539, 6734009671, 6734140789, 6734271881, 6734402963, + 6734534057, 6734665129, 6734796217, 6734927323, 6735058399, 6735189499, 6735320573, + 6735451649, 6735582727, 6735713849, 6735844949, 6735976021, 6736107097, 6736238177, + 6736369279, 6736500373, 6736631453, 6736762541, 6736893629, 6737024717, 6737155801, + 6737286929, 6737418041, 6737549141, 6737680219, 6737811319, 6737942429, 6738073561, + 6738204653, 6738335741, 6738466841, 6738597917, 6738728999, 6738860071, 6738991157, + 6739122233, 6739253329, 6739384411, 6739515487, 6739646567, 6739777669, 6739908743, + 6740039821, 6740170909, 6740301991, 6740433109, 6740564183, 6740695267, 6740826401, + 6740957501, 6741088579, 6741219691, 6741350771, 6741481849, 6741612923, 6741744007, + 6741875087, 6742006207, 6742137317, 6742268447, 6742399537, 6742530623, 6742661699, + 6742792781, 6742923881, 6743054957, 6743186029, 6743317117, 6743448199, 6743579281, + 6743710357, 6743841473, 6743972551, 6744103669, 6744234769, 6744365843, 6744496933, + 6744628019, 6744759101, 6744890183, 6745021307, 6745152413, 6745283497, 6745414597, + 6745545671, 6745676759, 6745807841, 6745938917, 6746070011, 6746201141, 6746332217, + 6746463289, 6746594389, 6746725507, 6746856581, 6746987671, 6747118751, 6747249827, + 6747380911, 6747512003, 6747643087, 6747774169, 6747905261, 6748036363, 6748167443, + 6748298561, 6748429661, 6748560743, 6748691861, 6748822939, 6748954039, 6749085131, + 6749216237, 6749347313, 6749478403, 6749609479, 6749740559, 6749871649, 6750002723, + 6750133807, 6750264893, 6750395983, 6750527089, 6750658183, 6750789259, 6750920357, + 6751051453, 6751182547, 6751313729, 6751444801, 6751575911, 6751706989, 6751838069, + 6751969141, 6752100221, 6752231383, 6752362469, 6752493557, 6752624651, 6752755727, + 6752886809, 6753017917, 6753149009, 6753280081, 6753411169, 6753542251, 6753673327, + 6753804401, 6753935501, 6754066577, 6754197721, 6754328813, 6754459897, 6754591003, + 6754722083, 6754853179, 6754984273, 6755115349, 6755246437, 6755377511, 6755508589, + 6755639663, 6755770783, 6755901907, 6756033017, 6756164099, 6756295207, 6756426301, + 6756557387, 6756688493, 6756819571, 6756950647, 6757081757, 6757212851, 6757343953, + 6757475029, 6757606109, 6757737191, 6757868269, 6757999351, 6758130437, 6758261509, + 6758392591, 6758523671, 6758654743, 6758785841, 6758916961, 6759048053, 6759179131, + 6759310237, 6759441313, 6759572399, 6759703487, 6759834577, 6759965669, 6760096741, + 6760227839, 6760358929, 6760490117, 6760621213, 6760752329, 6760883447, 6761014523, + 6761145641, 6761276777, 6761407859, 6761538937, 6761670061, 6761801143, 6761932217, + 6762063367, 6762194471, 6762325571, 6762456667, 6762587759, 6762718843, 6762849923, + 6762980999, 6763112087, 6763243163, 6763374251, 6763505339, 6763636441, 6763767523, + 6763898623, 6764029703, 6764160791, 6764291893, 6764422967, 6764554057, 6764685143, + 6764816263, 6764947337, 6765078449, 6765209533, 6765340613, 6765471697, 6765602791, + 6765733913, 6765865009, 6765996137, 6766127237, 6766258309, 6766389407, 6766520479, + 6766651579, 6766782679, 6766913761, 6767044847, 6767175937, 6767307017, 6767438099, + 6767569199, 6767700271, 6767831347, 6767962423, 6768093503, 6768224587, 6768355681, + 6768486799, 6768617953, 6768749027, 6768880099, 6769011181, 6769142257, 6769273349, + 6769404479, 6769535557, 6769666669, 6769797781, 6769928903, 6770059981, 6770191063, + 6770322137, 6770453231, 6770584349, 6770715421, 6770846501, 6770977573, 6771108689, + 6771239807, 6771370901, 6771501977, 6771633073, 6771764177, 6771895253, 6772026361, + 6772157453, 6772288547, 6772419631, 6772550711, 6772681787, 6772812863, 6772943971, + 6773075051, 6773206123, 6773337223, 6773468297, 6773599387, 6773730473, 6773861561, + 6773992633, 6774123709, 6774254783, 6774385883, 6774516971, 6774648061, 6774779149, + 6774910231, 6775041359, 6775172447, 6775303523, 6775434613, 6775565707, 6775696787, + 6775827859, 6775958939, 6776090029, 6776221117, 6776352227, 6776483299, 6776614381, + 6776745463, 6776876543, 6777007637, 6777138721, 6777269813, 6777400919, 6777531991, + 6777663121, 6777794251, 6777925387, 6778056463, 6778187557, 6778318633, 6778449707, + 6778580791, 6778711867, 6778842991, 6778974089, 6779105197, 6779236273, 6779367347, + 6779498437, 6779629513, 6779760587, 6779891681, 6780022787, 6780153869, 6780284963, + 6780416039, 6780547129, 6780678221, 6780809317, 6780940393, 6781071509, 6781202609, + 6781333717, 6781464793, 6781595879, 6781726957, 6781858037, 6781989113, 6782120203, + 6782251291, 6782382413, 6782513497, 6782644571, 6782775653, 6782906737, 6783037841, + 6783168919, 6783300011, 6783431111, 6783562189, 6783693269, 6783824363, 6783955441, + 6784086523, 6784217597, 6784348741, 6784479817, 6784610923, 6784742017, 6784873099, + 6785004179, 6785135281, 6785266417, 6785397503, 6785528627, 6785659711, 6785790833, + 6785921927, 6786053011, 6786184087, 6786315161, 6786446269, 6786577367, 6786708443, + 6786839567, 6786970649, 6787101733, 6787232833, 6787363907, 6787495049, 6787626127, + 6787757227, 6787888307, 6788019379, 6788150461, 6788281561, 6788412637, 6788543731, + 6788674861, 6788805941, 6788937037, 6789068119, 6789199213, 6789330293, 6789461369, + 6789592499, 6789723601, 6789854681, 6789985753, 6790116847, 6790247921, 6790378993, + 6790510127, 6790641199, 6790772321, 6790903423, 6791034517, 6791165621, 6791296693, + 6791427883, 6791558993, 6791690089, 6791821177, 6791952259, 6792083341, 6792214423, + 6792345509, 6792476597, 6792607697, 6792738769, 6792869851, 6793000927, 6793132001, + 6793263077, 6793394177, 6793525253, 6793656361, 6793787447, 6793918529, 6794049667, + 6794180741, 6794311861, 6794442983, 6794574091, 6794705167, 6794836247, 6794967329, + 6795098419, 6795229523, 6795360619, 6795491707, 6795622811, 6795753907, 6795884999, + 6796016081, 6796147199, 6796278271, 6796409353, 6796540441, 6796671521, 6796802629, + 6796933721, 6797064803, 6797195891, 6797327021, 6797458097, 6797589173, 6797720291, + 6797851363, 6797982439, 6798113533, 6798244627, 6798375737, 6798506833, 6798637907, + 6798768983, 6798900091, 6799031191, 6799162277, 6799293349, 6799424483, 6799555577, + 6799686683, 6799817851, 6799948943, 6800080037, 6800211151, 6800342273, 6800473363, + 6800604439, 6800735533, 6800866697, 6800997817, 6801128891, 6801260017, 6801391123, + 6801522229, 6801653351, 6801784427, 6801915503, 6802046591, 6802177663, 6802308749, + 6802439849, 6802570937, 6802702051, 6802833127, 6802964221, 6803095361, 6803226499, + 6803357599, 6803488673, 6803619763, 6803750843, 6803881957, 6804013057, 6804144157, + 6804275239, 6804406321, 6804537401, 6804668491, 6804799583, 6804930661, 6805061743, + 6805192853, 6805323929, 6805455001, 6805586153, 6805717229, 6805848307, 6805979387, + 6806110489, 6806241569, 6806372659, 6806503751, 6806634823, 6806765909, 6806896997, + 6807028069, 6807159167, 6807290251, 6807421337, 6807552421, 6807683563, 6807814711, + 6807945847, 6808076971, 6808208047, 6808339169, 6808470293, 6808601369, 6808732453, + 6808863533, 6808994609, 6809125681, 6809256781, 6809387861, 6809518949, 6809650049, + 6809781157, 6809912233, 6810043309, 6810174401, 6810305569, 6810436673, 6810567749, + 6810698897, 6810829997, 6810961099, 6811092173, 6811223267, 6811354339, 6811485467, + 6811616561, 6811747639, 6811878739, 6812009861, 6812140963, 6812272039, 6812403113, + 6812534191, 6812665267, 6812796373, 6812927449, 6813058559, 6813189631, 6813320743, + 6813451817, 6813582929, 6813714001, 6813845081, 6813976157, 6814107319, 6814238393, + 6814369483, 6814500607, 6814631723, 6814762819, 6814893931, 6815025029, 6815156137, + 6815287247, 6815418331, 6815549453, 6815680559, 6815811677, 6815942779, 6816073861, + 6816204937, 6816336029, 6816467107, 6816598181, 6816729281, 6816860363, 6816991453, + 6817122541, 6817253621, 6817384697, 6817515787, 6817646873, 6817777963, 6817909037, + 6818040137, 6818171281, 6818302411, 6818433493, 6818564579, 6818695651, 6818826779, + 6818957857, 6819088957, 6819220049, 6819351127, 6819482209, 6819613289, 6819744391, + 6819875471, 6820006549, 6820137677, 6820268761, 6820399849, 6820530971, 6820662059, + 6820793131, 6820924217, 6821055331, 6821186419, 6821317511, 6821448589, 6821579663, + 6821710741, 6821841827, 6821972917, 6822103999, 6822235081, 6822366217, 6822497317, + 6822628447, 6822759521, 6822890597, 6823021697, 6823152797, 6823283911, 6823415003, + 6823546141, 6823677241, 6823808357, 6823939439, 6824070523, 6824201669, 6824332787, + 6824463923, 6824595079, 6824726159, 6824857261, 6824988361, 6825119437, 6825250577, + 6825381679, 6825512777, 6825643907, 6825775007, 6825906083, 6826037177, 6826168267, + 6826299343, 6826430417, 6826561519, 6826692611, 6826823687, 6826954763, 6827085841, + 6827216927, 6827348027, 6827479147, 6827610247, 6827741339, 6827872417, 6828003503, + 6828134611, 6828265693, 6828396797, 6828527917, 6828659003, 6828790079, 6828921161, + 6829052233, 6829183307, 6829314379, 6829445477, 6829576597, 6829707671, 6829838767, + 6829969873, 6830100961, 6830232041, 6830363119, 6830494199, 6830625289, 6830756363, + 6830887471, 6831018617, 6831149713, 6831280787, 6831411859, 6831542947, 6831674041, + 6831805117, 6831936193, 6832067311, 6832198409, 6832329499, 6832460573, 6832591651, + 6832722733, 6832853827, 6832984903, 6833115997, 6833247097, 6833378183, 6833509259, + 6833640343, 6833771449, 6833902541, 6834033641, 6834164789, 6834295873, 6834426953, + 6834558067, 6834689179, 6834820261, 6834951373, 6835082459, 6835213549, 6835344667, + 6835475743, 6835606853, 6835737943, 6835869037, 6836000137, 6836131219, 6836262319, + 6836393461, 6836524579, 6836655671, 6836786753, 6836917837, 6837048929, 6837180017, + 6837311119, 6837442193, 6837573269, 6837704399, 6837835471, 6837966547, 6838097641, + 6838228777, 6838359881, 6838490977, 6838622057, 6838753133, 6838884209, 6839015303, + 6839146399, 6839277491, 6839408591, 6839539667, 6839670743, 6839801821, 6839932921, + 6840064003, 6840195077, 6840326149, 6840457231, 6840588323, 6840719407, 6840850481, + 6840981607, 6841112693, 6841243771, 6841374847, 6841505929, 6841637009, 6841768091, + 6841899179, 6842030281, 6842161367, 6842292439, 6842423557, 6842554637, 6842685709, + 6842816801, 6842947873, 6843078947, 6843210037, 6843341123, 6843472217, 6843603289, + 6843734377, 6843865459, 6843996553, 6844127671, 6844258747, 6844389823, 6844520897, + 6844651973, 6844783067, 6844914161, 6845045261, 6845176333, 6845307409, 6845438491, + 6845569589, 6845700691, 6845831767, 6845962847, 6846093923, 6846225007, 6846356117, + 6846487199, 6846618287, 6846749387, 6846880471, 6847011557, 6847142657, 6847273739, + 6847404829, 6847535909, 6847666981, 6847798123, 6847929199, 6848060281, 6848191387, + 6848322469, 6848453551, 6848584643, 6848715721, 6848846803, 6848977897, 6849108977, + 6849240049, 6849371159, 6849502267, 6849633359, 6849764437, 6849895517, 6850026619, + 6850157693, 6850288769, 6850419859, 6850550939, 6850682011, 6850813091, 6850944181, + 6851075269, 6851206361, 6851337443, 6851468521, 6851599603, 6851730709, 6851861791, + 6851992867, 6852123947, 6852255029, 6852386143, 6852517249, 6852648343, 6852779477, + 6852910567, 6853041641, 6853172717, 6853303801, 6853434877, 6853565959, 6853697041, + 6853828229, 6853959379, 6854090497, 6854221571, 6854352643, 6854483737, 6854614831, + 6854745923, 6854877011, 6855008117, 6855139271, 6855270347, 6855401431, 6855532507, + 6855663599, 6855794707, 6855925789, 6856056887, 6856187983, 6856319089, 6856450163, + 6856581241, 6856712327, 6856843423, 6856974517, 6857105597, 6857236669, 6857367841, + 6857498941, 6857630023, 6857761151, 6857892253, 6858023357, 6858154439, 6858285583, + 6858416659, 6858547741, 6858678829, 6858809911, 6858940987, 6859072091, 6859203173, + 6859334269, 6859465351, 6859596437, 6859727533, 6859858609, 6859989707, 6860120797, + 6860251877, 6860382959, 6860514043, 6860645119, 6860776211, 6860907307, 6861038407, + 6861169543, 6861300619, 6861431729, 6861562811, 6861693899, 6861824999, 6861956081, + 6862087171, 6862218247, 6862349321, 6862480409, 6862611487, 6862742581, 6862873657, + 6863004767, 6863135843, 6863266939, 6863398043, 6863529133, 6863660213, 6863791331, + 6863922421, 6864053503, 6864184687, 6864315761, 6864446843, 6864577927, 6864709001, + 6864840113, 6864971189, 6865102297, 6865233373, 6865364453, 6865495601, 6865626673, + 6865757771, 6865888847, 6866019943, 6866151023, 6866282147, 6866413243, 6866544343, + 6866675423, 6866806501, 6866937577, 6867068683, 6867199789, 6867330889, 6867461971, + 6867593053, 6867724183, 6867855277, 6867986453, 6868117537, 6868248623, 6868379699, + 6868510793, 6868641889, 6868773059, 6868904131, 6869035231, 6869166331, 6869297417, + 6869428513, 6869559637, 6869690713, 6869821793, 6869952871, 6870083971, 6870215089, + 6870346177, 6870477281, 6870608357, 6870739459, 6870870533, 6871001611, 6871132687, + 6871263769, 6871394843, 6871525933, 6871657019, 6871788109, 6871919191, 6872050277, + 6872181367, 6872312459, 6872443547, 6872574619, 6872705713, 6872836799, 6872967901, + 6873098983, 6873230059, 6873361177, 6873492253, 6873623327, 6873754399, 6873885517, + 6874016599, 6874147723, 6874278809, 6874409887, 6874540969, 6874672081, 6874803157, + 6874934237, 6875065343, 6875196439, 6875327551, 6875458663, 6875589739, 6875720843, + 6875851933, 6875983007, 6876114103, 6876245237, 6876376319, 6876507427, 6876638521, + 6876769597, 6876900671, 6877031747, 6877162849, 6877293953, 6877425029, 6877556123, + 6877687247, 6877818349, 6877949431, 6878080621, 6878211733, 6878342831, 6878473913, + 6878604989, 6878736083, 6878867189, 6878998267, 6879129347, 6879260419, 6879391501, + 6879522577, 6879653657, 6879784783, 6879915857, 6880046939, 6880178017, 6880309103, + 6880440241, 6880571351, 6880702441, 6880833599, 6880964689, 6881095783, 6881226881, + 6881357953, 6881489059, 6881620133, 6881751211, 6881882297, 6882013373, 6882144473, + 6882275549, 6882406649, 6882537791, 6882668873, 6882799949, 6882931037, 6883062139, + 6883193249, 6883324321, 6883455409, 6883586519, 6883717601, 6883848677, 6883979749, + 6884110823, 6884241967, 6884373047, 6884504119, 6884635193, 6884766293, 6884897381, + 6885028471, 6885159559, 6885290641, 6885421727, 6885552799, 6885683881, 6885814967, + 6885946049, 6886077139, 6886208227, 6886339331, 6886470407, 6886601563, 6886732637, + 6886863713, 6886994819, 6887125897, 6887256973, 6887388049, 6887519129, 6887650201, + 6887781281, 6887912411, 6888043511, 6888174583, 6888305659, 6888436759, 6888567863, + 6888698939, 6888830017, 6888961097, 6889092179, 6889223261, 6889354361, 6889485451, + 6889616527, 6889747649, 6889878763, 6890009851, 6890140931, 6890272013, 6890403167, + 6890534239, 6890665319, 6890796427, 6890927501, 6891058609, 6891189749, 6891320827, + 6891451907, 6891583001, 6891714097, 6891845179, 6891976313, 6892107419, 6892238501, + 6892369591, 6892500683, 6892631773, 6892762901, 6892894009, 6893025127, 6893156219, + 6893287307, 6893418391, 6893549483, 6893680559, 6893811671, 6893942753, 6894073853, + 6894204949, 6894336037, 6894467117, 6894598247, 6894729337, 6894860437, 6894991531, + 6895122631, 6895253707, 6895384789, 6895515881, 6895646959, 6895778039, 6895909117, + 6896040257, 6896171339, 6896302417, 6896433497, 6896564579, 6896695691, 6896826787, + 6896957861, 6897088943, 6897220019, 6897351091, 6897482171, 6897613249, 6897744341, + 6897875423, 6898006517, 6898137599, 6898268677, 6898399763, 6898530841, 6898661923, + 6898793009, 6898924091, 6899055167, 6899186249, 6899317333, 6899448449, 6899579539, + 6899710621, 6899841701, 6899972809, 6900103943, 6900235033, 6900366107, 6900497189, + 6900628289, 6900759413, 6900890539, 6901021643, 6901152719, 6901283801, 6901414909, + 6901546007, 6901677089, 6901808167, 6901939271, 6902070347, 6902201419, 6902332501, + 6902463593, 6902594669, 6902725769, 6902856841, 6902987933, 6903119011, 6903250087, + 6903381181, 6903512351, 6903643433, 6903774517, 6903905599, 6904036693, 6904167839, + 6904298939, 6904430021, 6904561099, 6904692173, 6904823281, 6904954367, 6905085457, + 6905216537, 6905347637, 6905478721, 6905609813, 6905740903, 6905872007, 6906003103, + 6906134219, 6906265297, 6906396379, 6906527461, 6906658541, 6906789683, 6906920771, + 6907051871, 6907182979, 6907314091, 6907445191, 6907576267, 6907707371, 6907838449, + 6907969531, 6908100607, 6908231689, 6908362763, 6908493859, 6908624953, 6908756027, + 6908887109, 6909018191, 6909149311, 6909280409, 6909411491, 6909542573, 6909673663, + 6909804761, 6909935833, 6910066931, 6910198013, 6910329103, 6910460177, 6910591267, + 6910722349, 6910853423, 6910984499, 6911115583, 6911246663, 6911377747, 6911508823, + 6911639897, 6911770991, 6911902117, 6912033229, 6912164323, 6912295417, 6912426497, + 6912557581, 6912688693, 6912819791, 6912950917, 6913082027, 6913213121, 6913344197, + 6913475269, 6913606367, 6913737487, 6913868639, 6913999723, 6914130829, 6914261923, + 6914392997, 6914524069, 6914655169, 6914786293, 6914917379, 6915048457, 6915179533, + 6915310613, 6915441721, 6915572821, 6915703901, 6915835019, 6915966091, 6916097183, + 6916228261, 6916359343, 6916490423, 6916621499, 6916752589, 6916883689, 6917014777, + 6917145853, 6917276929, 6917408009, 6917539081, 6917670163, 6917801239, 6917932313, + 6918063391, 6918194467, 6918325541, 6918456641, 6918587717, 6918718813, 6918849887, + 6918980963, 6919112041, 6919243141, 6919374223, 6919505323, 6919636417, 6919767493, + 6919898581, 6920029679, 6920160787, 6920291863, 6920422969, 6920554051, 6920685131, + 6920816207, 6920947303, 6921078379, 6921209461, 6921340567, 6921471691, 6921602767, + 6921733913, 6921864997, 6921996071, 6922127159, 6922258253, 6922389329, 6922520413, + 6922651487, 6922782569, 6922913651, 6923044741, 6923175869, 6923306947, 6923438021, + 6923569187, 6923700293, 6923831407, 6923962489, 6924093587, 6924224693, 6924355777, + 6924486853, 6924617929, 6924749011, 6924880093, 6925011179, 6925142293, 6925273393, + 6925404467, 6925535611, 6925666691, 6925797763, 6925928861, 6926059963, 6926191067, + 6926322173, 6926453263, 6926584361, 6926715451, 6926846527, 6926977627, 6927108709, + 6927239857, 6927370973, 6927502063, 6927633137, 6927764251, 6927895367, 6928026451, + 6928157531, 6928288607, 6928419709, 6928550791, 6928681909, 6928812983, 6928944089, + 6929075171, 6929206253, 6929337413, 6929468503, 6929599577, 6929730659, 6929861801, + 6929992889, 6930123961, 6930255041, 6930386129, 6930517219, 6930648299, 6930779477, + 6930910579, 6931041653, 6931172737, 6931303823, 6931434977, 6931566049, 6931697141, + 6931828237, 6931959319, 6932090401, 6932221501, 6932352593, 6932483671, 6932614747, + 6932745823, 6932876897, 6933007979, 6933139061, 6933270133, 6933401213, 6933532301, + 6933663397, 6933794503, 6933925577, 6934056667, 6934187747, 6934318841, 6934449919, + 6934581011, 6934712101, 6934843177, 6934974287, 6935105363, 6935236453, 6935367539, + 6935498621, 6935629697, 6935760773, 6935891861, 6936022957, 6936154031, 6936285121, + 6936416197, 6936547301, 6936678407, 6936809479, 6936940561, 6937071641, 6937202729, + 6937333841, 6937464923, 6937596023, 6937727129, 6937858229, 6937989337, 6938120443, + 6938251519, 6938382613, 6938513711, 6938644787, 6938775881, 6938906957, 6939038059, + 6939169141, 6939300217, 6939431321, 6939562393, 6939693479, 6939824587, 6939955663, + 6940086743, 6940217827, 6940348907, 6940479979, 6940611101, 6940742251, 6940873343, + 6941004451, 6941135561, 6941266639, 6941397719, 6941528813, 6941659889, 6941790983, + 6941922089, 6942053197, 6942184273, 6942315397, 6942446471, 6942577549, 6942708649, + 6942839741, 6942970829, 6943101917, 6943232993, 6943364137, 6943495213, 6943626293, + 6943757369, 6943888451, 6944019581, 6944150687, 6944281777, 6944412869, 6944543941, + 6944675027, 6944806111, 6944937191, 6945068281, 6945199361, 6945330439, 6945461513, + 6945592657, 6945723739, 6945854821, 6945985897, 6946116973, 6946248091, 6946379171, + 6946510289, 6946641389, 6946772461, 6946903559, 6947034637, 6947165717, 6947296801, + 6947427959, 6947559053, 6947690149, 6947821259, 6947952353, 6948083431, 6948214523, + 6948345629, 6948476701, 6948607859, 6948738931, 6948870029, 6949001123, 6949132207, + 6949263313, 6949394393, 6949525469, 6949656569, 6949787651, 6949918727, 6950049809, + 6950180891, 6950311987, 6950443061, 6950574133, 6950705213, 6950836307, 6950967389, + 6951098501, 6951229589, 6951360701, 6951491831, 6951622943, 6951754027, 6951885107, + 6952016207, 6952147283, 6952278433, 6952409533, 6952540627, 6952671749, 6952802849, + 6952933927, 6953065001, 6953196073, 6953327167, 6953458247, 6953589329, 6953720401, + 6953851483, 6953982557, 6954113651, 6954244727, 6954375833, 6954506947, 6954638023, + 6954769103, 6954900217, 6955031299, 6955162391, 6955293469, 6955424543, 6955555639, + 6955686761, 6955817837, 6955948921, 6956080007, 6956211191, 6956342291, 6956473399, + 6956604491, 6956735579, 6956866661, 6956997739, 6957128819, 6957259891, 6957391031, + 6957522109, 6957653221, 6957784307, 6957915383, 6958046477, 6958177591, 6958308683, + 6958439809, 6958570891, 6958701973, 6958833067, 6958964143, 6959095217, 6959226293, + 6959357381, 6959488453, 6959619529, 6959750621, 6959881693, 6960012803, 6960143881, + 6960274957, 6960406031, 6960537107, 6960668201, 6960799289, 6960930413, 6961061507, + 6961192603, 6961323689, 6961454761, 6961585859, 6961716947, 6961848029, 6961979117, + 6962110193, 6962241317, 6962372449, 6962503567, 6962634643, 6962765717, 6962896817, + 6963027901, 6963158977, 6963290099, 6963421183, 6963552263, 6963683339, 6963814463, + 6963945539, 6964076627, 6964207699, 6964338811, 6964469891, 6964600963, 6964732039, + 6964863133, 6964994233, 6965125309, 6965256457, 6965387537, 6965518627, 6965649737, + 6965780881, 6965912029, 6966043121, 6966174209, 6966305321, 6966436439, 6966567511, + 6966698633, 6966829763, 6966960857, 6967091941, 6967223017, 6967354109, 6967485181, + 6967616323, 6967747403, 6967878563, 6968009663, 6968140747, 6968271823, 6968402923, + 6968534011, 6968665087, 6968796167, 6968927239, 6969058331, 6969189419, 6969320537, + 6969451627, 6969582703, 6969713833, 6969844957, 6969976043, 6970107119, 6970238201, + 6970369277, 6970500367, 6970631471, 6970762571, 6970893653, 6971024771, 6971155843, + 6971286937, 6971418023, 6971549099, 6971680181, 6971811269, 6971942371, 6972073447, + 6972204539, 6972335633, 6972466757, 6972597829, 6972728923, 6972860047, 6972991199, + 6973122283, 6973253363, 6973384459, 6973515539, 6973646639, 6973777787, 6973908863, + 6974039957, 6974171041, 6974302123, 6974433211, 6974564291, 6974695393, 6974826473, + 6974957567, 6975088639, 6975219721, 6975350803, 6975481937, 6975613019, 6975744091, + 6975875167, 6976006243, 6976137317, 6976268389, 6976399483, 6976530569, 6976661641, + 6976792721, 6976923817, 6977054927, 6977186003, 6977317093, 6977448187, 6977579269, + 6977710417, 6977841509, 6977972629, 6978103703, 6978234797, 6978365879, 6978496951, + 6978628037, 6978759119, 6978890197, 6979021319, 6979152403, 6979283483, 6979414627, + 6979545847, 6979676947, 6979808021, 6979939093, 6980070193, 6980201281, 6980332367, + 6980463443, 6980594531, 6980725613, 6980856703, 6980987833, 6981118987, 6981250093, + 6981381191, 6981512311, 6981643387, 6981774469, 6981905543, 6982036619, 6982167691, + 6982298779, 6982429889, 6982560979, 6982692077, 6982823149, 6982954229, 6983085311, + 6983216393, 6983347507, 6983478581, 6983609671, 6983740807, 6983871889, 6984002999, + 6984134099, 6984265177, 6984396259, 6984527353, 6984658427, 6984789527, 6984920603, + 6985051691, 6985182769, 6985313857, 6985444957, 6985576049, 6985707139, 6985838221, + 6985969303, 6986100409, 6986231489, 6986362571, 6986493677, 6986624753, 6986755837, + 6986886911, 6987018007, 6987149089, 6987280163, 6987411251, 6987542363, 6987673439, + 6987804517, 6987935597, 6988066721, 6988197833, 6988328923, 6988459997, 6988591079, + 6988722161, 6988853257, 6988984361, 6989115433, 6989246557, 6989377673, 6989508811, + 6989639887, 6989770967, 6989902069, 6990033181, 6990164281, 6990295357, 6990426433, + 6990557507, 6990688597, 6990819673, 6990950753, 6991081829, 6991212901, 6991343977, + 6991475059, 6991606151, 6991737251, 6991868347, 6991999429, 6992130503, 6992261597, + 6992392697, 6992523803, 6992654881, 6992785963, 6992917069, 6993048193, 6993179327, + 6993310421, 6993441509, 6993572587, 6993703687, 6993834761, 6993965857, 6994096981, + 6994228103, 6994359259, 6994490339, 6994621433, 6994752551, 6994883641, 6995014759, + 6995145869, 6995276989, 6995408107, 6995539189, 6995670277, 6995801353, 6995932441, + 6996063583, 6996194701, 6996325811, 6996456889, 6996587999, 6996719083, 6996850169, + 6996981247, 6997112323, 6997243397, 6997374469, 6997505587, 6997636697, 6997767797, + 6997898891, 6998029967, 6998161097, 6998292181, 6998423261, 6998554361, 6998685437, + 6998816543, 6998947621, 6999078701, 6999209773, 6999340883, 6999471961, 6999603049, + 6999734129, 6999865211, 6999996299, 7000127377, 7000258471, 7000389553, 7000520641, + 7000651717, 7000782797, 7000913873, 7001044997, 7001176073, 7001307161, 7001438233, + 7001569307, 7001700379, 7001831453, 7001962543, 7002093689, 7002224767, 7002355849, + 7002486929, 7002618013, 7002749087, 7002880169, 7003011271, 7003142357, 7003273439, + 7003404521, 7003535621, 7003666697, 7003797793, 7003928917, 7004059999, 7004191091, + 7004322163, 7004453321, 7004584423, 7004715499, 7004846573, 7004977663, 7005108779, + 7005239887, 7005370969, 7005502061, 7005633137, 7005764221, 7005895297, 7006026397, + 7006157471, 7006288547, 7006419653, 7006550741, 7006681849, 7006812937, 7006944047, + 7007075171, 7007206247, 7007337329, 7007468401, 7007599531, 7007730641, 7007861723, + 7007992799, 7008123883, 7008254969, 7008386041, 7008517141, 7008648221, 7008779293, + 7008910379, 7009041451, 7009172543, 7009303627, 7009434703, 7009565803, 7009696909, + 7009828037, 7009959109, 7010090203, 7010221277, 7010352353, 7010483429, 7010614529, + 7010745601, 7010876693, 7011007849, 7011138923, 7011270001, 7011401083, 7011532163, + 7011663259, 7011794341, 7011925447, 7012056539, 7012187621, 7012318693, 7012449803, + 7012580879, 7012711987, 7012843081, 7012974169, 7013105249, 7013236327, 7013367479, + 7013498593, 7013629697, 7013760779, 7013891879, 7014022973, 7014154051, 7014285139, + 7014416251, 7014547363, 7014678443, 7014809521, 7014940601, 7015071673, 7015202827, + 7015333901, 7015464977, 7015596067, 7015727197, 7015858273, 7015989371, 7016120459, + 7016251553, 7016382629, 7016513711, 7016644783, 7016775901, 7016907013, 7017038087, + 7017169163, 7017300263, 7017431357, 7017562439, 7017693511, 7017824603, 7017955741, + 7018086821, 7018217951, 7018349027, 7018480127, 7018611217, 7018742293, 7018873441, + 7019004547, 7019135633, 7019266711, 7019397799, 7019528881, 7019659957, 7019791043, + 7019922157, 7020053237, 7020184333, 7020315437, 7020446539, 7020577639, 7020708727, + 7020839801, 7020970889, 7021101979, 7021233071, 7021364143, 7021495237, 7021626317, + 7021757411, 7021888513, 7022019617, 7022150699, 7022281781, 7022412869, 7022543947, + 7022675047, 7022806121, 7022937209, 7023068293, 7023199367, 7023330469, 7023461563, + 7023592651, 7023723761, 7023854863, 7023985957, 7024117031, 7024248131, 7024379203, + 7024510277, 7024641353, 7024772429, 7024903531, 7025034613, 7025165723, 7025296813, + 7025427953, 7025559041, 7025690131, 7025821207, 7025952281, 7026083369, 7026214451, + 7026345551, 7026476627, 7026607699, 7026738847, 7026869923, 7027001011, 7027132127, + 7027263203, 7027394281, 7027525387, 7027656487, 7027787561, 7027918649, 7028049757, + 7028180839, 7028311919, 7028443069, 7028574151, 7028705249, 7028836327, 7028967427, + 7029098509, 7029229589, 7029360697, 7029491773, 7029622861, 7029753947, 7029885053, + 7030016129, 7030147249, 7030278337, 7030409411, 7030540483, 7030671581, 7030802711, + 7030933807, 7031064917, 7031196013, 7031327101, 7031458177, 7031589251, 7031720327, + 7031851403, 7031982577, 7032113651, 7032244729, 7032375803, 7032506927, 7032638101, + 7032769217, 7032900307, 7033031381, 7033162457, 7033293539, 7033424647, 7033555723, + 7033686797, 7033817941, 7033949029, 7034080111, 7034211199, 7034342303, 7034473399, + 7034604509, 7034735599, 7034866681, 7034997793, 7035128897, 7035259981, 7035391063, + 7035522149, 7035653227, 7035784309, 7035915389, 7036046509, 7036177607, 7036308679, + 7036439771, 7036570883, 7036701967, 7036833071, 7036964167, 7037095267, 7037226341, + 7037357429, 7037488511, 7037619583, 7037750663, 7037881759, 7038012841, 7038143933, + 7038275021, 7038406117, 7038537193, 7038668297, 7038799373, 7038930467, 7039061543, + 7039192621, 7039323701, 7039454789, 7039585921, 7039717021, 7039848103, 7039979201, + 7040110289, 7040241367, 7040372483, 7040503577, 7040634659, 7040765731, 7040896847, + 7041027947, 7041159101, 7041290203, 7041421307, 7041552389, 7041683489, 7041814567, + 7041945641, 7042076737, 7042207819, 7042338959, 7042470037, 7042601117, 7042732201, + 7042863293, 7042994369, 7043125471, 7043256643, 7043387783, 7043518877, 7043649979, + 7043781067, 7043912179, 7044043271, 7044174353, 7044305431, 7044436513, 7044567619, + 7044698711, 7044829787, 7044960877, 7045091959, 7045223077, 7045354153, 7045485229, + 7045616359, 7045747433, 7045878529, 7046009617, 7046140697, 7046271797, 7046402873, + 7046533951, 7046665037, 7046796139, 7046927213, 7047058289, 7047189407, 7047320557, + 7047451637, 7047582719, 7047713801, 7047844889, 7047975971, 7048107049, 7048238149, + 7048369231, 7048500323, 7048631431, 7048762541, 7048893659, 7049024737, 7049155811, + 7049286883, 7049418031, 7049549161, 7049680237, 7049811341, 7049942437, 7050073529, + 7050204631, 7050335731, 7050466817, 7050597893, 7050728969, 7050860051, 7050991133, + 7051122209, 7051253327, 7051384399, 7051515481, 7051646611, 7051777697, 7051908791, + 7052039879, 7052170963, 7052302043, 7052433161, 7052564293, 7052695379, 7052826481, + 7052957609, 7053088687, 7053219769, 7053350849, 7053481927, 7053613009, 7053744097, + 7053875207, 7054006283, 7054137367, 7054268461, 7054399537, 7054530611, 7054661693, + 7054792813, 7054923899, 7055054999, 7055186093, 7055317189, 7055448263, 7055579357, + 7055710471, 7055841553, 7055972633, 7056103711, 7056234797, 7056365923, 7056497027, + 7056628099, 7056759173, 7056890257, 7057021331, 7057152419, 7057283507, 7057414597, + 7057545673, 7057676761, 7057807843, 7057938931, 7058070017, 7058201147, 7058332241, + 7058463317, 7058594401, 7058725523, 7058856601, 7058987723, 7059118817, 7059249917, + 7059381031, 7059512113, 7059643189, 7059774287, 7059905429, 7060036513, 7060167589, + 7060298669, 7060429787, 7060560863, 7060691951, 7060823023, 7060954123, 7061085209, + 7061216287, 7061347393, 7061478509, 7061609593, 7061740681, 7061871847, 7062002933, + 7062134017, 7062265099, 7062396181, 7062527279, 7062658357, 7062789443, 7062920519, + 7063051603, 7063182691, 7063313809, 7063444889, 7063575979, 7063707073, 7063838203, + 7063969291, 7064100367, 7064231501, 7064362573, 7064493739, 7064624863, 7064755937, + 7064887019, 7065018091, 7065149173, 7065280289, 7065411371, 7065542443, 7065673519, + 7065804601, 7065935713, 7066066907, 7066198031, 7066329107, 7066460231, 7066591307, + 7066722379, 7066853459, 7066984537, 7067115613, 7067246699, 7067377777, 7067508857, + 7067639947, 7067771023, 7067902103, 7068033191, 7068164297, 7068295369, 7068426499, + 7068557609, 7068688703, 7068819809, 7068950891, 7069081997, 7069213069, 7069344169, + 7069475311, 7069606441, 7069737523, 7069868623, 7069999723, 7070130803, 7070261879, + 7070392957, 7070524031, 7070655127, 7070786207, 7070917307, 7071048389, 7071179471, + 7071310553, 7071441647, 7071572771, 7071703871, 7071834961, 7071966043, 7072097117, + 7072228217, 7072359289, 7072490371, 7072621453, 7072752529, 7072883611, 7073014699, + 7073145797, 7073276911, 7073407997, 7073539091, 7073670193, 7073801279, 7073932361, + 7074063461, 7074194591, 7074325703, 7074456803, 7074587879, 7074718993, 7074850171, + 7074981281, 7075112393, 7075243493, 7075374637, 7075505711, 7075636801, 7075767877, + 7075898957, 7076030029, 7076161133, 7076292229, 7076423303, 7076554379, 7076685461, + 7076816543, 7076947681, 7077078773, 7077209861, 7077340939, 7077472067, 7077603161, + 7077734249, 7077865369, 7077996479, 7078127587, 7078258673, 7078389749, 7078520821, + 7078651901, 7078782973, 7078914067, 7079045143, 7079176217, 7079307311, 7079438413, + 7079569513, 7079700601, 7079831729, 7079962801, 7080093883, 7080225001, 7080356077, + 7080487151, 7080618229, 7080749353, 7080880447, 7081011533, 7081142633, 7081273757, + 7081404857, 7081535957, 7081667029, 7081798211, 7081929317, 7082060389, 7082191469, + 7082322547, 7082453647, 7082584759, 7082715839, 7082846933, 7082978011, 7083109127, + 7083240209, 7083371293, 7083502403, 7083633493, 7083764591, 7083895673, 7084026757, + 7084157837, 7084288921, 7084420001, 7084551079, 7084682161, 7084813273, 7084944367, + 7085075443, 7085206537, 7085337613, 7085468699, 7085599777, 7085730871, 7085861947, + 7085993041, 7086124121, 7086255203, 7086386297, 7086517391, 7086648463, 7086779549, + 7086910687, 7087041763, 7087172941, 7087304033, 7087435129, 7087566247, 7087697327, + 7087828403, 7087959493, 7088090587, 7088221667, 7088352749, 7088483861, 7088614961, + 7088746079, 7088877157, 7089008233, 7089139319, 7089270401, 7089401477, 7089532577, + 7089663671, 7089794783, 7089925883, 7090056983, 7090188071, 7090319147, 7090450223, + 7090581301, 7090712399, 7090843481, 7090974581, 7091105687, 7091236771, 7091367901, + 7091498993, 7091630069, 7091761141, 7091892233, 7092023317, 7092154403, 7092285521, + 7092416599, 7092547687, 7092678767, 7092809849, 7092940927, 7093072093, 7093203193, + 7093334267, 7093465363, 7093596449, 7093727567, 7093858649, 7093989737, 7094120809, + 7094251961, 7094383057, 7094514131, 7094645203, 7094776361, 7094907433, 7095038513, + 7095169603, 7095300691, 7095431767, 7095562879, 7095693953, 7095825029, 7095956107, + 7096087247, 7096218323, 7096349401, 7096480519, 7096611607, 7096742699, 7096873801, + 7097004907, 7097136043, 7097267171, 7097398249, 7097529349, 7097660431, 7097791537, + 7097922617, 7098053689, 7098184763, 7098315841, 7098447007, 7098578093, 7098709171, + 7098840271, 7098971381, 7099102453, 7099233563, 7099364641, 7099495723, 7099626797, + 7099757879, 7099889051, 7100020139, 7100151217, 7100282347, 7100413427, 7100544523, + 7100675597, 7100806679, 7100937751, 7101068851, 7101199943, 7101331031, 7101462149, + 7101593237, 7101724309, 7101855407, 7101986519, 7102117637, 7102248719, 7102379917, + 7102510993, 7102642069, 7102773157, 7102904239, 7103035333, 7103166407, 7103297501, + 7103428621, 7103559713, 7103690819, 7103821891, 7103952971, 7104084067, 7104215143, + 7104346231, 7104477313, 7104608389, 7104739471, 7104870547, 7105001639, 7105132721, + 7105263827, 7105394927, 7105526003, 7105657079, 7105788161, 7105919251, 7106050333, + 7106181413, 7106312491, 7106443577, 7106574659, 7106705731, 7106836819, 7106967893, + 7107099001, 7107230111, 7107361201, 7107492283, 7107623357, 7107754447, 7107885527, + 7108016611, 7108147693, 7108278797, 7108409897, 7108540981, 7108672057, 7108803179, + 7108934263, 7109065349, 7109196443, 7109327573, 7109458669, 7109589763, 7109720843, + 7109851921, 7109983007, 7110114083, 7110245171, 7110376243, 7110507343, 7110638419, + 7110769511, 7110900637, 7111031731, 7111162823, 7111293907, 7111424981, 7111556071, + 7111687169, 7111818253, 7111949387, 7112080487, 7112211559, 7112342663, 7112473741, + 7112604853, 7112735933, 7112867017, 7112998097, 7113129173, 7113260257, 7113391333, + 7113522407, 7113653537, 7113784621, 7113915703, 7114046783, 7114177897, 7114308973, + 7114440079, 7114571153, 7114702241, 7114833337, 7114964419, 7115095529, 7115226637, + 7115357737, 7115488819, 7115619899, 7115750977, 7115882051, 7116013129, 7116144227, + 7116275321, 7116406393, 7116537481, 7116668563, 7116799687, 7116930763, 7117061837, + 7117192909, 7117324003, 7117455089, 7117586171, 7117717249, 7117848359, 7117979431, + 7118110513, 7118241587, 7118372659, 7118503751, 7118634839, 7118765921, 7118897041, + 7119028151, 7119159259, 7119290357, 7119421451, 7119552533, 7119683621, 7119814699, + 7119945793, 7120076879, 7120207967, 7120339063, 7120470163, 7120601261, 7120732351, + 7120863427, 7120994533, 7121125651, 7121256773, 7121387863, 7121518979, 7121650093, + 7121781179, 7121912263, 7122043337, 7122174413, 7122305497, 7122436583, 7122567689, + 7122698761, 7122829849, 7122960973, 7123092049, 7123223137, 7123354213, 7123485289, + 7123616377, 7123747471, 7123878547, 7124009621, 7124140703, 7124271809, 7124402933, + 7124534033, 7124665111, 7124796191, 7124927267, 7125058361, 7125189443, 7125320533, + 7125451607, 7125582679, 7125713813, 7125844903, 7125975979, 7126107067, 7126238209, + 7126369297, 7126500401, 7126631507, 7126762579, 7126893667, 7127024741, 7127155813, + 7127286893, 7127417971, 7127549053, 7127680139, 7127811211, 7127942299, 7128073373, + 7128204469, 7128335549, 7128466637, 7128597779, 7128728851, 7128859961, 7128991039, + 7129122137, 7129253249, 7129384337, 7129515409, 7129646527, 7129777609, 7129908683, + 7130039759, 7130170871, 7130301953, 7130433071, 7130564143, 7130695279, 7130826379, + 7130957459, 7131088541, 7131219629, 7131350719, 7131481823, 7131612941, 7131744019, + 7131875227, 7132006309, 7132137391, 7132268491, 7132399583, 7132530679, 7132661773, + 7132792847, 7132923943, 7133055029, 7133186117, 7133317201, 7133448323, 7133579441, + 7133710513, 7133841641, 7133972723, 7134103799, 7134234901, 7134365977, 7134497059, + 7134628157, 7134759299, 7134890407, 7135021489, 7135152571, 7135283689, 7135414817, + 7135545899, 7135676981, 7135808077, 7135939169, 7136070257, 7136201363, 7136332453, + 7136463553, 7136594657, 7136725733, 7136856809, 7136987933, 7137119009, 7137250091, + 7137381203, 7137512287, 7137643363, 7137774473, 7137905561, 7138036639, 7138167727, + 7138298851, 7138429997, 7138561081, 7138692167, 7138823239, 7138954327, 7139085439, + 7139216533, 7139347619, 7139478719, 7139609797, 7139740871, 7139871953, 7140003061, + 7140134159, 7140265243, 7140396323, 7140527413, 7140658493, 7140789613, 7140920707, + 7141051781, 7141182871, 7141314029, 7141445123, 7141576243, 7141707319, 7141838441, + 7141969517, 7142100593, 7142231669, 7142362771, 7142493859, 7142624971, 7142756059, + 7142887133, 7143018247, 7143149329, 7143280483, 7143411581, 7143542663, 7143673769, + 7143804847, 7143935921, 7144066997, 7144198081, 7144329167, 7144460243, 7144591319, + 7144722401, 7144853501, 7144984579, 7145115667, 7145246753, 7145377873, 7145508947, + 7145640031, 7145771117, 7145902201, 7146033281, 7146164357, 7146295451, 7146426607, + 7146557681, 7146688771, 7146819857, 7146950999, 7147082093, 7147213201, 7147344329, + 7147475417, 7147606511, 7147737593, 7147868681, 7147999753, 7148130839, 7148261957, + 7148393029, 7148524111, 7148655187, 7148786299, 7148917379, 7149048461, 7149179551, + 7149310697, 7149441779, 7149572861, 7149703937, 7149835013, 7149966151, 7150097237, + 7150228321, 7150359407, 7150490483, 7150621613, 7150752709, 7150883807, 7151014879, + 7151145973, 7151277059, 7151408153, 7151539249, 7151670329, 7151801429, 7151932507, + 7152063587, 7152194689, 7152325769, 7152456877, 7152587951, 7152719027, 7152850099, + 7152981181, 7153112261, 7153243351, 7153374433, 7153505507, 7153636579, 7153767667, + 7153898761, 7154029859, 7154161009, 7154292109, 7154423189, 7154554327, 7154685409, + 7154816497, 7154947601, 7155078683, 7155209773, 7155340849, 7155471923, 7155603017, + 7155734099, 7155865187, 7155996311, 7156127383, 7156258463, 7156389551, 7156520627, + 7156651727, 7156782799, 7156913909, 7157044981, 7157176079, 7157307151, 7157438251, + 7157569333, 7157700413, 7157831501, 7157962597, 7158093689, 7158224761, 7158355859, + 7158486941, 7158618037, 7158749197, 7158880277, 7159011361, 7159142437, 7159273547, + 7159404641, 7159535723, 7159666823, 7159797899, 7159928977, 7160060077, 7160191177, + 7160322283, 7160453359, 7160584447, 7160715533, 7160846629, 7160977709, 7161108803, + 7161239879, 7161370967, 7161502079, 7161633151, 7161764227, 7161895333, 7162026413, + 7162157489, 7162288591, 7162419689, 7162550771, 7162681879, 7162812959, 7162944037, + 7163075111, 7163206201, 7163337287, 7163468383, 7163599463, 7163730551, 7163861633, + 7163992711, 7164123787, 7164254873, 7164385957, 7164517033, 7164648107, 7164779213, + 7164910289, 7165041409, 7165172519, 7165303603, 7165434701, 7165565801, 7165696883, + 7165827959, 7165959067, 7166090143, 7166221247, 7166352353, 7166483459, 7166614561, + 7166745643, 7166876723, 7167007801, 7167138877, 7167269953, 7167401039, 7167532117, + 7167663197, 7167794287, 7167925363, 7168056457, 7168187603, 7168318699, 7168449773, + 7168580849, 7168711937, 7168843009, 7168974143, 7169105243, 7169236339, 7169367431, + 7169498533, 7169629633, 7169760707, 7169891803, 7170022877, 7170153953, 7170285043, + 7170416117, 7170547193, 7170678269, 7170809341, 7170940463, 7171071569, 7171202653, + 7171333727, 7171464803, 7171595897, 7171726973, 7171858049, 7171989127, 7172120231, + 7172251327, 7172382403, 7172513483, 7172644597, 7172775679, 7172906863, 7173037939, + 7173169013, 7173300089, 7173431249, 7173562327, 7173693437, 7173824521, 7173955619, + 7174086697, 7174217773, 7174348849, 7174479943, 7174611151, 7174742227, 7174873319, + 7175004407, 7175135489, 7175266573, 7175397721, 7175528821, 7175659913, 7175790997, + 7175922077, 7176053177, 7176184261, 7176315347, 7176446423, 7176577559, 7176708647, + 7176839743, 7176970831, 7177101923, 7177232999, 7177364137, 7177495211, 7177626289, + 7177757383, 7177888499, 7178019571, 7178150741, 7178281843, 7178412919, 7178544001, + 7178675111, 7178806211, 7178937323, 7179068401, 7179199513, 7179330629, 7179461741, + 7179592831, 7179723913, 7179854989, 7179986063, 7180117151, 7180248239, 7180379321, + 7180510417, 7180641491, 7180772591, 7180903687, 7181034793, 7181165909, 7181297003, + 7181428127, 7181559199, 7181690291, 7181821399, 7181952473, 7182083549, 7182214639, + 7182345719, 7182476797, 7182607889, 7182738973, 7182870047, 7183001141, 7183132217, + 7183263293, 7183394371, 7183525463, 7183656551, 7183787627, 7183918717, 7184049809, + 7184180881, 7184311963, 7184443073, 7184574157, 7184705249, 7184836367, 7184967473, + 7185098581, 7185229691, 7185360781, 7185491861, 7185623009, 7185754159, 7185885233, + 7186016351, 7186147429, 7186278557, 7186409663, 7186540759, 7186671857, 7186802969, + 7186934047, 7187065121, 7187196197, 7187327311, 7187458429, 7187589533, 7187720621, + 7187851711, 7187982797, 7188113873, 7188244949, 7188376031, 7188507107, 7188638179, + 7188769267, 7188900343, 7189031441, 7189162529, 7189293667, 7189424741, 7189555817, + 7189686899, 7189817977, 7189949083, 7190080189, 7190211271, 7190342371, 7190473447, + 7190604521, 7190735639, 7190866741, 7190997829, 7191128941, 7191260029, 7191391127, + 7191522241, 7191653401, 7191784531, 7191915659, 7192046749, 7192177823, 7192308901, + 7192439993, 7192571093, 7192702207, 7192833289, 7192964411, 7193095493, 7193226569, + 7193357651, 7193488727, 7193619833, 7193750929, 7193882023, 7194013147, 7194144281, + 7194275357, 7194406451, 7194537527, 7194668599, 7194799691, 7194930803, 7195061879, + 7195193021, 7195324109, 7195455199, 7195586323, 7195717429, 7195848523, 7195979597, + 7196110687, 7196241799, 7196372879, 7196503987, 7196635093, 7196766167, 7196897251, + 7197028327, 7197159401, 7197290473, 7197421549, 7197552643, 7197683719, 7197814801, + 7197945889, 7198076993, 7198208131, 7198339217, 7198470317, 7198601453, 7198732531, + 7198863611, 7198994689, 7199125771, 7199256901, 7199387981, 7199519137, 7199650219, + 7199781361, 7199912501, 7200043603, 7200174691, 7200305771, 7200436843, 7200567929, + 7200699001, 7200830101, 7200961181, 7201092257, 7201223333, 7201354453, 7201485527, + 7201616701, 7201747807, 7201878881, 7202010041, 7202141113, 7202272201, 7202403349, + 7202534447, 7202665531, 7202796617, 7202927713, 7203058853, 7203189971, 7203321077, + 7203452203, 7203583291, 7203714377, 7203845501, 7203976607, 7204107737, 7204238813, + 7204369943, 7204501019, 7204632101, 7204763201, 7204894273, 7205025361, 7205156437, + 7205287541, 7205418673, 7205549761, 7205680841, 7205811919, 7205943011, 7206074111, + 7206205219, 7206336299, 7206467423, 7206598507, 7206729599, 7206860681, 7206991789, + 7207122889, 7207253969, 7207385047, 7207516133, 7207647263, 7207778339, 7207909411, + 7208040503, 7208171599, 7208302679, 7208433773, 7208564897, 7208695987, 7208827081, + 7208958157, 7209089243, 7209220367, 7209351439, 7209482513, 7209613639, 7209744719, + 7209875807, 7210006879, 7210137997, 7210269071, 7210400161, 7210531241, 7210662313, + 7210793413, 7210924499, 7211055587, 7211186659, 7211317733, 7211448809, 7211579899, + 7211710993, 7211842091, 7211973163, 7212104281, 7212235357, 7212366463, 7212497557, + 7212628651, 7212759751, 7212890837, 7213021913, 7213153033, 7213284109, 7213415191, + 7213546283, 7213677397, 7213808471, 7213939559, 7214070641, 7214201747, 7214332837, + 7214463911, 7214595023, 7214726107, 7214857183, 7214988257, 7215119341, 7215250439, + 7215381583, 7215512659, 7215643759, 7215774833, 7215905927, 7216037009, 7216168087, + 7216299163, 7216430239, 7216561337, 7216692433, 7216823513, 7216954627, 7217085709, + 7217216791, 7217347913, 7217479019, 7217610109, 7217741203, 7217872289, 7218003371, + 7218134477, 7218265553, 7218396671, 7218527803, 7218658877, 7218789953, 7218921053, + 7219052131, 7219183211, 7219314331, 7219445411, 7219576537, 7219707617, 7219838701, + 7219969789, 7220100863, 7220231989, 7220363077, 7220494187, 7220625277, 7220756377, + 7220887469, 7221018557, 7221149693, 7221280817, 7221411907, 7221542981, 7221674059, + 7221805153, 7221936251, 7222067383, 7222198463, 7222329559, 7222460639, 7222591741, + 7222722827, 7222853917, 7222984991, 7223116067, 7223247149, 7223378221, 7223509303, + 7223640401, 7223771507, 7223902579, 7224033667, 7224164771, 7224295849, 7224426931, + 7224558007, 7224689099, 7224820181, 7224951269, 7225082383, 7225213477, 7225344563, + 7225475669, 7225606741, 7225737823, 7225868963, 7226000053, 7226131229, 7226262313, + 7226393407, 7226524511, 7226655589, 7226786663, 7226917777, 7227048863, 7227179959, + 7227311033, 7227442109, 7227573187, 7227704269, 7227835367, 7227966451, 7228097677, + 7228228751, 7228359833, 7228490923, 7228622017, 7228753097, 7228884197, 7229015279, + 7229146403, 7229277533, 7229408617, 7229539727, 7229670821, 7229801893, 7229932987, + 7230064073, 7230195157, 7230326237, 7230457321, 7230588401, 7230719491, 7230850589, + 7230981683, 7231112821, 7231243919, 7231375031, 7231506127, 7231637219, 7231768303, + 7231899391, 7232030479, 7232161567, 7232292647, 7232423719, 7232554843, 7232685931, + 7232817013, 7232948123, 7233079211, 7233210289, 7233341371, 7233472459, 7233603539, + 7233734639, 7233865711, 7233996793, 7234127897, 7234259029, 7234390127, 7234521211, + 7234652303, 7234783421, 7234914499, 7235045581, 7235176661, 7235307799, 7235438891, + 7235570021, 7235701141, 7235832217, 7235963299, 7236094373, 7236225463, 7236356539, + 7236487637, 7236618713, 7236749791, 7236880867, 7237011959, 7237143031, 7237274123, + 7237405211, 7237536289, 7237667369, 7237798441, 7237929581, 7238060653, 7238191769, + 7238322841, 7238453923, 7238585017, 7238716103, 7238847179, 7238978251, 7239109327, + 7239240419, 7239371497, 7239502597, 7239633683, 7239764759, 7239895843, 7240026919, + 7240158007, 7240289081, 7240420181, 7240551257, 7240682357, 7240813439, 7240944539, + 7241075629, 7241206711, 7241337791, 7241468881, 7241599993, 7241731097, 7241862169, + 7241993249, 7242124363, 7242255469, 7242386551, 7242517627, 7242648701, 7242779809, + 7242910963, 7243042039, 7243173137, 7243304227, 7243435453, 7243566541, 7243697621, + 7243828703, 7243959791, 7244090869, 7244221961, 7244353043, 7244484131, 7244615227, + 7244746307, 7244877379, 7245008453, 7245139547, 7245270661, 7245401749, 7245532829, + 7245663907, 7245795019, 7245926123, 7246057199, 7246188277, 7246319363, 7246450439, + 7246581533, 7246712617, 7246843697, 7246974793, 7247105867, 7247236963, 7247368043, + 7247499169, 7247630249, 7247761321, 7247892403, 7248023483, 7248154559, 7248285643, + 7248416743, 7248547829, 7248678901, 7248809977, 7248941059, 7249072151, 7249203239, + 7249334317, 7249465403, 7249596479, 7249727561, 7249858663, 7249989743, 7250120837, + 7250251909, 7250382991, 7250514077, 7250645161, 7250776237, 7250907317, 7251038401, + 7251169487, 7251300559, 7251431633, 7251562709, 7251693781, 7251824863, 7251955937, + 7252087039, 7252218119, 7252349233, 7252480307, 7252611397, 7252742473, 7252873547, + 7253004677, 7253135777, 7253266849, 7253397923, 7253528999, 7253660087, 7253791229, + 7253922301, 7254053393, 7254184541, 7254315631, 7254446707, 7254577787, 7254708869, + 7254839941, 7254971021, 7255102093, 7255233169, 7255364251, 7255495339, 7255626431, + 7255757513, 7255888597, 7256019677, 7256150753, 7256281841, 7256412931, 7256544041, + 7256675119, 7256806223, 7256937313, 7257068453, 7257199559, 7257330643, 7257461737, + 7257592829, 7257723923, 7257855019, 7257986101, 7258117271, 7258248407, 7258379549, + 7258510661, 7258641743, 7258772839, 7258903913, 7259035027, 7259166127, 7259297209, + 7259428283, 7259559367, 7259690441, 7259821553, 7259952641, 7260083713, 7260214807, + 7260345881, 7260476957, 7260608029, 7260739103, 7260870181, 7261001273, 7261132369, + 7261263491, 7261394599, 7261525681, 7261656763, 7261787867, 7261918949, 7262050031, + 7262181127, 7262312201, 7262443351, 7262574463, 7262705579, 7262836657, 7262967743, + 7263098827, 7263229913, 7263360997, 7263492073, 7263623149, 7263754241, 7263885319, + 7264016401, 7264147493, 7264278587, 7264409681, 7264540757, 7264671901, 7264802981, + 7264934057, 7265065147, 7265196229, 7265327317, 7265458411, 7265589497, 7265720611, + 7265851699, 7265982821, 7266113947, 7266245047, 7266376121, 7266507197, 7266638311, + 7266769403, 7266900479, 7267031561, 7267162673, 7267293749, 7267424833, 7267555931, + 7267687043, 7267818119, 7267949207, 7268080283, 7268211371, 7268342443, 7268473543, + 7268604617, 7268735767, 7268866853, 7268997937, 7269129017, 7269260111, 7269391183, + 7269522263, 7269653351, 7269784447, 7269915559, 7270046657, 7270177819, 7270308919, + 7270439999, 7270571117, 7270702199, 7270833287, 7270964359, 7271095439, 7271226517, + 7271357593, 7271488669, 7271619757, 7271750861, 7271881949, 7272013027, 7272144119, + 7272275191, 7272406279, 7272537353, 7272668483, 7272799577, 7272930703, 7273061777, + 7273192853, 7273323929, 7273455017, 7273586113, 7273717193, 7273848317, 7273979389, + 7274110469, 7274241577, 7274372659, 7274503757, 7274634847, 7274765947, 7274897029, + 7275028129, 7275159247, 7275290389, 7275421477, 7275552587, 7275683671, 7275814753, + 7275945863, 7276076953, 7276208047, 7276339121, 7276470193, 7276601279, 7276732369, + 7276863443, 7276994531, 7277125613, 7277256689, 7277387773, 7277518861, 7277649959, + 7277781031, 7277912107, 7278043183, 7278174329, 7278305407, 7278436493, 7278567601, + 7278698677, 7278829771, 7278960851, 7279091923, 7279223041, 7279354127, 7279485217, + 7279616317, 7279747399, 7279878491, 7280009573, 7280140661, 7280271751, 7280402827, + 7280533913, 7280665057, 7280796139, 7280927221, 7281058331, 7281189431, 7281320509, + 7281451589, 7281582661, 7281713737, 7281844831, 7281975923, 7282106999, 7282238071, + 7282369163, 7282500257, 7282631333, 7282762423, 7282893503, 7283024599, 7283155697, + 7283286821, 7283417893, 7283548991, 7283680069, 7283811149, 7283942227, 7284073331, + 7284204457, 7284335549, 7284466627, 7284597709, 7284728783, 7284859871, 7284990949, + 7285122043, 7285253147, 7285384261, 7285515353, 7285646453, 7285777549, 7285908629, + 7286039711, 7286170789, 7286301877, 7286432953, 7286564039, 7286695151, 7286826233, + 7286957323, 7287088409, 7287219491, 7287350563, 7287481639, 7287612719, 7287743807, + 7287874931, 7288006079, 7288137221, 7288268303, 7288399421, 7288530523, 7288661599, + 7288792699, 7288923809, 7289054887, 7289185963, 7289317037, 7289448109, 7289579183, + 7289710283, 7289841371, 7289972477, 7290103553, 7290234643, 7290365737, 7290496831, + 7290627907, 7290759001, 7290890099, 7291021181, 7291152257, 7291283353, 7291414453, + 7291545533, 7291676621, 7291807703, 7291938779, 7292069857, 7292200957, 7292332039, + 7292463121, 7292594219, 7292725303, 7292856391, 7292987473, 7293118549, 7293249629, + 7293380713, 7293511811, 7293642887, 7293774029, 7293905123, 7294036213, 7294167313, + 7294298423, 7294429511, 7294560593, 7294691683, 7294822781, 7294953863, 7295084947, + 7295216021, 7295347093, 7295478187, 7295609323, 7295740411, 7295871547, 7296002621, + 7296133727, 7296264823, 7296395921, 7296526999, 7296658073, 7296789161, 7296920237, + 7297051357, 7297182437, 7297313521, 7297444657, 7297575811, 7297706917, 7297838057, + 7297969163, 7298100239, 7298231323, 7298362397, 7298493473, 7298624549, 7298755687, + 7298886767, 7299017839, 7299148933, 7299280007, 7299411079, 7299542171, 7299673267, + 7299804353, 7299935437, 7300066537, 7300197649, 7300328729, 7300459867, 7300590961, + 7300722059, 7300853141, 7300984217, 7301115337, 7301246417, 7301377529, 7301508601, + 7301639677, 7301770787, 7301901881, 7302032953, 7302164029, 7302295103, 7302426223, + 7302557323, 7302688397, 7302819551, 7302950651, 7303081769, 7303212853, 7303343947, + 7303475041, 7303606207, 7303737281, 7303868353, 7303999427, 7304130517, 7304261603, + 7304392687, 7304523791, 7304654887, 7304785987, 7304917127, 7305048203, 7305179291, + 7305310367, 7305441443, 7305572551, 7305703627, 7305834707, 7305965819, 7306096891, + 7306227967, 7306359077, 7306490167, 7306621261, 7306752367, 7306883443, 7307014529, + 7307145611, 7307276687, 7307407801, 7307538877, 7307669981, 7307801087, 7307932183, + 7308063277, 7308194357, 7308325447, 7308456527, 7308587603, 7308718679, 7308849781, + 7308980869, 7309111949, 7309243031, 7309374109, 7309505191, 7309636331, 7309767403, + 7309898483, 7310029561, 7310160661, 7310291777, 7310422849, 7310553923, 7310685029, + 7310816141, 7310947213, 7311078319, 7311209413, 7311340493, 7311471599, 7311602723, + 7311733853, 7311864991, 7311996077, 7312127161, 7312258241, 7312389317, 7312520389, + 7312651481, 7312782557, 7312913639, 7313044727, 7313175817, 7313306909, 7313438003, + 7313569093, 7313700259, 7313831359, 7313962433, 7314093559, 7314224633, 7314355717, + 7314486799, 7314617903, 7314748981, 7314880081, 7315011199, 7315142281, 7315273393, + 7315404517, 7315535597, 7315666693, 7315797773, 7315928863, 7316059957, 7316191037, + 7316322151, 7316453233, 7316584307, 7316715397, 7316846489, 7316977573, 7317108647, + 7317239723, 7317370873, 7317501991, 7317633067, 7317764183, 7317895271, 7318026349, + 7318157423, 7318288507, 7318419629, 7318550713, 7318681813, 7318812913, 7318944037, + 7319075123, 7319206253, 7319337353, 7319468459, 7319599537, 7319730619, 7319861699, + 7319992777, 7320123871, 7320254957, 7320386057, 7320517151, 7320648227, 7320779327, + 7320910451, 7321041523, 7321172623, 7321303699, 7321434793, 7321565903, 7321696997, + 7321828081, 7321959157, 7322090231, 7322221303, 7322352377, 7322483453, 7322614543, + 7322745623, 7322876707, 7323007781, 7323138857, 7323269939, 7323401023, 7323532127, + 7323663229, 7323794311, 7323925391, 7324056463, 7324187567, 7324318643, 7324449721, + 7324580819, 7324711943, 7324843027, 7324974113, 7325105213, 7325236309, 7325367457, + 7325498563, 7325629669, 7325760749, 7325891827, 7326022901, 7326153977, 7326285049, + 7326416129, 7326547219, 7326678299, 7326809381, 7326940469, 7327071541, 7327202629, + 7327333711, 7327464787, 7327595881, 7327726963, 7327858037, 7327989113, 7328120213, + 7328251321, 7328382401, 7328513473, 7328644573, 7328775647, 7328906731, 7329037813, + 7329168907, 7329300001, 7329431099, 7329562171, 7329693277, 7329824401, 7329955481, + 7330086557, 7330217647, 7330348747, 7330479823, 7330610909, 7330741981, 7330873061, + 7331004157, 7331135249, 7331266333, 7331397419, 7331528521, 7331659613, 7331790703, + 7331921777, 7332052873, 7332183959, 7332315031, 7332446113, 7332577211, 7332708301, + 7332839377, 7332970457, 7333101541, 7333232617, 7333363691, 7333494769, 7333625861, + 7333756943, 7333888061, 7334019157, 7334150267, 7334281343, 7334412439, 7334543519, + 7334674597, 7334805677, 7334936797, 7335067879, 7335198967, 7335330059, 7335461171, + 7335592249, 7335723359, 7335854447, 7335985529, 7336116617, 7336247701, 7336378789, + 7336509877, 7336640953, 7336772039, 7336903127, 7337034223, 7337165327, 7337296427, + 7337427557, 7337558629, 7337689717, 7337820793, 7337951899, 7338082993, 7338214097, + 7338345181, 7338476261, 7338607333, 7338738413, 7338869533, 7339000607, 7339131689, + 7339262767, 7339393847, 7339524967, 7339656043, 7339787123, 7339918211, 7340049287, + 7340180363, 7340311441, 7340442517, 7340573609, 7340704699, 7340835781, 7340966921, + 7341098033, 7341229111, 7341360193, 7341491273, 7341622369, 7341753443, 7341884521, + 7342015619, 7342146701, 7342277791, 7342408883, 7342539959, 7342671031, 7342802143, + 7342933217, 7343064293, 7343195381, 7343326453, 7343457533, 7343588611, 7343719711, + 7343850851, 7343981947, 7344113039, 7344244139, 7344375221, 7344506317, 7344637427, + 7344768499, 7344899579, 7345030717, 7345161809, 7345292891, 7345423979, 7345555067, + 7345686149, 7345817233, 7345948349, 7346079427, 7346210507, 7346341603, 7346472691, + 7346603767, 7346734847, 7346865941, 7346997013, 7347128137, 7347259217, 7347390311, + 7347521393, 7347652493, 7347783577, 7347914681, 7348045763, 7348176839, 7348307933, + 7348439039, 7348570121, 7348701221, 7348832297, 7348963397, 7349094469, 7349225591, + 7349356667, 7349487763, 7349618909, 7349749997, 7349881069, 7350012151, 7350143233, + 7350274307, 7350405407, 7350536491, 7350667603, 7350798727, 7350929819, 7351060891, + 7351191971, 7351323047, 7351454129, 7351585207, 7351716287, 7351847359, 7351978519, + 7352109617, 7352240717, 7352371801, 7352502901, 7352634031, 7352765129, 7352896207, + 7353027287, 7353158383, 7353289477, 7353420553, 7353551657, 7353682759, 7353813911, + 7353944989, 7354076071, 7354207163, 7354338241, 7354469321, 7354600397, 7354731479, + 7354862569, 7354993643, 7355124731, 7355255807, 7355386891, 7355517989, 7355649079, + 7355780191, 7355911273, 7356042349, 7356173431, 7356304511, 7356435601, 7356566681, + 7356697769, 7356828841, 7356959921, 7357091009, 7357222097, 7357353173, 7357484297, + 7357615379, 7357746467, 7357877543, 7358008639, 7358139751, 7358270873, 7358401949, + 7358533031, 7358664167, 7358795243, 7358926319, 7359057413, 7359188503, 7359319607, + 7359450697, 7359581849, 7359712933, 7359844061, 7359975167, 7360106249, 7360237343, + 7360368527, 7360499609, 7360630681, 7360761757, 7360892879, 7361023961, 7361155033, + 7361286113, 7361417221, 7361548303, 7361679397, 7361810479, 7361941567, 7362072667, + 7362203747, 7362334841, 7362465919, 7362596993, 7362728077, 7362859177, 7362990277, + 7363121371, 7363252459, 7363383541, 7363514629, 7363645721, 7363776793, 7363907893, + 7364038967, 7364170049, 7364301157, 7364432237, 7364563321, 7364694433, 7364825519, + 7364956601, 7365087673, 7365218747, 7365349891, 7365480971, 7365612061, 7365743149, + 7365874231, 7366005313, 7366136411, 7366267483, 7366398569, 7366529671, 7366660831, + 7366791911, 7366923001, 7367054081, 7367185159, 7367316241, 7367447341, 7367578423, + 7367709541, 7367840629, 7367971703, 7368102799, 7368233897, 7368365021, 7368496123, + 7368627199, 7368758317, 7368889417, 7369020511, 7369151591, 7369282673, 7369413749, + 7369544881, 7369675961, 7369807057, 7369938131, 7370069219, 7370200297, 7370331427, + 7370462503, 7370593577, 7370724649, 7370855749, 7370986823, 7371117917, 7371248999, + 7371380077, 7371511183, 7371642283, 7371773369, 7371904483, 7372035557, 7372166629, + 7372297799, 7372428907, 7372560011, 7372691089, 7372822181, 7372953253, 7373084333, + 7373215463, 7373346577, 7373477653, 7373608769, 7373739847, 7373870929, 7374002033, + 7374133121, 7374264193, 7374395299, 7374526391, 7374657497, 7374788621, 7374919697, + 7375050821, 7375181899, 7375312999, 7375444127, 7375575199, 7375706291, 7375837433, + 7375968521, 7376099593, 7376230721, 7376361793, 7376492891, 7376623987, 7376755081, + 7376886169, 7377017243, 7377148343, 7377279431, 7377410519, 7377541601, 7377672689, + 7377803773, 7377934919, 7378066009, 7378197083, 7378328179, 7378459267, 7378590343, + 7378721417, 7378852489, 7378983571, 7379114671, 7379245747, 7379376853, 7379507953, + 7379639027, 7379770109, 7379901181, 7380032263, 7380163361, 7380294461, 7380425603, + 7380556769, 7380687841, 7380818927, 7380950029, 7381081109, 7381212191, 7381343351, + 7381474439, 7381605521, 7381736603, 7381867679, 7381998751, 7382129837, 7382260913, + 7382392097, 7382523191, 7382654263, 7382785349, 7382916421, 7383047543, 7383178619, + 7383309697, 7383440777, 7383571861, 7383702967, 7383834067, 7383965143, 7384096231, + 7384227329, 7384358407, 7384489481, 7384620553, 7384751687, 7384882763, 7385013859, + 7385144939, 7385276023, 7385407129, 7385538227, 7385669323, 7385800397, 7385931491, + 7386062591, 7386193673, 7386324761, 7386455833, 7386587009, 7386718117, 7386849199, + 7386980287, 7387111363, 7387242461, 7387373549, 7387504633, 7387635713, 7387766807, + 7387897879, 7388028979, 7388160053, 7388291149, 7388422243, 7388553323, 7388684461, + 7388815537, 7388946619, 7389077719, 7389208901, 7389340001, 7389471077, 7389602161, + 7389733243, 7389864319, 7389995401, 7390126529, 7390257607, 7390388683, 7390519771, + 7390650887, 7390781987, 7390913077, 7391044163, 7391175269, 7391306353, 7391437433, + 7391568511, 7391699591, 7391830709, 7391961793, 7392092867, 7392223957, 7392355031, + 7392486107, 7392617231, 7392748313, 7392879391, 7393010467, 7393141589, 7393272703, + 7393403777, 7393534849, 7393665967, 7393797053, 7393928159, 7394059261, 7394190337, + 7394321437, 7394452511, 7394583583, 7394714737, 7394845831, 7394976923, 7395108011, + 7395239129, 7395370207, 7395501293, 7395632411, 7395763489, 7395894577, 7396025683, + 7396156763, 7396287887, 7396419001, 7396550093, 7396681199, 7396812281, 7396943369, + 7397074481, 7397205553, 7397336651, 7397467741, 7397598823, 7397729947, 7397861027, + 7397992103, 7398123179, 7398254251, 7398385327, 7398516401, 7398647491, 7398778589, + 7398909731, 7399040809, 7399171891, 7399302997, 7399434073, 7399565149, 7399696223, + 7399827319, 7399958399, 7400089507, 7400220587, 7400351659, 7400482751, 7400613833, + 7400744957, 7400876051, 7401007157, 7401138257, 7401269339, 7401400423, 7401531497, + 7401662573, 7401793661, 7401924757, 7402055839, 7402186921, 7402317997, 7402449071, + 7402580197, 7402711289, 7402842373, 7402973491, 7403104603, 7403235683, 7403366767, + 7403497847, 7403628941, 7403760017, 7403891113, 7404022211, 7404153283, 7404284357, + 7404415451, 7404546629, 7404677713, 7404808793, 7404939923, 7405070999, 7405202081, + 7405333181, 7405464277, 7405595359, 7405726457, 7405857551, 7405988633, 7406119723, + 7406250799, 7406381881, 7406512973, 7406644057, 7406775133, 7406906263, 7407037397, + 7407168473, 7407299579, 7407430663, 7407561737, 7407692821, 7407823901, 7407955007, + 7408086097, 7408217183, 7408348271, 7408479359, 7408610437, 7408741511, 7408872599, + 7409003671, 7409134751, 7409265823, 7409396957, 7409528029, 7409659189, 7409790277, + 7409921357, 7410052451, 7410183523, 7410314599, 7410445699, 7410576773, 7410707873, + 7410838949, 7410970043, 7411101143, 7411232221, 7411363303, 7411494427, 7411625509, + 7411756609, 7411887689, 7412018797, 7412149873, 7412280971, 7412412089, 7412543179, + 7412674261, 7412805347, 7412936423, 7413067513, 7413198587, 7413329681, 7413460753, + 7413591883, 7413722971, 7413854081, 7413985177, 7414116257, 7414247353, 7414378457, + 7414509551, 7414640677, 7414771759, 7414902841, 7415033921, 7415164993, 7415296093, + 7415427167, 7415558243, 7415689319, 7415820397, 7415951509, 7416082613, 7416213691, + 7416344777, 7416475849, 7416606931, 7416738013, 7416869099, 7417000207, 7417131283, + 7417262357, 7417393433, 7417524511, 7417655593, 7417786697, 7417917769, 7418048851, + 7418179931, 7418311013, 7418442089, 7418573167, 7418704291, 7418835439, 7418966521, + 7419097633, 7419228727, 7419359809, 7419490889, 7419621983, 7419753083, 7419884167, + 7420015283, 7420146397, 7420277483, 7420408559, 7420539631, 7420670773, 7420801853, + 7420932943, 7421064019, 7421195129, 7421326277, 7421457349, 7421588441, 7421719519, + 7421850613, 7421981689, 7422112793, 7422243887, 7422374963, 7422506041, 7422637133, + 7422768211, 7422899293, 7423030379, 7423161511, 7423292627, 7423423699, 7423554797, + 7423685879, 7423816951, 7423948057, 7424079181, 7424210257, 7424341339, 7424472431, + 7424603503, 7424734607, 7424865691, 7424996771, 7425127849, 7425258937, 7425390017, + 7425521093, 7425652237, 7425783349, 7425914423, 7426045513, 7426176683, 7426307797, + 7426438879, 7426570049, 7426701137, 7426832219, 7426963309, 7427094383, 7427225497, + 7427356571, 7427487643, 7427618729, 7427749829, 7427880913, 7428012041, 7428143117, + 7428274193, 7428405269, 7428536369, 7428667457, 7428798529, 7428929633, 7429060729, + 7429191827, 7429322909, 7429454009, 7429585127, 7429716211, 7429847287, 7429978421, + 7430109509, 7430240633, 7430371717, 7430502823, 7430633911, 7430765003, 7430896141, + 7431027217, 7431158291, 7431289409, 7431420487, 7431551563, 7431682649, 7431813733, + 7431944813, 7432075897, 7432206979, 7432338079, 7432469171, 7432600249, 7432731329, + 7432862431, 7432993531, 7433124619, 7433255699, 7433386771, 7433517853, 7433648927, + 7433780023, 7433911097, 7434042193, 7434173269, 7434304373, 7434435457, 7434566543, + 7434697619, 7434828691, 7434959797, 7435090903, 7435221979, 7435353091, 7435484207, + 7435615309, 7435746391, 7435877467, 7436008543, 7436139629, 7436270707, 7436401793, + 7436532893, 7436663977, 7436795083, 7436926157, 7437057289, 7437188383, 7437319457, + 7437450539, 7437581621, 7437712703, 7437843779, 7437974893, 7438106003, 7438237087, + 7438368167, 7438499239, 7438630333, 7438761409, 7438892537, 7439023633, 7439154719, + 7439285797, 7439416889, 7439547971, 7439679047, 7439810123, 7439941199, 7440072281, + 7440203363, 7440334439, 7440465521, 7440596609, 7440727681, 7440858779, 7440989863, + 7441120937, 7441252069, 7441383149, 7441514221, 7441645301, 7441776389, 7441907483, + 7442038577, 7442169673, 7442300759, 7442431831, 7442562971, 7442694047, 7442825149, + 7442956229, 7443087313, 7443218401, 7443349517, 7443480589, 7443611663, 7443742753, + 7443873869, 7444004987, 7444136071, 7444267153, 7444398259, 7444529341, 7444660507, + 7444791617, 7444922689, 7445053799, 7445184917, 7445316001, 7445447077, 7445578187, + 7445709281, 7445840357, 7445971433, 7446102509, 7446233581, 7446364661, 7446495733, + 7446626857, 7446757933, 7446889007, 7447020103, 7447151183, 7447282277, 7447413367, + 7447544441, 7447675523, 7447806623, 7447937719, 7448068801, 7448199883, 7448330977, + 7448462069, 7448593151, 7448724229, 7448855327, 7448986411, 7449117491, 7449248603, + 7449379741, 7449510839, 7449641917, 7449773011, 7449904093, 7450035233, 7450166333, + 7450297417, 7450428509, 7450559609, 7450690693, 7450821773, 7450952849, 7451083931, + 7451215003, 7451346083, 7451477183, 7451608267, 7451739367, 7451870501, 7452001639, + 7452132713, 7452263801, 7452394879, 7452525961, 7452657059, 7452788131, 7452919207, + 7453050281, 7453181377, 7453312453, 7453443581, 7453574663, 7453705739, 7453836919, + 7453967993, 7454099119, 7454230219, 7454361293, 7454492443, 7454623529, 7454754617, + 7454885719, 7455016799, 7455147883, 7455278977, 7455410087, 7455541189, 7455672271, + 7455803353, 7455934459, 7456065541, 7456196621, 7456327699, 7456458797, 7456589879, + 7456720987, 7456852087, 7456983161, 7457114233, 7457245319, 7457376403, 7457507483, + 7457638577, 7457769673, 7457900771, 7458031849, 7458162923, 7458294071, 7458425179, + 7458556277, 7458687361, 7458818447, 7458949523, 7459080631, 7459211707, 7459342789, + 7459473881, 7459605031, 7459736111, 7459867199, 7459998277, 7460129371, 7460260463, + 7460391551, 7460522669, 7460653777, 7460784893, 7460915981, 7461047063, 7461178139, + 7461309293, 7461440377, 7461571471, 7461702557, 7461833651, 7461964723, 7462095841, + 7462226971, 7462358083, 7462489157, 7462620247, 7462751333, 7462882423, 7463013521, + 7463144639, 7463275711, 7463406799, 7463537903, 7463668999, 7463800073, 7463931149, + 7464062251, 7464193351, 7464324431, 7464455513, 7464586609, 7464717703, 7464848777, + 7464979853, 7465110929, 7465242007, 7465373089, 7465504199, 7465635277, 7465766389, + 7465897471, 7466028611, 7466159689, 7466290781, 7466421863, 7466552939, 7466684021, + 7466815099, 7466946203, 7467077279, 7467208363, 7467339449, 7467470531, 7467601619, + 7467732691, 7467863771, 7467994873, 7468125947, 7468257031, 7468388111, 7468519211, + 7468650311, 7468781389, 7468912471, 7469043563, 7469174641, 7469305717, 7469436797, + 7469567909, 7469698991, 7469830111, 7469961199, 7470092297, 7470223379, 7470354461, + 7470485543, 7470616661, 7470747751, 7470878827, 7471009901, 7471141003, 7471272079, + 7471403153, 7471534229, 7471665329, 7471796407, 7471927513, 7472058611, 7472189713, + 7472320787, 7472451863, 7472582939, 7472714023, 7472845117, 7472976191, 7473107263, + 7473238397, 7473369479, 7473500557, 7473631631, 7473762707, 7473893803, 7474024903, + 7474155991, 7474287077, 7474418167, 7474549249, 7474680337, 7474811411, 7474942499, + 7475073643, 7475204731, 7475335807, 7475466907, 7475598029, 7475729101, 7475860241, + 7475991317, 7476122393, 7476253471, 7476384547, 7476515633, 7476646729, 7476777817, + 7476908891, 7477039987, 7477171069, 7477302149, 7477433237, 7477564331, 7477695403, + 7477826491, 7477957573, 7478088649, 7478219729, 7478350811, 7478481919, 7478613013, + 7478744089, 7478875181, 7479006263, 7479137363, 7479268441, 7479399523, 7479530627, + 7479661807, 7479792911, 7479923999, 7480055111, 7480186193, 7480317277, 7480448369, + 7480579481, 7480710553, 7480841647, 7480972747, 7481103829, 7481234903, 7481365979, + 7481497061, 7481628151, 7481759231, 7481890313, 7482021389, 7482152473, 7482283553, + 7482414631, 7482545737, 7482676841, 7482807953, 7482939031, 7483070107, 7483201189, + 7483332271, 7483463353, 7483594439, 7483725521, 7483856669, 7483987751, 7484118841, + 7484249953, 7484381059, 7484512151, 7484643223, 7484774303, 7484905397, 7485036469, + 7485167549, 7485298627, 7485429739, 7485560821, 7485691933, 7485823013, 7485954089, + 7486085161, 7486216261, 7486347371, 7486478443, 7486609517, 7486740593, 7486871669, + 7487002769, 7487133851, 7487264947, 7487396023, 7487527147, 7487658221, 7487789293, + 7487920397, 7488051469, 7488182557, 7488313633, 7488444721, 7488575797, 7488706889, + 7488837971, 7488969043, 7489100147, 7489231223, 7489362329, 7489493419, 7489624531, + 7489755653, 7489886731, 7490017813, 7490148893, 7490279989, 7490411077, 7490542151, + 7490673241, 7490804329, 7490935409, 7491066491, 7491197569, 7491328657, 7491459749, + 7491590831, 7491721957, 7491853051, 7491984187, 7492115263, 7492246361, 7492377449, + 7492508561, 7492639633, 7492770781, 7492901869, 7493032957, 7493164057, 7493295133, + 7493426251, 7493557327, 7493688409, 7493819483, 7493950573, 7494081653, 7494212729, + 7494343807, 7494474899, 7494605971, 7494737053, 7494868153, 7494999227, 7495130333, + 7495261441, 7495392529, 7495523611, 7495654709, 7495785799, 7495916887, 7496047981, + 7496179063, 7496310163, 7496441237, 7496572327, 7496703413, 7496834497, 7496965571, + 7497096643, 7497227723, 7497358801, 7497489877, 7497620981, 7497752081, 7497883153, + 7498014301, 7498145387, 7498276481, 7498407563, 7498538647, 7498669721, 7498800811, + 7498931927, 7499063009, 7499194121, 7499325221, 7499456303, 7499587379, 7499718467, + 7499849633, 7499980717, 7500111797, 7500242881, 7500373961, 7500505049, 7500636139, + 7500767231, 7500898309, 7501029407, 7501160483, 7501291657, 7501422743, 7501553819, + 7501684903, 7501815983, 7501947059, 7502078131, 7502209217, 7502340311, 7502471443, + 7502602519, 7502733599, 7502864687, 7502995769, 7503126871, 7503257959, 7503389051, + 7503520181, 7503651283, 7503782369, 7503913463, 7504044551, 7504175687, 7504306781, + 7504437901, 7504569011, 7504700149, 7504831231, 7504962343, 7505093417, 7505224513, + 7505355587, 7505486669, 7505617751, 7505748839, 7505879939, 7506011011, 7506142129, + 7506273223, 7506404317, 7506535397, 7506666481, 7506797633, 7506928739, 7507059829, + 7507190917, 7507322003, 7507453081, 7507584163, 7507715261, 7507846343, 7507977439, + 7508108521, 7508239631, 7508370707, 7508501789, 7508632861, 7508763953, 7508895029, + 7509026113, 7509157189, 7509288329, 7509419417, 7509550501, 7509681587, 7509812669, + 7509943751, 7510074833, 7510205933, 7510337011, 7510468087, 7510599203, 7510730291, + 7510861427, 7510992509, 7511123597, 7511254787, 7511385877, 7511516953, 7511648029, + 7511779123, 7511910199, 7512041281, 7512172357, 7512303479, 7512434557, 7512565633, + 7512696713, 7512827797, 7512958877, 7513089959, 7513221071, 7513352159, 7513483231, + 7513614307, 7513745429, 7513876507, 7514007587, 7514138683, 7514269759, 7514400923, + 7514532001, 7514663129, 7514794271, 7514925347, 7515056447, 7515187543, 7515318617, + 7515449699, 7515580781, 7515711869, 7515842941, 7515974041, 7516105133, 7516236209, + 7516367293, 7516498391, 7516629473, 7516760597, 7516891699, 7517022811, 7517153893, + 7517284981, 7517416073, 7517547161, 7517678237, 7517809337, 7517940431, 7518071507, + 7518202583, 7518333661, 7518464743, 7518595853, 7518726931, 7518858013, 7518989089, + 7519120163, 7519251247, 7519382323, 7519513433, 7519644511, 7519775587, 7519906687, + 7520037779, 7520168917, 7520299993, 7520431067, 7520562139, 7520693231, 7520824309, + 7520955389, 7521086477, 7521217553, 7521348631, 7521479717, 7521610799, 7521741893, + 7521872977, 7522004071, 7522135147, 7522266223, 7522397297, 7522528397, 7522659499, + 7522790591, 7522921667, 7523052739, 7523183831, 7523314919, 7523445991, 7523577119, + 7523708201, 7523839307, 7523970383, 7524101467, 7524232603, 7524363689, 7524494821, + 7524625919, 7524756997, 7524888083, 7525019171, 7525150247, 7525281367, 7525412443, + 7525543523, 7525674601, 7525805719, 7525936799, 7526067877, 7526198957, 7526330029, + 7526461133, 7526592217, 7526723299, 7526854409, 7526985511, 7527116629, 7527247703, + 7527378853, 7527509929, 7527641029, 7527772103, 7527903193, 7528034273, 7528165409, + 7528296511, 7528427591, 7528558663, 7528689757, 7528820837, 7528951933, 7529083007, + 7529214103, 7529345177, 7529476249, 7529607341, 7529738417, 7529869493, 7530000581, + 7530131671, 7530262763, 7530393847, 7530524927, 7530656009, 7530787093, 7530918169, + 7531049243, 7531180333, 7531311421, 7531442507, 7531573601, 7531704703, 7531835807, + 7531966889, 7532098001, 7532229091, 7532360167, 7532491261, 7532622407, 7532753489, + 7532884651, 7533015733, 7533146813, 7533277889, 7533408973, 7533540073, 7533671149, + 7533802223, 7533933331, 7534064411, 7534195483, 7534326559, 7534457633, 7534588709, + 7534719793, 7534850879, 7534981967, 7535113067, 7535244161, 7535375233, 7535506313, + 7535637397, 7535768473, 7535899559, 7536030631, 7536161779, 7536292853, 7536423943, + 7536555071, 7536686147, 7536817219, 7536948299, 7537079401, 7537210487, 7537341583, + 7537472687, 7537603789, 7537734863, 7537865939, 7537997017, 7538128093, 7538259167, + 7538390263, 7538521369, 7538652449, 7538783543, 7538914697, 7539045769, 7539176857, + 7539307933, 7539439007, 7539570097, 7539701203, 7539832297, 7539963371, 7540094447, + 7540225541, 7540356619, 7540487711, 7540618817, 7540749901, 7540880983, 7541012107, + 7541143273, 7541274437, 7541405519, 7541536609, 7541667691, 7541798779, 7541929903, + 7542061013, 7542192157, 7542323267, 7542454343, 7542585433, 7542716537, 7542847651, + 7542978733, 7543109863, 7543240951, 7543372027, 7543503127, 7543634221, 7543765319, + 7543896397, 7544027489, 7544158619, 7544289691, 7544420771, 7544551853, 7544682953, + 7544814031, 7544945129, 7545076219, 7545207343, 7545338443, 7545469517, 7545600589, + 7545731737, 7545862817, 7545993901, 7546124981, 7546256071, 7546387151, 7546518227, + 7546649303, 7546780379, 7546911479, 7547042567, 7547173639, 7547304719, 7547435807, + 7547566879, 7547697967, 7547829049, 7547960129, 7548091211, 7548222299, 7548353381, + 7548484477, 7548615637, 7548746747, 7548877823, 7549008911, 7549139987, 7549271111, + 7549402207, 7549533287, 7549664389, 7549795481, 7549926647, 7550057741, 7550188813, + 7550319899, 7550450993, 7550582069, 7550713141, 7550844221, 7550975329, 7551106403, + 7551237481, 7551368563, 7551499639, 7551630727, 7551761809, 7551892913, 7552023989, + 7552155073, 7552286149, 7552417247, 7552548319, 7552679447, 7552810567, 7552941647, + 7553072773, 7553203859, 7553334967, 7553466059, 7553597147, 7553728249, 7553859347, + 7553990453, 7554121537, 7554252619, 7554383713, 7554514861, 7554645947, 7554777077, + 7554908149, 7555039223, 7555170323, 7555301407, 7555432513, 7555563601, 7555694687, + 7555825789, 7555956883, 7556087969, 7556219051, 7556350127, 7556481221, 7556612299, + 7556743373, 7556874467, 7557005543, 7557136619, 7557267719, 7557398791, 7557529871, + 7557660967, 7557792059, 7557923137, 7558054271, 7558185353, 7558316453, 7558447543, + 7558578617, 7558709699, 7558840771, 7558971857, 7559102953, 7559234041, 7559365153, + 7559496299, 7559627377, 7559758471, 7559889553, 7560020659, 7560151741, 7560282817, + 7560413953, 7560545039, 7560676117, 7560807193, 7560938279, 7561069387, 7561200469, + 7561331543, 7561462633, 7561593709, 7561724813, 7561855919, 7561987019, 7562118103, + 7562249203, 7562380277, 7562511371, 7562642453, 7562773529, 7562904653, 7563035759, + 7563166837, 7563297923, 7563429017, 7563560107, 7563691181, 7563822317, 7563953393, + 7564084469, 7564215559, 7564346653, 7564477727, 7564608859, 7564739953, 7564871053, + 7565002141, 7565133281, 7565264353, 7565395429, 7565526523, 7565657597, 7565788679, + 7565919763, 7566050861, 7566181933, 7566313033, 7566444161, 7566575243, 7566706363, + 7566837493, 7566968573, 7567099651, 7567230731, 7567361807, 7567492883, 7567623971, + 7567755049, 7567886153, 7568017229, 7568148323, 7568279413, 7568410519, 7568541601, + 7568672687, 7568803763, 7568934851, 7569065923, 7569197033, 7569328121, 7569459197, + 7569590297, 7569721403, 7569852481, 7569983579, 7570114681, 7570245763, 7570376861, + 7570507957, 7570639061, 7570770139, 7570901213, 7571032307, 7571163389, 7571294503, + 7571425601, 7571556673, 7571687779, 7571818879, 7571950007, 7572081089, 7572212189, + 7572343267, 7572474347, 7572605437, 7572736511, 7572867593, 7572998681, 7573129789, + 7573260869, 7573391971, 7573523051, 7573654141, 7573785217, 7573916291, 7574047367, + 7574178467, 7574309563, 7574440691, 7574571779, 7574702851, 7574833963, 7574965067, + 7575096203, 7575227279, 7575358367, 7575489443, 7575620519, 7575751621, 7575882697, + 7576013813, 7576144903, 7576275983, 7576407067, 7576538147, 7576669229, 7576800311, + 7576931389, 7577062481, 7577193563, 7577324641, 7577455723, 7577586799, 7577717899, + 7577849011, 7577980117, 7578111253, 7578242333, 7578373433, 7578504517, 7578635591, + 7578766667, 7578897773, 7579028861, 7579159933, 7579291009, 7579422089, 7579553171, + 7579684249, 7579815367, 7579946477, 7580077553, 7580208653, 7580339749, 7580470823, + 7580601907, 7580732989, 7580864089, 7580995267, 7581126341, 7581257441, 7581388603, + 7581519683, 7581650759, 7581781849, 7581912929, 7582044011, 7582175089, 7582306181, + 7582437253, 7582568351, 7582699447, 7582830551, 7582961629, 7583092703, 7583223821, + 7583354893, 7583485969, 7583617081, 7583748167, 7583879243, 7584010339, 7584141427, + 7584272513, 7584403649, 7584534827, 7584665929, 7584797039, 7584928129, 7585059211, + 7585190297, 7585321439, 7585452551, 7585583623, 7585714723, 7585845797, 7585976869, + 7586107967, 7586239051, 7586370203, 7586501303, 7586632397, 7586763497, 7586894573, + 7587025669, 7587156791, 7587287891, 7587419003, 7587550097, 7587681181, 7587812273, + 7587943369, 7588074469, 7588205587, 7588336727, 7588467823, 7588598911, 7588729987, + 7588861067, 7588992139, 7589123219, 7589254301, 7589385407, 7589516489, 7589647579, + 7589778653, 7589909729, 7590040823, 7590171907, 7590303041, 7590434147, 7590565223, + 7590696329, 7590827411, 7590958483, 7591089557, 7591220653, 7591351739, 7591482823, + 7591613927, 7591745003, 7591876081, 7592007161, 7592138293, 7592269369, 7592400443, + 7592531539, 7592662639, 7592793739, 7592924831, 7593055913, 7593187013, 7593318097, + 7593449251, 7593580339, 7593711421, 7593842507, 7593973601, 7594104703, 7594235791, + 7594366867, 7594497943, 7594629017, 7594760137, 7594891217, 7595022307, 7595153383, + 7595284507, 7595415631, 7595546731, 7595677807, 7595808893, 7595939971, 7596071059, + 7596202139, 7596333229, 7596464303, 7596595427, 7596726517, 7596857599, 7596988699, + 7597119787, 7597250861, 7597381949, 7597513037, 7597644137, 7597775257, 7597906363, + 7598037449, 7598168549, 7598299669, 7598430751, 7598561827, 7598692931, 7598824027, + 7598955101, 7599086213, 7599217303, 7599348389, 7599479509, 7599610607, 7599741763, + 7599872851, 7600003937, 7600135021, 7600266103, 7600397177, 7600528277, 7600659401, + 7600790531, 7600921613, 7601052779, 7601183861, 7601314943, 7601446049, 7601577127, + 7601708207, 7601839283, 7601970391, 7602101471, 7602232553, 7602363677, 7602494759, + 7602625831, 7602756907, 7602887989, 7603019069, 7603150147, 7603281239, 7603412329, + 7603543477, 7603674569, 7603805641, 7603936807, 7604067883, 7604198983, 7604330093, + 7604461201, 7604592311, 7604723387, 7604854507, 7604985611, 7605116683, 7605247757, + 7605378841, 7605509917, 7605640993, 7605772091, 7605903163, 7606034239, 7606165331, + 7606296409, 7606427483, 7606558559, 7606689631, 7606820759, 7606951837, 7607082913, + 7607213993, 7607345093, 7607476169, 7607607247, 7607738329, 7607869411, 7608000503, + 7608131579, 7608262679, 7608393773, 7608524849, 7608655931, 7608787003, 7608918091, + 7609049243, 7609180349, 7609311431, 7609442507, 7609573589, 7609704671, 7609835759, + 7609966867, 7610097947, 7610229037, 7610360113, 7610491219, 7610622293, 7610753401, + 7610884481, 7611015569, 7611146651, 7611277727, 7611408799, 7611539911, 7611671021, + 7611802109, 7611933239, 7612064323, 7612195403, 7612326479, 7612457551, 7612588649, + 7612719743, 7612850827, 7612981927, 7613113019, 7613244091, 7613375197, 7613506289, + 7613637389, 7613768471, 7613899543, 7614030623, 7614161743, 7614292817, 7614423911, + 7614554993, 7614686071, 7614817181, 7614948259, 7615079371, 7615210483, 7615341557, + 7615472663, 7615603741, 7615734821, 7615865927, 7615997047, 7616128141, 7616259239, + 7616390333, 7616521417, 7616652509, 7616783609, 7616914703, 7617045827, 7617176899, + 7617307979, 7617439073, 7617570151, 7617701227, 7617832319, 7617963401, 7618094509, + 7618225583, 7618356689, 7618487761, 7618618919, 7618750033, 7618881113, 7619012237, + 7619143321, 7619274431, 7619405537, 7619536627, 7619667701, 7619798773, 7619929861, + 7620060947, 7620192029, 7620323107, 7620454189, 7620585283, 7620716357, 7620847453, + 7620978559, 7621109647, 7621240721, 7621371829, 7621502909, 7621633997, 7621765201, + 7621896281, 7622027353, 7622158459, 7622289547, 7622420677, 7622551823, 7622682913, + 7622813993, 7622945069, 7623076147, 7623207257, 7623338341, 7623469417, 7623600511, + 7623731603, 7623862679, 7623993761, 7624124863, 7624255939, 7624387021, 7624518133, + 7624649233, 7624780333, 7624911421, 7625042533, 7625173607, 7625304679, 7625435761, + 7625566847, 7625697931, 7625829017, 7625960143, 7626091223, 7626222323, 7626353411, + 7626484501, 7626615587, 7626746683, 7626877759, 7627008841, 7627139951, 7627271059, + 7627402151, 7627533247, 7627664377, 7627795451, 7627926533, 7628057609, 7628188697, + 7628319779, 7628450861, 7628581943, 7628713019, 7628844143, 7628975257, 7629106351, + 7629237443, 7629368521, 7629499639, 7629630727, 7629761807, 7629892883, 7630023967, + 7630155053, 7630286141, 7630417213, 7630548323, 7630679411, 7630810483, 7630941611, + 7631072737, 7631203841, 7631334913, 7631465993, 7631597069, 7631728219, 7631859329, + 7631990413, 7632121513, 7632252611, 7632383683, 7632514759, 7632645833, 7632776911, + 7632907987, 7633039069, 7633170151, 7633301231, 7633432307, 7633563383, 7633694459, + 7633825553, 7633956679, 7634087777, 7634218853, 7634349941, 7634481031, 7634612131, + 7634743213, 7634874307, 7635005387, 7635136469, 7635267557, 7635398651, 7635529723, + 7635660827, 7635791899, 7635922999, 7636054087, 7636185181, 7636316263, 7636447337, + 7636578413, 7636709489, 7636840567, 7636971649, 7637102723, 7637233801, 7637364899, + 7637495977, 7637627071, 7637758151, 7637889227, 7638020353, 7638151427, 7638282521, + 7638413623, 7638544709, 7638675787, 7638806863, 7638937961, 7639069043, 7639200119, + 7639331257, 7639462343, 7639593431, 7639724507, 7639855591, 7639986691, 7640117767, + 7640248849, 7640379937, 7640511023, 7640642099, 7640773177, 7640904281, 7641035359, + 7641166441, 7641297577, 7641428657, 7641559729, 7641690811, 7641821911, 7641952987, + 7642084117, 7642215223, 7642346297, 7642477379, 7642608481, 7642739557, 7642870637, + 7643001713, 7643132789, 7643263861, 7643394943, 7643526031, 7643657123, 7643788199, + 7643919289, 7644050369, 7644181453, 7644312593, 7644443687, 7644574781, 7644705919, + 7644837023, 7644968099, 7645099201, 7645230283, 7645361413, 7645492487, 7645623563, + 7645754653, 7645885727, 7646016853, 7646147959, 7646279063, 7646410171, 7646541247, + 7646672321, 7646803427, 7646934511, 7647065633, 7647196709, 7647327797, 7647458921, + 7647589993, 7647721093, 7647852193, 7647983279, 7648114351, 7648245467, 7648376569, + 7648507663, 7648638737, 7648769851, 7648900943, 7649032151, 7649163233, 7649294309, + 7649425397, 7649556493, 7649687569, 7649818651, 7649949743, 7650080843, 7650211951, + 7650343037, 7650474119, 7650605191, 7650736273, 7650867349, 7650998473, 7651129547, + 7651260653, 7651391729, 7651522819, 7651653899, 7651784971, 7651916047, 7652047121, + 7652178197, 7652309281, 7652440409, 7652571503, 7652702581, 7652833673, 7652964751, + 7653095843, 7653226939, 7653358021, 7653489101, 7653620189, 7653751277, 7653882349, + 7654013443, 7654144529, 7654275637, 7654406717, 7654537789, 7654668869, 7654799941, + 7654931017, 7655062091, 7655193163, 7655324267, 7655455349, 7655586451, 7655717551, + 7655848631, 7655979703, 7656110789, 7656241877, 7656372949, 7656504101, 7656635191, + 7656766283, 7656897371, 7657028459, 7657159541, 7657290649, 7657421729, 7657552801, + 7657683883, 7657814963, 7657946047, 7658077123, 7658208199, 7658339281, 7658470357, + 7658601443, 7658732519, 7658863631, 7658994703, 7659125849, 7659256921, 7659387997, + 7659519079, 7659650171, 7659781247, 7659912331, 7660043411, 7660174523, 7660305607, + 7660436683, 7660567757, 7660698853, 7660829971, 7660961053, 7661092157, 7661223233, + 7661354321, 7661485411, 7661616511, 7661747591, 7661878667, 7662009743, 7662140869, + 7662271951, 7662403043, 7662534179, 7662665333, 7662796429, 7662927509, 7663058617, + 7663189693, 7663320793, 7663451867, 7663582967, 7663714061, 7663845139, 7663976231, + 7664107309, 7664238383, 7664369459, 7664500553, 7664631641, 7664762717, 7664893813, + 7665024911, 7665155999, 7665287081, 7665418157, 7665549239, 7665680317, 7665811429, + 7665942523, 7666073663, 7666204739, 7666335829, 7666466911, 7666597997, 7666729097, + 7666860241, 7666991341, 7667122429, 7667253509, 7667384587, 7667515703, 7667646797, + 7667777879, 7667908951, 7668040027, 7668171101, 7668302203, 7668433351, 7668564427, + 7668695509, 7668826621, 7668957733, 7669088809, 7669219949, 7669351031, 7669482113, + 7669613201, 7669744273, 7669875347, 7670006429, 7670137507, 7670268587, 7670399669, + 7670530741, 7670661827, 7670792933, 7670924021, 7671055169, 7671186277, 7671317369, + 7671448457, 7671579557, 7671710633, 7671841711, 7671972787, 7672103861, 7672234939, + 7672366027, 7672497139, 7672628231, 7672759307, 7672890419, 7673021501, 7673152573, + 7673283647, 7673414759, 7673545843, 7673676919, 7673808019, 7673939093, 7674070199, + 7674201323, 7674332411, 7674463483, 7674594569, 7674725693, 7674856817, 7674988007, + 7675119119, 7675250197, 7675381279, 7675512353, 7675643471, 7675774553, 7675905641, + 7676036717, 7676167817, 7676298893, 7676430029, 7676561119, 7676692211, 7676823283, + 7676954357, 7677085441, 7677216539, 7677347633, 7677478709, 7677609781, 7677740867, + 7677871973, 7678003051, 7678134151, 7678265233, 7678396379, 7678527487, 7678658641, + 7678789733, 7678920811, 7679051899, 7679183021, 7679314169, 7679445247, 7679576323, + 7679707397, 7679838487, 7679969569, 7680100643, 7680231751, 7680362831, 7680493907, + 7680624989, 7680756067, 7680887153, 7681018249, 7681149353, 7681280437, 7681411531, + 7681542641, 7681673719, 7681804817, 7681935913, 7682066989, 7682198087, 7682329169, + 7682460271, 7682591351, 7682722451, 7682853539, 7682984611, 7683115703, 7683246797, + 7683377951, 7683509033, 7683640141, 7683771217, 7683902299, 7684033387, 7684164469, + 7684295551, 7684426637, 7684557709, 7684688783, 7684819873, 7684950947, 7685082091, + 7685213167, 7685344243, 7685475331, 7685606437, 7685737529, 7685868601, 7685999701, + 7686130811, 7686261883, 7686393007, 7686524093, 7686655183, 7686786269, 7686917347, + 7687048427, 7687179569, 7687310663, 7687441799, 7687572887, 7687703963, 7687835039, + 7687966127, 7688097211, 7688228293, 7688359369, 7688490449, 7688621557, 7688752633, + 7688883721, 7689014797, 7689145879, 7689276961, 7689408187, 7689539269, 7689670357, + 7689801481, 7689932561, 7690063649, 7690194731, 7690325807, 7690456883, 7690587967, + 7690719079, 7690850177, 7690981261, 7691112361, 7691243449, 7691374543, 7691505629, + 7691636707, 7691767789, 7691898917, 7692029999, 7692161117, 7692292199, 7692423287, + 7692554431, 7692685513, 7692816617, 7692947707, 7693078807, 7693209907, 7693340987, + 7693472063, 7693603163, 7693734253, 7693865327, 7693996399, 7694127521, 7694258647, + 7694389789, 7694520863, 7694651957, 7694783053, 7694914133, 7695045221, 7695176297, + 7695307369, 7695438479, 7695569551, 7695700627, 7695831701, 7695962789, 7696093903, + 7696224983, 7696356077, 7696487173, 7696618253, 7696749329, 7696880413, 7697011529, + 7697142641, 7697273713, 7697404831, 7697535947, 7697667023, 7697798099, 7697929237, + 7698060373, 7698191461, 7698322547, 7698453643, 7698584743, 7698715819, 7698846913, + 7698978013, 7699109179, 7699240261, 7699371373, 7699502467, 7699633541, 7699764629, + 7699895701, 7700026777, 7700157851, 7700288951, 7700420041, 7700551141, 7700682217, + 7700813303, 7700944439, 7701075511, 7701206609, 7701337681, 7701468767, 7701599849, + 7701730969, 7701862073, 7701993151, 7702124231, 7702255339, 7702386467, 7702517551, + 7702648663, 7702779803, 7702910911, 7703041991, 7703173067, 7703304139, 7703435237, + 7703566313, 7703697401, 7703828501, 7703959579, 7704090661, 7704221761, 7704352853, + 7704483937, 7704615011, 7704746123, 7704877211, 7705008287, 7705139383, 7705270459, + 7705401547, 7705532621, 7705663717, 7705794797, 7705925939, 7706057017, 7706188097, + 7706319223, 7706450329, 7706581417, 7706712521, 7706843653, 7706974729, 7707105829, + 7707236921, 7707368003, 7707499091, 7707630163, 7707761267, 7707892349, 7708023451, + 7708154527, 7708285661, 7708416757, 7708547831, 7708678907, 7708810009, 7708941103, + 7709072177, 7709203253, 7709334329, 7709465429, 7709596519, 7709727601, 7709858693, + 7709989789, 7710120871, 7710251947, 7710383053, 7710514151, 7710645223, 7710776299, + 7710907397, 7711038473, 7711169549, 7711300621, 7711431733, 7711562819, 7711693921, + 7711825061, 7711956137, 7712087209, 7712218289, 7712349367, 7712480467, 7712611553, + 7712742659, 7712873747, 7713004823, 7713135929, 7713267007, 7713398087, 7713529169, + 7713660271, 7713791363, 7713922439, 7714053517, 7714184593, 7714315699, 7714446781, + 7714577861, 7714708933, 7714840019, 7714971137, 7715102243, 7715233319, 7715364401, + 7715495479, 7715626573, 7715757677, 7715888767, 7716019853, 7716150941, 7716282037, + 7716413213, 7716544327, 7716675413, 7716806551, 7716937649, 7717068743, 7717199837, + 7717330937, 7717462037, 7717593131, 7717724213, 7717855297, 7717986377, 7718117467, + 7718248541, 7718379619, 7718510713, 7718641793, 7718772911, 7718903989, 7719035101, + 7719166177, 7719297293, 7719428377, 7719559451, 7719690523, 7719821609, 7719952693, + 7720083779, 7720214861, 7720345951, 7720477027, 7720608149, 7720739239, 7720870319, + 7721001413, 7721132491, 7721263591, 7721394697, 7721525789, 7721656861, 7721787959, + 7721919031, 7722050137, 7722181217, 7722312289, 7722443363, 7722574477, 7722705569, + 7722836657, 7722967787, 7723098869, 7723230001, 7723361083, 7723492157, 7723623239, + 7723754327, 7723885423, 7724016499, 7724147579, 7724278687, 7724409787, 7724540861, + 7724671957, 7724803049, 7724934163, 7725065263, 7725196337, 7725327413, 7725458491, + 7725589607, 7725720697, 7725851789, 7725982867, 7726113943, 7726245061, 7726376153, + 7726507247, 7726638319, 7726769417, 7726900529, 7727031619, 7727162749, 7727293843, + 7727424983, 7727556061, 7727687137, 7727818243, 7727949353, 7728080441, 7728211523, + 7728342619, 7728473713, 7728604799, 7728735871, 7728866947, 7728998021, 7729129141, + 7729260251, 7729391401, 7729522477, 7729653557, 7729784633, 7729915729, 7730046809, + 7730177909, 7730309023, 7730440097, 7730571179, 7730702261, 7730833339, 7730964457, + 7731095539, 7731226631, 7731357713, 7731488867, 7731619943, 7731751019, 7731882113, + 7732013203, 7732144283, 7732275361, 7732406449, 7732537523, 7732668623, 7732799713, + 7732930817, 7733061893, 7733192989, 7733324069, 7733455141, 7733586233, 7733717323, + 7733848429, 7733979503, 7734110621, 7734241693, 7734372809, 7734503981, 7734635053, + 7734766133, 7734897211, 7735028293, 7735159379, 7735290467, 7735421543, 7735552633, + 7735683719, 7735814813, 7735945907, 7736076989, 7736208097, 7736339197, 7736470349, + 7736601461, 7736732543, 7736863619, 7736994691, 7737125783, 7737256907, 7737388003, + 7737519091, 7737650171, 7737781273, 7737912349, 7738043449, 7738174531, 7738305611, + 7738436723, 7738567819, 7738698907, 7738829993, 7738961093, 7739092199, 7739223277, + 7739354351, 7739485459, 7739616539, 7739747627, 7739878709, 7740009787, 7740140869, + 7740271993, 7740403117, 7740534209, 7740665287, 7740796409, 7740927497, 7741058569, + 7741189763, 7741320857, 7741451933, 7741583021, 7741714093, 7741845179, 7741976251, + 7742107363, 7742238457, 7742369533, 7742500607, 7742631709, 7742762791, 7742893877, + 7743024953, 7743156041, 7743287117, 7743418217, 7743549367, 7743680447, 7743811519, + 7743942617, 7744073707, 7744204789, 7744335871, 7744466959, 7744598041, 7744729127, + 7744860217, 7744991297, 7745122369, 7745253443, 7745384551, 7745515681, 7745646767, + 7745777843, 7745908921, 7746039997, 7746171079, 7746302171, 7746433267, 7746564367, + 7746695443, 7746826517, 7746957607, 7747088707, 7747219801, 7747350881, 7747481977, + 7747613051, 7747744153, 7747875253, 7748006341, 7748137421, 7748268499, 7748399579, + 7748530663, 7748661737, 7748792809, 7748923961, 7749055043, 7749186161, 7749317267, + 7749448349, 7749579427, 7749710503, 7749841591, 7749972679, 7750103773, 7750234847, + 7750365929, 7750497037, 7750628129, 7750759207, 7750890283, 7751021359, 7751152433, + 7751283509, 7751414581, 7751545667, 7751676773, 7751807857, 7751938963, 7752070037, + 7752201139, 7752332213, 7752463289, 7752594391, 7752725501, 7752856603, 7752987679, + 7753118759, 7753249859, 7753380959, 7753512079, 7753643159, 7753774247, 7753905329, + 7754036467, 7754167543, 7754298623, 7754429699, 7754560777, 7754691877, 7754822953, + 7754954027, 7755085103, 7755216181, 7755347261, 7755478337, 7755609427, 7755740501, + 7755871589, 7756002689, 7756133767, 7756264853, 7756395931, 7756527011, 7756658111, + 7756789211, 7756920289, 7757051377, 7757182463, 7757313601, 7757444699, 7757575789, + 7757706877, 7757837951, 7757969027, 7758100187, 7758231281, 7758362357, 7758493433, + 7758624529, 7758755651, 7758886727, 7759017829, 7759148939, 7759280017, 7759411109, + 7759542181, 7759673279, 7759804373, 7759935461, 7760066579, 7760197657, 7760328761, + 7760459843, 7760590919, 7760722009, 7760853091, 7760984171, 7761115253, 7761246349, + 7761377479, 7761508561, 7761639649, 7761770747, 7761901859, 7762032953, 7762164043, + 7762295141, 7762426213, 7762557307, 7762688399, 7762819481, 7762950557, 7763081633, + 7763212729, 7763343803, 7763474893, 7763605981, 7763737063, 7763868137, 7763999249, + 7764130343, 7764261431, 7764392557, 7764523639, 7764654713, 7764785857, 7764916933, + 7765048021, 7765179139, 7765310221, 7765441297, 7765572407, 7765703483, 7765834579, + 7765965661, 7766096749, 7766227829, 7766358907, 7766489981, 7766621069, 7766752159, + 7766883233, 7767014429, 7767145523, 7767276613, 7767407693, 7767538781, 7767669853, + 7767800941, 7767932023, 7768063129, 7768194221, 7768325339, 7768456447, 7768587577, + 7768718693, 7768849787, 7768980881, 7769111957, 7769243047, 7769374157, 7769505239, + 7769636323, 7769767399, 7769898503, 7770029599, 7770160703, 7770291791, 7770422867, + 7770553943, 7770685061, 7770816139, 7770947221, 7771078309, 7771209389, 7771340477, + 7771471597, 7771602677, 7771733777, 7771864853, 7771995953, 7772127047, 7772258159, + 7772389253, 7772520337, 7772651429, 7772782547, 7772913649, 7773044771, 7773175847, + 7773306929, 7773438007, 7773569101, 7773700243, 7773831337, 7773962429, 7774093519, + 7774224637, 7774355711, 7774486793, 7774617869, 7774748953, 7774880083, 7775011163, + 7775142239, 7775273381, 7775404453, 7775535527, 7775666611, 7775797691, 7775928763, + 7776059849, 7776190921, 7776322003, 7776453077, 7776584161, 7776715237, 7776846317, + 7776977389, 7777108463, 7777239551, 7777370641, 7777501729, 7777632829, 7777763911, + 7777894987, 7778026093, 7778157187, 7778288263, 7778419349, 7778550443, 7778681527, + 7778812603, 7778943701, 7779074827, 7779205939, 7779337021, 7779468097, 7779599183, + 7779730303, 7779861409, 7779992533, 7780123613, 7780254707, 7780385779, 7780516859, + 7780647977, 7780779067, 7780910141, 7781041237, 7781172319, 7781303399, 7781434487, + 7781565559, 7781696641, 7781827717, 7781958817, 7782089923, 7782221003, 7782352111, + 7782483211, 7782614293, 7782745379, 7782876467, 7783007569, 7783138667, 7783269751, + 7783400827, 7783531901, 7783662973, 7783794071, 7783925143, 7784056243, 7784187373, + 7784318497, 7784449579, 7784580679, 7784711789, 7784842889, 7784973979, 7785105061, + 7785236141, 7785367223, 7785498359, 7785629431, 7785760523, 7785891599, 7786022693, + 7786153787, 7786284881, 7786415999, 7786547123, 7786678247, 7786809337, 7786940459, + 7787071601, 7787202673, 7787333753, 7787464831, 7787595917, 7787727037, 7787858137, + 7787989241, 7788120341, 7788251413, 7788382501, 7788513583, 7788644657, 7788775733, + 7788906821, 7789037909, 7789168999, 7789300081, 7789431157, 7789562257, 7789693333, + 7789824409, 7789955533, 7790086609, 7790217689, 7790348777, 7790479897, 7790610973, + 7790742053, 7790873131, 7791004211, 7791135311, 7791266387, 7791397501, 7791528583, + 7791659663, 7791790763, 7791921857, 7792052929, 7792184009, 7792315081, 7792446157, + 7792577237, 7792708321, 7792839401, 7792970489, 7793101567, 7793232649, 7793363759, + 7793494831, 7793625907, 7793756987, 7793888101, 7794019183, 7794150269, 7794281347, + 7794412441, 7794543539, 7794674621, 7794805717, 7794936859, 7795067947, 7795199099, + 7795330189, 7795461269, 7795592353, 7795723469, 7795854569, 7795985641, 7796116721, + 7796247829, 7796378911, 7796509999, 7796641087, 7796772163, 7796903243, 7797034319, + 7797165427, 7797296503, 7797427579, 7797558677, 7797689759, 7797820871, 7797951949, + 7798083061, 7798214153, 7798345241, 7798476313, 7798607389, 7798738463, 7798869541, + 7799000707, 7799131787, 7799262869, 7799393969, 7799525113, 7799656261, 7799787367, + 7799918449, 7800049541, 7800180613, 7800311719, 7800442831, 7800573919, 7800704993, + 7800836089, 7800967183, 7801098259, 7801229411, 7801360487, 7801491559, 7801622641, + 7801753717, 7801884799, 7802015917, 7802147021, 7802278093, 7802409187, 7802540287, + 7802671379, 7802802473, 7802933557, 7803064637, 7803195713, 7803326801, 7803457897, + 7803588979, 7803720073, 7803851147, 7803982259, 7804113377, 7804244467, 7804375561, + 7804506637, 7804637713, 7804768823, 7804899899, 7805030977, 7805162059, 7805293163, + 7805424239, 7805555347, 7805686439, 7805817559, 7805948663, 7806079759, 7806210847, + 7806341929, 7806473027, 7806604103, 7806735179, 7806866297, 7806997391, 7807128479, + 7807259561, 7807390637, 7807521721, 7807652807, 7807783897, 7807914971, 7808046061, + 7808177159, 7808308243, 7808439323, 7808570431, 7808701541, 7808832631, 7808963711, + 7809094817, 7809225911, 7809356987, 7809488069, 7809619183, 7809750259, 7809881333, + 7810012409, 7810143499, 7810274587, 7810405661, 7810536733, 7810667831, 7810798909, + 7810930009, 7811061109, 7811192227, 7811323313, 7811454403, 7811585477, 7811716553, + 7811847689, 7811978761, 7812109843, 7812240929, 7812372017, 7812503123, 7812634241, + 7812765313, 7812896449, 7813027529, 7813158601, 7813289683, 7813420759, 7813551833, + 7813682927, 7813814039, 7813945133, 7814076223, 7814207321, 7814338409, 7814469493, + 7814600567, 7814731663, 7814862749, 7814993869, 7815124987, 7815256079, 7815387253, + 7815518353, 7815649463, 7815780589, 7815911699, 7816042807, 7816173899, 7816304989, + 7816436063, 7816567141, 7816698223, 7816829303, 7816960379, 7817091467, 7817222579, + 7817353699, 7817484791, 7817615879, 7817746961, 7817878039, 7818009119, 7818140191, + 7818271267, 7818402379, 7818533453, 7818664547, 7818795619, 7818926729, 7819057817, + 7819188889, 7819320013, 7819451093, 7819582171, 7819713269, 7819844341, 7819975421, + 7820106493, 7820237573, 7820368651, 7820499751, 7820630849, 7820761939, 7820893039, + 7821024137, 7821155213, 7821286303, 7821417403, 7821548503, 7821679577, 7821810671, + 7821941753, 7822072831, 7822203919, 7822334999, 7822466087, 7822597163, 7822728257, + 7822859339, 7822990421, 7823121499, 7823252579, 7823383669, 7823514761, 7823645867, + 7823776967, 7823908087, 7824039161, 7824170239, 7824301333, 7824432449, 7824563557, + 7824694639, 7824825737, 7824956819, 7825087943, 7825219021, 7825350103, 7825481177, + 7825612273, 7825743361, 7825874437, 7826005543, 7826136629, 7826267711, 7826398829, + 7826529929, 7826661049, 7826792191, 7826923297, 7827054461, 7827185533, 7827316631, + 7827447709, 7827578797, 7827709871, 7827840947, 7827972029, 7828103141, 7828234231, + 7828365319, 7828496399, 7828627531, 7828758611, 7828889711, 7829020831, 7829151971, + 7829283079, 7829414167, 7829545249, 7829676329, 7829807437, 7829938541, 7830069619, + 7830200701, 7830331781, 7830462853, 7830593957, 7830725041, 7830856141, 7830987251, + 7831118341, 7831249421, 7831380523, 7831511621, 7831642727, 7831773847, 7831904921, + 7832036027, 7832167151, 7832298233, 7832429321, 7832560397, 7832691521, 7832822611, + 7832953717, 7833084793, 7833215903, 7833346993, 7833478091, 7833609167, 7833740249, + 7833871327, 7834002413, 7834133491, 7834264631, 7834395731, 7834526809, 7834657937, + 7834789013, 7834920091, 7835051167, 7835182259, 7835313361, 7835444459, 7835575543, + 7835706617, 7835837699, 7835968781, 7836099853, 7836230953, 7836362057, 7836493163, + 7836624259, 7836755351, 7836886451, 7837017557, 7837148651, 7837279811, 7837410901, + 7837541989, 7837673069, 7837804147, 7837935247, 7838066387, 7838197483, 7838328557, + 7838459641, 7838590759, 7838721893, 7838852981, 7838984057, 7839115189, 7839246301, + 7839377401, 7839508487, 7839639559, 7839770647, 7839901757, 7840032847, 7840163927, + 7840295009, 7840426103, 7840557181, 7840688267, 7840819361, 7840950517, 7841081597, + 7841212723, 7841343803, 7841474881, 7841605979, 7841737063, 7841868149, 7841999233, + 7842130337, 7842261437, 7842392527, 7842523607, 7842654689, 7842785773, 7842916847, + 7843047929, 7843179011, 7843310087, 7843441201, 7843572287, 7843703381, 7843834477, + 7843965581, 7844096657, 7844227733, 7844358827, 7844489921, 7844621003, 7844752079, + 7844883173, 7845014249, 7845145361, 7845276437, 7845407509, 7845538601, 7845669697, + 7845800791, 7845931871, 7846062943, 7846194017, 7846325107, 7846456183, 7846587311, + 7846718443, 7846849531, 7846980613, 7847111707, 7847242783, 7847373889, 7847504983, + 7847636059, 7847767139, 7847898211, 7848029333, 7848160423, 7848291497, 7848422579, + 7848553663, 7848684757, 7848815831, 7848946913, 7849078001, 7849209113, 7849340189, + 7849471271, 7849602359, 7849733431, 7849864549, 7849995623, 7850126707, 7850257783, + 7850388863, 7850519953, 7850651057, 7850782141, 7850913223, 7851044317, 7851175411, + 7851306511, 7851437597, 7851568687, 7851699769, 7851830849, 7851961937, 7852093009, + 7852224103, 7852355209, 7852486379, 7852617481, 7852748567, 7852879651, 7853010793, + 7853141869, 7853272949, 7853404057, 7853535191, 7853666269, 7853797349, 7853928449, + 7854059533, 7854190609, 7854321689, 7854452783, 7854583921, 7854714997, 7854846071, + 7854977147, 7855108237, 7855239349, 7855370423, 7855501529, 7855632601, 7855763701, + 7855894777, 7856025899, 7856156983, 7856288147, 7856419243, 7856550329, 7856681401, + 7856812477, 7856943569, 7857074707, 7857205801, 7857336887, 7857467999, 7857599137, + 7857730241, 7857861317, 7857992411, 7858123513, 7858254587, 7858385671, 7858516759, + 7858647833, 7858778909, 7858910039, 7859041121, 7859172239, 7859303321, 7859434411, + 7859565487, 7859696567, 7859827639, 7859958713, 7860089789, 7860220909, 7860352001, + 7860483077, 7860614171, 7860745279, 7860876377, 7861007489, 7861138561, 7861269641, + 7861400717, 7861531793, 7861662871, 7861793959, 7861925063, 7862056141, 7862187247, + 7862318323, 7862449409, 7862580491, 7862711587, 7862842661, 7862973757, 7863104881, + 7863235957, 7863367117, 7863498211, 7863629287, 7863760391, 7863891463, 7864022581, + 7864153657, 7864284739, 7864415857, 7864546931, 7864678007, 7864809079, 7864940207, + 7865071297, 7865202409, 7865333491, 7865464567, 7865595643, 7865726717, 7865857799, + 7865988917, 7866120013, 7866251087, 7866382169, 7866513251, 7866644353, 7866775429, + 7866906503, 7867037641, 7867168717, 7867299821, 7867430917, 7867561993, 7867693117, + 7867824193, 7867955269, 7868086349, 7868217437, 7868348531, 7868479643, 7868610719, + 7868741843, 7868872951, 7869004037, 7869135167, 7869266281, 7869397357, 7869528439, + 7869659513, 7869790589, 7869921701, 7870052789, 7870183883, 7870314973, 7870446049, + 7870577149, 7870708243, 7870839371, 7870970473, 7871101573, 7871232659, 7871363777, + 7871494849, 7871625929, 7871757011, 7871888083, 7872019163, 7872150241, 7872281321, + 7872412393, 7872543479, 7872674569, 7872805649, 7872936739, 7873067821, 7873198913, + 7873330001, 7873461077, 7873592149, 7873723229, 7873854337, 7873985423, 7874116501, + 7874247581, 7874378663, 7874509757, 7874640833, 7874771917, 7874902993, 7875034073, + 7875165217, 7875296309, 7875427409, 7875558487, 7875689579, 7875820651, 7875951749, + 7876082849, 7876213993, 7876345079, 7876476151, 7876607237, 7876738313, 7876869419, + 7877000501, 7877131579, 7877262671, 7877393761, 7877524841, 7877655931, 7877787059, + 7877918161, 7878049279, 7878180353, 7878311431, 7878442531, 7878573613, 7878704693, + 7878835781, 7878966889, 7879097983, 7879229081, 7879360201, 7879491289, 7879622369, + 7879753459, 7879884541, 7880015641, 7880146723, 7880277817, 7880408903, 7880539999, + 7880671081, 7880802169, 7880933293, 7881064369, 7881195451, 7881326527, 7881457607, + 7881588727, 7881719819, 7881850939, 7881982063, 7882113149, 7882244263, 7882375343, + 7882506427, 7882637513, 7882768601, 7882899709, 7883030789, 7883161889, 7883292961, + 7883424047, 7883555189, 7883686289, 7883817373, 7883948461, 7884079573, 7884210679, + 7884341767, 7884472859, 7884603949, 7884735029, 7884866113, 7884997193, 7885128271, + 7885259353, 7885390453, 7885521529, 7885652609, 7885783687, 7885914779, 7886045861, + 7886176951, 7886308043, 7886439131, 7886570207, 7886701283, 7886832361, 7886963437, + 7887094511, 7887225601, 7887356683, 7887487763, 7887618839, 7887749941, 7887881033, + 7888012133, 7888143269, 7888274341, 7888405423, 7888536497, 7888667623, 7888798733, + 7888929821, 7889060981, 7889192053, 7889323129, 7889454203, 7889585309, 7889716397, + 7889847499, 7889978573, 7890109673, 7890240767, 7890371887, 7890502987, 7890634189, + 7890765293, 7890896369, 7891027453, 7891158547, 7891289629, 7891420721, 7891551809, + 7891682941, 7891814041, 7891945121, 7892076229, 7892207311, 7892338393, 7892469469, + 7892600563, 7892731663, 7892862763, 7892993891, 7893124979, 7893256067, 7893387163, + 7893518261, 7893649339, 7893780421, 7893911561, 7894042649, 7894173733, 7894304809, + 7894435891, 7894566971, 7894698061, 7894829147, 7894960253, 7895091353, 7895222449, + 7895353541, 7895484629, 7895615771, 7895746861, 7895878009, 7896009097, 7896140191, + 7896271277, 7896402379, 7896533479, 7896664597, 7896795719, 7896926801, 7897057937, + 7897189009, 7897320103, 7897451179, 7897582279, 7897713353, 7897844431, 7897975511, + 7898106647, 7898237719, 7898368811, 7898499887, 7898630977, 7898762077, 7898893159, + 7899024239, 7899155317, 7899286427, 7899417521, 7899548633, 7899679729, 7899810803, + 7899941893, 7900072981, 7900204063, 7900335143, 7900466263, 7900597361, 7900728439, + 7900859521, 7900990597, 7901121689, 7901252789, 7901383873, 7901514979, 7901646059, + 7901777141, 7901908213, 7902039307, 7902170387, 7902301469, 7902432547, 7902563621, + 7902694693, 7902825767, 7902956851, 7903087931, 7903219003, 7903350079, 7903481177, + 7903612259, 7903743371, 7903874443, 7904005523, 7904136601, 7904267711, 7904398783, + 7904529881, 7904660977, 7904792059, 7904923139, 7905054239, 7905185333, 7905316423, + 7905447499, 7905578609, 7905709681, 7905840763, 7905971837, 7906102927, 7906234019, + 7906365127, 7906496327, 7906627439, 7906758527, 7906889611, 7907020687, 7907151781, + 7907282881, 7907413993, 7907545081, 7907676233, 7907807311, 7907938387, 7908069467, + 7908200551, 7908331637, 7908462721, 7908593821, 7908724927, 7908856027, 7908987109, + 7909118207, 7909249291, 7909380377, 7909511473, 7909642571, 7909773671, 7909904771, + 7910035849, 7910166947, 7910298049, 7910429159, 7910560237, 7910691317, 7910822401, + 7910953483, 7911084583, 7911215701, 7911346811, 7911477911, 7911608989, 7911740069, + 7911871151, 7912002281, 7912133393, 7912264537, 7912395637, 7912526719, 7912657849, + 7912788929, 7912920007, 7913051101, 7913182181, 7913313283, 7913444389, 7913575469, + 7913706569, 7913837653, 7913968729, 7914099827, 7914230899, 7914361981, 7914493163, + 7914624239, 7914755323, 7914886417, 7915017491, 7915148567, 7915279651, 7915410733, + 7915541807, 7915672901, 7915803977, 7915935089, 7916066161, 7916197241, 7916328313, + 7916459389, 7916590471, 7916721569, 7916852653, 7916983729, 7917114839, 7917245911, + 7917376991, 7917508099, 7917639241, 7917770317, 7917901391, 7918032503, 7918163587, + 7918294661, 7918425793, 7918556897, 7918688039, 7918819121, 7918950199, 7919081273, + 7919212373, 7919343451, 7919474557, 7919605657, 7919736733, 7919867821, 7919998949, + 7920130039, 7920261113, 7920392197, 7920523277, 7920654353, 7920785429, 7920916561, + 7921047661, 7921178809, 7921309889, 7921440979, 7921572077, 7921703159, 7921834237, + 7921965319, 7922096393, 7922227471, 7922358559, 7922489657, 7922620747, 7922751839, + 7922882923, 7923014089, 7923145169, 7923276253, 7923407339, 7923538421, 7923669493, + 7923800579, 7923931651, 7924062739, 7924193821, 7924324909, 7924456039, 7924587163, + 7924718237, 7924849313, 7924980421, 7925111497, 7925242573, 7925373671, 7925504761, + 7925635843, 7925766917, 7925898031, 7926029147, 7926160219, 7926291311, 7926422407, + 7926553487, 7926684587, 7926815669, 7926946751, 7927077853, 7927208929, 7927340053, + 7927471151, 7927602229, 7927733329, 7927864429, 7927995529, 7928126623, 7928257721, + 7928388827, 7928519903, 7928650993, 7928782117, 7928913193, 7929044303, 7929175409, + 7929306493, 7929437567, 7929568643, 7929699731, 7929830807, 7929961891, 7930092967, + 7930224079, 7930355159, 7930486261, 7930617361, 7930748443, 7930879543, 7931010617, + 7931141717, 7931272793, 7931403869, 7931534953, 7931666051, 7931797141, 7931928217, + 7932059321, 7932190457, 7932321577, 7932452659, 7932583783, 7932714859, 7932845939, + 7932977023, 7933108109, 7933239247, 7933370323, 7933501399, 7933632491, 7933763597, + 7933894673, 7934025751, 7934156831, 7934287909, 7934419001, 7934550109, 7934681207, + 7934812283, 7934943361, 7935074467, 7935205601, 7935336679, 7935467783, 7935598859, + 7935729961, 7935861127, 7935992203, 7936123309, 7936254407, 7936385563, 7936516667, + 7936647749, 7936778827, 7936909927, 7937041003, 7937172077, 7937303149, 7937434273, + 7937565347, 7937696449, 7937827529, 7937958601, 7938089729, 7938220813, 7938351919, + 7938483029, 7938614107, 7938745211, 7938876317, 7939007393, 7939138469, 7939269551, + 7939400633, 7939531711, 7939662793, 7939793879, 7939924957, 7940056031, 7940187107, + 7940318201, 7940449351, 7940580433, 7940711507, 7940842601, 7940973679, 7941104783, + 7941235859, 7941366941, 7941498013, 7941629089, 7941760181, 7941891253, 7942022377, + 7942153511, 7942284589, 7942415681, 7942546753, 7942677851, 7942808957, 7942940051, + 7943071127, 7943202209, 7943333327, 7943464409, 7943595493, 7943726621, 7943857693, + 7943988797, 7944119881, 7944250957, 7944382093, 7944513167, 7944644261, 7944775351, + 7944906427, 7945037521, 7945168601, 7945299683, 7945430771, 7945561843, 7945692941, + 7945824023, 7945955119, 7946086199, 7946217281, 7946348387, 7946479477, 7946610563, + 7946741639, 7946872763, 7947003839, 7947134929, 7947266003, 7947397093, 7947528181, + 7947659257, 7947790337, 7947921473, 7948052579, 7948183681, 7948314757, 7948445833, + 7948576943, 7948708123, 7948839211, 7948970311, 7949101387, 7949232481, 7949363563, + 7949494639, 7949625727, 7949756827, 7949887903, 7950018983, 7950150083, 7950281159, + 7950412237, 7950543311, 7950674399, 7950805517, 7950936619, 7951067701, 7951198789, + 7951329889, 7951460963, 7951592083, 7951723159, 7951854233, 7951985333, 7952116421, + 7952247521, 7952378611, 7952509699, 7952640799, 7952771873, 7952902949, 7953034031, + 7953165137, 7953296227, 7953427309, 7953558391, 7953689467, 7953820541, 7953951613, + 7954082713, 7954213801, 7954344877, 7954475981, 7954607057, 7954738133, 7954869229, + 7955000309, 7955131397, 7955262473, 7955393581, 7955524691, 7955655779, 7955786873, + 7955917969, 7956049091, 7956180209, 7956311281, 7956442453, 7956573533, 7956704611, + 7956835693, 7956966767, 7957097839, 7957228919, 7957360063, 7957491203, 7957622279, + 7957753361, 7957884479, 7958015551, 7958146633, 7958277721, 7958408797, 7958539871, + 7958670943, 7958802029, 7958933111, 7959064213, 7959195311, 7959326413, 7959457507, + 7959588583, 7959719711, 7959850783, 7959981877, 7960112959, 7960244053, 7960375127, + 7960506221, 7960637297, 7960768373, 7960899461, 7961030551, 7961161639, 7961292727, + 7961423801, 7961554889, 7961685961, 7961817053, 7961948129, 7962079249, 7962210329, + 7962341449, 7962472549, 7962603641, 7962734743, 7962865829, 7962996931, 7963128023, + 7963259149, 7963390243, 7963521329, 7963652401, 7963783493, 7963914593, 7964045737, + 7964176817, 7964307893, 7964438971, 7964570051, 7964701207, 7964832287, 7964963371, + 7965094447, 7965225539, 7965356629, 7965487723, 7965618799, 7965749879, 7965880957, + 7966012037, 7966143109, 7966274189, 7966405273, 7966536359, 7966667441, 7966798549, + 7966929643, 7967060723, 7967191807, 7967322943, 7967454037, 7967585123, 7967716243, + 7967847331, 7967978443, 7968109519, 7968240619, 7968371701, 7968502783, 7968633859, + 7968764933, 7968896017, 7969027103, 7969158191, 7969289299, 7969420409, 7969551487, + 7969682573, 7969813667, 7969944739, 7970075837, 7970206921, 7970337997, 7970469113, + 7970600191, 7970731267, 7970862343, 7970993453, 7971124529, 7971255631, 7971386729, + 7971517817, 7971648899, 7971779987, 7971911069, 7972042151, 7972173233, 7972304323, + 7972435409, 7972566487, 7972697563, 7972828639, 7972959737, 7973090809, 7973221909, + 7973353027, 7973484107, 7973615191, 7973746289, 7973877367, 7974008443, 7974139543, + 7974270653, 7974401731, 7974532829, 7974663901, 7974795001, 7974926093, 7975057171, + 7975188283, 7975319381, 7975450463, 7975581541, 7975712653, 7975843727, 7975974821, + 7976105911, 7976236991, 7976368067, 7976499143, 7976630267, 7976761349, 7976892421, + 7977023501, 7977154667, 7977285749, 7977416849, 7977547939, 7977679019, 7977810109, + 7977941197, 7978072343, 7978203437, 7978334519, 7978465603, 7978596701, 7978727777, + 7978858873, 7978989983, 7979121067, 7979252167, 7979383249, 7979514373, 7979645449, + 7979776529, 7979907601, 7980038699, 7980169789, 7980300877, 7980431957, 7980563053, + 7980694147, 7980825221, 7980956303, 7981087379, 7981218481, 7981349581, 7981480669, + 7981611767, 7981742849, 7981873961, 7982005043, 7982136143, 7982267219, 7982398301, + 7982529377, 7982660501, 7982791639, 7982922719, 7983053803, 7983184897, 7983315983, + 7983447067, 7983578143, 7983709249, 7983840323, 7983971417, 7984102517, 7984233619, + 7984364761, 7984495853, 7984626931, 7984758013, 7984889123, 7985020201, 7985151301, + 7985282387, 7985413459, 7985544563, 7985675651, 7985806753, 7985937851, 7986068957, + 7986200071, 7986331187, 7986462269, 7986593341, 7986724433, 7986855529, 7986986621, + 7987117711, 7987248803, 7987379887, 7987510961, 7987642037, 7987773113, 7987904219, + 7988035303, 7988166379, 7988297453, 7988428529, 7988559637, 7988690761, 7988821901, + 7988953019, 7989084107, 7989215183, 7989346259, 7989477343, 7989608441, 7989739547, + 7989870631, 7990001791, 7990132877, 7990263949, 7990395031, 7990526123, 7990657211, + 7990788293, 7990919369, 7991050453, 7991181553, 7991312627, 7991443703, 7991574791, + 7991705867, 7991836967, 7991968057, 7992099149, 7992230237, 7992361331, 7992492419, + 7992623567, 7992754657, 7992885737, 7993016809, 7993147913, 7993278991, 7993410071, + 7993541189, 7993672283, 7993803361, 7993934437, 7994065549, 7994196697, 7994327773, + 7994458853, 7994589937, 7994721023, 7994852143, 7994983223, 7995114299, 7995245383, + 7995376481, 7995507577, 7995638669, 7995769741, 7995900833, 7996031917, 7996163009, + 7996294087, 7996425161, 7996556261, 7996687337, 7996818437, 7996949531, 7997080603, + 7997211707, 7997342783, 7997473877, 7997604961, 7997736041, 7997867123, 7997998241, + 7998129329, 7998260423, 7998391507, 7998522589, 7998653671, 7998784747, 7998915907, + 7999046981, 7999178053, 7999309139, 7999440257, 7999571353, 7999702463, 7999833547, + 7999964629, 8000095729, 8000226847, 8000357941, 8000489041, 8000620139, 8000751221, + 8000882339, 8001013451, 8001144533, 8001275657, 8001406729, 8001537809, 8001668887, + 8001799969, 8001931051, 8002062137, 8002193209, 8002324301, 8002455379, 8002586461, + 8002717609, 8002848691, 8002979783, 8003110883, 8003241977, 8003373073, 8003504149, + 8003635223, 8003766301, 8003897399, 8004028481, 8004159557, 8004290629, 8004421703, + 8004552817, 8004683957, 8004815081, 8004946211, 8005077313, 8005208417, 8005339501, + 8005470607, 8005601693, 8005732793, 8005863911, 8005995017, 8006126131, 8006257213, + 8006388307, 8006519441, 8006650537, 8006781661, 8006912737, 8007043817, 8007174893, + 8007305981, 8007437057, 8007568139, 8007699223, 8007830309, 8007961397, 8008092493, + 8008223581, 8008354681, 8008485791, 8008616867, 8008747963, 8008879079, 8009010161, + 8009141237, 8009272309, 8009403383, 8009534461, 8009665589, 8009796673, 8009927749, + 8010058853, 8010189937, 8010321019, 8010452113, 8010583193, 8010714269, 8010845351, + 8010976451, 8011107553, 8011238639, 8011369721, 8011500817, 8011631893, 8011762999, + 8011894081, 8012025157, 8012156309, 8012287399, 8012418493, 8012549591, 8012680667, + 8012811743, 8012942831, 8013073903, 8013205001, 8013336109, 8013467183, 8013598309, + 8013729401, 8013860497, 8013991577, 8014122667, 8014253771, 8014384843, 8014515919, + 8014647007, 8014778087, 8014909171, 8015040259, 8015171347, 8015302457, 8015433541, + 8015564647, 8015695763, 8015826851, 8015957923, 8016089017, 8016220097, 8016351169, + 8016482321, 8016613427, 8016744511, 8016875627, 8017006729, 8017137811, 8017268923, + 8017400003, 8017531103, 8017662181, 8017793281, 8017924373, 8018055509, 8018186623, + 8018317717, 8018448793, 8018579887, 8018710963, 8018842037, 8018973113, 8019104189, + 8019235271, 8019366349, 8019497449, 8019628531, 8019759637, 8019890789, 8020021901, + 8020152979, 8020284079, 8020415209, 8020546283, 8020677359, 8020808507, 8020939621, + 8021070731, 8021201803, 8021332903, 8021463977, 8021595059, 8021726161, 8021857237, + 8021988313, 8022119393, 8022250487, 8022381569, 8022512711, 8022643789, 8022774869, + 8022906007, 8023037081, 8023168157, 8023299391, 8023430477, 8023561549, 8023692637, + 8023823711, 8023954849, 8024085929, 8024217017, 8024348089, 8024479181, 8024610257, + 8024741341, 8024872417, 8025003499, 8025134603, 8025265691, 8025396767, 8025527863, + 8025658951, 8025790051, 8025921131, 8026052249, 8026183349, 8026314433, 8026445513, + 8026576609, 8026707701, 8026838789, 8026969861, 8027100973, 8027232067, 8027363189, + 8027494261, 8027625391, 8027756533, 8027887607, 8028018679, 8028149761, 8028280837, + 8028411967, 8028543049, 8028674231, 8028805303, 8028936413, 8029067503, 8029198603, + 8029329689, 8029460783, 8029591877, 8029722959, 8029854067, 8029985141, 8030116229, + 8030247319, 8030378413, 8030509577, 8030640661, 8030771741, 8030902819, 8031033911, + 8031164989, 8031296089, 8031427171, 8031558257, 8031689371, 8031820451, 8031951523, + 8032082623, 8032213727, 8032344811, 8032475917, 8032606993, 8032738069, 8032869151, + 8033000233, 8033131307, 8033262427, 8033393513, 8033524627, 8033655701, 8033786797, + 8033917889, 8034048961, 8034180041, 8034311183, 8034442259, 8034573353, 8034704453, + 8034835531, 8034966607, 8035097687, 8035228807, 8035359881, 8035491007, 8035622107, + 8035753217, 8035884313, 8036015411, 8036146537, 8036277617, 8036408707, 8036539811, + 8036670911, 8036802029, 8036933137, 8037064223, 8037195319, 8037326393, 8037457469, + 8037588541, 8037719621, 8037850697, 8037981799, 8038112881, 8038243991, 8038375073, + 8038506169, 8038637267, 8038768357, 8038899431, 8039030507, 8039161579, 8039292671, + 8039423771, 8039554867, 8039685959, 8039817043, 8039948123, 8040079207, 8040210289, + 8040341377, 8040472471, 8040603551, 8040734623, 8040865697, 8040996797, 8041127873, + 8041258987, 8041390127, 8041521217, 8041652299, 8041783391, 8041914473, 8042045549, + 8042176669, 8042307743, 8042438861, 8042569961, 8042701033, 8042832121, 8042963239, + 8043094327, 8043225403, 8043356513, 8043487597, 8043618677, 8043749783, 8043880903, + 8044011991, 8044143077, 8044274209, 8044405301, 8044536389, 8044667467, 8044798579, + 8044929667, 8045060743, 8045191841, 8045322917, 8045454047, 8045585143, 8045716219, + 8045847301, 8045978383, 8046109459, 8046240541, 8046371629, 8046502759, 8046633863, + 8046764939, 8046896023, 8047027141, 8047158221, 8047289293, 8047420387, 8047551487, + 8047682593, 8047813691, 8047944769, 8048075863, 8048206961, 8048338061, 8048469133, + 8048600267, 8048731351, 8048862487, 8048993591, 8049124703, 8049255791, 8049386881, + 8049517981, 8049649057, 8049780139, 8049911239, 8050042313, 8050173487, 8050304569, + 8050435661, 8050566751, 8050697857, 8050828931, 8050960009, 8051091133, 8051222213, + 8051353301, 8051484373, 8051615447, 8051746519, 8051877593, 8052008669, 8052139741, + 8052270823, 8052401933, 8052533029, 8052664121, 8052795239, 8052926339, 8053057421, + 8053188497, 8053319587, 8053450679, 8053581761, 8053712833, 8053843961, 8053975051, + 8054106161, 8054237239, 8054368327, 8054499443, 8054630531, 8054761613, 8054892731, + 8055023813, 8055154957, 8055286033, 8055417107, 8055548191, 8055679267, 8055810401, + 8055941477, 8056072571, 8056203653, 8056334753, 8056465919, 8056596991, 8056728073, + 8056859149, 8056990247, 8057121343, 8057252417, 8057383553, 8057514653, 8057645731, + 8057776813, 8057907887, 8058038987, 8058170059, 8058301159, 8058432253, 8058563369, + 8058694451, 8058825529, 8058956617, 8059087723, 8059218803, 8059349911, 8059480997, + 8059612081, 8059743161, 8059874257, 8060005339, 8060136421, 8060267519, 8060398597, + 8060529689, 8060660779, 8060791877, 8060922949, 8061054041, 8061185117, 8061316231, + 8061447313, 8061578411, 8061709493, 8061840601, 8061971677, 8062102751, 8062233841, + 8062364953, 8062496047, 8062627127, 8062758211, 8062889309, 8063020387, 8063151461, + 8063282561, 8063413639, 8063544721, 8063675797, 8063806871, 8063937967, 8064069061, + 8064200147, 8064331267, 8064462379, 8064593461, 8064724543, 8064855619, 8064986749, + 8065117829, 8065248913, 8065380049, 8065511141, 8065642229, 8065773319, 8065904419, + 8066035499, 8066166571, 8066297651, 8066428751, 8066559833, 8066690911, 8066821999, + 8066953117, 8067084197, 8067215357, 8067346457, 8067477569, 8067608707, 8067739787, + 8067870883, 8068001983, 8068133057, 8068264129, 8068395233, 8068526317, 8068657403, + 8068788499, 8068919609, 8069050751, 8069181823, 8069312899, 8069444023, 8069575123, + 8069706269, 8069837353, 8069968427, 8070099511, 8070230587, 8070361667, 8070492751, + 8070623833, 8070754931, 8070886003, 8071017083, 8071148177, 8071279253, 8071410343, + 8071541437, 8071672517, 8071803613, 8071934687, 8072065759, 8072196833, 8072327909, + 8072458987, 8072590087, 8072721193, 8072852269, 8072983381, 8073114463, 8073245561, + 8073376681, 8073507763, 8073638899, 8073769987, 8073901061, 8074032149, 8074163257, + 8074294337, 8074425433, 8074556513, 8074687601, 8074818673, 8074949749, 8075080823, + 8075211899, 8075342971, 8075474051, 8075605129, 8075736209, 8075867339, 8075998417, + 8076129491, 8076260573, 8076391651, 8076522733, 8076653807, 8076784907, 8076916007, + 8077047107, 8077178191, 8077309267, 8077440361, 8077571459, 8077702531, 8077833619, + 8077964707, 8078095789, 8078226881, 8078357957, 8078489033, 8078620111, 8078751209, + 8078882309, 8079013403, 8079144487, 8079275579, 8079406679, 8079537787, 8079668887, + 8079799969, 8079931091, 8080062191, 8080193291, 8080324363, 8080455437, 8080586509, + 8080717583, 8080848691, 8080979779, 8081110901, 8081242019, 8081373107, 8081504209, + 8081635369, 8081766457, 8081897533, 8082028607, 8082159689, 8082290779, 8082421873, + 8082552971, 8082684067, 8082815161, 8082946241, 8083077319, 8083208423, 8083339501, + 8083470583, 8083601717, 8083732801, 8083863913, 8083995011, 8084126123, 8084257201, + 8084388287, 8084519363, 8084650463, 8084781539, 8084912629, 8085043727, 8085174809, + 8085305881, 8085436973, 8085568063, 8085699143, 8085830231, 8085961327, 8086092407, + 8086223491, 8086354603, 8086485683, 8086616803, 8086747883, 8086878967, 8087010073, + 8087141177, 8087272399, 8087403487, 8087534561, 8087665637, 8087796713, 8087927789, + 8088058861, 8088189937, 8088321061, 8088452213, 8088583291, 8088714379, 8088845461, + 8088976543, 8089107623, 8089238737, 8089369819, 8089500893, 8089631981, 8089763119, + 8089894231, 8090025347, 8090156429, 8090287511, 8090418587, 8090549681, 8090680769, + 8090811871, 8090942947, 8091074071, 8091205153, 8091336233, 8091467311, 8091598387, + 8091729497, 8091860597, 8091991697, 8092122799, 8092253933, 8092385023, 8092516147, + 8092647253, 8092778327, 8092909403, 8093040491, 8093171617, 8093302691, 8093433769, + 8093564849, 8093695921, 8093827033, 8093958107, 8094089189, 8094220327, 8094351403, + 8094482519, 8094613609, 8094744727, 8094875801, 8095006873, 8095137971, 8095269047, + 8095400123, 8095531207, 8095662283, 8095793359, 8095924451, 8096055559, 8096186639, + 8096317787, 8096448863, 8096579941, 8096711017, 8096842097, 8096973223, 8097104321, + 8097235441, 8097366547, 8097497641, 8097628727, 8097759833, 8097890909, 8098022003, + 8098153081, 8098284157, 8098415257, 8098546363, 8098677467, 8098808563, 8098939661, + 8099070737, 8099201819, 8099332937, 8099464171, 8099595289, 8099726377, 8099857487, + 8099988583, 8100119663, 8100250757, 8100381859, 8100512969, 8100644077, 8100775157, + 8100906259, 8101037339, 8101168417, 8101299497, 8101430587, 8101561661, 8101692743, + 8101823837, 8101954933, 8102086021, 8102217121, 8102348197, 8102479289, 8102610371, + 8102741473, 8102872573, 8103003751, 8103134863, 8103265943, 8103397061, 8103528137, + 8103659233, 8103790319, 8103921391, 8104052471, 8104183547, 8104314623, 8104445749, + 8104576841, 8104707943, 8104839037, 8104970123, 8105101231, 8105232349, 8105363429, + 8105494513, 8105625589, 8105756663, 8105887763, 8106018871, 8106149999, 8106281089, + 8106412229, 8106543311, 8106674419, 8106805507, 8106936583, 8107067659, 8107198739, + 8107329817, 8107460899, 8107591997, 8107723097, 8107854187, 8107985297, 8108116381, + 8108247467, 8108378539, 8108509657, 8108640733, 8108771833, 8108902927, 8109034009, + 8109165089, 8109296171, 8109427247, 8109558329, 8109689407, 8109820487, 8109951601, + 8110082681, 8110213759, 8110344911, 8110476019, 8110607101, 8110738189, 8110869287, + 8111000467, 8111131541, 8111262613, 8111393701, 8111524777, 8111655857, 8111786989, + 8111918107, 8112049189, 8112180269, 8112311351, 8112442427, 8112573503, 8112704641, + 8112835729, 8112966803, 8113097879, 8113228951, 8113360049, 8113491121, 8113622197, + 8113753339, 8113884413, 8114015513, 8114146619, 8114277707, 8114408791, 8114539883, + 8114670961, 8114802089, 8114933171, 8115064247, 8115195331, 8115326407, 8115457487, + 8115588563, 8115719657, 8115850733, 8115981817, 8116112923, 8116243997, 8116375159, + 8116506239, 8116637377, 8116768459, 8116899533, 8117030609, 8117161681, 8117292811, + 8117423917, 8117554997, 8117686111, 8117817187, 8117948309, 8118079423, 8118210509, + 8118341599, 8118472711, 8118603809, 8118734887, 8118865973, 8118997109, 8119128187, + 8119259261, 8119390361, 8119521437, 8119652543, 8119783621, 8119914701, 8120045821, + 8120176901, 8120307973, 8120439071, 8120570191, 8120701271, 8120832347, 8120963419, + 8121094493, 8121225583, 8121356689, 8121487769, 8121618859, 8121749959, 8121881039, + 8122012111, 8122143191, 8122274269, 8122405373, 8122536449, 8122667533, 8122798609, + 8122929691, 8123060773, 8123191849, 8123322979, 8123454077, 8123585153, 8123716243, + 8123847323, 8123978399, 8124109541, 8124240659, 8124371767, 8124502849, 8124633949, + 8124765043, 8124896141, 8125027223, 8125158359, 8125289449, 8125420529, 8125551601, + 8125682683, 8125813757, 8125944829, 8126075921, 8126206993, 8126338111, 8126469187, + 8126600267, 8126731367, 8126862451, 8126993549, 8127124637, 8127255733, 8127386837, + 8127517961, 8127649039, 8127780127, 8127911201, 8128042283, 8128173437, 8128304531, + 8128435663, 8128566739, 8128697833, 8128828921, 8128960009, 8129091109, 8129222183, + 8129353259, 8129484359, 8129615437, 8129746519, 8129877611, 8130008687, 8130139783, + 8130270899, 8130401977, 8130533063, 8130664163, 8130795271, 8130926381, 8131057453, + 8131188539, 8131319617, 8131450709, 8131581833, 8131712917, 8131843997, 8131975073, + 8132106163, 8132237251, 8132368331, 8132499409, 8132630483, 8132761633, 8132892739, + 8133023819, 8133154901, 8133285983, 8133417059, 8133548131, 8133679217, 8133810323, + 8133941411, 8134072537, 8134203611, 8134334699, 8134465817, 8134596919, 8134728013, + 8134859087, 8134990177, 8135121251, 8135252327, 8135383433, 8135514553, 8135645633, + 8135776711, 8135907797, 8136038909, 8136169981, 8136301081, 8136432163, 8136563261, + 8136694339, 8136825427, 8136956501, 8137087577, 8137218679, 8137349771, 8137480853, + 8137611947, 8137743049, 8137874149, 8138005243, 8138136329, 8138267411, 8138398487, + 8138529563, 8138660641, 8138791729, 8138922809, 8139053887, 8139184967, 8139316051, + 8139447133, 8139578221, 8139709337, 8139840463, 8139971549, 8140102627, 8140233701, + 8140364819, 8140495943, 8140627051, 8140758163, 8140889257, 8141020337, 8141151413, + 8141282497, 8141413597, 8141544673, 8141675749, 8141806837, 8141937913, 8142068989, + 8142200071, 8142331147, 8142462259, 8142593339, 8142724411, 8142855541, 8142986627, + 8143117721, 8143248793, 8143379911, 8143510987, 8143642063, 8143773137, 8143904227, + 8144035307, 8144166391, 8144297479, 8144428597, 8144559691, 8144690767, 8144821843, + 8144952941, 8145084023, 8145215153, 8145346229, 8145477367, 8145608441, 8145739517, + 8145870617, 8146001767, 8146132843, 8146263919, 8146395013, 8146526107, 8146657241, + 8146788319, 8146919393, 8147050487, 8147181619, 8147312707, 8147443807, 8147574913, + 8147705987, 8147837083, 8147968159, 8148099233, 8148230333, 8148361421, 8148492533, + 8148623611, 8148754693, 8148885779, 8149016881, 8149147997, 8149279097, 8149410187, + 8149541269, 8149672343, 8149803427, 8149934519, 8150065667, 8150196739, 8150327819, + 8150458909, 8150589991, 8150721067, 8150852197, 8150983279, 8151114353, 8151245437, + 8151376511, 8151507589, 8151638717, 8151769837, 8151900917, 8152031989, 8152163069, + 8152294151, 8152425223, 8152556303, 8152687397, 8152818473, 8152949549, 8153080651, + 8153211767, 8153342839, 8153473967, 8153605039, 8153736113, 8153867207, 8153998291, + 8154129367, 8154260459, 8154391573, 8154522653, 8154653729, 8154784801, 8154915877, + 8155047001, 8155178077, 8155309163, 8155440253, 8155571327, 8155702403, 8155833481, + 8155964587, 8156095669, 8156226769, 8156357843, 8156488979, 8156620079, 8156751151, + 8156882231, 8157013313, 8157144449, 8157275543, 8157406639, 8157537769, 8157668843, + 8157799921, 8157931009, 8158062131, 8158193207, 8158324289, 8158455407, 8158586489, + 8158717577, 8158848679, 8158979761, 8159110847, 8159241947, 8159373043, 8159504167, + 8159635261, 8159766341, 8159897413, 8160028489, 8160159563, 8160290647, 8160421721, + 8160552833, 8160683929, 8160815011, 8160946099, 8161077181, 8161208269, 8161339391, + 8161470467, 8161601549, 8161732627, 8161863751, 8161994837, 8162125913, 8162256989, + 8162388061, 8162519147, 8162650229, 8162781323, 8162912399, 8163043477, 8163174553, + 8163305639, 8163436753, 8163567827, 8163698953, 8163830027, 8163961133, 8164092221, + 8164223303, 8164354403, 8164485481, 8164616561, 8164747639, 8164878737, 8165009833, + 8165140961, 8165272039, 8165403157, 8165534233, 8165665331, 8165796413, 8165927501, + 8166058603, 8166189697, 8166320777, 8166451871, 8166582943, 8166714043, 8166845123, + 8166976231, 8167107313, 8167238399, 8167369477, 8167500577, 8167631653, 8167762747, + 8167893829, 8168024903, 8168156023, 8168287139, 8168418217, 8168549299, 8168680423, + 8168811499, 8168942599, 8169073723, 8169204811, 8169335971, 8169467057, 8169598153, + 8169729251, 8169860351, 8169991471, 8170122557, 8170253629, 8170384727, 8170515803, + 8170646923, 8170778023, 8170909129, 8171040221, 8171171317, 8171302423, 8171433511, + 8171564623, 8171695723, 8171826797, 8171957869, 8172089021, 8172220109, 8172351203, + 8172482299, 8172613373, 8172744449, 8172875521, 8173006607, 8173137751, 8173268867, + 8173399957, 8173531033, 8173662113, 8173793191, 8173924267, 8174055347, 8174186443, + 8174317573, 8174448647, 8174579723, 8174710801, 8174841947, 8174973031, 8175104131, + 8175235259, 8175366343, 8175497423, 8175628523, 8175759661, 8175890759, 8176021877, + 8176152967, 8176284049, 8176415129, 8176546223, 8176677329, 8176808401, 8176939483, + 8177070611, 8177201699, 8177332777, 8177463857, 8177594933, 8177726017, 8177857099, + 8177988187, 8178119267, 8178250373, 8178381457, 8178512533, 8178643607, 8178774689, + 8178905783, 8179036891, 8179168021, 8179299101, 8179430173, 8179561259, 8179692347, + 8179823429, 8179954609, 8180085691, 8180216767, 8180347849, 8180478953, 8180610041, + 8180741123, 8180872201, 8181003343, 8181134447, 8181265549, 8181396623, 8181527707, + 8181658783, 8181789877, 8181920953, 8182052029, 8182183111, 8182314247, 8182445329, + 8182576421, 8182707527, 8182838659, 8182969783, 8183100971, 8183232059, 8183363161, + 8183494271, 8183625347, 8183756423, 8183887519, 8184018593, 8184149681, 8184280763, + 8184411857, 8184542929, 8184674009, 8184805147, 8184936269, 8185067353, 8185198451, + 8185329569, 8185460653, 8185591741, 8185722833, 8185853909, 8185985009, 8186116087, + 8186247161, 8186378257, 8186509337, 8186640431, 8186771507, 8186902579, 8187033653, + 8187164729, 8187295807, 8187426883, 8187557981, 8187689089, 8187820187, 8187951259, + 8188082333, 8188213433, 8188344529, 8188475611, 8188606687, 8188737763, 8188868837, + 8188999957, 8189131033, 8189262119, 8189393207, 8189524289, 8189655371, 8189786443, + 8189917517, 8190048589, 8190179677, 8190310811, 8190441901, 8190573019, 8190704099, + 8190835189, 8190966269, 8191097347, 8191228427, 8191359523, 8191490599, 8191621679, + 8191752761, 8191883863, 8192014951, 8192146033, 8192277109, 8192408219, 8192539307, + 8192670383, 8192801467, 8192932591, 8193063667, 8193194743, 8193325817, 8193456889, + 8193587977, 8193719059, 8193850141, 8193981217, 8194112291, 8194243363, 8194374443, + 8194505519, 8194636613, 8194767731, 8194898837, 8195029937, 8195161019, 8195292137, + 8195423209, 8195554357, 8195685467, 8195816539, 8195947651, 8196078739, 8196209851, + 8196340937, 8196472091, 8196603169, 8196734257, 8196865349, 8196996503, 8197127591, + 8197258681, 8197389757, 8197520833, 8197651921, 8197783037, 8197914113, 8198045237, + 8198176333, 8198307419, 8198438519, 8198569661, 8198700733, 8198831843, 8198962949, + 8199094063, 8199225149, 8199356233, 8199487313, 8199618407, 8199749483, 8199880561, + 8200011637, 8200142771, 8200273843, 8200404923, 8200536023, 8200667099, 8200798211, + 8200929313, 8201060419, 8201191499, 8201322587, 8201453671, 8201584751, 8201715833, + 8201846909, 8201977991, 8202109067, 8202240161, 8202371273, 8202502387, 8202633463, + 8202764561, 8202895633, 8203026721, 8203157801, 8203288883, 8203420009, 8203551113, + 8203682203, 8203813291, 8203944389, 8204075483, 8204206567, 8204337703, 8204468803, + 8204599919, 8204730997, 8204862103, 8204993183, 8205124261, 8205255337, 8205386443, + 8205517519, 8205648599, 8205779677, 8205910763, 8206041859, 8206172981, 8206304069, + 8206435151, 8206566257, 8206697333, 8206828429, 8206959571, 8207090653, 8207221793, + 8207352869, 8207483953, 8207615047, 8207746133, 8207877259, 8208008339, 8208139447, + 8208270529, 8208401627, 8208532723, 8208663829, 8208794911, 8208926027, 8209057117, + 8209188193, 8209319273, 8209450351, 8209581437, 8209712543, 8209843651, 8209974757, + 8210105837, 8210236919, 8210368003, 8210499091, 8210630167, 8210761241, 8210892317, + 8211023423, 8211154499, 8211285571, 8211416651, 8211547733, 8211678817, 8211809917, + 8211941009, 8212072087, 8212203163, 8212334237, 8212465337, 8212596421, 8212727521, + 8212858603, 8212989677, 8213120753, 8213251829, 8213382911, 8213514013, 8213645093, + 8213776183, 8213907259, 8214038347, 8214169459, 8214300539, 8214431647, 8214562729, + 8214693803, 8214824887, 8214955963, 8215087073, 8215218149, 8215349221, 8215480297, + 8215611373, 8215742449, 8215873531, 8216004619, 8216135713, 8216266811, 8216397899, + 8216529059, 8216660131, 8216791223, 8216922323, 8217053419, 8217184499, 8217315583, + 8217446683, 8217577777, 8217708871, 8217839953, 8217971039, 8218102117, 8218233203, + 8218364279, 8218495379, 8218626457, 8218757543, 8218888621, 8219019701, 8219150783, + 8219281879, 8219412953, 8219544031, 8219675111, 8219806223, 8219937343, 8220068449, + 8220199531, 8220330611, 8220461699, 8220592819, 8220723913, 8220854987, 8220986113, + 8221117187, 8221248311, 8221379399, 8221510523, 8221641619, 8221772707, 8221903831, + 8222034937, 8222166031, 8222297107, 8222428213, 8222559299, 8222690381, 8222821459, + 8222952533, 8223083623, 8223214697, 8223345773, 8223476881, 8223607957, 8223739067, + 8223870143, 8224001231, 8224132303, 8224263391, 8224394471, 8224525553, 8224656637, + 8224787713, 8224918787, 8225049887, 8225180981, 8225312083, 8225443181, 8225574257, + 8225705353, 8225836441, 8225967557, 8226098633, 8226229741, 8226360833, 8226491909, + 8226623029, 8226754157, 8226885229, 8227016309, 8227147447, 8227278529, 8227409609, + 8227540681, 8227671769, 8227802867, 8227933939, 8228065019, 8228196101, 8228327227, + 8228458321, 8228589401, 8228720483, 8228851601, 8228982677, 8229113759, 8229244867, + 8229375943, 8229507017, 8229638117, 8229769199, 8229900299, 8230031371, 8230162453, + 8230293557, 8230424687, 8230555771, 8230686847, 8230817939, 8230949011, 8231080129, + 8231211221, 8231342293, 8231473373, 8231604449, 8231735531, 8231866639, 8231997713, + 8232128857, 8232259943, 8232391019, 8232522121, 8232653201, 8232784283, 8232915359, + 8233046431, 8233177529, 8233308619, 8233439737, 8233570811, 8233701893, 8233832983, + 8233964077, 8234095157, 8234226283, 8234357387, 8234488469, 8234619541, 8234750681, + 8234881817, 8235012913, 8235144059, 8235275179, 8235406261, 8235537391, 8235668477, + 8235799553, 8235930631, 8236061711, 8236192799, 8236323911, 8236455013, 8236586117, + 8236717193, 8236848281, 8236979353, 8237110457, 8237241563, 8237372659, 8237503759, + 8237634857, 8237765929, 8237897021, 8238028109, 8238159211, 8238290293, 8238421381, + 8238552463, 8238683549, 8238814627, 8238945703, 8239076779, 8239207859, 8239338931, + 8239470013, 8239601087, 8239732177, 8239863299, 8239994377, 8240125477, 8240256551, + 8240387627, 8240518703, 8240649779, 8240780851, 8240911927, 8241043001, 8241174077, + 8241305153, 8241436267, 8241567353, 8241698453, 8241829529, 8241960647, 8242091801, + 8242222889, 8242353961, 8242485049, 8242616143, 8242747223, 8242878313, 8243009429, + 8243140517, 8243271601, 8243402759, 8243533843, 8243664917, 8243796007, 8243927093, + 8244058177, 8244189263, 8244320351, 8244451463, 8244582559, 8244713639, 8244844721, + 8244975803, 8245106911, 8245237997, 8245369091, 8245500269, 8245631351, 8245762463, + 8245893559, 8246024669, 8246155759, 8246286833, 8246417951, 8246549029, 8246680111, + 8246811187, 8246942281, 8247073399, 8247204487, 8247335597, 8247466697, 8247597773, + 8247728893, 8247859993, 8247991091, 8248122163, 8248253383, 8248384457, 8248515533, + 8248646611, 8248777687, 8248908791, 8249039921, 8249171003, 8249302081, 8249433173, + 8249564249, 8249695331, 8249826421, 8249957509, 8250088619, 8250219739, 8250350821, + 8250481901, 8250612977, 8250744077, 8250875179, 8251006289, 8251137379, 8251268497, + 8251399601, 8251530713, 8251661833, 8251792937, 8251924111, 8252055211, 8252186309, + 8252317391, 8252448557, 8252579639, 8252710721, 8252841799, 8252972891, 8253103981, + 8253235069, 8253366169, 8253497269, 8253628373, 8253759457, 8253890531, 8254021609, + 8254152701, 8254283797, 8254414871, 8254545947, 8254677083, 8254808183, 8254939307, + 8255070413, 8255201489, 8255332609, 8255463703, 8255594819, 8255725897, 8255856971, + 8255988043, 8256119129, 8256250213, 8256381299, 8256512389, 8256643469, 8256774551, + 8256905633, 8257036727, 8257167799, 8257298879, 8257429981, 8257561061, 8257692169, + 8257823261, 8257954373, 8258085481, 8258216609, 8258347711, 8258478859, 8258609999, + 8258741107, 8258872201, 8259003281, 8259134357, 8259265457, 8259396553, 8259527641, + 8259658717, 8259789793, 8259920899, 8260051973, 8260183051, 8260314133, 8260445243, + 8260576319, 8260707401, 8260838473, 8260969573, 8261100677, 8261231761, 8261362859, + 8261493943, 8261625019, 8261756117, 8261887189, 8262018293, 8262149377, 8262280463, + 8262411539, 8262542611, 8262673723, 8262804829, 8262935911, 8263066991, 8263198067, + 8263329167, 8263460243, 8263591331, 8263722449, 8263853567, 8263984643, 8264115731, + 8264246827, 8264377903, 8264508977, 8264640053, 8264771143, 8264902229, 8265033319, + 8265164393, 8265295483, 8265426557, 8265557639, 8265688771, 8265819967, 8265951077, + 8266082197, 8266213309, 8266344389, 8266475501, 8266606573, 8266737649, 8266868761, + 8266999847, 8267130943, 8267262023, 8267393119, 8267524231, 8267655311, 8267786411, + 8267917501, 8268048577, 8268179657, 8268310747, 8268441821, 8268572941, 8268704039, + 8268835117, 8268966191, 8269097359, 8269228439, 8269359529, 8269490699, 8269621777, + 8269752857, 8269883929, 8270015009, 8270146091, 8270277163, 8270408261, 8270539357, + 8270670461, 8270801551, 8270932661, 8271063743, 8271194831, 8271325957, 8271457037, + 8271588161, 8271719233, 8271850319, 8271981391, 8272112477, 8272243561, 8272374659, + 8272505737, 8272636819, 8272767917, 8272899017, 8273030119, 8273161223, 8273292331, + 8273423407, 8273554517, 8273685617, 8273816689, 8273947763, 8274078853, 8274210001, + 8274341083, 8274472163, 8274603251, 8274734323, 8274865409, 8274996547, 8275127633, + 8275258781, 8275389883, 8275520989, 8275652069, 8275783151, 8275914239, 8276045329, + 8276176451, 8276307551, 8276438623, 8276569703, 8276700781, 8276831869, 8276962961, + 8277094057, 8277225137, 8277356237, 8277487333, 8277618439, 8277749533, 8277880609, + 8278011683, 8278142783, 8278273877, 8278404971, 8278536047, 8278667153, 8278798247, + 8278929319, 8279060417, 8279191507, 8279322587, 8279453717, 8279584801, 8279715877, + 8279846969, 8279978041, 8280109139, 8280240211, 8280371287, 8280502369, 8280633457, + 8280764551, 8280895627, 8281026703, 8281157789, 8281288867, 8281419989, 8281551077, + 8281682161, 8281813273, 8281944347, 8282075423, 8282206531, 8282337617, 8282468729, + 8282599817, 8282730943, 8282862061, 8282993161, 8283124237, 8283255311, 8283386387, + 8283517483, 8283648577, 8283779729, 8283910847, 8284041919, 8284172993, 8284304071, + 8284435177, 8284566299, 8284697381, 8284828463, 8284959563, 8285090647, 8285221723, + 8285352811, 8285483887, 8285614963, 8285746037, 8285877109, 8286008219, 8286139291, + 8286270401, 8286401483, 8286532561, 8286663647, 8286794731, 8286925807, 8287056919, + 8287188079, 8287319191, 8287450289, 8287581373, 8287712497, 8287843579, 8287974701, + 8288105789, 8288236897, 8288367973, 8288499049, 8288630123, 8288761223, 8288892347, + 8289023419, 8289154493, 8289285593, 8289416687, 8289547807, 8289678889, 8289809971, + 8289941069, 8290072159, 8290203247, 8290334323, 8290465397, 8290596469, 8290727551, + 8290858627, 8290989703, 8291120777, 8291251867, 8291383003, 8291514097, 8291645179, + 8291776261, 8291907341, 8292038413, 8292169511, 8292300593, 8292431669, 8292562741, + 8292693821, 8292824923, 8292956003, 8293087081, 8293218161, 8293349249, 8293480337, + 8293611427, 8293742507, 8293873603, 8294004707, 8294135791, 8294266873, 8294397953, + 8294529037, 8294660119, 8294791199, 8294922281, 8295053369, 8295184463, 8295315541, + 8295446617, 8295577729, 8295708851, 8295839941, 8295971059, 8296102147, 8296233221, + 8296364387, 8296495463, 8296626563, 8296757653, 8296888757, 8297019851, 8297150923, + 8297282011, 8297413087, 8297544163, 8297675261, 8297806339, 8297937437, 8298068549, + 8298199627, 8298330727, 8298461819, 8298592943, 8298724037, 8298855119, 8298986191, + 8299117313, 8299248409, 8299379483, 8299510559, 8299641653, 8299772743, 8299903837, + 8300034913, 8300165999, 8300297099, 8300428183, 8300559283, 8300690393, 8300821511, + 8300952589, 8301083671, 8301214759, 8301345859, 8301476959, 8301608059, 8301739139, + 8301870251, 8302001327, 8302132411, 8302263509, 8302394593, 8302525747, 8302656829, + 8302787923, 8302919071, 8303050159, 8303181247, 8303312323, 8303443427, 8303574527, + 8303705609, 8303836819, 8303967899, 8304099007, 8304230083, 8304361183, 8304492271, + 8304623347, 8304754433, 8304885529, 8305016669, 8305147757, 8305278829, 8305409911, + 8305540993, 8305672091, 8305803167, 8305934243, 8306065331, 8306196407, 8306327509, + 8306458583, 8306589677, 8306720753, 8306851859, 8306982947, 8307114077, 8307245171, + 8307376243, 8307507337, 8307638419, 8307769501, 8307900577, 8308031707, 8308162789, + 8308293869, 8308424959, 8308556051, 8308687147, 8308818247, 8308949347, 8309080457, + 8309211529, 8309342623, 8309473759, 8309604857, 8309735953, 8309867029, 8309998171, + 8310129257, 8310260353, 8310391429, 8310522533, 8310653621, 8310784733, 8310915827, + 8311046903, 8311177981, 8311309067, 8311440227, 8311571329, 8311702439, 8311833571, + 8311964657, 8312095733, 8312226817, 8312357891, 8312488973, 8312620051, 8312751127, + 8312882209, 8313013297, 8313144401, 8313275473, 8313406559, 8313537637, 8313668717, + 8313799817, 8313930901, 8314061983, 8314193123, 8314324201, 8314455283, 8314586377, + 8314717457, 8314848547, 8314979689, 8315110781, 8315241859, 8315372939, 8315504063, + 8315635151, 8315766241, 8315897339, 8316028421, 8316159493, 8316290569, 8316421741, + 8316552883, 8316683957, 8316815041, 8316946117, 8317077191, 8317208303, 8317339379, + 8317470461, 8317601603, 8317732693, 8317863779, 8317994911, 8318125997, 8318257111, + 8318388191, 8318519299, 8318650381, 8318781517, 8318912597, 8319043679, 8319174803, + 8319305881, 8319436969, 8319568079, 8319699151, 8319830231, 8319961369, 8320092463, + 8320223663, 8320354751, 8320485881, 8320616959, 8320748069, 8320879159, 8321010239, + 8321141327, 8321272423, 8321403509, 8321534593, 8321665669, 8321796781, 8321927881, + 8322059003, 8322190087, 8322321181, 8322452261, 8322583333, 8322714461, 8322845539, + 8322976621, 8323107697, 8323238797, 8323369871, 8323500959, 8323632133, 8323763209, + 8323894283, 8324025361, 8324156483, 8324287597, 8324418703, 8324549791, 8324680879, + 8324811953, 8324943059, 8325074137, 8325205223, 8325336311, 8325467383, 8325598469, + 8325729541, 8325860617, 8325991717, 8326122853, 8326253927, 8326385017, 8326516109, + 8326647211, 8326778287, 8326909369, 8327040467, 8327171569, 8327302667, 8327433743, + 8327564831, 8327695903, 8327827063, 8327958137, 8328089249, 8328220333, 8328351419, + 8328482497, 8328613571, 8328744647, 8328875743, 8329006823, 8329137923, 8329269029, + 8329400119, 8329531207, 8329662317, 8329793419, 8329924507, 8330055599, 8330186671, + 8330317789, 8330448877, 8330579953, 8330711069, 8330842141, 8330973227, 8331104317, + 8331235403, 8331366481, 8331497563, 8331628637, 8331759719, 8331890813, 8332021889, + 8332152977, 8332284049, 8332415159, 8332546241, 8332677317, 8332808399, 8332939499, + 8333070589, 8333201693, 8333332769, 8333463841, 8333594923, 8333726081, 8333857153, + 8333988239, 8334119341, 8334250423, 8334381533, 8334512609, 8334643687, 8334774787, + 8334905879, 8335036987, 8335168063, 8335299149, 8335430227, 8335561303, 8335692377, + 8335823449, 8335954567, 8336085689, 8336216771, 8336347843, 8336478937, 8336610067, + 8336741141, 8336872213, 8337003289, 8337134371, 8337265459, 8337396577, 8337527663, + 8337658739, 8337789833, 8337920909, 8338052029, 8338183109, 8338314263, 8338445377, + 8338576457, 8338707541, 8338838621, 8338969697, 8339100793, 8339231881, 8339362957, + 8339494043, 8339625143, 8339756219, 8339887301, 8340018397, 8340149471, 8340280547, + 8340411619, 8340542699, 8340673799, 8340804917, 8340936001, 8341067083, 8341198157, + 8341329229, 8341460317, 8341591397, 8341722481, 8341853579, 8341984657, 8342115731, + 8342246821, 8342377907, 8342509001, 8342640149, 8342771263, 8342902349, 8343033421, + 8343164513, 8343295589, 8343426667, 8343557749, 8343688853, 8343819937, 8343951029, + 8344082107, 8344213183, 8344344287, 8344475369, 8344606453, 8344737551, 8344868633, + 8344999753, 8345130851, 8345261923, 8345393033, 8345524163, 8345655277, 8345786357, + 8345917451, 8346048551, 8346179641, 8346310727, 8346441841, 8346572917, 8346704057, + 8346835153, 8346966227, 8347097303, 8347228457, 8347359557, 8347490629, 8347621739, + 8347752823, 8347883903, 8348014993, 8348146069, 8348277143, 8348408219, 8348539301, + 8348670413, 8348801537, 8348932619, 8349063703, 8349194779, 8349325891, 8349457001, + 8349588119, 8349719207, 8349850291, 8349981389, 8350112471, 8350243543, 8350374623, + 8350505699, 8350636849, 8350767959, 8350899079, 8351030221, 8351161307, 8351292409, + 8351423497, 8351554583, 8351685679, 8351816761, 8351947847, 8352078953, 8352210029, + 8352341149, 8352472223, 8352603299, 8352734393, 8352865483, 8352996559, 8353127639, + 8353258759, 8353389871, 8353520957, 8353652077, 8353783157, 8353914241, 8354045317, + 8354176433, 8354307527, 8354438623, 8354569721, 8354700917, 8354832023, 8354963101, + 8355094199, 8355225349, 8355356423, 8355487501, 8355618577, 8355749651, 8355880727, + 8356011817, 8356142933, 8356274029, 8356405121, 8356536211, 8356667309, 8356798393, + 8356929491, 8357060581, 8357191681, 8357322761, 8357453891, 8357584969, 8357716049, + 8357847187, 8357978261, 8358109393, 8358240493, 8358371569, 8358502673, 8358633749, + 8358764849, 8358895999, 8359027081, 8359158229, 8359289329, 8359420411, 8359551493, + 8359682599, 8359813681, 8359944779, 8360075861, 8360206937, 8360338037, 8360469113, + 8360600189, 8360731261, 8360862359, 8360993437, 8361124517, 8361255593, 8361386669, + 8361517757, 8361648847, 8361779941, 8361911017, 8362042103, 8362173199, 8362304303, + 8362435391, 8362566467, 8362697593, 8362828667, 8362959739, 8363090831, 8363221903, + 8363353049, 8363484139, 8363615237, 8363746319, 8363877419, 8364008501, 8364139577, + 8364270721, 8364401797, 8364532921, 8364664051, 8364795143, 8364926233, 8365057313, + 8365188407, 8365319483, 8365450573, 8365581659, 8365712753, 8365843859, 8365974937, + 8366106029, 8366237119, 8366368217, 8366499299, 8366630417, 8366761499, 8366892587, + 8367023683, 8367154759, 8367285853, 8367416933, 8367548027, 8367679141, 8367810233, + 8367941353, 8368072439, 8368203521, 8368334603, 8368465681, 8368596763, 8368727849, + 8368858931, 8368990037, 8369121133, 8369252209, 8369383291, 8369514401, 8369645489, + 8369776561, 8369907659, 8370038773, 8370169877, 8370300977, 8370432071, 8370563153, + 8370694229, 8370825319, 8370956411, 8371087493, 8371218617, 8371349719, 8371480801, + 8371611889, 8371742987, 8371874087, 8372005189, 8372136277, 8372267359, 8372398483, + 8372529559, 8372660657, 8372791781, 8372922853, 8373053947, 8373185021, 8373316099, + 8373447191, 8373578263, 8373709349, 8373840421, 8373971519, 8374102603, 8374233689, + 8374364807, 8374495889, 8374626973, 8374758083, 8374889161, 8375020243, 8375151331, + 8375282417, 8375413517, 8375544613, 8375675717, 8375806801, 8375937883, 8376068957, + 8376200029, 8376331121, 8376462239, 8376593321, 8376724399, 8376855479, 8376986573, + 8377117657, 8377248739, 8377379837, 8377510919, 8377642057, 8377773133, 8377904231, + 8378035321, 8378166403, 8378297483, 8378428561, 8378559641, 8378690731, 8378821819, + 8378952929, 8379084019, 8379215093, 8379346169, 8379477241, 8379608353, 8379739439, + 8379870511, 8380001587, 8380132681, 8380263767, 8380394873, 8380525969, 8380657049, + 8380788137, 8380919221, 8381050313, 8381181427, 8381312519, 8381443621, 8381574731, + 8381705803, 8381836901, 8381967989, 8382099073, 8382230189, 8382361277, 8382492361, + 8382623489, 8382754577, 8382885659, 8383016737, 8383147811, 8383278887, 8383409963, + 8383541059, 8383672163, 8383803349, 8383934431, 8384065513, 8384196599, 8384327671, + 8384458781, 8384589853, 8384720941, 8384852017, 8384983091, 8385114191, 8385245279, + 8385376427, 8385507511, 8385638629, 8385769771, 8385900851, 8386031923, 8386162999, + 8386294073, 8386425167, 8386556261, 8386687357, 8386818439, 8386949537, 8387080619, + 8387211697, 8387342783, 8387473901, 8387605013, 8387736101, 8387867177, 8387998277, + 8388129391, 8388260473, 8388391559, 8388522641, 8388653717, 8388784823, 8388915943, + 8389047041, 8389178123, 8389309237, 8389440337, 8389571461, 8389702543, 8389833623, + 8389964753, 8390095841, 8390226913, 8390358001, 8390489143, 8390620241, 8390751349, + 8390882431, 8391013517, 8391144607, 8391275687, 8391406769, 8391537851, 8391668939, + 8391800069, 8391931151, 8392062227, 8392193309, 8392324441, 8392455521, 8392586611, + 8392717693, 8392848799, 8392979879, 8393110981, 8393242073, 8393373199, 8393504321, + 8393635409, 8393766481, 8393897563, 8394028637, 8394159727, 8394290813, 8394421933, + 8394553049, 8394684149, 8394815227, 8394946319, 8395077497, 8395208581, 8395339663, + 8395470749, 8395601833, 8395732909, 8395863989, 8395995067, 8396126143, 8396257231, + 8396388307, 8396519393, 8396650499, 8396781583, 8396912683, 8397043769, 8397174847, + 8397305927, 8397437003, 8397568103, 8397699179, 8397830251, 8397961333, 8398092413, + 8398223501, 8398354577, 8398485653, 8398616741, 8398747843, 8398878931, 8399010013, + 8399141119, 8399272199, 8399403277, 8399534357, 8399665429, 8399796523, 8399927611, + 8400058753, 8400189857, 8400321031, 8400452129, 8400583223, 8400714313, 8400845389, + 8400976477, 8401107551, 8401238641, 8401369733, 8401500823, 8401631899, 8401762973, + 8401894049, 8402025127, 8402156201, 8402287273, 8402418347, 8402549453, 8402680543, + 8402811623, 8402942701, 8403073781, 8403204853, 8403335971, 8403467071, 8403598183, + 8403729263, 8403860347, 8403991471, 8404122553, 8404253651, 8404384753, 8404515857, + 8404646951, 8404778023, 8404909111, 8405040191, 8405171279, 8405302361, 8405433461, + 8405564561, 8405695673, 8405826761, 8405957839, 8406088939, 8406220013, 8406351139, + 8406482237, 8406613357, 8406744439, 8406875593, 8407006721, 8407137797, 8407268869, + 8407399951, 8407531039, 8407662139, 8407793213, 8407924307, 8408055413, 8408186491, + 8408317583, 8408448707, 8408579807, 8408710879, 8408841953, 8408973047, 8409104147, + 8409235267, 8409366359, 8409497431, 8409628559, 8409759661, 8409890737, 8410021811, + 8410152887, 8410283963, 8410415051, 8410546127, 8410677203, 8410808309, 8410939423, + 8411070529, 8411201609, 8411332687, 8411463769, 8411594843, 8411725937, 8411857021, + 8411988173, 8412119251, 8412250331, 8412381413, 8412512489, 8412643571, 8412774743, + 8412905827, 8413036921, 8413168087, 8413299211, 8413430293, 8413561367, 8413692493, + 8413823567, 8413954673, 8414085769, 8414216843, 8414347937, 8414479027, 8414610121, + 8414741201, 8414872289, 8415003409, 8415134501, 8415265577, 8415396667, 8415527773, + 8415658859, 8415789961, 8415921061, 8416052159, 8416183331, 8416314419, 8416445501, + 8416576579, 8416707757, 8416838849, 8416969927, 8417101019, 8417232101, 8417363173, + 8417494259, 8417625373, 8417756449, 8417887531, 8418018641, 8418149713, 8418280817, + 8418411889, 8418542983, 8418674081, 8418805201, 8418936277, 8419067383, 8419198561, + 8419329641, 8419460723, 8419591811, 8419722911, 8419853987, 8419985081, 8420116169, + 8420247247, 8420378353, 8420509429, 8420640509, 8420771627, 8420902759, 8421033839, + 8421164923, 8421296027, 8421427123, 8421558217, 8421689299, 8421820397, 8421951493, + 8422082567, 8422213649, 8422344727, 8422475827, 8422606901, 8422737997, 8422869073, + 8423000191, 8423131267, 8423262359, 8423393441, 8423524513, 8423655589, 8423786681, + 8423917763, 8424048863, 8424179963, 8424311069, 8424442151, 8424573263, 8424704347, + 8424835459, 8424966541, 8425097623, 8425228751, 8425359841, 8425490917, 8425622047, + 8425753123, 8425884197, 8426015317, 8426146403, 8426277481, 8426408563, 8426539643, + 8426670719, 8426801819, 8426932931, 8427064003, 8427195097, 8427326213, 8427457289, + 8427588391, 8427719471, 8427850553, 8427981629, 8428112743, 8428243891, 8428374973, + 8428506103, 8428637219, 8428768291, 8428899373, 8429030453, 8429161589, 8429292661, + 8429423749, 8429554829, 8429685907, 8429816987, 8429948089, 8430079211, 8430210287, + 8430341389, 8430472481, 8430603553, 8430734657, 8430865753, 8430996857, 8431127959, + 8431259033, 8431390111, 8431521191, 8431652293, 8431783411, 8431914499, 8432045579, + 8432176651, 8432307731, 8432438813, 8432569897, 8432700977, 8432832059, 8432963171, + 8433094297, 8433225391, 8433356471, 8433487549, 8433618637, 8433749711, 8433880799, + 8434011877, 8434143017, 8434274117, 8434405201, 8434536347, 8434667431, 8434798511, + 8434929599, 8435060693, 8435191771, 8435322869, 8435453951, 8435585023, 8435716097, + 8435847181, 8435978267, 8436109343, 8436240457, 8436371539, 8436502619, 8436633701, + 8436764801, 8436895891, 8437026971, 8437158083, 8437289167, 8437420261, 8437551337, + 8437682467, 8437813561, 8437944637, 8438075719, 8438206801, 8438337877, 8438468957, + 8438600081, 8438731153, 8438862227, 8438993309, 8439124399, 8439255509, 8439386591, + 8439517739, 8439648853, 8439779939, 8439911021, 8440042109, 8440173199, 8440304291, + 8440435363, 8440566437, 8440697519, 8440828607, 8440959679, 8441090809, 8441221909, + 8441352989, 8441484071, 8441615159, 8441746259, 8441877331, 8442008437, 8442139513, + 8442270611, 8442401687, 8442532759, 8442663833, 8442794953, 8442926047, 8443057127, + 8443188239, 8443319317, 8443450417, 8443581499, 8443712593, 8443843673, 8443974767, + 8444105861, 8444236961, 8444368063, 8444499163, 8444630261, 8444761333, 8444892413, + 8445023519, 8445154603, 8445285713, 8445416827, 8445547921, 8445679001, 8445810073, + 8445941149, 8446072231, 8446203307, 8446334381, 8446465463, 8446596539, 8446727651, + 8446858727, 8446989853, 8447120933, 8447252029, 8447383123, 8447514227, 8447645317, + 8447776399, 8447907499, 8448038593, 8448169729, 8448300803, 8448431881, 8448562963, + 8448694039, 8448825169, 8448956273, 8449087349, 8449218431, 8449349521, 8449480631, + 8449611739, 8449742837, 8449873909, 8450005009, 8450136103, 8450267209, 8450398289, + 8450529379, 8450660497, 8450791571, 8450922653, 8451053731, 8451184873, 8451315953, + 8451447041, 8451578123, 8451709213, 8451840289, 8451971371, 8452102459, 8452233539, + 8452364611, 8452495739, 8452626821, 8452757953, 8452889033, 8453020117, 8453151193, + 8453282269, 8453413351, 8453544443, 8453675533, 8453806639, 8453937721, 8454068837, + 8454199913, 8454331009, 8454462103, 8454593201, 8454724273, 8454855359, 8454986443, + 8455117529, 8455248623, 8455379707, 8455510781, 8455641881, 8455772971, 8455904063, + 8456035157, 8456166233, 8456297329, 8456428433, 8456559511, 8456690591, 8456821679, + 8456952773, 8457083851, 8457214937, 8457346021, 8457477113, 8457608191, 8457739271, + 8457870353, 8458001429, 8458132531, 8458263617, 8458394689, 8458525781, 8458656853, + 8458787927, 8458918999, 8459050079, 8459181151, 8459312227, 8459443313, 8459574457, + 8459705533, 8459836607, 8459967701, 8460098797, 8460229879, 8460360989, 8460492077, + 8460623161, 8460754273, 8460885359, 8461016449, 8461147523, 8461278599, 8461409777, + 8461540891, 8461672001, 8461803101, 8461934177, 8462065267, 8462196343, 8462327429, + 8462458541, 8462589637, 8462720729, 8462851849, 8462982923, 8463114043, 8463245129, + 8463376213, 8463507289, 8463638363, 8463769453, 8463900527, 8464031599, 8464162709, + 8464293797, 8464424869, 8464555991, 8464687151, 8464818251, 8464949323, 8465080427, + 8465211529, 8465342603, 8465473699, 8465604799, 8465735899, 8465866991, 8465998109, + 8466129197, 8466260269, 8466391397, 8466522473, 8466653549, 8466784649, 8466915799, + 8467046891, 8467177973, 8467309063, 8467440143, 8467571227, 8467702343, 8467833419, + 8467964569, 8468095673, 8468226749, 8468357839, 8468488981, 8468620067, 8468751191, + 8468882269, 8469013387, 8469144491, 8469275599, 8469406691, 8469537773, 8469668873, + 8469800011, 8469931087, 8470062173, 8470193257, 8470324337, 8470455439, 8470586513, + 8470717589, 8470848671, 8470979743, 8471110849, 8471241923, 8471373059, 8471504131, + 8471635213, 8471766323, 8471897443, 8472028519, 8472159607, 8472290681, 8472421777, + 8472552863, 8472683939, 8472815023, 8472946109, 8473077181, 8473208309, 8473339423, + 8473470517, 8473601593, 8473732679, 8473863767, 8473994869, 8474125969, 8474257063, + 8474388179, 8474519279, 8474650381, 8474781487, 8474912581, 8475043669, 8475174761, + 8475305837, 8475436919, 8475568001, 8475699073, 8475830149, 8475961229, 8476092341, + 8476223461, 8476354553, 8476485649, 8476616723, 8476747801, 8476878881, 8477009971, + 8477141083, 8477272157, 8477403229, 8477534363, 8477665447, 8477796533, 8477927609, + 8478058733, 8478189809, 8478320911, 8478451997, 8478583109, 8478714203, 8478845303, + 8478976399, 8479107499, 8479238611, 8479369697, 8479500833, 8479631939, 8479763011, + 8479894097, 8480025179, 8480156261, 8480287349, 8480418421, 8480549513, 8480680613, + 8480811721, 8480942801, 8481073873, 8481204997, 8481336113, 8481467213, 8481598429, + 8481729533, 8481860633, 8481991733, 8482122871, 8482253947, 8482385057, 8482516151, + 8482647241, 8482778347, 8482909433, 8483040521, 8483171639, 8483302717, 8483433841, + 8483564917, 8483696033, 8483827111, 8483958229, 8484089303, 8484220411, 8484351487, + 8484482563, 8484613637, 8484744721, 8484875807, 8485006927, 8485138019, 8485269119, + 8485400239, 8485531319, 8485662391, 8485793473, 8485924547, 8486055637, 8486186749, + 8486317823, 8486448899, 8486579987, 8486711069, 8486842207, 8486973283, 8487104369, + 8487235447, 8487366533, 8487497611, 8487628691, 8487759773, 8487890867, 8488021999, + 8488153073, 8488284163, 8488415237, 8488546321, 8488677497, 8488808569, 8488939649, + 8489070731, 8489201827, 8489332903, 8489463989, 8489595061, 8489726171, 8489857283, + 8489988359, 8490119471, 8490250583, 8490381659, 8490512747, 8490643841, 8490774917, + 8490906001, 8491037111, 8491168207, 8491299283, 8491430359, 8491561459, 8491692533, + 8491823633, 8491954711, 8492085787, 8492216867, 8492347949, 8492479027, 8492610121, + 8492741219, 8492872303, 8493003377, 8493134459, 8493265541, 8493396617, 8493527719, + 8493658853, 8493789947, 8493921019, 8494052117, 8494183189, 8494314271, 8494445357, + 8494576429, 8494707503, 8494838593, 8494969667, 8495100763, 8495231851, 8495362937, + 8495494009, 8495625109, 8495756201, 8495887277, 8496018373, 8496149461, 8496280543, + 8496411617, 8496542711, 8496673793, 8496804871, 8496935957, 8497067063, 8497198139, + 8497329221, 8497460327, 8497591409, 8497722487, 8497853627, 8497984741, 8498115817, + 8498246947, 8498378023, 8498509099, 8498640193, 8498771279, 8498902351, 8499033449, + 8499164521, 8499295709, 8499426797, 8499557903, 8499688987, 8499820081, 8499951157, + 8500082237, 8500213343, 8500344427, 8500475513, 8500606603, 8500737727, 8500868833, + 8500999907, 8501130991, 8501262079, 8501393203, 8501524279, 8501655401, 8501786507, + 8501917579, 8502048703, 8502179797, 8502310871, 8502441943, 8502573029, 8502704123, + 8502835249, 8502966323, 8503097399, 8503228507, 8503359583, 8503490683, 8503621771, + 8503752863, 8503883951, 8504015027, 8504146117, 8504277211, 8504408317, 8504539451, + 8504670547, 8504801623, 8504932769, 8505063857, 8505194947, 8505326023, 8505457111, + 8505588187, 8505719269, 8505850349, 8505981439, 8506112513, 8506243591, 8506374707, + 8506505783, 8506636861, 8506767947, 8506899019, 8507030093, 8507161171, 8507292257, + 8507423363, 8507554439, 8507685517, 8507816621, 8507947771, 8508078847, 8508209923, + 8508341011, 8508472153, 8508603253, 8508734327, 8508865427, 8508996521, 8509127593, + 8509258669, 8509389781, 8509520911, 8509652003, 8509783129, 8509914211, 8510045311, + 8510176393, 8510307473, 8510438569, 8510569643, 8510700749, 8510831837, 8510962937, + 8511094027, 8511225103, 8511356197, 8511487279, 8511618373, 8511749459, 8511880543, + 8512011617, 8512142711, 8512273799, 8512404893, 8512536013, 8512667089, 8512798169, + 8512929247, 8513060323, 8513191417, 8513322523, 8513453621, 8513584693, 8513715797, + 8513846879, 8513977951, 8514109027, 8514240109, 8514371183, 8514502279, 8514633371, + 8514764471, 8514895547, 8515026629, 8515157719, 8515288799, 8515419877, 8515550951, + 8515682033, 8515813109, 8515944197, 8516075287, 8516206397, 8516337497, 8516468581, + 8516599687, 8516730793, 8516861879, 8516992973, 8517124069, 8517255151, 8517386309, + 8517517397, 8517648479, 8517779581, 8517910657, 8518041739, 8518172837, 8518303909, + 8518435073, 8518566149, 8518697227, 8518828319, 8518959457, 8519090539, 8519221649, + 8519352739, 8519483837, 8519614913, 8519745989, 8519877061, 8520008149, 8520139223, + 8520270323, 8520401447, 8520532519, 8520663607, 8520794687, 8520925813, 8521056917, + 8521187993, 8521319117, 8521450199, 8521581281, 8521712389, 8521843471, 8521974553, + 8522105639, 8522236771, 8522367851, 8522498923, 8522630003, 8522761099, 8522892223, + 8523023317, 8523154397, 8523285473, 8523416557, 8523547639, 8523678763, 8523809863, + 8523940951, 8524072027, 8524203101, 8524334177, 8524465277, 8524596359, 8524727501, + 8524858579, 8524989701, 8525120777, 8525251907, 8525383081, 8525514157, 8525645251, + 8525776411, 8525907527, 8526038639, 8526169711, 8526300823, 8526431899, 8526562973, + 8526694061, 8526825169, 8526956257, 8527087333, 8527218419, 8527349497, 8527480583, + 8527611661, 8527742761, 8527873841, 8528004913, 8528135989, 8528267071, 8528398181, + 8528529263, 8528660353, 8528791487, 8528922587, 8529053677, 8529184771, 8529315853, + 8529446927, 8529578003, 8529709093, 8529840169, 8529971243, 8530102327, 8530233401, + 8530364473, 8530495573, 8530626677, 8530757761, 8530888897, 8531019977, 8531151061, + 8531282161, 8531413271, 8531544347, 8531675441, 8531806523, 8531937619, 8532068771, + 8532199861, 8532330997, 8532462073, 8532593161, 8532724247, 8532855337, 8532986417, + 8533117529, 8533248601, 8533379677, 8533510763, 8533641859, 8533772941, 8533904033, + 8534035109, 8534166187, 8534297263, 8534428337, 8534559409, 8534690497, 8534821579, + 8534952659, 8535083819, 8535214913, 8535345989, 8535477107, 8535608197, 8535739297, + 8535870373, 8536001447, 8536132523, 8536263629, 8536394719, 8536525819, 8536656893, + 8536788019, 8536919123, 8537050199, 8537181271, 8537312353, 8537443433, 8537574533, + 8537705663, 8537836771, 8537967853, 8538098941, 8538230047, 8538361121, 8538492203, + 8538623279, 8538754351, 8538885449, 8539016527, 8539147621, 8539278739, 8539409821, + 8539540903, 8539671983, 8539803071, 8539934171, 8540065309, 8540196383, 8540327489, + 8540458567, 8540589643, 8540720717, 8540851793, 8540982899, 8541114013, 8541245113, + 8541376189, 8541507269, 8541638359, 8541769441, 8541900527, 8542031611, 8542162687, + 8542293761, 8542424857, 8542555991, 8542687067, 8542818157, 8542949251, 8543080327, + 8543211419, 8543342491, 8543473571, 8543604649, 8543735723, 8543866873, 8543997983, + 8544129067, 8544260141, 8544391243, 8544522347, 8544653471, 8544784597, 8544915677, + 8545046767, 8545177847, 8545309027, 8545440149, 8545571227, 8545702331, 8545833493, + 8545964591, 8546095667, 8546226751, 8546357837, 8546488913, 8546620007, 8546751097, + 8546882299, 8547013373, 8547144449, 8547275563, 8547406643, 8547537731, 8547668819, + 8547799891, 8547930977, 8548062097, 8548193209, 8548324331, 8548455431, 8548586503, + 8548717591, 8548848673, 8548979753, 8549110837, 8549241913, 8549372989, 8549504069, + 8549635183, 8549766289, 8549897383, 8550028457, 8550159533, 8550290611, 8550421687, + 8550552761, 8550683893, 8550814969, 8550946069, 8551077203, 8551208311, 8551339393, + 8551470469, 8551601557, 8551732681, 8551863757, 8551994837, 8552125913, 8552257001, + 8552388079, 8552519159, 8552650247, 8552781319, 8552912429, 8553043507, 8553174613, + 8553305737, 8553436819, 8553567923, 8553699001, 8553830099, 8553961181, 8554092269, + 8554223347, 8554354447, 8554485523, 8554616641, 8554747741, 8554878847, 8555009929, + 8555141009, 8555272091, 8555403167, 8555534279, 8555665379, 8555796451, 8555927543, + 8556058631, 8556189703, 8556320777, 8556451867, 8556582961, 8556714043, 8556845117, + 8556976213, 8557107329, 8557238407, 8557369481, 8557500577, 8557631653, 8557762727, + 8557893833, 8558024971, 8558156059, 8558287139, 8558418223, 8558549323, 8558680399, + 8558811479, 8558942591, 8559073667, 8559204743, 8559335833, 8559466907, 8559597989, + 8559729071, 8559860161, 8559991241, 8560122371, 8560253453, 8560384531, 8560515611, + 8560646723, 8560777829, 8560908901, 8561039987, 8561171071, 8561302157, 8561433229, + 8561564311, 8561695391, 8561826463, 8561957539, 8562088631, 8562219719, 8562350801, + 8562481877, 8562612953, 8562744031, 8562875117, 8563006201, 8563137293, 8563268369, + 8563399451, 8563530529, 8563661657, 8563792813, 8563923889, 8564054969, 8564186047, + 8564317141, 8564448253, 8564579333, 8564710423, 8564841497, 8564972579, 8565103661, + 8565234749, 8565365863, 8565496949, 8565628031, 8565759119, 8565890219, 8566021291, + 8566152377, 8566283519, 8566414657, 8566545737, 8566676819, 8566807937, 8566939009, + 8567070091, 8567201171, 8567332247, 8567463323, 8567594417, 8567725493, 8567856581, + 8567987663, 8568118739, 8568249821, 8568380893, 8568511967, 8568643049, 8568774157, + 8568905237, 8569036313, 8569167389, 8569298503, 8569429577, 8569560667, 8569691743, + 8569822817, 8569953901, 8570084987, 8570216111, 8570347183, 8570478283, 8570609363, + 8570740481, 8570871559, 8571002633, 8571133771, 8571264869, 8571395951, 8571527051, + 8571658129, 8571789221, 8571920297, 8572051379, 8572182601, 8572313677, 8572444781, + 8572575859, 8572706959, 8572838041, 8572969127, 8573100229, 8573231311, 8573362397, + 8573493469, 8573624551, 8573755627, 8573886707, 8574017819, 8574148901, 8574279991, + 8574411089, 8574542173, 8574673259, 8574804349, 8574935431, 8575066537, 8575197637, + 8575328711, 8575459801, 8575590883, 8575721989, 8575853093, 8575984187, 8576115281, + 8576246387, 8576377483, 8576508557, 8576639647, 8576770723, 8576901821, 8577032921, + 8577163993, 8577295081, 8577426167, 8577557249, 8577688363, 8577819449, 8577950531, + 8578081613, 8578212689, 8578343821, 8578474903, 8578605983, 8578737067, 8578868149, + 8578999223, 8579130311, 8579261423, 8579392513, 8579523613, 8579654701, 8579785783, + 8579916883, 8580047963, 8580179057, 8580310129, 8580441239, 8580572317, 8580703393, + 8580834469, 8580965551, 8581096627, 8581227727, 8581358801, 8581489901, 8581620979, + 8581752061, 8581883147, 8582014237, 8582145323, 8582276399, 8582407489, 8582538571, + 8582669651, 8582800747, 8582931869, 8583062953, 8583194041, 8583325129, 8583456239, + 8583587321, 8583718397, 8583849479, 8583980563, 8584111643, 8584242739, 8584373857, + 8584504937, 8584636009, 8584767109, 8584898207, 8585029309, 8585160383, 8585291459, + 8585422579, 8585553653, 8585684729, 8585815807, 8585946881, 8586077989, 8586209087, + 8586340163, 8586471253, 8586602327, 8586733417, 8586864497, 8586995569, 8587126643, + 8587257733, 8587388807, 8587519879, 8587650983, 8587782061, 8587913153, 8588044261, + 8588175353, 8588306431, 8588437531, 8588568607, 8588699687, 8588830769, 8588961947, + 8589093109, 8589224183, 8589355261, 8589486337, 8589617431, 8589748511, 8589879583, + 8590010701, 8590141789, 8590272863, 8590403971, 8590535089, 8590666169, 8590797253, + 8590928341, 8591059417, 8591190511, 8591321587, 8591452711, 8591583787, 8591714867, + 8591845949, 8591977049, 8592108121, 8592239203, 8592370277, 8592501349, 8592632429, + 8592763511, 8592894593, 8593025681, 8593156763, 8593287839, 8593418923, 8593550011, + 8593681121, 8593812211, 8593943291, 8594074367, 8594205463, 8594336537, 8594467627, + 8594598703, 8594729807, 8594860889, 8594991989, 8595123079, 8595254159, 8595385237, + 8595516313, 8595647387, 8595778501, 8595909587, 8596040659, 8596171733, 8596302823, + 8596433897, 8596565009, 8596696093, 8596827167, 8596958243, 8597089357, 8597220449, + 8597351527, 8597482601, 8597613683, 8597744759, 8597875837, 8598006917, 8598138013, + 8598269093, 8598400193, 8598531313, 8598662431, 8598793519, 8598924611, 8599055687, + 8599186759, 8599317851, 8599448941, 8599580021, 8599711111, 8599842193, 8599973273, + 8600104397, 8600235473, 8600366557, 8600497643, 8600628721, 8600759801, 8600890919, + 8601021991, 8601153091, 8601284213, 8601415301, 8601546379, 8601677489, 8601808603, + 8601939679, 8602070767, 8602201877, 8602332961, 8602464053, 8602595159, 8602726241, + 8602857313, 8602988389, 8603119463, 8603250547, 8603381681, 8603512769, 8603643857, + 8603774941, 8603906039, 8604037111, 8604168211, 8604299293, 8604430369, 8604561451, + 8604692531, 8604823603, 8604954689, 8605085771, 8605216883, 8605348027, 8605479121, + 8605610213, 8605741321, 8605872421, 8606003501, 8606134591, 8606265667, 8606396753, + 8606527837, 8606658989, 8606790079, 8606921179, 8607052253, 8607183373, 8607314453, + 8607445621, 8607576701, 8607707851, 8607838927, 8607970001, 8608101077, 8608232153, + 8608363241, 8608494319, 8608625407, 8608756487, 8608887559, 8609018641, 8609149721, + 8609280793, 8609411887, 8609542993, 8609674069, 8609805163, 8609936267, 8610067339, + 8610198431, 8610329587, 8610460669, 8610591757, 8610722873, 8610853961, 8610985037, + 8611116113, 8611247221, 8611378313, 8611509481, 8611640621, 8611771811, 8611902883, + 8612034091, 8612165183, 8612296291, 8612427449, 8612558531, 8612689619, 8612820691, + 8612951777, 8613082867, 8613213953, 8613345047, 8613476119, 8613607199, 8613738277, + 8613869351, 8614000459, 8614131553, 8614262639, 8614393721, 8614524803, 8614655893, + 8614786991, 8614918097, 8615049173, 8615180269, 8615311343, 8615442481, 8615573567, + 8615704673, 8615835763, 8615966857, 8616097939, 8616229033, 8616360113, 8616491209, + 8616622331, 8616753407, 8616884489, 8617015571, 8617146649, 8617277737, 8617408837, + 8617539913, 8617671017, 8617802107, 8617933183, 8618064271, 8618195347, 8618326421, + 8618457493, 8618588567, 8618719649, 8618850761, 8618981857, 8619112961, 8619244079, + 8619375151, 8619506299, 8619637373, 8619768499, 8619899581, 8620030667, 8620161751, + 8620292827, 8620423919, 8620554991, 8620686083, 8620817159, 8620948241, 8621079319, + 8621210407, 8621341483, 8621472569, 8621603677, 8621734763, 8621865871, 8621996953, + 8622128029, 8622259103, 8622390187, 8622521269, 8622652343, 8622783439, 8622914519, + 8623045603, 8623176677, 8623307753, 8623438849, 8623569937, 8623701071, 8623832149, + 8623963273, 8624094359, 8624225453, 8624356549, 8624487631, 8624618741, 8624749817, + 8624880911, 8625012001, 8625143143, 8625274253, 8625405343, 8625536431, 8625667543, + 8625798631, 8625929717, 8626060811, 8626191943, 8626323031, 8626454117, 8626585193, + 8626716277, 8626847357, 8626978429, 8627109523, 8627240647, 8627371757, 8627502841, + 8627633921, 8627765009, 8627896087, 8628027173, 8628158293, 8628289379, 8628420457, + 8628551531, 8628682613, 8628813703, 8628944827, 8629075933, 8629207043, 8629338119, + 8629469207, 8629600283, 8629731367, 8629862443, 8629993531, 8630124623, 8630255731, + 8630386813, 8630517901, 8630648987, 8630780069, 8630911141, 8631042229, 8631173303, + 8631304391, 8631435467, 8631566543, 8631697639, 8631828719, 8631959801, 8632090897, + 8632222021, 8632353127, 8632484209, 8632615307, 8632746401, 8632877479, 8633008567, + 8633139667, 8633270783, 8633401859, 8633532983, 8633664131, 8633795227, 8633926303, + 8634057433, 8634188527, 8634319607, 8634450817, 8634581897, 8634712979, 8634844079, + 8634975161, 8635106239, 8635237343, 8635368439, 8635499519, 8635630667, 8635761749, + 8635892843, 8636023931, 8636155027, 8636286103, 8636417201, 8636548289, 8636679413, + 8636810489, 8636941661, 8637072793, 8637203881, 8637335059, 8637466151, 8637597259, + 8637728381, 8637859481, 8637990601, 8638121761, 8638252871, 8638383947, 8638515113, + 8638646189, 8638777283, 8638908359, 8639039441, 8639170513, 8639301701, 8639432783, + 8639563861, 8639694937, 8639826059, 8639957189, 8640088273, 8640219361, 8640350441, + 8640481519, 8640612613, 8640743687, 8640874819, 8641005913, 8641137019, 8641268159, + 8641399231, 8641530323, 8641661417, 8641792501, 8641923583, 8642054657, 8642185729, + 8642316811, 8642447899, 8642578979, 8642710057, 8642841161, 8642972237, 8643103321, + 8643234407, 8643365503, 8643496613, 8643627689, 8643758771, 8643889871, 8644020961, + 8644152037, 8644283147, 8644414237, 8644545323, 8644676419, 8644807537, 8644938613, + 8645069689, 8645200789, 8645331869, 8645462941, 8645594017, 8645725189, 8645856313, + 8645987387, 8646118487, 8646249569, 8646380641, 8646511781, 8646642859, 8646773957, + 8646905063, 8647036159, 8647167241, 8647298347, 8647429421, 8647560499, 8647691573, + 8647822717, 8647953803, 8648084899, 8648215973, 8648347051, 8648478133, 8648609209, + 8648740307, 8648871379, 8649002459, 8649133589, 8649264691, 8649395819, 8649526931, + 8649658009, 8649789089, 8649920197, 8650051271, 8650182349, 8650313423, 8650444499, + 8650575581, 8650706681, 8650837801, 8650968899, 8651099983, 8651231059, 8651362147, + 8651493229, 8651624321, 8651755423, 8651886497, 8652017599, 8652148711, 8652279809, + 8652410909, 8652541987, 8652673061, 8652804161, 8652935267, 8653066339, 8653197419, + 8653328527, 8653459637, 8653590713, 8653721789, 8653852927, 8653984007, 8654115089, + 8654246191, 8654377301, 8654508403, 8654639561, 8654770637, 8654901713, 8655032791, + 8655163901, 8655295001, 8655426107, 8655557203, 8655688303, 8655819397, 8655950477, + 8656081583, 8656212659, 8656343743, 8656474829, 8656605929, 8656737013, 8656868107, + 8656999193, 8657130299, 8657261377, 8657392501, 8657523593, 8657654713, 8657785813, + 8657916901, 8658047977, 8658179063, 8658310147, 8658441221, 8658572309, 8658703387, + 8658834493, 8658965569, 8659096681, 8659227767, 8659358857, 8659489933, 8659621039, + 8659752119, 8659883257, 8660014333, 8660145407, 8660276491, 8660407583, 8660538673, + 8660669747, 8660800823, 8660931913, 8661063007, 8661194123, 8661325213, 8661456301, + 8661587447, 8661718523, 8661849607, 8661980729, 8662111807, 8662242889, 8662373977, + 8662505087, 8662636201, 8662767293, 8662898417, 8663029489, 8663160617, 8663291719, + 8663422829, 8663553917, 8663685029, 8663816173, 8663947247, 8664078439, 8664209539, + 8664340627, 8664471743, 8664602819, 8664733897, 8664864979, 8664996061, 8665127143, + 8665258249, 8665389347, 8665520419, 8665651493, 8665782571, 8665913653, 8666044769, + 8666175841, 8666306917, 8666437993, 8666569103, 8666700187, 8666831263, 8666962393, + 8667093499, 8667224603, 8667355687, 8667486769, 8667617869, 8667748963, 8667880037, + 8668011113, 8668142243, 8668273321, 8668404449, 8668535597, 8668666681, 8668797757, + 8668928833, 8669059913, 8669191007, 8669322097, 8669453203, 8669584283, 8669715359, + 8669846441, 8669977597, 8670108677, 8670239759, 8670370853, 8670501929, 8670633019, + 8670764093, 8670895183, 8671026269, 8671157351, 8671288459, 8671419553, 8671550627, + 8671681699, 8671812827, 8671943909, 8672074987, 8672206063, 8672337173, 8672468257, + 8672599361, 8672730457, 8672861563, 8672992703, 8673123799, 8673254873, 8673385949, + 8673517031, 8673648103, 8673779227, 8673910337, 8674041421, 8674172537, 8674303619, + 8674434721, 8674565819, 8674696907, 8674827979, 8674959091, 8675090201, 8675221273, + 8675352377, 8675483473, 8675614579, 8675745697, 8675876819, 8676007891, 8676139037, + 8676270137, 8676401213, 8676532289, 8676663383, 8676794491, 8676925603, 8677056709, + 8677187797, 8677318907, 8677450007, 8677581091, 8677712191, 8677843271, 8677974373, + 8678105473, 8678236549, 8678367647, 8678498743, 8678629879, 8678760991, 8678892127, + 8679023219, 8679154303, 8679285379, 8679416479, 8679547561, 8679678649, 8679809783, + 8679940939, 8680072039, 8680203187, 8680334263, 8680465337, 8680596413, 8680727519, + 8680858603, 8680989697, 8681120801, 8681251883, 8681382973, 8681514047, 8681645149, + 8681776289, 8681907391, 8682038503, 8682169583, 8682300661, 8682431773, 8682562877, + 8682693953, 8682825071, 8682956143, 8683087219, 8683218293, 8683349377, 8683480489, + 8683611623, 8683742707, 8683873789, 8684004869, 8684135969, 8684267069, 8684398147, + 8684529229, 8684660351, 8684791433, 8684922527, 8685053599, 8685184681, 8685315773, + 8685446849, 8685577961, 8685709063, 8685840143, 8685971219, 8686102309, 8686233433, + 8686364507, 8686495591, 8686626671, 8686757743, 8686888919, 8687019997, 8687151073, + 8687282147, 8687413277, 8687544367, 8687675509, 8687806591, 8687937667, 8688068749, + 8688199867, 8688330943, 8688462043, 8688593129, 8688724201, 8688855283, 8688986359, + 8689117453, 8689248527, 8689379623, 8689510727, 8689641823, 8689772929, 8689904033, + 8690035147, 8690166239, 8690297327, 8690428457, 8690559539, 8690690621, 8690821693, + 8690952769, 8691083861, 8691214993, 8691346123, 8691477203, 8691608329, 8691739423, + 8691870497, 8692001603, 8692132693, 8692263791, 8692394891, 8692525993, 8692657093, + 8692788253, 8692919363, 8693050439, 8693181547, 8693312647, 8693443741, 8693574823, + 8693705903, 8693837003, 8693968097, 8694099181, 8694230263, 8694361349, 8694492437, + 8694623527, 8694754681, 8694885757, 8695016879, 8695147957, 8695279037, 8695410109, + 8695541209, 8695672283, 8695803367, 8695934447, 8696065523, 8696196623, 8696327699, + 8696458787, 8696589859, 8696720933, 8696852009, 8696983109, 8697114191, 8697245267, + 8697376357, 8697507473, 8697638557, 8697769637, 8697900709, 8698031803, 8698162877, + 8698293953, 8698425041, 8698556131, 8698687213, 8698818313, 8698949411, 8699080499, + 8699211643, 8699342719, 8699473799, 8699604877, 8699735951, 8699867051, 8699998123, + 8700129197, 8700260273, 8700391367, 8700522443, 8700653519, 8700784613, 8700915697, + 8701046779, 8701177931, 8701309051, 8701440149, 8701571267, 8701702381, 8701833479, + 8701964561, 8702095669, 8702226763, 8702357893, 8702488979, 8702620051, 8702751131, + 8702882203, 8703013279, 8703144353, 8703275453, 8703406559, 8703537631, 8703668711, + 8703799787, 8703930889, 8704061987, 8704193077, 8704324151, 8704455223, 8704586353, + 8704717429, 8704848557, 8704979663, 8705110753, 8705241847, 8705372939, 8705504023, + 8705635121, 8705766217, 8705897293, 8706028369, 8706159481, 8706290603, 8706421681, + 8706552763, 8706683857, 8706814943, 8706946019, 8707077121, 8707208197, 8707339283, + 8707470383, 8707601477, 8707732567, 8707863649, 8707994731, 8708125817, 8708256911, + 8708388049, 8708519167, 8708650259, 8708781343, 8708912417, 8709043489, 8709174569, + 8709305641, 8709436717, 8709567809, 8709698897, 8709829969, 8709961049, 8710092121, + 8710223201, 8710354291, 8710485389, 8710616461, 8710747559, 8710878637, 8711009711, + 8711140813, 8711271911, 8711402989, 8711534063, 8711665153, 8711796241, 8711927363, + 8712058447, 8712189547, 8712320647, 8712451733, 8712582817, 8712713963, 8712845039, + 8712976121, 8713107199, 8713238279, 8713369351, 8713500427, 8713631513, 8713762591, + 8713893701, 8714024797, 8714155897, 8714286979, 8714418071, 8714549147, 8714680231, + 8714811307, 8714942471, 8715073583, 8715204661, 8715335737, 8715466813, 8715597899, + 8715728981, 8715860077, 8715991177, 8716122253, 8716253327, 8716384403, 8716515527, + 8716646669, 8716777753, 8716908829, 8717039909, 8717170991, 8717302117, 8717433191, + 8717564263, 8717695367, 8717826451, 8717957537, 8718088619, 8718219709, 8718350801, + 8718481883, 8718612961, 8718744101, 8718875233, 8719006321, 8719137409, 8719268489, + 8719399561, 8719530641, 8719661719, 8719792801, 8719923889, 8720054963, 8720186053, + 8720317141, 8720448223, 8720579317, 8720710403, 8720841511, 8720972593, 8721103679, + 8721234833, 8721365927, 8721497009, 8721628093, 8721759217, 8721890293, 8722021367, + 8722152443, 8722283519, 8722414601, 8722545703, 8722676827, 8722807903, 8722938979, + 8723070101, 8723201183, 8723332271, 8723463361, 8723594437, 8723725519, 8723856613, + 8723987707, 8724118787, 8724249871, 8724380957, 8724512033, 8724643121, 8724774209, + 8724905311, 8725036387, 8725167481, 8725298563, 8725429649, 8725560751, 8725691837, + 8725822939, 8725954037, 8726085133, 8726216209, 8726347319, 8726478407, 8726609483, + 8726740637, 8726871733, 8727002813, 8727133901, 8727265013, 8727396101, 8727527189, + 8727658267, 8727789373, 8727920473, 8728051547, 8728182637, 8728313729, 8728444811, + 8728575899, 8728706999, 8728838099, 8728969187, 8729100299, 8729231411, 8729362493, + 8729493587, 8729624671, 8729755747, 8729886857, 8730017941, 8730149023, 8730280123, + 8730411197, 8730542297, 8730673381, 8730804469, 8730935569, 8731066651, 8731197743, + 8731328833, 8731459963, 8731591049, 8731722127, 8731853203, 8731984321, 8732115401, + 8732246473, 8732377559, 8732508641, 8732639731, 8732770807, 8732901893, 8733032969, + 8733164059, 8733295133, 8733426211, 8733557297, 8733688393, 8733819487, 8733950569, + 8734081669, 8734212787, 8734343881, 8734474981, 8734606057, 8734737161, 8734868249, + 8734999337, 8735130413, 8735261501, 8735392573, 8735523683, 8735654779, 8735785879, + 8735916953, 8736048037, 8736179131, 8736310237, 8736441323, 8736572431, 8736703537, + 8736834629, 8736965723, 8737096847, 8737227973, 8737359077, 8737490149, 8737621231, + 8737752313, 8737883393, 8738014469, 8738145569, 8738276647, 8738407729, 8738538811, + 8738669917, 8738801009, 8738932109, 8739063217, 8739194323, 8739325409, 8739456493, + 8739587569, 8739718693, 8739849791, 8739980881, 8740111957, 8740243069, 8740374157, + 8740505233, 8740636319, 8740767403, 8740898501, 8741029573, 8741160661, 8741291771, + 8741422847, 8741553937, 8741685019, 8741816099, 8741947183, 8742078259, 8742209341, + 8742340433, 8742471559, 8742602633, 8742733763, 8742864841, 8742995917, 8743126993, + 8743258067, 8743389209, 8743520297, 8743651393, 8743782503, 8743913597, 8744044691, + 8744175773, 8744306899, 8744437979, 8744569061, 8744700143, 8744831243, 8744962339, + 8745093421, 8745224549, 8745355621, 8745486713, 8745617789, 8745748883, 8745879997, + 8746011103, 8746142183, 8746273259, 8746404343, 8746535477, 8746666589, 8746797671, + 8746928753, 8747059831, 8747190937, 8747322019, 8747453107, 8747584199, 8747715331, + 8747846423, 8747977519, 8748108619, 8748239701, 8748370801, 8748501893, 8748632999, + 8748764117, 8748895193, 8749026287, 8749157359, 8749288447, 8749419583, 8749550657, + 8749681757, 8749812859, 8749943941, 8750075021, 8750206111, 8750337187, 8750468267, + 8750599357, 8750730449, 8750861531, 8750992637, 8751123727, 8751254801, 8751385913, + 8751517001, 8751648089, 8751779161, 8751910253, 8752041329, 8752172431, 8752303513, + 8752434589, 8752565671, 8752696753, 8752827829, 8752959029, 8753090131, 8753221223, + 8753352313, 8753483393, 8753614489, 8753745599, 8753876683, 8754007771, 8754138919, + 8754269999, 8754401077, 8754532183, 8754663263, 8754794353, 8754925427, 8755056521, + 8755187657, 8755318739, 8755449811, 8755580929, 8755712003, 8755843079, 8755974209, + 8756105287, 8756236373, 8756367461, 8756498561, 8756629649, 8756760737, 8756891831, + 8757022907, 8757153989, 8757285071, 8757416147, 8757547231, 8757678323, 8757809399, + 8757940487, 8758071571, 8758202669, 8758333747, 8758464823, 8758595897, 8758726979, + 8758858063, 8758989163, 8759120243, 8759251331, 8759382473, 8759513549, 8759644637, + 8759775721, 8759906803, 8760037889, 8760168979, 8760300067, 8760431159, 8760562249, + 8760693349, 8760824431, 8760955529, 8761086601, 8761217683, 8761348793, 8761479931, + 8761611013, 8761742123, 8761873217, 8762004301, 8762135381, 8762266489, 8762397619, + 8762528701, 8762659777, 8762790851, 8762921953, 8763053077, 8763184153, 8763315229, + 8763446333, 8763577439, 8763708517, 8763839599, 8763970727, 8764101839, 8764232959, + 8764364053, 8764495127, 8764626251, 8764757327, 8764888411, 8765019533, 8765150609, + 8765281687, 8765412763, 8765543837, 8765674933, 8765806031, 8765937119, 8766068191, + 8766199279, 8766330367, 8766461447, 8766592567, 8766723643, 8766854737, 8766985817, + 8767116899, 8767247989, 8767379081, 8767510159, 8767641277, 8767772381, 8767903489, + 8768034607, 8768165711, 8768296819, 8768427919, 8768559017, 8768690089, 8768821163, + 8768952271, 8769083371, 8769214469, 8769345547, 8769476627, 8769607723, 8769738821, + 8769869923, 8770000997, 8770132109, 8770263191, 8770394263, 8770525349, 8770656421, + 8770787503, 8770918589, 8771049673, 8771180773, 8771311847, 8771442931, 8771574023, + 8771705143, 8771836217, 8771967307, 8772098389, 8772229511, 8772360593, 8772491669, + 8772622741, 8772753851, 8772884957, 8773016059, 8773147151, 8773278223, 8773409321, + 8773540393, 8773671499, 8773802599, 8773933697, 8774064787, 8774195867, 8774326973, + 8774458079, 8774589179, 8774720263, 8774851387, 8774982467, 8775113563, 8775244661, + 8775375779, 8775506851, 8775637933, 8775769033, 8775900149, 8776031249, 8776162327, + 8776293419, 8776424497, 8776555573, 8776686671, 8776817747, 8776948847, 8777079967, + 8777211043, 8777342173, 8777473267, 8777604343, 8777735419, 8777866501, 8777997589, + 8778128683, 8778259781, 8778390877, 8778521963, 8778653047, 8778784123, 8778915221, + 8779046329, 8779177471, 8779308583, 8779439657, 8779570739, 8779701863, 8779832951, + 8779964029, 8780095127, 8780226229, 8780357329, 8780488433, 8780619539, 8780750623, + 8780881717, 8781012803, 8781143947, 8781275071, 8781406147, 8781537227, 8781668309, + 8781799387, 8781930467, 8782061581, 8782192663, 8782323751, 8782454831, 8782585909, + 8782717001, 8782848119, 8782979201, 8783110291, 8783241407, 8783372513, 8783503669, + 8783634751, 8783765827, 8783896907, 8784027979, 8784159061, 8784290257, 8784421333, + 8784552479, 8784683569, 8784814681, 8784945769, 8785076921, 8785208021, 8785339093, + 8785470179, 8785601281, 8785732363, 8785863439, 8785994531, 8786125681, 8786256767, + 8786387887, 8786518967, 8786650043, 8786781169, 8786912243, 8787043333, 8787174439, + 8787305521, 8787436631, 8787567713, 8787698791, 8787829867, 8787960947, 8788092029, + 8788223107, 8788354199, 8788485317, 8788616399, 8788747481, 8788878557, 8789009629, + 8789140727, 8789271817, 8789402903, 8789533979, 8789665051, 8789796139, 8789927249, + 8790058379, 8790189467, 8790320549, 8790451639, 8790582719, 8790713797, 8790844883, + 8790975989, 8791107071, 8791238161, 8791369243, 8791500323, 8791631423, 8791762547, + 8791893637, 8792024711, 8792155787, 8792286863, 8792417971, 8792549053, 8792680187, + 8792811259, 8792942363, 8793073439, 8793204527, 8793335647, 8793466723, 8793597823, + 8793728947, 8793860029, 8793991139, 8794122257, 8794253381, 8794384519, 8794515601, + 8794646713, 8794777799, 8794908907, 8795039983, 8795171059, 8795302147, 8795433223, + 8795564333, 8795695411, 8795826493, 8795957567, 8796088663, 8796219739, 8796350831, + 8796481913, 8796612997, 8796744071, 8796875183, 8797006291, 8797137379, 8797268497, + 8797399571, 8797530647, 8797661723, 8797792811, 8797923949, 8798055023, 8798186101, + 8798317183, 8798448257, 8798579329, 8798710409, 8798841517, 8798972639, 8799103727, + 8799234827, 8799365947, 8799497029, 8799628109, 8799759191, 8799890263, 8800021357, + 8800152443, 8800283533, 8800414631, 8800545731, 8800676839, 8800807919, 8800939019, + 8801070137, 8801201209, 8801332307, 8801463379, 8801594497, 8801725573, 8801856677, + 8801987749, 8802118823, 8802249913, 8802381011, 8802512083, 8802643189, 8802774269, + 8802905351, 8803036447, 8803167547, 8803298659, 8803429793, 8803560907, 8803691987, + 8803823059, 8803954139, 8804085229, 8804216329, 8804347411, 8804478521, 8804609629, + 8804740727, 8804871851, 8805002923, 8805134029, 8805265121, 8805396217, 8805527323, + 8805658427, 8805789521, 8805920603, 8806051703, 8806182809, 8806313891, 8806444987, + 8806576061, 8806707139, 8806838269, 8806969361, 8807100473, 8807231551, 8807362639, + 8807493733, 8807624821, 8807755921, 8807887001, 8808018101, 8808149183, 8808280303, + 8808411383, 8808542467, 8808673541, 8808804629, 8808935717, 8809066793, 8809197889, + 8809328971, 8809460053, 8809591171, 8809722247, 8809853321, 8809984397, 8810115481, + 8810246573, 8810377663, 8810508781, 8810639863, 8810770939, 8810902013, 8811033089, + 8811164183, 8811295267, 8811426341, 8811557423, 8811688499, 8811819613, 8811950699, + 8812081823, 8812212917, 8812344011, 8812475141, 8812606219, 8812737313, 8812868431, + 8812999513, 8813130617, 8813261689, 8813392781, 8813523857, 8813654951, 8813786057, + 8813917129, 8814048223, 8814179299, 8814310391, 8814441497, 8814572579, 8814703673, + 8814834757, 8814965837, 8815096919, 8815227997, 8815359079, 8815490153, 8815621261, + 8815752389, 8815883467, 8816014553, 8816145643, 8816276719, 8816407793, 8816538877, + 8816669951, 8816801053, 8816932127, 8817063217, 8817194297, 8817325399, 8817456481, + 8817587567, 8817718643, 8817849737, 8817980813, 8818111909, 8818243013, 8818374091, + 8818505173, 8818636291, 8818767421, 8818898497, 8819029577, 8819160653, 8819291737, + 8819422811, 8819553889, 8819684971, 8819816077, 8819947151, 8820078251, 8820209351, + 8820340489, 8820471563, 8820602641, 8820733729, 8820864827, 8820995899, 8821127047, + 8821258133, 8821389221, 8821520293, 8821651387, 8821782491, 8821913609, 8822044681, + 8822175763, 8822306851, 8822437999, 8822569073, 8822700151, 8822831239, 8822962319, + 8823093407, 8823224483, 8823355621, 8823486697, 8823617837, 8823748919, 8823879997, + 8824011073, 8824142147, 8824273247, 8824404331, 8824535441, 8824666517, 8824797677, + 8824928773, 8825059853, 8825190929, 8825322007, 8825453081, 8825584199, 8825715287, + 8825846423, 8825977529, 8826108623, 8826239711, 8826370793, 8826501869, 8826632981, + 8826764087, 8826895171, 8827026259, 8827157387, 8827288493, 8827419641, 8827550723, + 8827681801, 8827812883, 8827943959, 8828075033, 8828206109, 8828337187, 8828468279, + 8828599387, 8828730461, 8828861563, 8828992643, 8829123727, 8829254807, 8829385883, + 8829516991, 8829648077, 8829779159, 8829910231, 8830041313, 8830172389, 8830303519, + 8830434601, 8830565677, 8830696753, 8830827853, 8830958953, 8831090057, 8831221153, + 8831352319, 8831483407, 8831614481, 8831745583, 8831876671, 8832007783, 8832138857, + 8832269977, 8832401077, 8832532153, 8832663227, 8832794323, 8832925397, 8833056481, + 8833187639, 8833318721, 8833449797, 8833580963, 8833712053, 8833843163, 8833974239, + 8834105333, 8834236417, 8834367499, 8834498573, 8834629669, 8834760743, 8834891839, + 8835022919, 8835154021, 8835285103, 8835416197, 8835547289, 8835678421, 8835809519, + 8835940601, 8836071697, 8836202783, 8836333871, 8836464953, 8836596047, 8836727129, + 8836858211, 8836989307, 8837120389, 8837251463, 8837382539, 8837513617, 8837644721, + 8837775797, 8837906879, 8838037963, 8838169051, 8838300131, 8838431249, 8838562351, + 8838693439, 8838824551, 8838955633, 8839086719, 8839217819, 8839348909, 8839480043, + 8839611149, 8839742257, 8839873363, 8840004451, 8840135527, 8840266607, 8840397701, + 8840528803, 8840659879, 8840790961, 8840922037, 8841053149, 8841184223, 8841315323, + 8841446401, 8841577519, 8841708607, 8841839693, 8841970789, 8842101881, 8842232983, + 8842364101, 8842495213, 8842626319, 8842757393, 8842888489, 8843019587, 8843150683, + 8843281763, 8843412863, 8843543957, 8843675033, 8843806133, 8843937211, 8844068297, + 8844199373, 8844330497, 8844461569, 8844592699, 8844723781, 8844854897, 8844985973, + 8845117049, 8845248149, 8845379251, 8845510337, 8845641437, 8845772513, 8845903589, + 8846034679, 8846165759, 8846296841, 8846427913, 8846558989, 8846690119, 8846821201, + 8846952293, 8847083383, 8847214457, 8847345541, 8847476623, 8847607723, 8847738811, + 8847869893, 8848000981, 8848132067, 8848263157, 8848394293, 8848525379, 8848656463, + 8848787573, 8848918651, 8849049733, 8849180917, 8849312027, 8849443103, 8849574191, + 8849705303, 8849836381, 8849967499, 8850098573, 8850229651, 8850360751, 8850491827, + 8850622903, 8850754001, 8850885077, 8851016159, 8851147237, 8851278311, 8851409449, + 8851540541, 8851671623, 8851802741, 8851933817, 8852064913, 8852195993, 8852327083, + 8852458157, 8852589259, 8852720341, 8852851421, 8852982497, 8853113569, 8853244643, + 8853375827, 8853506923, 8853638011, 8853769123, 8853900221, 8854031297, 8854162397, + 8854293491, 8854424603, 8854555681, 8854686769, 8854817857, 8854948951, 8855080043, + 8855211137, 8855342227, 8855473309, 8855604409, 8855735521, 8855866609, 8855997719, + 8856128797, 8856259877, 8856390967, 8856522043, 8856653119, 8856784193, 8856915269, + 8857046383, 8857177489, 8857308619, 8857439693, 8857570789, 8857701887, 8857832969, + 8857964051, 8858095139, 8858226229, 8858357309, 8858488391, 8858619463, 8858750539, + 8858881627, 8859012703, 8859143789, 8859274871, 8859405977, 8859537059, 8859668227, + 8859799301, 8859930377, 8860061459, 8860192543, 8860323617, 8860454717, 8860585817, + 8860716947, 8860848043, 8860979143, 8861110217, 8861241289, 8861372393, 8861503477, + 8861634553, 8861765629, 8861896721, 8862027833, 8862158909, 8862289991, 8862421063, + 8862552161, 8862683233, 8862814313, 8862945397, 8863076479, 8863207559, 8863338647, + 8863469737, 8863600819, 8863731967, 8863863089, 8863994177, 8864125267, 8864256361, + 8864387449, 8864518583, 8864649707, 8864780789, 8864911901, 8865043007, 8865174091, + 8865305179, 8865436253, 8865567341, 8865698467, 8865829541, 8865960613, 8866091743, + 8866222853, 8866353959, 8866485127, 8866616221, 8866747297, 8866878413, 8867009497, + 8867140589, 8867271661, 8867402741, 8867533813, 8867664889, 8867795971, 8867927099, + 8868058187, 8868189283, 8868320389, 8868451499, 8868582599, 8868713671, 8868844819, + 8868975893, 8869106989, 8869238083, 8869369163, 8869500271, 8869631363, 8869762441, + 8869893523, 8870024629, 8870155727, 8870286823, 8870417911, 8870548987, 8870680073, + 8870811203, 8870942287, 8871073397, 8871204499, 8871335597, 8871466691, 8871597767, + 8871728869, 8871860027, 8871991103, 8872122199, 8872253279, 8872384363, 8872515439, + 8872646537, 8872777609, 8872908703, 8873039831, 8873170903, 8873302007, 8873433091, + 8873564173, 8873695247, 8873826389, 8873957473, 8874088591, 8874219701, 8874350789, + 8874481877, 8874612959, 8874744037, 8874875131, 8875006211, 8875137289, 8875268393, + 8875399469, 8875530563, 8875661693, 8875792777, 8875923851, 8876054927, 8876186057, + 8876317139, 8876448223, 8876579303, 8876710379, 8876841503, 8876972581, 8877103661, + 8877234763, 8877365837, 8877496933, 8877628009, 8877759097, 8877890191, 8878021267, + 8878152407, 8878283483, 8878414561, 8878545653, 8878676749, 8878807831, 8878938919, + 8879070017, 8879201101, 8879332211, 8879463419, 8879594491, 8879725577, 8879856649, + 8879987737, 8880118823, 8880249899, 8880380981, 8880512057, 8880643153, 8880774239, + 8880905329, 8881036441, 8881167521, 8881298653, 8881429729, 8881560817, 8881691933, + 8881823039, 8881954127, 8882085221, 8882216323, 8882347423, 8882478499, 8882609581, + 8882740661, 8882871743, 8883002827, 8883134003, 8883265081, 8883396161, 8883527239, + 8883658331, 8883789419, 8883920491, 8884051613, 8884182689, 8884313773, 8884444861, + 8884575943, 8884707017, 8884838099, 8884969189, 8885100281, 8885231353, 8885362441, + 8885493517, 8885624599, 8885755691, 8885886767, 8886017843, 8886148927, 8886280009, + 8886411091, 8886542191, 8886673273, 8886804373, 8886935501, 8887066583, 8887197659, + 8887328759, 8887459837, 8887590919, 8887722007, 8887853083, 8887984159, 8888115251, + 8888246351, 8888377447, 8888508521, 8888639647, 8888770721, 8888901797, 8889032869, + 8889163979, 8889295091, 8889426197, 8889557273, 8889688349, 8889819437, 8889950549, + 8890081633, 8890212707, 8890343807, 8890474907, 8890606061, 8890737133, 8890868219, + 8890999321, 8891130421, 8891261513, 8891392597, 8891523691, 8891654797, 8891785871, + 8891916967, 8892048041, 8892179161, 8892310247, 8892441331, 8892572419, 8892703499, + 8892834583, 8892965657, 8893096747, 8893227829, 8893358983, 8893490129, 8893621259, + 8893752379, 8893883459, 8894014541, 8894145649, 8894276731, 8894407829, 8894538911, + 8894669983, 8894801057, 8894932133, 8895063241, 8895194323, 8895325423, 8895456497, + 8895587573, 8895718649, 8895849733, 8895980839, 8896111933, 8896243007, 8896374083, + 8896505183, 8896636267, 8896767343, 8896898441, 8897029513, 8897160593, 8897291699, + 8897422777, 8897553883, 8897684959, 8897816093, 8897947199, 8898078281, 8898209363, + 8898340523, 8898471641, 8898602717, 8898733801, 8898864881, 8898995953, 8899127057, + 8899258129, 8899389223, 8899520297, 8899651379, 8899782461, 8899913599, 8900044679, + 8900175769, 8900306851, 8900437933, 8900569021, 8900700181, 8900831263, 8900962339, + 8901093413, 8901224491, 8901355577, 8901486689, 8901617779, 8901748883, 8901879971, + 8902011047, 8902142189, 8902273267, 8902404341, 8902535417, 8902666519, 8902797619, + 8902928693, 8903059793, 8903190869, 8903321963, 8903453047, 8903584141, 8903715217, + 8903846309, 8903977393, 8904108511, 8904239593, 8904370681, 8904501761, 8904632881, + 8904764009, 8904895081, 8905026157, 8905157267, 8905288339, 8905419437, 8905550587, + 8905681667, 8905812743, 8905943843, 8906074921, 8906206003, 8906337091, 8906468203, + 8906599283, 8906730359, 8906861471, 8906992553, 8907123629, 8907254723, 8907385813, + 8907516899, 8907647971, 8907779047, 8907910147, 8908041281, 8908172419, 8908303517, + 8908434607, 8908565713, 8908696829, 8908828001, 8908959097, 8909090191, 8909221291, + 8909352371, 8909483447, 8909614529, 8909745671, 8909876753, 8910007831, 8910138929, + 8910270007, 8910401189, 8910532297, 8910663379, 8910794483, 8910925579, 8911056659, + 8911187749, 8911318831, 8911449907, 8911580981, 8911712123, 8911843217, 8911974299, + 8912105393, 8912236481, 8912367553, 8912498627, 8912629699, 8912760809, 8912891899, + 8913023003, 8913154093, 8913285179, 8913416261, 8913547333, 8913678407, 8913809497, + 8913940577, 8914071713, 8914202789, 8914333871, 8914464961, 8914596049, 8914727123, + 8914858217, 8914989289, 8915120377, 8915251453, 8915382527, 8915513617, 8915644691, + 8915775773, 8915906861, 8916037967, 8916169051, 8916300139, 8916431239, 8916562337, + 8916693497, 8916824591, 8916955669, 8917086769, 8917217843, 8917348943, 8917480021, + 8917611113, 8917742201, 8917873297, 8918004371, 8918135531, 8918266661, 8918397743, + 8918528819, 8918659903, 8918790989, 8918922079, 8919053161, 8919184243, 8919315343, + 8919446467, 8919577543, 8919708619, 8919839707, 8919970819, 8920101899, 8920232987, + 8920364071, 8920495169, 8920626263, 8920757347, 8920888517, 8921019589, 8921150677, + 8921281757, 8921412859, 8921543941, 8921675041, 8921806121, 8921937209, 8922068321, + 8922199393, 8922330467, 8922461591, 8922592691, 8922723763, 8922854851, 8922985949, + 8923117051, 8923248143, 8923379243, 8923510331, 8923641457, 8923772537, 8923903627, + 8924034737, 8924165813, 8924296921, 8924428091, 8924559187, 8924690309, 8924821429, + 8924952503, 8925083581, 8925214673, 8925345791, 8925476863, 8925607961, 8925739111, + 8925870197, 8926001269, 8926132381, 8926263487, 8926394563, 8926525637, 8926656719, + 8926787809, 8926918919, 8927050001, 8927181077, 8927312197, 8927443309, 8927574427, + 8927705509, 8927836613, 8927967689, 8928098791, 8928229867, 8928360949, 8928492031, + 8928623129, 8928754201, 8928885283, 8929016359, 8929147441, 8929278517, 8929409609, + 8929540687, 8929671763, 8929802839, 8929933913, 8930065007, 8930196089, 8930327179, + 8930458267, 8930589401, 8930720479, 8930851619, 8930982701, 8931113801, 8931244877, + 8931375989, 8931507119, 8931638203, 8931769279, 8931900371, 8932031453, 8932162531, + 8932293611, 8932424687, 8932555787, 8932686863, 8932817939, 8932949023, 8933080129, + 8933211223, 8933342371, 8933473487, 8933604569, 8933735683, 8933866763, 8933997857, + 8934128939, 8934260039, 8934391111, 8934522187, 8934653281, 8934784379, 8934915469, + 8935046557, 8935177649, 8935308763, 8935439867, 8935570939, 8935702019, 8935833107, + 8935964183, 8936095261, 8936226391, 8936357489, 8936488567, 8936619641, 8936750737, + 8936881871, 8937012947, 8937144053, 8937275131, 8937406207, 8937537283, 8937668393, + 8937799489, 8937930569, 8938061647, 8938192723, 8938323811, 8938454887, 8938585969, + 8938717057, 8938848143, 8938979237, 8939110387, 8939241473, 8939372549, 8939503631, + 8939634731, 8939765869, 8939896949, 8940028039, 8940159113, 8940290221, 8940421361, + 8940552443, 8940683527, 8940814621, 8940945709, 8941076801, 8941207883, 8941338961, + 8941470077, 8941601167, 8941732321, 8941863421, 8941994539, 8942125649, 8942256731, + 8942387827, 8942518913, 8942650043, 8942781131, 8942912213, 8943043297, 8943174389, + 8943305477, 8943436549, 8943567623, 8943698707, 8943829781, 8943960871, 8944091951, + 8944223047, 8944354151, 8944485223, 8944616309, 8944747423, 8944878497, 8945009627, + 8945140709, 8945271781, 8945402881, 8945533991, 8945665097, 8945796173, 8945927281, + 8946058361, 8946189437, 8946320521, 8946451597, 8946582713, 8946713833, 8946844927, + 8946976013, 8947107101, 8947238173, 8947369253, 8947500377, 8947631461, 8947762547, + 8947893673, 8948024777, 8948155861, 8948286937, 8948418013, 8948549101, 8948680187, + 8948811259, 8948942333, 8949073409, 8949204599, 8949335671, 8949466763, 8949597857, + 8949729037, 8949860141, 8949991231, 8950122343, 8950253489, 8950384567, 8950515767, + 8950646867, 8950777939, 8950909021, 8951040113, 8951171191, 8951302273, 8951433371, + 8951564509, 8951695609, 8951826683, 8951957797, 8952088897, 8952219973, 8952351053, + 8952482153, 8952613279, 8952744371, 8952875453, 8953006571, 8953137671, 8953268783, + 8953399907, 8953531003, 8953662083, 8953793171, 8953924253, 8954055343, 8954186429, + 8954317513, 8954448593, 8954579671, 8954710759, 8954841839, 8954972941, 8955104071, + 8955235151, 8955366253, 8955497333, 8955628411, 8955759487, 8955890563, 8956021637, + 8956152713, 8956283797, 8956414871, 8956545967, 8956677097, 8956808227, 8956939301, + 8957070379, 8957201471, 8957332547, 8957463631, 8957594719, 8957725793, 8957856911, + 8957987989, 8958119101, 8958250183, 8958381283, 8958512357, 8958643433, 8958774523, + 8958905609, 8959036721, 8959167839, 8959298917, 8959430023, 8959561099, 8959692197, + 8959823291, 8959954387, 8960085479, 8960216561, 8960347633, 8960478707, 8960609783, + 8960740861, 8960871937, 8961003047, 8961134131, 8961265211, 8961396287, 8961527363, + 8961658471, 8961789623, 8961920711, 8962051783, 8962182857, 8962313999, 8962445071, + 8962576151, 8962707239, 8962838317, 8962969391, 8963100521, 8963231597, 8963362679, + 8963493779, 8963624893, 8963755981, 8963887061, 8964018139, 8964149231, 8964280309, + 8964411397, 8964542471, 8964673547, 8964804623, 8964935701, 8965066777, 8965197851, + 8965328927, 8965459999, 8965591099, 8965722173, 8965853251, 8965984373, 8966115451, + 8966246551, 8966377633, 8966508773, 8966639849, 8966770927, 8966902001, 8967033121, + 8967164201, 8967295283, 8967426427, 8967557527, 8967688619, 8967819701, 8967950773, + 8968081847, 8968212919, 8968344001, 8968475081, 8968606183, 8968737329, 8968868407, + 8968999493, 8969130673, 8969261753, 8969392837, 8969523917, 8969654989, 8969786069, + 8969917169, 8970048253, 8970179329, 8970310429, 8970441503, 8970572591, 8970703663, + 8970834767, 8970965863, 8971096961, 8971228033, 8971359127, 8971490249, 8971621349, + 8971752437, 8971883509, 8972014589, 8972145671, 8972276743, 8972407823, 8972538907, + 8972669999, 8972801191, 8972932289, 8973063401, 8973194509, 8973325619, 8973456691, + 8973587789, 8973718861, 8973849979, 8973981053, 8974112131, 8974243211, 8974374349, + 8974505459, 8974636589, 8974767671, 8974898749, 8975029837, 8975160911, 8975292013, + 8975423089, 8975554163, 8975685239, 8975816327, 8975947411, 8976078533, 8976209617, + 8976340691, 8976471787, 8976602867, 8976733949, 8976865033, 8976996107, 8977127189, + 8977258291, 8977389373, 8977520491, 8977651589, 8977782661, 8977913759, 8978044861, + 8978175961, 8978307067, 8978438173, 8978569253, 8978700329, 8978831431, 8978962523, + 8979093619, 8979224701, 8979355829, 8979486917, 8979618073, 8979749147, 8979880219, + 8980011301, 8980142393, 8980273507, 8980404583, 8980535699, 8980666771, 8980797871, + 8980928951, 8981060027, 8981191099, 8981322179, 8981453267, 8981584357, 8981715433, + 8981846509, 8981977583, 8982108689, 8982239809, 8982370889, 8982501967, 8982633041, + 8982764129, 8982895211, 8983026307, 8983157389, 8983288463, 8983419539, 8983550621, + 8983681723, 8983812841, 8983943929, 8984075029, 8984206103, 8984337181, 8984468281, + 8984599361, 8984730463, 8984861563, 8984992637, 8985123709, 8985254801, 8985385889, + 8985516971, 8985648079, 8985779171, 8985910249, 8986041409, 8986172521, 8986303597, + 8986434671, 8986565747, 8986696841, 8986827953, 8986959041, 8987090113, 8987221193, + 8987352289, 8987483399, 8987614499, 8987745583, 8987876669, 8988007771, 8988138877, + 8988269957, 8988401029, 8988532117, 8988663209, 8988794281, 8988925417, 8989056491, + 8989187569, 8989318673, 8989449757, 8989580867, 8989711987, 8989843063, 8989974151, + 8990105237, 8990236427, 8990367509, 8990498639, 8990629717, 8990760791, 8990891863, + 8991022973, 8991154049, 8991285131, 8991416249, 8991547337, 8991678457, 8991809531, + 8991940609, 8992071773, 8992202867, 8992333951, 8992465033, 8992596113, 8992727209, + 8992858291, 8992989367, 8993120519, 8993251601, 8993382709, 8993513801, 8993644883, + 8993775977, 8993907071, 8994038161, 8994169237, 8994300319, 8994431393, 8994562477, + 8994693551, 8994824651, 8994955729, 8995086811, 8995217887, 8995348979, 8995480051, + 8995611143, 8995742233, 8995873331, 8996004443, 8996135539, 8996266633, 8996397713, + 8996528791, 8996659873, 8996791009, 8996922113, 8997053201, 8997184297, 8997315377, + 8997446461, 8997577541, 8997708637, 8997839749, 8997970867, 8998101949, 8998233043, + 8998364131, 8998495223, 8998626317, 8998757413, 8998888501, 8999019697, 8999150777, + 8999281873, 8999412953, 8999544053, 8999675137, 8999806223, 8999937311, 9000068387, + 9000199459, 9000330569, 9000461641, 9000592747, 9000723829, 9000854911, 9000985993, + 9001117079, 9001248173, 9001379251, 9001510327, 9001641401, 9001772477, 9001903549, + 9002034637, 9002165719, 9002296799, 9002427883, 9002558989, 9002690077, 9002821169, + 9002952251, 9003083381, 9003214469, 9003345541, 9003476617, 9003607721, 9003738811, + 9003869911, 9004001147, 9004132223, 9004263311, 9004394417, 9004525489, 9004656587, + 9004787689, 9004918763, 9005049847, 9005180941, 9005312021, 9005443093, 9005574241, + 9005705321, 9005836409, 9005967521, 9006098599, 9006229679, 9006360751, 9006491843, + 9006622943, 9006754049, 9006885131, 9007016203, 9007147283, 9007278407, 9007409513, + 9007540603, 9007671679, 9007802759, 9007933843, 9008065013, 9008196103, 9008327179, + 9008458301, 9008589409, 9008720509, 9008851583, 9008982709, 9009113783, 9009244859, + 9009375941, 9009507019, 9009638107, 9009769187, 9009900269, 9010031347, 9010162451, + 9010293541, 9010424617, 9010555709, 9010686887, 9010818017, 9010949089, 9011080241, + 9011211317, 9011342413, 9011473487, 9011604577, 9011735653, 9011866727, 9011997871, + 9012128953, 9012260027, 9012391117, 9012522203, 9012653347, 9012784427, 9012915521, + 9013046597, 9013177711, 9013308853, 9013439951, 9013571027, 9013702111, 9013833209, + 9013964291, 9014095403, 9014226479, 9014357567, 9014488723, 9014619799, 9014750971, + 9014882059, 9015013141, 9015144221, 9015275371, 9015406627, 9015537709, 9015668819, + 9015799943, 9015931019, 9016062091, 9016193167, 9016324259, 9016455407, 9016586489, + 9016717631, 9016848721, 9016979819, 9017110933, 9017242021, 9017373109, 9017504219, + 9017635331, 9017766449, 9017897543, 9018028633, 9018159707, 9018290783, 9018421873, + 9018552971, 9018684071, 9018815161, 9018946247, 9019077323, 9019208411, 9019339489, + 9019470571, 9019601659, 9019732769, 9019863857, 9019994933, 9020126047, 9020257157, + 9020388319, 9020519411, 9020650487, 9020781571, 9020912689, 9021043771, 9021174847, + 9021305929, 9021437011, 9021568121, 9021699199, 9021830299, 9021961381, 9022092463, + 9022223543, 9022354657, 9022485743, 9022616821, 9022747897, 9022878971, 9023010067, + 9023141147, 9023272241, 9023403341, 9023534417, 9023665489, 9023796611, 9023927687, + 9024058811, 9024189887, 9024320993, 9024452113, 9024583187, 9024714331, 9024845407, + 9024976483, 9025107557, 9025238671, 9025369799, 9025500871, 9025631983, 9025763113, + 9025894193, 9026025341, 9026156431, 9026287531, 9026418613, 9026549689, 9026680769, + 9026811847, 9026942923, 9027074009, 9027205087, 9027336169, 9027467249, 9027598331, + 9027729427, 9027860509, 9027991639, 9028122713, 9028253803, 9028384909, 9028516019, + 9028647119, 9028778237, 9028909313, 9029040389, 9029171467, 9029302553, 9029433641, + 9029564737, 9029695819, 9029826917, 9029958013, 9030089111, 9030220247, 9030351347, + 9030482437, 9030613513, 9030744599, 9030875681, 9031006753, 9031137839, 9031268923, + 9031399997, 9031531111, 9031662317, 9031793413, 9031924519, 9032055629, 9032186729, + 9032317807, 9032448883, 9032579977, 9032711053, 9032842127, 9032973199, 9033104273, + 9033235361, 9033366467, 9033497563, 9033628661, 9033759743, 9033890837, 9034021921, + 9034153043, 9034284167, 9034415263, 9034546363, 9034677439, 9034808513, 9034939597, + 9035070673, 9035201761, 9035332853, 9035463971, 9035595067, 9035726177, 9035857261, + 9035988341, 9036119419, 9036250493, 9036381593, 9036512671, 9036643753, 9036774833, + 9036905959, 9037037041, 9037168139, 9037299223, 9037430317, 9037561397, 9037692497, + 9037823657, 9037954741, 9038085841, 9038216917, 9038348023, 9038479111, 9038610211, + 9038741287, 9038872361, 9039003439, 9039134543, 9039265657, 9039396761, 9039527843, + 9039658987, 9039790127, 9039921217, 9040052291, 9040183367, 9040314461, 9040445543, + 9040576631, 9040707733, 9040838813, 9040969909, 9041101063, 9041232149, 9041363267, + 9041494391, 9041625479, 9041756557, 9041887643, 9042018749, 9042149903, 9042280981, + 9042412087, 9042543161, 9042674233, 9042805313, 9042936389, 9043067479, 9043198553, + 9043329667, 9043460747, 9043591819, 9043722971, 9043854047, 9043985173, 9044116247, + 9044247337, 9044378419, 9044509553, 9044640629, 9044771719, 9044902813, 9045033887, + 9045164969, 9045296059, 9045427169, 9045558241, 9045689327, 9045820403, 9045951479, + 9046082561, 9046213639, 9046344719, 9046475843, 9046606949, 9046738049, 9046869173, + 9047000267, 9047131339, 9047262421, 9047393497, 9047524573, 9047655647, 9047786729, + 9047917807, 9048048887, 9048179971, 9048311053, 9048442127, 9048573223, 9048704311, + 9048835391, 9048966463, 9049097537, 9049228609, 9049359701, 9049490797, 9049621871, + 9049752947, 9049884029, 9050015129, 9050146213, 9050277287, 9050408369, 9050539447, + 9050670527, 9050801623, 9050932717, 9051063797, 9051194909, 9051326003, 9051457117, + 9051588269, 9051719401, 9051850499, 9051981623, 9052112731, 9052243819, 9052374893, + 9052506019, 9052637117, 9052768189, 9052899269, 9053030351, 9053161433, 9053292509, + 9053423591, 9053554723, 9053685829, 9053816903, 9053947993, 9054079081, 9054210169, + 9054341269, 9054472367, 9054603443, 9054734519, 9054865627, 9054996721, 9055127819, + 9055258897, 9055390087, 9055521191, 9055652267, 9055783357, 9055914481, 9056045561, + 9056176639, 9056307731, 9056438803, 9056569897, 9056700973, 9056832067, 9056963147, + 9057094223, 9057225319, 9057356393, 9057487493, 9057618571, 9057749677, 9057880829, + 9058011901, 9058142981, 9058274083, 9058405163, 9058536247, 9058667357, 9058798429, + 9058929559, 9059060639, 9059191747, 9059322859, 9059453951, 9059585057, 9059716147, + 9059847241, 9059978327, 9060109441, 9060240521, 9060371627, 9060502721, 9060633809, + 9060764887, 9060895967, 9061027043, 9061158143, 9061289227, 9061420327, 9061551413, + 9061682503, 9061813699, 9061944779, 9062075851, 9062206939, 9062338027, 9062469113, + 9062600191, 9062731267, 9062862349, 9062993449, 9063124537, 9063255613, 9063386687, + 9063517759, 9063648857, 9063779929, 9063911011, 9064042123, 9064173199, 9064304279, + 9064435351, 9064566449, 9064697527, 9064828607, 9064959749, 9065090833, 9065221931, + 9065353021, 9065484097, 9065615171, 9065746243, 9065877349, 9066008447, 9066139531, + 9066270659, 9066401737, 9066532823, 9066663901, 9066795007, 9066926107, 9067057189, + 9067188269, 9067319351, 9067450477, 9067581563, 9067712669, 9067843747, 9067974833, + 9068105947, 9068237021, 9068368109, 9068499197, 9068630269, 9068761357, 9068892449, + 9069023531, 9069154603, 9069285677, 9069416771, 9069547843, 9069678923, 9069810031, + 9069941113, 9070072229, 9070203301, 9070334389, 9070465463, 9070596541, 9070727629, + 9070858711, 9070989799, 9071120897, 9071251979, 9071383093, 9071514173, 9071645251, + 9071776361, 9071907491, 9072038579, 9072169661, 9072300817, 9072431899, 9072562987, + 9072694073, 9072825173, 9072956261, 9073087343, 9073218419, 9073349491, 9073480579, + 9073611653, 9073742791, 9073873867, 9074004941, 9074136013, 9074267093, 9074398187, + 9074529311, 9074660383, 9074791459, 9074922539, 9075053629, 9075184709, 9075315787, + 9075446867, 9075577939, 9075709031, 9075840113, 9075971197, 9076102279, 9076233391, + 9076364471, 9076495553, 9076626631, 9076757707, 9076888787, 9077019881, 9077150959, + 9077282033, 9077413123, 9077544209, 9077675371, 9077806447, 9077937527, 9078068599, + 9078199679, 9078330761, 9078461851, 9078592961, 9078724087, 9078855161, 9078986233, + 9079117321, 9079248433, 9079379579, 9079510717, 9079641797, 9079772881, 9079903957, + 9080035033, 9080166119, 9080297197, 9080428303, 9080559409, 9080690503, 9080821583, + 9080952689, 9081083807, 9081214903, 9081346067, 9081477161, 9081608243, 9081739321, + 9081870403, 9082001497, 9082132597, 9082263679, 9082394753, 9082525841, 9082656917, + 9082788007, 9082919107, 9083050231, 9083181323, 9083312411, 9083443513, 9083574601, + 9083705689, 9083836841, 9083967931, 9084099007, 9084230081, 9084361163, 9084492251, + 9084623341, 9084754421, 9084885499, 9085016617, 9085147733, 9085278809, 9085409887, + 9085540969, 9085672051, 9085803149, 9085934251, 9086065349, 9086196421, 9086327507, + 9086458603, 9086589679, 9086720767, 9086851841, 9086982923, 9087114067, 9087245173, + 9087376253, 9087507349, 9087638449, 9087769589, 9087900677, 9088031789, 9088162877, + 9088293953, 9088425041, 9088556117, 9088687193, 9088818287, 9088949369, 9089080471, + 9089211557, 9089342651, 9089473727, 9089604817, 9089735891, 9089866967, 9089998079, + 9090129203, 9090260303, 9090391391, 9090522503, 9090653591, 9090784673, 9090915787, + 9091046903, 9091177999, 9091309133, 9091440223, 9091571297, 9091702379, 9091833497, + 9091964573, 9092095667, 9092226743, 9092357819, 9092489023, 9092620127, 9092751259, + 9092882341, 9093013421, 9093144493, 9093275567, 9093406681, 9093537809, 9093668887, + 9093800017, 9093931097, 9094062199, 9094193287, 9094324373, 9094455449, 9094586537, + 9094717673, 9094848767, 9094979867, 9095110949, 9095242021, 9095373107, 9095504263, + 9095635337, 9095766409, 9095897501, 9096028577, 9096159697, 9096290783, 9096421871, + 9096552973, 9096684059, 9096815171, 9096946273, 9097077371, 9097208489, 9097339567, + 9097470647, 9097601741, 9097732873, 9097863953, 9097995029, 9098126129, 9098257229, + 9098388311, 9098519383, 9098650513, 9098781631, 9098912729, 9099043831, 9099174961, + 9099306037, 9099437141, 9099568213, 9099699337, 9099830419, 9099961513, 9100092587, + 9100223663, 9100354829, 9100485929, 9100617011, 9100748099, 9100879171, 9101010257, + 9101141333, 9101272409, 9101403527, 9101534627, 9101665711, 9101796853, 9101927953, + 9102059027, 9102190109, 9102321187, 9102452279, 9102583387, 9102714463, 9102845617, + 9102976691, 9103107787, 9103238867, 9103369963, 9103501049, 9103632137, 9103763219, + 9103894321, 9104025397, 9104156513, 9104287603, 9104418677, 9104549759, 9104680859, + 9104811931, 9104943041, 9105074141, 9105205223, 9105336311, 9105467383, 9105598459, + 9105729551, 9105860629, 9105991703, 9106122787, 9106253903, 9106385003, 9106516093, + 9106647181, 9106778257, 9106909349, 9107040421, 9107171543, 9107302619, 9107433691, + 9107564779, 9107695859, 9107826977, 9107958059, 9108089149, 9108220223, 9108351299, + 9108482389, 9108613483, 9108744607, 9108875683, 9109006763, 9109137857, 9109268939, + 9109400011, 9109531103, 9109662179, 9109793279, 9109924363, 9110055439, 9110186521, + 9110317613, 9110448689, 9110579771, 9110710859, 9110841941, 9110973017, 9111104129, + 9111235223, 9111366317, 9111497389, 9111628541, 9111759623, 9111890701, 9112021813, + 9112152913, 9112284073, 9112415161, 9112546237, 9112677311, 9112808387, 9112939469, + 9113070553, 9113201641, 9113332721, 9113463797, 9113594869, 9113725967, 9113857043, + 9113988131, 9114119221, 9114250309, 9114381389, 9114512467, 9114643553, 9114774631, + 9114905707, 9115036783, 9115167871, 9115298977, 9115430059, 9115561157, 9115692233, + 9115823369, 9115954447, 9116085551, 9116216633, 9116347711, 9116478827, 9116609989, + 9116741069, 9116872147, 9117003239, 9117134311, 9117265429, 9117396517, 9117527591, + 9117658681, 9117789773, 9117920873, 9118051967, 9118183099, 9118314173, 9118445291, + 9118576403, 9118707511, 9118838593, 9118969723, 9119100799, 9119231873, 9119362981, + 9119494063, 9119625139, 9119756231, 9119887333, 9120018431, 9120149531, 9120280639, + 9120411847, 9120542923, 9120673997, 9120805097, 9120936173, 9121067279, 9121198351, + 9121329431, 9121460521, 9121591613, 9121722703, 9121853779, 9121984889, 9122115971, + 9122247049, 9122378137, 9122509217, 9122640301, 9122771407, 9122902483, 9123033583, + 9123164671, 9123295763, 9123426841, 9123557941, 9123689083, 9123820169, 9123951257, + 9124082329, 9124213403, 9124344571, 9124475651, 9124606739, 9124737851, 9124868927, + 9125000041, 9125131117, 9125262191, 9125393269, 9125524361, 9125655463, 9125786543, + 9125917631, 9126048719, 9126179801, 9126310873, 9126441967, 9126573041, 9126704149, + 9126835259, 9126966337, 9127097423, 9127228501, 9127359613, 9127490707, 9127621813, + 9127752917, 9127884019, 9128015161, 9128146273, 9128277383, 9128408477, 9128539559, + 9128670667, 9128801749, 9128932861, 9129063947, 9129195043, 9129326117, 9129457247, + 9129588323, 9129719399, 9129850489, 9129981643, 9130112737, 9130243861, 9130374971, + 9130506071, 9130637161, 9130768279, 9130899389, 9131030471, 9131161573, 9131292647, + 9131423723, 9131554807, 9131685887, 9131816999, 9131948107, 9132079219, 9132210301, + 9132341381, 9132472501, 9132603577, 9132734657, 9132865739, 9132996839, 9133127951, + 9133259063, 9133390141, 9133521223, 9133652299, 9133783397, 9133914469, 9134045551, + 9134176697, 9134307797, 9134438909, 9134569993, 9134701111, 9134832221, 9134963297, + 9135094387, 9135225481, 9135356561, 9135487661, 9135618743, 9135749827, 9135880931, + 9136012009, 9136143089, 9136274171, 9136405259, 9136536341, 9136667429, 9136798501, + 9136929617, 9137060693, 9137191771, 9137322863, 9137453939, 9137585027, 9137716139, + 9137847221, 9137978293, 9138109367, 9138240457, 9138371533, 9138502619, 9138633719, + 9138764813, 9138895897, 9139026971, 9139158047, 9139289141, 9139420243, 9139551349, + 9139682437, 9139813559, 9139944637, 9140075713, 9140206819, 9140337893, 9140468969, + 9140600057, 9140731133, 9140862259, 9140993333, 9141124453, 9141255527, 9141386599, + 9141517673, 9141648751, 9141779831, 9141910919, 9142041991, 9142173077, 9142304161, + 9142435259, 9142566379, 9142697479, 9142828559, 9142959641, 9143090717, 9143221793, + 9143352871, 9143483957, 9143615051, 9143746133, 9143877269, 9144008359, 9144139453, + 9144270529, 9144401611, 9144532687, 9144663799, 9144794881, 9144925987, 9145057073, + 9145188149, 9145319231, 9145450319, 9145581421, 9145712501, 9145843573, 9145974683, + 9146105797, 9146236889, 9146367977, 9146499059, 9146630137, 9146761219, 9146892301, + 9147023407, 9147154481, 9147285571, 9147416659, 9147547751, 9147678823, 9147809897, + 9147940981, 9148072061, 9148203133, 9148334269, 9148465343, 9148596439, 9148727513, + 9148858619, 9148989727, 9149120887, 9149251961, 9149383037, 9149514109, 9149645201, + 9149776297, 9149907383, 9150038467, 9150169657, 9150300743, 9150431827, 9150562909, + 9150693983, 9150825157, 9150956239, 9151087313, 9151218389, 9151349489, 9151480577, + 9151611719, 9151742797, 9151873879, 9152004959, 9152136041, 9152267123, 9152398201, + 9152529283, 9152660371, 9152791523, 9152922599, 9153053687, 9153184771, 9153315863, + 9153446957, 9153578029, 9153709127, 9153840229, 9153971303, 9154102379, 9154233463, + 9154364543, 9154495633, 9154626731, 9154757809, 9154888891, 9155019971, 9155151053, + 9155282131, 9155413217, 9155544313, 9155675411, 9155806483, 9155937577, 9156068653, + 9156199771, 9156330877, 9156461983, 9156593113, 9156724249, 9156855359, 9156986441, + 9157117523, 9157248613, 9157379687, 9157510771, 9157641847, 9157772927, 9157903999, + 9158035079, 9158166161, 9158297263, 9158428337, 9158559409, 9158690501, 9158821619, + 9158952707, 9159083797, 9159215017, 9159346099, 9159477179, 9159608267, 9159739339, + 9159870427, 9160001507, 9160132601, 9160263691, 9160394809, 9160525919, 9160656991, + 9160788139, 9160919227, 9161050313, 9161181397, 9161312477, 9161443553, 9161574629, + 9161705719, 9161836799, 9161967901, 9162098987, 9162230083, 9162361199, 9162492271, + 9162623347, 9162754423, 9162885497, 9163016593, 9163147667, 9163278743, 9163409831, + 9163540907, 9163672003, 9163803101, 9163934173, 9164065291, 9164196403, 9164327489, + 9164458571, 9164589649, 9164720749, 9164851841, 9164982913, 9165114029, 9165245113, + 9165376211, 9165507289, 9165638407, 9165769489, 9165900577, 9166031713, 9166162813, + 9166293887, 9166424959, 9166556051, 9166687183, 9166818263, 9166949381, 9167080477, + 9167211583, 9167342663, 9167473741, 9167604839, 9167735959, 9167867039, 9167998129, + 9168129211, 9168260287, 9168391361, 9168522437, 9168653521, 9168784621, 9168915751, + 9169046827, 9169177937, 9169309013, 9169440131, 9169571221, 9169702331, 9169833457, + 9169964567, 9170095643, 9170226721, 9170357797, 9170488883, 9170619967, 9170751053, + 9170882131, 9171013213, 9171144287, 9171275371, 9171406477, 9171537589, 9171668677, + 9171799807, 9171930881, 9172061959, 9172193083, 9172324207, 9172455301, 9172586399, + 9172717481, 9172848613, 9172979723, 9173110799, 9173241911, 9173373007, 9173504117, + 9173635213, 9173766311, 9173897387, 9174028459, 9174159539, 9174290611, 9174421687, + 9174552767, 9174683839, 9174814951, 9174946049, 9175077127, 9175208201, 9175339289, + 9175470413, 9175601489, 9175732561, 9175863647, 9175994731, 9176125811, 9176256911, + 9176387989, 9176519081, 9176650169, 9176781281, 9176912387, 9177043483, 9177174557, + 9177305629, 9177436721, 9177567803, 9177698923, 9177830009, 9177961099, 9178092191, + 9178223281, 9178354463, 9178485559, 9178616633, 9178747717, 9178878791, 9179009881, + 9179140969, 9179272051, 9179403127, 9179534261, 9179665343, 9179796427, 9179927507, + 9180058583, 9180189673, 9180320753, 9180451837, 9180582973, 9180714071, 9180845153, + 9180976229, 9181107307, 9181238431, 9181369543, 9181500637, 9181631713, 9181762823, + 9181893923, 9182025001, 9182156119, 9182287193, 9182418299, 9182549381, 9182680453, + 9182811527, 9182942603, 9183073717, 9183204809, 9183335881, 9183466961, 9183598051, + 9183729131, 9183860251, 9183991339, 9184122419, 9184253543, 9184384631, 9184515707, + 9184646803, 9184777907, 9184908989, 9185040061, 9185171173, 9185302277, 9185433377, + 9185564449, 9185695627, 9185826707, 9185957821, 9186088903, 9186219979, 9186351061, + 9186482143, 9186613283, 9186744401, 9186875507, 9187006603, 9187137683, 9187268777, + 9187399849, 9187530929, 9187662017, 9187793093, 9187924171, 9188055257, 9188186339, + 9188317421, 9188448497, 9188579629, 9188710711, 9188841817, 9188972909, 9189103981, + 9189235091, 9189366181, 9189497279, 9189628381, 9189759487, 9189890581, 9190021691, + 9190152779, 9190283873, 9190414963, 9190546039, 9190677163, 9190808293, 9190939391, + 9191070463, 9191201549, 9191332621, 9191463707, 9191594813, 9191725901, 9191856983, + 9191988097, 9192119191, 9192250273, 9192381347, 9192512449, 9192643531, 9192774673, + 9192905759, 9193036849, 9193167941, 9193299013, 9193430089, 9193561187, 9193692323, + 9193823399, 9193954481, 9194085553, 9194216659, 9194347739, 9194478833, 9194609909, + 9194740991, 9194872067, 9195003161, 9195134237, 9195265319, 9195396391, 9195527501, + 9195658583, 9195789721, 9195920803, 9196051901, 9196182977, 9196314053, 9196445147, + 9196576247, 9196707329, 9196838429, 9196969511, 9197100593, 9197231677, 9197362753, + 9197493853, 9197624941, 9197756021, 9197887121, 9198018211, 9198149321, 9198280417, + 9198411503, 9198542593, 9198673723, 9198804833, 9198935953, 9199067027, 9199198111, + 9199329193, 9199460267, 9199591351, 9199722451, 9199853527, 9199984603, 9200115703, + 9200246777, 9200377853, 9200508959, 9200640049, 9200771131, 9200902213, 9201033293, + 9201164377, 9201295459, 9201426539, 9201557611, 9201688697, 9201819793, 9201950867, + 9202081949, 9202213081, 9202344169, 9202475273, 9202606417, 9202737559, 9202868641, + 9202999717, 9203130791, 9203261869, 9203392943, 9203524069, 9203655161, 9203786239, + 9203917313, 9204048407, 9204179531, 9204310681, 9204441769, 9204572873, 9204703951, + 9204835039, 9204966139, 9205097261, 9205228339, 9205359421, 9205490507, 9205621603, + 9205752727, 9205883807, 9206014901, 9206145973, 9206277077, 9206408161, 9206539271, + 9206670371, 9206801467, 9206932541, 9207063623, 9207194707, 9207325789, 9207456889, + 9207587993, 9207719071, 9207850147, 9207981241, 9208112317, 9208243393, 9208374473, + 9208505557, 9208636649, 9208767721, 9208898801, 9209029873, 9209160953, 9209292041, + 9209423117, 9209554199, 9209685283, 9209816359, 9209947433, 9210078529, 9210209611, + 9210340691, 9210471779, 9210602857, 9210733957, 9210865043, 9210996143, 9211127243, + 9211258337, 9211389419, 9211520491, 9211651627, 9211782709, 9211913807, 9212044879, + 9212175967, 9212307059, 9212438161, 9212569237, 9212700313, 9212831387, 9212962481, + 9213093557, 9213224633, 9213355729, 9213486803, 9213617893, 9213748967, 9213880043, + 9214011127, 9214142209, 9214273339, 9214404457, 9214535567, 9214666661, 9214797733, + 9214928809, 9215059921, 9215191031, 9215322133, 9215453209, 9215584283, 9215715391, + 9215846467, 9215977549, 9216108623, 9216239713, 9216370789, 9216501863, 9216632947, + 9216764027, 9216895153, 9217026253, 9217157329, 9217288439, 9217419527, 9217550611, + 9217681703, 9217812797, 9217943909, 9218075011, 9218206091, 9218337169, 9218468243, + 9218599331, 9218730419, 9218861537, 9218992609, 9219123691, 9219254767, 9219385841, + 9219516913, 9219648059, 9219779131, 9219910223, 9220041329, 9220172443, 9220303559, + 9220434637, 9220565713, 9220696811, 9220827929, 9220959017, 9221090111, 9221221193, + 9221352281, 9221483353, 9221614439, 9221745517, 9221876591, 9222007673, 9222138769, + 9222269843, 9222400927, 9222532003, 9222663077, 9222794201, 9222925301, 9223056431, + 9223187507, 9223318609, 9223449691, 9223580777, 9223711853, 9223842931, 9223974007, + 9224105119, 9224236201, 9224367283, 9224498359, 9224629439, 9224760569, 9224891651, + 9225022733, 9225153811, 9225284897, 9225415999, 9225547087, 9225678199, 9225809273, + 9225940351, 9226071467, 9226202563, 9226333661, 9226464769, 9226595857, 9226726979, + 9226858057, 9226989151, 9227120249, 9227251337, 9227382413, 9227513573, 9227644681, + 9227775779, 9227906911, 9228037993, 9228169103, 9228300181, 9228431273, 9228562351, + 9228693437, 9228824509, 9228955609, 9229086703, 9229217779, 9229348871, 9229479953, + 9229611043, 9229742117, 9229873193, 9230004271, 9230135357, 9230266429, 9230397521, + 9230528653, 9230659733, 9230790823, 9230921911, 9231053009, 9231184111, 9231315239, + 9231446311, 9231577409, 9231708527, 9231839599, 9231970673, 9232101757, 9232232833, + 9232363909, 9232494983, 9232626059, 9232757141, 9232888243, 9233019317, 9233150389, + 9233281487, 9233412569, 9233543663, 9233674759, 9233805851, 9233936941, 9234068021, + 9234199099, 9234330179, 9234461261, 9234592333, 9234723409, 9234854501, 9234985597, + 9235116679, 9235247761, 9235378883, 9235509973, 9235641059, 9235772137, 9235903231, + 9236034323, 9236165429, 9236296513, 9236427601, 9236558699, 9236689789, 9236820863, + 9236951947, 9237083021, 9237214111, 9237345191, 9237476267, 9237607343, 9237738427, + 9237869561, 9238000633, 9238131709, 9238262797, 9238393891, 9238524973, 9238656067, + 9238787141, 9238918219, 9239049293, 9239180381, 9239311489, 9239442577, 9239573683, + 9239704757, 9239835889, 9239966963, 9240098041, 9240229121, 9240360197, 9240491303, + 9240622441, 9240753523, 9240884603, 9241015687, 9241146763, 9241277863, 9241408949, + 9241540057, 9241671137, 9241802221, 9241933307, 9242064389, 9242195471, 9242326543, + 9242457667, 9242588767, 9242719859, 9242850937, 9242982017, 9243113111, 9243244187, + 9243375259, 9243506347, 9243637421, 9243768593, 9243899681, 9244030769, 9244161877, + 9244292957, 9244424081, 9244555207, 9244686299, 9244817371, 9244948477, 9245079581, + 9245210699, 9245341801, 9245472881, 9245603953, 9245735041, 9245866151, 9245997317, + 9246128413, 9246259493, 9246390589, 9246521689, 9246652799, 9246783877, 9246914953, + 9247046033, 9247177111, 9247308193, 9247439287, 9247570361, 9247701439, 9247832521, + 9247963619, 9248094703, 9248225797, 9248356889, 9248488001, 9248619101, 9248750239, + 9248881333, 9249012449, 9249143543, 9249274621, 9249405707, 9249536789, 9249667877, + 9249798953, 9249930047, 9250061147, 9250192219, 9250323293, 9250454407, 9250585483, + 9250716557, 9250847647, 9250978721, 9251109797, 9251240917, 9251372027, 9251503109, + 9251634187, 9251765261, 9251896343, 9252027443, 9252158581, 9252289693, 9252420803, + 9252551879, 9252682961, 9252814057, 9252945137, 9253076221, 9253207373, 9253338461, + 9253469569, 9253600703, 9253731791, 9253862873, 9253993951, 9254125039, 9254256131, + 9254387213, 9254518387, 9254649463, 9254780543, 9254911651, 9255042751, 9255173833, + 9255304937, 9255436019, 9255567119, 9255698239, 9255829343, 9255960451, 9256091527, + 9256222667, 9256353739, 9256484813, 9256615897, 9256746973, 9256878047, 9257009129, + 9257140231, 9257271329, 9257402419, 9257533499, 9257664623, 9257795731, 9257926817, + 9258057889, 9258188977, 9258320063, 9258451183, 9258582259, 9258713339, 9258844411, + 9258975527, 9259106651, 9259237733, 9259368823, 9259499947, 9259631039, 9259762111, + 9259893193, 9260024269, 9260155439, 9260286571, 9260417659, 9260548733, 9260679809, + 9260810891, 9260941997, 9261073069, 9261204157, 9261335233, 9261466307, 9261597409, + 9261728549, 9261859667, 9261990767, 9262121857, 9262252931, 9262384031, 9262515103, + 9262646203, 9262777283, 9262908503, 9263039587, 9263170663, 9263301757, 9263432837, + 9263563919, 9263694991, 9263826073, 9263957147, 9264088219, 9264219299, 9264350371, + 9264481463, 9264612541, 9264743633, 9264874709, 9265005781, 9265136869, 9265267943, + 9265399019, 9265530107, 9265661179, 9265792267, 9265923353, 9266054429, 9266185549, + 9266316673, 9266447777, 9266578861, 9266709943, 9266841041, 9266972129, 9267103229, + 9267234331, 9267365407, 9267496489, 9267627623, 9267758707, 9267889781, 9268020859, + 9268151951, 9268283039, 9268414139, 9268545259, 9268676353, 9268807441, 9268938533, + 9269069627, 9269200729, 9269331817, 9269462897, 9269593987, 9269725081, 9269856157, + 9269987261, 9270118369, 9270249449, 9270380549, 9270511631, 9270642713, 9270773791, + 9270904873, 9271035947, 9271167019, 9271298093, 9271429169, 9271560253, 9271691329, + 9271822421, 9271953533, 9272084609, 9272215697, 9272346773, 9272477849, 9272608937, + 9272740021, 9272871109, 9273002183, 9273133273, 9273264349, 9273395431, 9273526513, + 9273657599, 9273788683, 9273919763, 9274050839, 9274181911, 9274313011, 9274444099, + 9274575197, 9274706279, 9274837357, 9274968433, 9275099563, 9275230637, 9275361713, + 9275492813, 9275623891, 9275754973, 9275886073, 9276017183, 9276148283, 9276279379, + 9276410477, 9276541559, 9276672637, 9276803771, 9276934859, 9277065947, 9277197031, + 9277328117, 9277459201, 9277590277, 9277721359, 9277852477, 9277983553, 9278114689, + 9278245787, 9278376883, 9278507969, 9278639077, 9278770181, 9278901283, 9279032401, + 9279163477, 9279294631, 9279425717, 9279556817, 9279687917, 9279819001, 9279950083, + 9280081157, 9280212233, 9280343323, 9280474409, 9280605511, 9280736623, 9280867703, + 9280998823, 9281129911, 9281260987, 9281392073, 9281523151, 9281654227, 9281785319, + 9281916421, 9282047503, 9282178579, 9282309691, 9282440777, 9282571853, 9282702941, + 9282834013, 9282965093, 9283096169, 9283227259, 9283358341, 9283489417, 9283620551, + 9283751627, 9283882711, 9284013811, 9284144893, 9284275967, 9284407063, 9284538139, + 9284669213, 9284800289, 9284931373, 9285062453, 9285193529, 9285324613, 9285455717, + 9285586799, 9285717887, 9285848969, 9285980059, 9286111171, 9286242253, 9286373363, + 9286504471, 9286635551, 9286766639, 9286897723, 9287028851, 9287159933, 9287291081, + 9287422163, 9287553251, 9287684323, 9287815417, 9287946511, 9288077593, 9288208697, + 9288339769, 9288470909, 9288601981, 9288733061, 9288864251, 9288995327, 9289126447, + 9289257541, 9289388639, 9289519717, 9289650793, 9289781909, 9289912993, 9290044069, + 9290175179, 9290306273, 9290437349, 9290568421, 9290699513, 9290830613, 9290961697, + 9291092771, 9291223913, 9291354997, 9291486079, 9291617191, 9291748289, 9291879383, + 9292010473, 9292141567, 9292272727, 9292403837, 9292534919, 9292665997, 9292797103, + 9292928179, 9293059271, 9293190353, 9293321461, 9293452573, 9293583671, 9293714779, + 9293845927, 9293977009, 9294108091, 9294239173, 9294370291, 9294501379, 9294632489, + 9294763579, 9294894659, 9295025737, 9295156831, 9295287913, 9295419013, 9295550107, + 9295681181, 9295812259, 9295943333, 9296074409, 9296205521, 9296336641, 9296467721, + 9296598803, 9296729891, 9296860997, 9296992073, 9297123151, 9297254243, 9297385327, + 9297516409, 9297647501, 9297778583, 9297909659, 9298040767, 9298171871, 9298302991, + 9298434137, 9298565219, 9298696301, 9298827379, 9298958497, 9299089577, 9299220709, + 9299351791, 9299482883, 9299614013, 9299745109, 9299876219, 9300007307, 9300138391, + 9300269467, 9300400567, 9300531679, 9300662771, 9300793877, 9300925019, 9301056097, + 9301187177, 9301318291, 9301449403, 9301580531, 9301711631, 9301842731, 9301973819, + 9302104891, 9302235977, 9302367097, 9302498201, 9302629321, 9302760403, 9302891497, + 9303022583, 9303153683, 9303284801, 9303415879, 9303546971, 9303678047, 9303809131, + 9303940207, 9304071281, 9304202377, 9304333463, 9304464539, 9304595611, 9304726709, + 9304857787, 9304988863, 9305119963, 9305251037, 9305382169, 9305513251, 9305644333, + 9305775419, 9305906527, 9306037619, 9306168691, 9306299771, 9306430873, 9306561959, + 9306693037, 9306824117, 9306955199, 9307086287, 9307217363, 9307348451, 9307479539, + 9307610633, 9307741747, 9307872841, 9308003941, 9308135021, 9308266103, 9308397181, + 9308528261, 9308659357, 9308790433, 9308921507, 9309052601, 9309183679, 9309314753, + 9309445843, 9309576917, 9309708013, 9309839087, 9309970171, 9310101263, 9310232339, + 9310363411, 9310494493, 9310625609, 9310756687, 9310887791, 9311018867, 9311149993, + 9311281069, 9311412163, 9311543239, 9311674319, 9311805409, 9311936497, 9312067603, + 9312198683, 9312329771, 9312460897, 9312591971, 9312723047, 9312854147, 9312985219, + 9313116359, 9313247441, 9313378517, 9313509593, 9313640671, 9313771751, 9313902859, + 9314033969, 9314165051, 9314296151, 9314427229, 9314558317, 9314689399, 9314820481, + 9314951557, 9315082649, 9315213749, 9315344827, 9315475909, 9315607019, 9315738101, + 9315869191, 9316000271, 9316131343, 9316262437, 9316393511, 9316524677, 9316655749, + 9316786867, 9316917977, 9317049073, 9317180221, 9317311301, 9317442391, 9317573467, + 9317704549, 9317835629, 9317966737, 9318097891, 9318228971, 9318360043, 9318491123, + 9318622213, 9318753313, 9318884411, 9319015523, 9319146611, 9319277761, 9319408849, + 9319539953, 9319671059, 9319802143, 9319933297, 9320064373, 9320195453, 9320326541, + 9320457617, 9320588689, 9320719769, 9320850863, 9320981941, 9321113017, 9321244091, + 9321375211, 9321506303, 9321637433, 9321768523, 9321899597, 9322030693, 9322161811, + 9322292891, 9322423987, 9322555079, 9322686193, 9322817269, 9322948351, 9323079431, + 9323210509, 9323341589, 9323472679, 9323603759, 9323734867, 9323865961, 9323997037, + 9324128123, 9324259199, 9324390281, 9324521359, 9324652451, 9324783529, 9324914611, + 9325045759, 9325176841, 9325307921, 9325438999, 9325570081, 9325701179, 9325832251, + 9325963327, 9326094419, 9326225501, 9326356573, 9326487659, 9326618789, 9326749867, + 9326880947, 9327012029, 9327143117, 9327274193, 9327405281, 9327536369, 9327667463, + 9327798569, 9327929641, 9328060733, 9328191827, 9328322959, 9328454033, 9328585127, + 9328716239, 9328847321, 9328978409, 9329109523, 9329240617, 9329371699, 9329502781, + 9329633869, 9329764979, 9329896057, 9330027131, 9330158203, 9330289291, 9330420391, + 9330551491, 9330682597, 9330813671, 9330944759, 9331075849, 9331206931, 9331338019, + 9331469093, 9331600171, 9331731263, 9331862357, 9331993453, 9332124533, 9332255663, + 9332386751, 9332517841, 9332648917, 9332780027, 9332911111, 9333042203, 9333173329, + 9333304429, 9333435509, 9333566591, 9333697669, 9333828787, 9333959863, 9334090937, + 9334222019, 9334353139, 9334484221, 9334615307, 9334746401, 9334877473, 9335008577, + 9335139661, 9335270743, 9335401847, 9335532977, 9335664049, 9335795137, 9335926211, + 9336057293, 9336188371, 9336319453, 9336450547, 9336581621, 9336712733, 9336843889, + 9336974981, 9337106111, 9337237303, 9337368407, 9337499519, 9337630591, 9337761691, + 9337892789, 9338023883, 9338154989, 9338286091, 9338417171, 9338548291, 9338679373, + 9338810501, 9338941589, 9339072703, 9339203831, 9339334913, 9339466027, 9339597103, + 9339728191, 9339859283, 9339990371, 9340121467, 9340252561, 9340383667, 9340514767, + 9340645859, 9340776931, 9340908007, 9341039083, 9341170169, 9341301247, 9341432369, + 9341563447, 9341694521, 9341825621, 9341956709, 9342087787, 9342218861, 9342349943, + 9342481037, 9342612161, 9342743233, 9342874319, 9343005391, 9343136497, 9343267597, + 9343398671, 9343529761, 9343660861, 9343791943, 9343923041, 9344054113, 9344185211, + 9344316307, 9344447389, 9344578469, 9344709547, 9344840633, 9344971763, 9345102881, + 9345234001, 9345365077, 9345496151, 9345627229, 9345758363, 9345889439, 9346020517, + 9346151603, 9346282697, 9346413781, 9346544863, 9346675957, 9346807049, 9346938121, + 9347069201, 9347200283, 9347331361, 9347462447, 9347593597, 9347724689, 9347855767, + 9347986847, 9348117959, 9348249037, 9348380123, 9348511213, 9348642293, 9348773381, + 9348904459, 9349035581, 9349166681, 9349297759, 9349428841, 9349559959, 9349691051, + 9349822123, 9349953203, 9350084287, 9350215363, 9350346457, 9350477551, 9350608633, + 9350739707, 9350870819, 9351001939, 9351133039, 9351264113, 9351395197, 9351526291, + 9351657373, 9351788447, 9351919541, 9352050613, 9352181687, 9352312763, 9352443857, + 9352574983, 9352706057, 9352837129, 9352968203, 9353099297, 9353230387, 9353361463, + 9353492549, 9353623627, 9353754763, 9353885867, 9354016951, 9354148049, 9354279131, + 9354410213, 9354541297, 9354672421, 9354803519, 9354934591, 9355065691, 9355196779, + 9355327867, 9355458943, 9355590067, 9355721171, 9355852271, 9355983349, 9356114429, + 9356245513, 9356376593, 9356507681, 9356638783, 9356769871, 9356900951, 9357032039, + 9357163133, 9357294223, 9357425321, 9357556421, 9357687503, 9357818579, 9357949723, + 9358080829, 9358211953, 9358343047, 9358474123, 9358605199, 9358736287, 9358867369, + 9358998443, 9359129543, 9359260643, 9359391793, 9359522897, 9359653969, 9359785051, + 9359916127, 9360047243, 9360178319, 9360309403, 9360440477, 9360571553, 9360702647, + 9360833747, 9360964829, 9361095901, 9361226989, 9361358077, 9361489169, 9361620259, + 9361751339, 9361882427, 9362013499, 9362144591, 9362275679, 9362406761, 9362537837, + 9362668921, 9362800001, 9362931077, 9363062161, 9363193243, 9363324343, 9363455441, + 9363586513, 9363717631, 9363848707, 9363979799, 9364110887, 9364241959, 9364373047, + 9364504139, 9364635211, 9364766329, 9364897417, 9365028499, 9365159581, 9365290679, + 9365421787, 9365552891, 9365683963, 9365815057, 9365946131, 9366077297, 9366208393, + 9366339491, 9366470563, 9366601661, 9366732761, 9366863833, 9366994933, 9367126009, + 9367257083, 9367388159, 9367519279, 9367650353, 9367781431, 9367912517, 9368043677, + 9368174773, 9368305853, 9368436937, 9368568023, 9368699101, 9368830217, 9368961317, + 9369092393, 9369223469, 9369354557, 9369485633, 9369616721, 9369747817, 9369878891, + 9370009963, 9370141091, 9370272167, 9370403249, 9370534321, 9370665449, 9370796537, + 9370927637, 9371058713, 9371189827, 9371320921, 9371452007, 9371583083, 9371714189, + 9371845277, 9371976353, 9372107449, 9372238537, 9372369641, 9372500729, 9372631819, + 9372762923, 9372894023, 9373025219, 9373156291, 9373287377, 9373418471, 9373549543, + 9373680691, 9373811779, 9373942867, 9374073953, 9374205053, 9374336141, 9374467229, + 9374598349, 9374729501, 9374860591, 9374991671, 9375122749, 9375253841, 9375384917, + 9375515993, 9375647081, 9375778157, 9375909229, 9376040329, 9376171439, 9376302527, + 9376433609, 9376564777, 9376695851, 9376826929, 9376958057, 9377089151, 9377220253, + 9377351327, 9377482409, 9377613493, 9377744573, 9377875669, 9378006749, 9378137837, + 9378268927, 9378400007, 9378531139, 9378662213, 9378793297, 9378924371, 9379055453, + 9379186559, 9379317671, 9379448761, 9379579841, 9379710919, 9379842047, 9379973177, + 9380104249, 9380235331, 9380366407, 9380497501, 9380628721, 9380759821, 9380890903, + 9381022009, 9381153121, 9381284221, 9381415333, 9381546409, 9381677489, 9381808567, + 9381939641, 9382070729, 9382201811, 9382332889, 9382464017, 9382595149, 9382726229, + 9382857373, 9382988453, 9383119637, 9383250743, 9383381827, 9383512913, 9383644013, + 9383775109, 9383906237, 9384037381, 9384168467, 9384299549, 9384430621, 9384561727, + 9384692809, 9384823891, 9384954967, 9385086071, 9385217161, 9385348307, 9385479379, + 9385610477, 9385741571, 9385872653, 9386003741, 9386134831, 9386265919, 9386396993, + 9386528077, 9386659171, 9386790263, 9386921351, 9387052439, 9387183521, 9387314639, + 9387445741, 9387576827, 9387707939, 9387839011, 9387970087, 9388101161, 9388232261, + 9388363357, 9388494433, 9388625527, 9388756633, 9388887719, 9389018797, 9389149871, + 9389280959, 9389412073, 9389543257, 9389674337, 9389805413, 9389936497, 9390067571, + 9390198683, 9390329771, 9390460897, 9390591983, 9390723103, 9390854191, 9390985273, + 9391116359, 9391247447, 9391378547, 9391509619, 9391640711, 9391771799, 9391902889, + 9392033971, 9392165047, 9392296213, 9392427293, 9392558393, 9392689483, 9392820571, + 9392951647, 9393082733, 9393213827, 9393344911, 9393475997, 9393607081, 9393738191, + 9393869281, 9394000367, 9394131451, 9394262533, 9394393709, 9394524781, 9394655857, + 9394786979, 9394918061, 9395049179, 9395180279, 9395311351, 9395442437, 9395573519, + 9395704597, 9395835679, 9395966791, 9396097877, 9396228949, 9396360041, 9396491147, + 9396622223, 9396753329, 9396884401, 9397015499, 9397146571, 9397277657, 9397408729, + 9397539911, 9397671047, 9397802129, 9397933211, 9398064301, 9398195377, 9398326453, + 9398457553, 9398588651, 9398719723, 9398850817, 9398981897, 9399112993, 9399244177, + 9399375269, 9399506383, 9399637517, 9399768641, 9399899797, 9400030883, 9400161959, + 9400293041, 9400424147, 9400555231, 9400686329, 9400817401, 9400948477, 9401079587, + 9401210669, 9401341757, 9401472841, 9401603927, 9401734999, 9401866081, 9401997191, + 9402128269, 9402259367, 9402390443, 9402521519, 9402652613, 9402783697, 9402914777, + 9403045853, 9403176947, 9403308023, 9403439113, 9403570219, 9403701299, 9403832401, + 9403963477, 9404094577, 9404225669, 9404356781, 9404487853, 9404618929, 9404750029, + 9404881103, 9405012247, 9405143327, 9405274423, 9405405509, 9405536627, 9405667709, + 9405798793, 9405929867, 9406060967, 9406192043, 9406323139, 9406454231, 9406585343, + 9406716463, 9406847543, 9406978649, 9407109763, 9407240891, 9407371969, 9407503069, + 9407634149, 9407765261, 9407896357, 9408027439, 9408158537, 9408289609, 9408420689, + 9408551767, 9408682849, 9408813989, 9408945083, 9409076263, 9409207387, 9409338461, + 9409469557, 9409600631, 9409731739, 9409862821, 9409993897, 9410124973, 9410256047, + 9410387167, 9410518261, 9410649343, 9410780447, 9410911547, 9411042629, 9411173711, + 9411304783, 9411435857, 9411566929, 9411698033, 9411829109, 9411960193, 9412091341, + 9412222427, 9412353571, 9412484671, 9412615759, 9412746869, 9412877983, 9413009057, + 9413140133, 9413271227, 9413402347, 9413533447, 9413664527, 9413795663, 9413926787, + 9414057893, 9414188983, 9414320057, 9414451129, 9414582209, 9414713291, 9414844363, + 9414975439, 9415106527, 9415237603, 9415368707, 9415499833, 9415630909, 9415761989, + 9415893079, 9416024183, 9416155267, 9416286343, 9416417441, 9416548513, 9416679611, + 9416810713, 9416941811, 9417072893, 9417203977, 9417335087, 9417466211, 9417597283, + 9417728393, 9417859471, 9417990553, 9418121639, 9418252769, 9418383841, 9418514929, + 9418646023, 9418777103, 9418908179, 9419039263, 9419170349, 9419301421, 9419432501, + 9419563607, 9419694703, 9419825797, 9419956877, 9420087961, 9420219049, 9420350123, + 9420481223, 9420612307, 9420743383, 9420874457, 9421005547, 9421136629, 9421267711, + 9421398797, 9421529893, 9421660973, 9421792063, 9421923143, 9422054221, 9422185361, + 9422316433, 9422447539, 9422578621, 9422709707, 9422840821, 9422971907, 9423102989, + 9423234077, 9423365201, 9423496273, 9423627359, 9423758431, 9423889513, 9424020623, + 9424151731, 9424282823, 9424413919, 9424544999, 9424676083, 9424807169, 9424938251, + 9425069363, 9425200451, 9425331523, 9425462597, 9425593673, 9425724769, 9425855891, + 9425986979, 9426118057, 9426249139, 9426380239, 9426511319, 9426642427, 9426773527, + 9426904661, 9427035733, 9427166807, 9427297897, 9427428973, 9427560083, 9427691179, + 9427822253, 9427953329, 9428084423, 9428215523, 9428346601, 9428477741, 9428608859, + 9428739979, 9428871097, 9429002171, 9429133247, 9429264329, 9429395429, 9429526507, + 9429657617, 9429788713, 9429919787, 9430050871, 9430181983, 9430313129, 9430444201, + 9430575277, 9430706387, 9430837483, 9430968557, 9431099677, 9431230763, 9431361851, + 9431492923, 9431624057, 9431755129, 9431886209, 9432017281, 9432148391, 9432279463, + 9432410539, 9432541637, 9432672727, 9432803879, 9432934967, 9433066057, 9433197187, + 9433328291, 9433459379, 9433590457, 9433721533, 9433852633, 9433983739, 9434114819, + 9434245901, 9434377003, 9434508077, 9434639171, 9434770259, 9434901331, 9435032413, + 9435163511, 9435294599, 9435425689, 9435556849, 9435687959, 9435819053, 9435950129, + 9436081201, 9436212293, 9436343381, 9436474519, 9436605601, 9436736689, 9436867789, + 9436998929, 9437130011, 9437261089, 9437392187, 9437523301, 9437654383, 9437785493, + 9437916581, 9438047747, 9438178829, 9438309943, 9438441079, 9438572161, 9438703247, + 9438834341, 9438965447, 9439096531, 9439227613, 9439358699, 9439489771, 9439620847, + 9439751927, 9439883017, 9440014091, 9440145167, 9440276309, 9440407387, 9440538463, + 9440669561, 9440800661, 9440931737, 9441062831, 9441193921, 9441325007, 9441456127, + 9441587201, 9441718283, 9441849371, 9441980491, 9442111571, 9442242653, 9442373761, + 9442504853, 9442635967, 9442767067, 9442898167, 9443029261, 9443160359, 9443291437, + 9443422553, 9443553659, 9443684749, 9443815837, 9443946931, 9444078037, 9444209167, + 9444340249, 9444471359, 9444602449, 9444733523, 9444864599, 9444995689, 9445126763, + 9445257853, 9445388947, 9445520033, 9445651139, 9445782211, 9445913293, 9446044411, + 9446175493, 9446306647, 9446437733, 9446568811, 9446699887, 9446830969, 9446962073, + 9447093167, 9447224261, 9447355349, 9447486481, 9447617561, 9447748669, 9447879743, + 9448010857, 9448141939, 9448273027, 9448404107, 9448535183, 9448666259, 9448797331, + 9448928441, 9449059523, 9449190601, 9449321677, 9449452751, 9449583839, 9449714941, + 9449846047, 9449977129, 9450108221, 9450239297, 9450370409, 9450501481, 9450632591, + 9450763703, 9450894797, 9451025891, 9451156991, 9451288109, 9451419181, 9451550279, + 9451681361, 9451812437, 9451943513, 9452074591, 9452205689, 9452336791, 9452467873, + 9452598973, 9452730073, 9452861161, 9452992253, 9453123347, 9453254429, 9453385511, + 9453516601, 9453647681, 9453778753, 9453909827, 9454040899, 9454171997, 9454303093, + 9454434229, 9454565321, 9454696429, 9454827517, 9454958599, 9455089691, 9455220779, + 9455351897, 9455482969, 9455614099, 9455745217, 9455876299, 9456007397, 9456138469, + 9456269573, 9456400651, 9456531739, 9456662849, 9456793961, 9456925033, 9457056209, + 9457187293, 9457318369, 9457449467, 9457580549, 9457711691, 9457842787, 9457973891, + 9458104969, 9458236057, 9458367131, 9458498207, 9458629291, 9458760371, 9458891447, + 9459022561, 9459153647, 9459284743, 9459415853, 9459546959, 9459678037, 9459809207, + 9459940327, 9460071403, 9460202497, 9460333579, 9460464659, 9460595743, 9460726817, + 9460857919, 9460989007, 9461120093, 9461251187, 9461382263, 9461513351, 9461644427, + 9461775503, 9461906579, 9462037657, 9462168761, 9462299881, 9462430963, 9462562091, + 9462693179, 9462824251, 9462955391, 9463086473, 9463217549, 9463348637, 9463479721, + 9463610831, 9463741909, 9463872991, 9464004103, 9464135179, 9464266289, 9464397373, + 9464528449, 9464659531, 9464790607, 9464921681, 9465052771, 9465183899, 9465315001, + 9465446093, 9465577171, 9465708277, 9465839417, 9465970511, 9466101647, 9466232719, + 9466363799, 9466494929, 9466626019, 9466757101, 9466888177, 9467019253, 9467150333, + 9467281457, 9467412547, 9467543629, 9467674703, 9467805799, 9467936893, 9468067991, + 9468199121, 9468330239, 9468461341, 9468592417, 9468723491, 9468854569, 9468985657, + 9469116751, 9469247833, 9469378943, 9469510049, 9469641239, 9469772321, 9469903393, + 9470034493, 9470165569, 9470296663, 9470427749, 9470558827, 9470689901, 9470820973, + 9470952067, 9471083143, 9471214237, 9471345311, 9471476393, 9471607487, 9471738571, + 9471869669, 9472000763, 9472131839, 9472262927, 9472394011, 9472525109, 9472656181, + 9472787263, 9472918337, 9473049461, 9473180543, 9473311633, 9473442707, 9473573783, + 9473704879, 9473835967, 9473967059, 9474098173, 9474229273, 9474360347, 9474491449, + 9474622583, 9474753737, 9474884827, 9475015919, 9475146991, 9475278139, 9475409219, + 9475540297, 9475671371, 9475802443, 9475933543, 9476064623, 9476195699, 9476326777, + 9476457931, 9476589019, 9476720111, 9476851211, 9476982289, 9477113381, 9477244487, + 9477375563, 9477506657, 9477637733, 9477768857, 9477899939, 9478031021, 9478162097, + 9478293263, 9478424353, 9478555453, 9478686571, 9478817651, 9478948751, 9479079853, + 9479210929, 9479342017, 9479473093, 9479604179, 9479735263, 9479866343, 9479997421, + 9480128513, 9480259603, 9480390679, 9480521779, 9480652891, 9480784003, 9480915083, + 9481046161, 9481177241, 9481308329, 9481439411, 9481570493, 9481701577, 9481832653, + 9481963727, 9482094841, 9482225927, 9482357021, 9482488109, 9482619191, 9482750327, + 9482881409, 9483012491, 9483143569, 9483274651, 9483405727, 9483536807, 9483667909, + 9483798997, 9483930083, 9484061159, 9484192231, 9484323353, 9484454489, 9484585577, + 9484716677, 9484847773, 9484978849, 9485109937, 9485241019, 9485372101, 9485503189, + 9485634269, 9485765357, 9485896477, 9486027553, 9486158639, 9486289721, 9486420799, + 9486551887, 9486682979, 9486814063, 9486945203, 9487076341, 9487207421, 9487338557, + 9487469639, 9487600799, 9487731887, 9487862987, 9487994059, 9488125177, 9488256301, + 9488387387, 9488518469, 9488649581, 9488780699, 9488911813, 9489042889, 9489173987, + 9489305101, 9489436189, 9489567277, 9489698353, 9489829441, 9489960539, 9490091629, + 9490222801, 9490353883, 9490484977, 9490616059, 9490747151, 9490878223, 9491009303, + 9491140381, 9491271499, 9491402681, 9491533759, 9491664851, 9491795953, 9491927069, + 9492058141, 9492189257, 9492320329, 9492451511, 9492582601, 9492713683, 9492844789, + 9492975911, 9493107053, 9493238137, 9493369271, 9493500361, 9493631471, 9493762559, + 9493893637, 9494024717, 9494155877, 9494287043, 9494418127, 9494549203, 9494680303, + 9494811377, 9494942473, 9495073559, 9495204643, 9495335753, 9495466837, 9495597931, + 9495729037, 9495860123, 9495991201, 9496122281, 9496253359, 9496384459, 9496515577, + 9496646651, 9496777727, 9496908803, 9497039891, 9497170967, 9497302063, 9497433149, + 9497564221, 9497695301, 9497826391, 9497957467, 9498088549, 9498219629, 9498350707, + 9498481789, 9498612863, 9498743951, 9498875047, 9499006151, 9499137223, 9499268321, + 9499399421, 9499530503, 9499661653, 9499792733, 9499923821, 9500054897, 9500185969, + 9500317051, 9500448157, 9500579243, 9500710319, 9500841407, 9500972479, 9501103559, + 9501234637, 9501365749, 9501496891, 9501627983, 9501759133, 9501890239, 9502021337, + 9502152437, 9502283513, 9502414631, 9502545713, 9502676801, 9502807889, 9502938967, + 9503070067, 9503201159, 9503332243, 9503463331, 9503594407, 9503725481, 9503856559, + 9503987671, 9504118769, 9504249871, 9504380947, 9504512021, 9504643129, 9504774229, + 9504905317, 9505036417, 9505167521, 9505298599, 9505429679, 9505560767, 9505691879, + 9505822961, 9505954033, 9506085107, 9506216197, 9506347303, 9506478439, 9506609537, + 9506740637, 9506871793, 9507002881, 9507133963, 9507265043, 9507396139, 9507527251, + 9507658339, 9507789413, 9507920491, 9508051607, 9508182689, 9508313783, 9508444901, + 9508575977, 9508707059, 9508838147, 9508969219, 9509100299, 9509231371, 9509362451, + 9509493523, 9509624617, 9509755711, 9509886811, 9510017903, 9510148987, 9510280061, + 9510411137, 9510542233, 9510673331, 9510804403, 9510935477, 9511066567, 9511197673, + 9511328747, 9511459819, 9511590917, 9511722019, 9511853111, 9511984201, 9512115377, + 9512246461, 9512377543, 9512508617, 9512639707, 9512770783, 9512901887, 9513032959, + 9513164051, 9513295123, 9513426203, 9513557309, 9513688411, 9513819487, 9513950599, + 9514081699, 9514212791, 9514343887, 9514474969, 9514606043, 9514737137, 9514868243, + 9514999321, 9515130407, 9515261507, 9515392597, 9515523673, 9515654747, 9515785843, + 9515916919, 9516047999, 9516179081, 9516310169, 9516441247, 9516572323, 9516703429, + 9516834521, 9516965609, 9517096697, 9517227781, 9517358933, 9517490027, 9517621109, + 9517752197, 9517883303, 9518014423, 9518145547, 9518276627, 9518407721, 9518538811, + 9518669917, 9518800997, 9518932091, 9519063187, 9519194261, 9519325351, 9519456439, + 9519587533, 9519718609, 9519849683, 9519980777, 9520111849, 9520242943, 9520374079, + 9520505213, 9520636297, 9520767371, 9520898459, 9521029541, 9521160629, 9521291737, + 9521422817, 9521553967, 9521685049, 9521816147, 9521947249, 9522078347, 9522209441, + 9522340519, 9522471601, 9522602689, 9522733783, 9522864863, 9522995939, 9523127017, + 9523258153, 9523389233, 9523520351, 9523651427, 9523782571, 9523913653, 9524044727, + 9524175827, 9524306903, 9524437987, 9524569063, 9524700139, 9524831219, 9524962327, + 9525093401, 9525224479, 9525355603, 9525486679, 9525617753, 9525748847, 9525879931, + 9526011037, 9526142141, 9526273231, 9526404317, 9526535401, 9526666507, 9526797583, + 9526928657, 9527059733, 9527190817, 9527321891, 9527452981, 9527584109, 9527715191, + 9527846291, 9527977373, 9528108461, 9528239537, 9528370633, 9528501727, 9528632819, + 9528763901, 9528895001, 9529026077, 9529157149, 9529288231, 9529419307, 9529550399, + 9529681481, 9529812661, 9529943741, 9530074819, 9530205931, 9530337043, 9530468119, + 9530599213, 9530730329, 9530861401, 9530992481, 9531123599, 9531254693, 9531385807, + 9531516889, 9531647981, 9531779057, 9531910159, 9532041263, 9532172341, 9532303441, + 9532434551, 9532565629, 9532696709, 9532827791, 9532958867, 9533089967, 9533221043, + 9533352119, 9533483203, 9533614291, 9533745407, 9533876479, 9534007583, 9534138667, + 9534269753, 9534400873, 9534531947, 9534663053, 9534794147, 9534925219, 9535056299, + 9535187381, 9535318477, 9535449559, 9535580657, 9535711751, 9535842857, 9535973929, + 9536105009, 9536236081, 9536367179, 9536498261, 9536629351, 9536760439, 9536891513, + 9537022597, 9537153671, 9537284773, 9537415847, 9537546923, 9537678037, 9537809137, + 9537940211, 9538071299, 9538202389, 9538333477, 9538464571, 9538595699, 9538726787, + 9538857893, 9538989001, 9539120083, 9539251159, 9539382247, 9539513323, 9539644397, + 9539775473, 9539906549, 9540037643, 9540168719, 9540299807, 9540430937, 9540562021, + 9540693103, 9540824177, 9540955321, 9541086419, 9541217501, 9541348577, 9541479659, + 9541610731, 9541741823, 9541872917, 9542003993, 9542135081, 9542266157, 9542397329, + 9542528423, 9542659531, 9542790619, 9542921699, 9543052777, 9543183901, 9543314999, + 9543446071, 9543577187, 9543708259, 9543839369, 9543970463, 9544101557, 9544232639, + 9544363733, 9544494811, 9544625887, 9544757003, 9544888091, 9545019179, 9545150257, + 9545281373, 9545412449, 9545543521, 9545674631, 9545805707, 9545936779, 9546067871, + 9546198947, 9546330023, 9546461161, 9546592247, 9546723343, 9546854423, 9546985519, + 9547116617, 9547247693, 9547378783, 9547509883, 9547640969, 9547772071, 9547903147, + 9548034233, 9548165309, 9548296393, 9548427491, 9548558563, 9548689643, 9548820751, + 9548951831, 9549082957, 9549214039, 9549345217, 9549476291, 9549607451, 9549738533, + 9549869617, 9550000693, 9550131791, 9550262863, 9550393939, 9550525051, 9550656133, + 9550787219, 9550918301, 9551049379, 9551180453, 9551311529, 9551442611, 9551573747, + 9551704831, 9551835919, 9551967041, 9552098113, 9552229187, 9552360281, 9552491363, + 9552622477, 9552753559, 9552884633, 9553015711, 9553146791, 9553277887, 9553409009, + 9553540091, 9553671163, 9553802287, 9553933397, 9554064517, 9554195597, 9554326693, + 9554457821, 9554588909, 9554720003, 9554851087, 9554982167, 9555113257, 9555244373, + 9555375457, 9555506531, 9555637613, 9555768707, 9555899783, 9556030859, 9556161947, + 9556293037, 9556424179, 9556555273, 9556686353, 9556817443, 9556948547, 9557079641, + 9557210713, 9557341861, 9557472937, 9557604137, 9557735249, 9557866363, 9557997487, + 9558128579, 9558259651, 9558390773, 9558521851, 9558652949, 9558784033, 9558915133, + 9559046209, 9559177301, 9559308373, 9559439453, 9559570549, 9559701631, 9559832743, + 9559963873, 9560094949, 9560226089, 9560357161, 9560488241, 9560619331, 9560750413, + 9560881487, 9561012563, 9561143699, 9561274831, 9561405961, 9561537047, 9561668119, + 9561799199, 9561930271, 9562061371, 9562192459, 9562323569, 9562454659, 9562585733, + 9562716811, 9562847887, 9562978961, 9563110043, 9563241131, 9563372209, 9563503291, + 9563634391, 9563765467, 9563896571, 9564027673, 9564158753, 9564289831, 9564420953, + 9564552077, 9564683189, 9564814277, 9564945349, 9565076429, 9565207517, 9565338619, + 9565469737, 9565600813, 9565731911, 9565862983, 9565994071, 9566125157, 9566256257, + 9566387351, 9566518441, 9566649527, 9566780621, 9566911693, 9567042767, 9567173839, + 9567304927, 9567436013, 9567567109, 9567698201, 9567829273, 9567960379, 9568091461, + 9568222537, 9568353617, 9568484689, 9568615781, 9568746857, 9568877957, 9569009057, + 9569140153, 9569271227, 9569402303, 9569533403, 9569664539, 9569795621, 9569926693, + 9570057767, 9570188843, 9570319919, 9570451003, 9570582079, 9570713177, 9570844259, + 9570975341, 9571106423, 9571237537, 9571368623, 9571499701, 9571630781, 9571761863, + 9571892969, 9572024051, 9572155127, 9572286223, 9572417329, 9572548423, 9572679497, + 9572810579, 9572941681, 9573072767, 9573203879, 9573334957, 9573466033, 9573597109, + 9573728237, 9573859369, 9573990449, 9574121533, 9574252663, 9574383751, 9574514837, + 9574645931, 9574777021, 9574908097, 9575039171, 9575170249, 9575301343, 9575432423, + 9575563499, 9575694577, 9575825659, 9575956751, 9576087827, 9576218917, 9576350009, + 9576481087, 9576612167, 9576743269, 9576874357, 9577005457, 9577136549, 9577267657, + 9577398737, 9577529833, 9577660909, 9577792019, 9577923101, 9578054177, 9578185283, + 9578316367, 9578447443, 9578578531, 9578709607, 9578840683, 9578971757, 9579102887, + 9579233999, 9579365111, 9579496259, 9579627367, 9579758473, 9579889567, 9580020641, + 9580151759, 9580282841, 9580413943, 9580545043, 9580676117, 9580807231, 9580938359, + 9581069473, 9581200591, 9581331667, 9581462741, 9581593829, 9581724907, 9581855981, + 9581987141, 9582118223, 9582249317, 9582380407, 9582511483, 9582642583, 9582773663, + 9582904763, 9583035863, 9583166947, 9583298029, 9583429127, 9583560227, 9583691417, + 9583822489, 9583953593, 9584084669, 9584215741, 9584346829, 9584477909, 9584609017, + 9584740093, 9584871173, 9585002249, 9585133391, 9585264473, 9585395653, 9585526729, + 9585657811, 9585788911, 9585919997, 9586051081, 9586182197, 9586313299, 9586444393, + 9586575469, 9586706579, 9586837679, 9586968793, 9587099909, 9587230999, 9587362093, + 9587493187, 9587624279, 9587755363, 9587886437, 9588017597, 9588148673, 9588279749, + 9588410837, 9588541927, 9588673033, 9588804143, 9588935243, 9589066339, 9589197461, + 9589328579, 9589459669, 9589590749, 9589721831, 9589853003, 9589984081, 9590115173, + 9590246311, 9590377421, 9590508493, 9590639593, 9590770687, 9590901773, 9591032921, + 9591164003, 9591295099, 9591426211, 9591557291, 9591688363, 9591819437, 9591950657, + 9592081747, 9592212827, 9592343923, 9592475003, 9592606087, 9592737181, 9592868281, + 9592999363, 9593130461, 9593261539, 9593392663, 9593523773, 9593654881, 9593785973, + 9593917049, 9594048127, 9594179281, 9594310387, 9594441481, 9594572569, 9594703673, + 9594834749, 9594965873, 9595096949, 9595228037, 9595359139, 9595490231, 9595621309, + 9595752401, 9595883477, 9596014573, 9596145649, 9596276749, 9596407831, 9596538923, + 9596670001, 9596801113, 9596932207, 9597063323, 9597194413, 9597325499, 9597456577, + 9597587669, 9597718763, 9597849853, 9597980933, 9598112023, 9598243139, 9598374221, + 9598505297, 9598636379, 9598767469, 9598898593, 9599029703, 9599160799, 9599291873, + 9599422949, 9599554037, 9599685119, 9599816201, 9599947297, 9600078421, 9600209497, + 9600340579, 9600471679, 9600602807, 9600733913, 9600865007, 9600996079, 9601127191, + 9601258267, 9601389341, 9601520449, 9601651523, 9601782623, 9601913729, 9602044819, + 9602175893, 9602306977, 9602438051, 9602569129, 9602700209, 9602831299, 9602962417, + 9603093499, 9603224611, 9603355717, 9603486797, 9603617909, 9603749003, 9603880133, + 9604011223, 9604142357, 9604273451, 9604404533, 9604535617, 9604666741, 9604797817, + 9604928891, 9605059973, 9605191081, 9605322157, 9605453233, 9605584321, 9605715401, + 9605846479, 9605977567, 9606108641, 9606239729, 9606370801, 9606501881, 9606632953, + 9606764033, 9606895127, 9607026199, 9607157299, 9607288381, 9607419461, 9607550549, + 9607681711, 9607812791, 9607943881, 9608074963, 9608206037, 9608337113, 9608468227, + 9608599303, 9608730409, 9608861497, 9608992571, 9609123703, 9609254827, 9609385909, + 9609516991, 9609648079, 9609779171, 9609910267, 9610041361, 9610172441, 9610303513, + 9610434637, 9610565711, 9610696783, 9610827887, 9610958977, 9611090059, 9611221159, + 9611352269, 9611483353, 9611614427, 9611745523, 9611876597, 9612007681, 9612138799, + 9612269921, 9612400999, 9612532087, 9612663163, 9612794237, 9612925339, 9613056413, + 9613187491, 9613318591, 9613449673, 9613580747, 9613711829, 9613842929, 9613974001, + 9614105153, 9614236231, 9614367313, 9614498419, 9614629499, 9614760583, 9614891659, + 9615022759, 9615153833, 9615284909, 9615415987, 9615547121, 9615678203, 9615809323, + 9615940457, 9616071533, 9616202621, 9616333693, 9616464769, 9616595851, 9616726927, + 9616858001, 9616989089, 9617120171, 9617251243, 9617382331, 9617513417, 9617644501, + 9617775599, 9617906671, 9618037769, 9618168869, 9618299983, 9618431057, 9618562133, + 9618693221, 9618824297, 9618955369, 9619086443, 9619217557, 9619348631, 9619479703, + 9619610779, 9619741877, 9619872971, 9620004049, 9620135123, 9620266247, 9620397337, + 9620528413, 9620659493, 9620790601, 9620921699, 9621052823, 9621183917, 9621314993, + 9621446069, 9621577151, 9621708241, 9621839329, 9621970409, 9622101491, 9622232621, + 9622363711, 9622494787, 9622625893, 9622756987, 9622888087, 9623019181, 9623150263, + 9623281337, 9623412431, 9623543543, 9623674639, 9623805731, 9623936809, 9624067907, + 9624199043, 9624330127, 9624461261, 9624592337, 9624723413, 9624854513, 9624985613, + 9625116701, 9625247837, 9625378921, 9625509997, 9625641071, 9625772201, 9625903303, + 9626034403, 9626165557, 9626296637, 9626427709, 9626558803, 9626689889, 9626820971, + 9626952043, 9627083117, 9627214199, 9627345271, 9627476387, 9627607499, 9627738581, + 9627869681, 9628000757, 9628131829, 9628262911, 9628394003, 9628525099, 9628656173, + 9628787251, 9628918361, 9629049461, 9629180557, 9629311631, 9629442707, 9629573791, + 9629704879, 9629835977, 9629967059, 9630098201, 9630229291, 9630360401, 9630491473, + 9630622559, 9630753673, 9630884759, 9631015841, 9631146913, 9631277993, 9631409077, + 9631540151, 9631671227, 9631802303, 9631933433, 9632064539, 9632195611, 9632326703, + 9632457859, 9632588963, 9632720063, 9632851139, 9632982223, 9633113317, 9633244393, + 9633375487, 9633506593, 9633637681, 9633768757, 9633899837, 9634030937, 9634162061, + 9634293133, 9634424209, 9634555291, 9634686377, 9634817459, 9634948537, 9635079659, + 9635210731, 9635341811, 9635472893, 9635603983, 9635735063, 9635866181, 9635997281, + 9636128357, 9636259513, 9636390611, 9636521701, 9636652811, 9636783887, 9636915011, + 9637046099, 9637177189, 9637308277, 9637439351, 9637570427, 9637701511, 9637832639, + 9637963717, 9638094797, 9638225873, 9638356961, 9638488037, 9638619127, 9638750201, + 9638881297, 9639012371, 9639143447, 9639274529, 9639405653, 9639536737, 9639667867, + 9639798977, 9639930059, 9640061161, 9640192249, 9640323367, 9640454501, 9640585639, + 9640716713, 9640847803, 9640978883, 9641109967, 9641241047, 9641372201, 9641503273, + 9641634347, 9641765431, 9641896529, 9642027613, 9642158737, 9642289831, 9642420923, + 9642551999, 9642683107, 9642814187, 9642945311, 9643076389, 9643207489, 9643338569, + 9643469681, 9643600787, 9643731859, 9643862933, 9643994023, 9644125121, 9644256203, + 9644387321, 9644518409, 9644649481, 9644780567, 9644911667, 9645042791, 9645173891, + 9645304987, 9645436063, 9645567143, 9645698233, 9645829327, 9645960449, 9646091561, + 9646222639, 9646353757, 9646484833, 9646615907, 9646747027, 9646878103, 9647009179, + 9647140259, 9647271353, 9647402431, 9647533547, 9647664643, 9647795723, 9647926861, + 9648057943, 9648189041, 9648320119, 9648451213, 9648582301, 9648713377, 9648844463, + 9648975541, 9649106657, 9649237729, 9649368809, 9649499891, 9649631011, 9649762117, + 9649893241, 9650024387, 9650155513, 9650286601, 9650417687, 9650548759, 9650679851, + 9650810933, 9650942009, 9651073127, 9651204217, 9651335293, 9651466387, 9651597469, + 9651728543, 9651859649, 9651990739, 9652121837, 9652252919, 9652384061, 9652515149, + 9652646231, 9652777399, 9652908493, 9653039567, 9653170643, 9653301731, 9653432857, + 9653563973, 9653695063, 9653826163, 9653957237, 9654088331, 9654219499, 9654350611, + 9654481729, 9654612809, 9654743897, 9654874997, 9655006091, 9655137203, 9655268281, + 9655399357, 9655530431, 9655661503, 9655792591, 9655923731, 9656054843, 9656185961, + 9656317037, 9656448163, 9656579237, 9656710339, 9656841419, 9656972491, 9657103567, + 9657234661, 9657365747, 9657496819, 9657627899, 9657758983, 9657890093, 9658021169, + 9658152271, 9658283351, 9658414477, 9658545581, 9658676663, 9658807751, 9658938823, + 9659069897, 9659200979, 9659332063, 9659463179, 9659594251, 9659725331, 9659856407, + 9659987521, 9660118621, 9660249719, 9660380803, 9660511879, 9660642961, 9660774091, + 9660905171, 9661036327, 9661167403, 9661298483, 9661429559, 9661560631, 9661691713, + 9661822921, 9661954013, 9662085193, 9662216273, 9662347421, 9662478571, 9662609669, + 9662740817, 9662871901, 9663003011, 9663134123, 9663265201, 9663396277, 9663527369, + 9663658441, 9663789523, 9663920599, 9664051699, 9664182779, 9664313851, 9664444927, + 9664576039, 9664707121, 9664838213, 9664969313, 9665100427, 9665231507, 9665362601, + 9665493727, 9665624833, 9665755927, 9665887009, 9666018097, 9666149177, 9666280249, + 9666411407, 9666542497, 9666673571, 9666804647, 9666935783, 9667066859, 9667197959, + 9667329037, 9667460137, 9667591237, 9667722349, 9667853441, 9667984577, 9668115649, + 9668246773, 9668377877, 9668509001, 9668640073, 9668771201, 9668902277, 9669033379, + 9669164459, 9669295543, 9669426631, 9669557707, 9669688783, 9669819877, 9669950963, + 9670082063, 9670213159, 9670344239, 9670475317, 9670606399, 9670737491, 9670868609, + 9670999711, 9671130809, 9671261893, 9671392967, 9671524103, 9671655211, 9671786303, + 9671917379, 9672048457, 9672179533, 9672310643, 9672441721, 9672572803, 9672703897, + 9672834991, 9672966067, 9673097191, 9673228303, 9673359383, 9673490459, 9673621567, + 9673752733, 9673883819, 9674014897, 9674145983, 9674277061, 9674408141, 9674539213, + 9674670289, 9674801369, 9674932453, 9675063527, 9675194603, 9675325727, 9675456839, + 9675587917, 9675719017, 9675850123, 9675981233, 9676112359, 9676243463, 9676374541, + 9676505647, 9676636727, 9676767847, 9676898927, 9677030021, 9677161099, 9677292187, + 9677423267, 9677554339, 9677685443, 9677816527, 9677947621, 9678078703, 9678209791, + 9678340871, 9678471947, 9678603029, 9678734101, 9678865213, 9678996289, 9679127363, + 9679258441, 9679389527, 9679520647, 9679651721, 9679782811, 9679913891, 9680044973, + 9680176081, 9680307167, 9680438263, 9680569351, 9680700433, 9680831513, 9680962589, + 9681093661, 9681224747, 9681355861, 9681486979, 9681618073, 9681749149, 9681880297, + 9682011407, 9682142527, 9682273603, 9682404763, 9682535839, 9682666921, 9682798019, + 9682929097, 9683060201, 9683191283, 9683322377, 9683453459, 9683584541, 9683715619, + 9683846701, 9683977829, 9684108911, 9684239989, 9684371063, 9684502187, 9684633289, + 9684764371, 9684895457, 9685026529, 9685157633, 9685288729, 9685419823, 9685550951, + 9685682029, 9685813133, 9685944227, 9686075309, 9686206391, 9686337481, 9686468557, + 9686599693, 9686730773, 9686861867, 9686992949, 9687124043, 9687255173, 9687386249, + 9687517339, 9687648431, 9687779513, 9687910613, 9688041733, 9688172807, 9688303897, + 9688435021, 9688566119, 9688697201, 9688828277, 9688959349, 9689090459, 9689221567, + 9689352643, 9689483729, 9689614807, 9689745889, 9689876969, 9690008047, 9690139171, + 9690270259, 9690401339, 9690532441, 9690663517, 9690794621, 9690925757, 9691056829, + 9691187903, 9691318981, 9691450079, 9691581157, 9691712293, 9691843411, 9691974503, + 9692105641, 9692236717, 9692367803, 9692498909, 9692629981, 9692761093, 9692892241, + 9693023339, 9693154417, 9693285491, 9693416573, 9693547651, 9693678751, 9693809849, + 9693940937, 9694072013, 9694203091, 9694334179, 9694465259, 9694596377, 9694727467, + 9694858597, 9694989691, 9695120783, 9695251879, 9695383007, 9695514079, 9695645189, + 9695776283, 9695907373, 9696038449, 9696169529, 9696300611, 9696431683, 9696562769, + 9696693907, 9696824981, 9696956063, 9697087189, 9697218313, 9697349393, 9697480469, + 9697611577, 9697742699, 9697873781, 9698004881, 9698135957, 9698267093, 9698398169, + 9698529241, 9698660329, 9698791411, 9698922521, 9699053597, 9699184681, 9699315781, + 9699446893, 9699577969, 9699709051, 9699840151, 9699971279, 9700102387, 9700233493, + 9700364627, 9700495711, 9700626787, 9700757867, 9700888961, 9701020037, 9701151121, + 9701282207, 9701413279, 9701544367, 9701675441, 9701806529, 9701937601, 9702068681, + 9702199753, 9702330839, 9702461911, 9702592993, 9702724079, 9702855161, 9702986243, + 9703117327, 9703248413, 9703379519, 9703510613, 9703641697, 9703772779, 9703903861, + 9704034941, 9704166041, 9704297123, 9704428213, 9704559287, 9704690371, 9704821507, + 9704952599, 9705083671, 9705214787, 9705345889, 9705476969, 9705608051, 9705739123, + 9705870203, 9706001399, 9706132481, 9706263559, 9706394669, 9706525769, 9706656851, + 9706787989, 9706919077, 9707050151, 9707181269, 9707312359, 9707443439, 9707574571, + 9707705681, 9707836769, 9707967859, 9708098951, 9708230023, 9708361123, 9708492251, + 9708623333, 9708754409, 9708885481, 9709016609, 9709147697, 9709278769, 9709409851, + 9709540927, 9709672001, 9709803097, 9709934177, 9710065297, 9710196407, 9710327503, + 9710458579, 9710589659, 9710720741, 9710851819, 9710982923, 9711114019, 9711245107, + 9711376201, 9711507283, 9711638393, 9711769477, 9711900551, 9712031663, 9712162741, + 9712293823, 9712424963, 9712556107, 9712687189, 9712818263, 9712949339, 9713080411, + 9713211503, 9713342579, 9713473661, 9713604737, 9713735809, 9713866889, 9713997989, + 9714129109, 9714260203, 9714391279, 9714522361, 9714653467, 9714784577, 9714915713, + 9715046819, 9715177903, 9715308983, 9715440061, 9715571137, 9715702211, 9715833289, + 9715964407, 9716095507, 9716226581, 9716357671, 9716488753, 9716619827, 9716750903, + 9716882051, 9717013129, 9717144221, 9717275297, 9717406373, 9717537457, 9717668533, + 9717799613, 9717930697, 9718061797, 9718192873, 9718323947, 9718455037, 9718586147, + 9718717237, 9718848317, 9718979401, 9719110487, 9719241577, 9719372653, 9719503733, + 9719634811, 9719765921, 9719897017, 9720028127, 9720159203, 9720290299, 9720421379, + 9720552463, 9720683569, 9720814661, 9720945733, 9721076821, 9721207919, 9721339013, + 9721470113, 9721601243, 9721732333, 9721863449, 9721994521, 9722125601, 9722256721, + 9722387861, 9722518973, 9722650109, 9722781221, 9722912299, 9723043373, 9723174457, + 9723305549, 9723436627, 9723567703, 9723698779, 9723829873, 9723960973, 9724092071, + 9724223209, 9724354301, 9724485427, 9724616509, 9724747639, 9724878721, 9725009821, + 9725140969, 9725272049, 9725403143, 9725534227, 9725665331, 9725796449, 9725927527, + 9726058603, 9726189701, 9726320803, 9726451877, 9726582967, 9726714059, 9726845189, + 9726976271, 9727107359, 9727238501, 9727369579, 9727500677, 9727631801, 9727762931, + 9727894013, 9728025103, 9728156203, 9728287291, 9728418379, 9728549497, 9728680571, + 9728811679, 9728942759, 9729073859, 9729204931, 9729336013, 9729467089, 9729598171, + 9729729257, 9729860341, 9729991423, 9730122497, 9730253587, 9730384661, 9730515763, + 9730646839, 9730777913, 9730908989, 9731040083, 9731171171, 9731302267, 9731433347, + 9731564441, 9731695513, 9731826667, 9731957761, 9732088837, 9732219911, 9732350989, + 9732482069, 9732613151, 9732744233, 9732875311, 9733006453, 9733137529, 9733268603, + 9733399723, 9733530803, 9733661879, 9733792961, 9733924043, 9734055151, 9734186239, + 9734317321, 9734448419, 9734579497, 9734710589, 9734841661, 9734972771, 9735103849, + 9735234923, 9735366007, 9735497131, 9735628211, 9735759307, 9735890389, 9736021481, + 9736152581, 9736283657, 9736414733, 9736545821, 9736676903, 9736807981, 9736939097, + 9737070169, 9737201281, 9737332387, 9737463467, 9737594641, 9737725721, 9737856809, + 9737987899, 9738119047, 9738250127, 9738381227, 9738512321, 9738643403, 9738774503, + 9738905597, 9739036751, 9739167827, 9739298903, 9739430027, 9739561099, 9739692233, + 9739823321, 9739954453, 9740085527, 9740216641, 9740347741, 9740478833, 9740609941, + 9740741029, 9740872103, 9741003199, 9741134323, 9741265397, 9741396479, 9741527569, + 9741658649, 9741789721, 9741920803, 9742051903, 9742183027, 9742314103, 9742445183, + 9742576289, 9742707371, 9742838471, 9742969559, 9743100667, 9743231767, 9743362883, + 9743493959, 9743625041, 9743756123, 9743887199, 9744018281, 9744149353, 9744280451, + 9744411527, 9744542617, 9744673691, 9744804763, 9744935843, 9745066943, 9745198051, + 9745329161, 9745460251, 9745591363, 9745722439, 9745853519, 9745984613, 9746115689, + 9746246843, 9746377951, 9746509039, 9746640151, 9746771227, 9746902331, 9747033427, + 9747164527, 9747295601, 9747426673, 9747557861, 9747688943, 9747820067, 9747951193, + 9748082287, 9748213373, 9748344451, 9748475567, 9748606663, 9748737743, 9748868863, + 9748999961, 9749131037, 9749262139, 9749393233, 9749524373, 9749655451, 9749786531, + 9749917607, 9750048713, 9750179807, 9750310909, 9750441989, 9750573067, 9750704153, + 9750835229, 9750966319, 9751097393, 9751228493, 9751359571, 9751490687, 9751621793, + 9751752887, 9751883959, 9752015033, 9752146111, 9752277191, 9752408279, 9752539397, + 9752670497, 9752801581, 9752932663, 9753063739, 9753194821, 9753325903, 9753456997, + 9753588077, 9753719153, 9753850231, 9753981311, 9754112399, 9754243519, 9754374599, + 9754505671, 9754636751, 9754767833, 9754898939, 9755030017, 9755161121, 9755292193, + 9755423267, 9755554349, 9755685553, 9755816641, 9755947741, 9756078817, 9756209909, + 9756341057, 9756472207, 9756603301, 9756734399, 9756865483, 9756996581, 9757127683, + 9757258787, 9757389883, 9757520977, 9757652071, 9757783163, 9757914251, 9758045333, + 9758176411, 9758307487, 9758438603, 9758569679, 9758700773, 9758831879, 9758962957, + 9759094039, 9759225143, 9759356227, 9759487307, 9759618391, 9759749491, 9759880583, + 9760011673, 9760142747, 9760273877, 9760404949, 9760536067, 9760667149, 9760798247, + 9760929319, 9761060429, 9761191507, 9761322587, 9761453659, 9761584733, 9761715827, + 9761846903, 9761977993, 9762109109, 9762240181, 9762371257, 9762502349, 9762633473, + 9762764549, 9762895621, 9763026733, 9763157813, 9763288943, 9763420019, 9763551121, + 9763682251, 9763813391, 9763944517, 9764075597, 9764206681, 9764337763, 9764468843, + 9764599921, 9764731019, 9764862097, 9764993207, 9765124289, 9765255373, 9765386453, + 9765517547, 9765648643, 9765779753, 9765910829, 9766041907, 9766173019, 9766304123, + 9766435219, 9766566391, 9766697497, 9766828613, 9766959703, 9767090887, 9767221991, + 9767353069, 9767484173, 9767615269, 9767746363, 9767877439, 9768008533, 9768139639, + 9768270719, 9768401813, 9768532897, 9768663979, 9768795097, 9768926177, 9769057267, + 9769188439, 9769319579, 9769450651, 9769581739, 9769712831, 9769843913, 9769975001, + 9770106107, 9770237207, 9770368297, 9770499391, 9770630479, 9770761573, 9770892661, + 9771023777, 9771154903, 9771285977, 9771417049, 9771548131, 9771679223, 9771810299, + 9771941371, 9772072451, 9772203523, 9772334603, 9772465679, 9772596763, 9772727849, + 9772858957, 9772990049, 9773121131, 9773252219, 9773383297, 9773514371, 9773645443, + 9773776553, 9773907653, 9774038741, 9774169817, 9774300917, 9774432023, 9774563111, + 9774694207, 9774825301, 9774956383, 9775087457, 9775218547, 9775349681, 9775480783, + 9775611893, 9775742989, 9775874071, 9776005147, 9776136221, 9776267311, 9776398393, + 9776529481, 9776660599, 9776791679, 9776922763, 9777053849, 9777184951, 9777316037, + 9777447181, 9777578257, 9777709363, 9777840467, 9777971563, 9778102643, 9778233727, + 9778364837, 9778495957, 9778627057, 9778758161, 9778889249, 9779020327, 9779151427, + 9779282503, 9779413613, 9779544689, 9779675761, 9779806849, 9779937967, 9780069073, + 9780200159, 9780331237, 9780462311, 9780593399, 9780724477, 9780855569, 9780986659, + 9781117733, 9781248817, 9781379899, 9781510987, 9781642103, 9781773179, 9781904287, + 9782035369, 9782166461, 9782297549, 9782428633, 9782559737, 9782690831, 9782821903, + 9782952979, 9783084131, 9783215237, 9783346343, 9783477419, 9783608503, 9783739601, + 9783870721, 9784001819, 9784132907, 9784264013, 9784395149, 9784526267, 9784657361, + 9784788449, 9784919533, 9785050619, 9785181701, 9785312773, 9785443847, 9785574937, + 9785706023, 9785837107, 9785968243, 9786099347, 9786230473, 9786361567, 9786492643, + 9786623719, 9786754799, 9786885877, 9787016957, 9787148051, 9787279127, 9787410203, + 9787541293, 9787672399, 9787803503, 9787934581, 9788065663, 9788196749, 9788327893, + 9788458993, 9788590067, 9788721181, 9788852327, 9788983409, 9789114527, 9789245621, + 9789376693, 9789507809, 9789638891, 9789770027, 9789901103, 9790032209, 9790163281, + 9790294361, 9790425461, 9790556551, 9790687649, 9790818749, 9790949849, 9791080921, + 9791212003, 9791343097, 9791474191, 9791605279, 9791736377, 9791867461, 9791998597, + 9792129673, 9792260747, 9792391823, 9792522919, 9792654013, 9792785087, 9792916163, + 9793047259, 9793178363, 9793309447, 9793440521, 9793571621, 9793702733, 9793833809, + 9793964899, 9794096009, 9794227087, 9794358187, 9794489273, 9794620349, 9794751451, + 9794882533, 9795013619, 9795144701, 9795275779, 9795406853, 9795537943, 9795669017, + 9795800089, 9795931163, 9796062247, 9796193333, 9796324441, 9796455517, 9796586609, + 9796717739, 9796848881, 9796979953, 9797111029, 9797242111, 9797373191, 9797504317, + 9797635429, 9797766569, 9797897651, 9798028739, 9798159823, 9798290947, 9798422021, + 9798553097, 9798684229, 9798815311, 9798946397, 9799077473, 9799208557, 9799339637, + 9799470713, 9799601803, 9799732883, 9799863961, 9799995053, 9800126137, 9800257211, + 9800388317, 9800519429, 9800650511, 9800781607, 9800912687, 9801043781, 9801174869, + 9801305977, 9801437077, 9801568163, 9801699239, 9801830329, 9801961489, 9802092569, + 9802223689, 9802354769, 9802485881, 9802616963, 9802748041, 9802879181, 9803010253, + 9803141329, 9803272459, 9803403539, 9803534693, 9803665777, 9803796901, 9803927983, + 9804059059, 9804190153, 9804321281, 9804452353, 9804583441, 9804714523, 9804845623, + 9804976697, 9805107791, 9805238879, 9805369991, 9805501163, 9805632241, 9805763339, + 9805894447, 9806025539, 9806156617, 9806287697, 9806418781, 9806549873, 9806680963, + 9806812039, 9806943121, 9807074197, 9807205307, 9807336391, 9807467491, 9807598579, + 9807729689, 9807860771, 9807991847, 9808122931, 9808254007, 9808385087, 9808516177, + 9808647253, 9808778327, 9808909421, 9809040541, 9809171633, 9809302721, 9809433793, + 9809564899, 9809696021, 9809827121, 9809958211, 9810089299, 9810220417, 9810351503, + 9810482597, 9810613699, 9810744781, 9810875881, 9811006993, 9811138111, 9811269217, + 9811400309, 9811531409, 9811662517, 9811793597, 9811924673, 9812055751, 9812186827, + 9812317903, 9812449001, 9812580083, 9812711189, 9812842267, 9812973343, 9813104423, + 9813235507, 9813366593, 9813497719, 9813628817, 9813759913, 9813891011, 9814022147, + 9814153309, 9814284397, 9814415473, 9814546561, 9814677637, 9814808719, 9814939837, + 9815070997, 9815202073, 9815333147, 9815464223, 9815595311, 9815726413, 9815857487, + 9815988619, 9816119693, 9816250783, 9816381917, 9816513017, 9816644093, 9816775193, + 9816906283, 9817037383, 9817168477, 9817299623, 9817430761, 9817561867, 9817692943, + 9817824047, 9817955131, 9818086237, 9818217313, 9818348479, 9818479553, 9818610629, + 9818741741, 9818872829, 9819003917, 9819134989, 9819266069, 9819397141, 9819528233, + 9819659329, 9819790411, 9819921493, 9820052579, 9820183651, 9820314769, 9820445851, + 9820576939, 9820708013, 9820839107, 9820970179, 9821101261, 9821232347, 9821363467, + 9821494591, 9821625683, 9821756771, 9821887843, 9822018959, 9822150043, 9822281143, + 9822412231, 9822543317, 9822674447, 9822805541, 9822936653, 9823067767, 9823198849, + 9823329931, 9823461031, 9823592111, 9823723183, 9823854269, 9823985341, 9824116453, + 9824247527, 9824378647, 9824509727, 9824640803, 9824771893, 9824902979, 9825034061, + 9825165151, 9825296269, 9825427343, 9825558427, 9825689509, 9825820597, 9825951671, + 9826082753, 9826213849, 9826344989, 9826476083, 9826607171, 9826738283, 9826869361, + 9827000437, 9827131543, 9827262617, 9827393729, 9827524867, 9827655941, 9827787019, + 9827918123, 9828049213, 9828180317, 9828311411, 9828442511, 9828573607, 9828704777, + 9828835879, 9828966977, 9829098113, 9829229197, 9829360273, 9829491349, 9829622423, + 9829753523, 9829884629, 9830015707, 9830146811, 9830277913, 9830408999, 9830540087, + 9830671159, 9830802239, 9830933381, 9831064469, 9831195589, 9831326669, 9831457777, + 9831588859, 9831719941, 9831851023, 9831982133, 9832113227, 9832244311, 9832375387, + 9832506473, 9832637597, 9832768691, 9832899781, 9833030873, 9833161951, 9833293087, + 9833424173, 9833555267, 9833686339, 9833817421, 9833948497, 9834079579, 9834210667, + 9834341753, 9834472847, 9834603929, 9834735011, 9834866113, 9834997213, 9835128287, + 9835259387, 9835390471, 9835521571, 9835652653, 9835783729, 9835914811, 9836045909, + 9836177063, 9836308147, 9836439281, 9836570369, 9836701447, 9836832529, 9836963629, + 9837094711, 9837225791, 9837356869, 9837487943, 9837619031, 9837750133, 9837881227, + 9838012307, 9838143443, 9838274539, 9838405639, 9838536731, 9838667807, 9838798897, + 9838930051, 9839061131, 9839192227, 9839323303, 9839454377, 9839585453, 9839716553, + 9839847631, 9839978711, 9840109817, 9840240901, 9840372043, 9840503131, 9840634211, + 9840765317, 9840896389, 9841027517, 9841158629, 9841289713, 9841420801, 9841551877, + 9841682971, 9841814093, 9841945177, 9842076259, 9842207351, 9842338427, 9842469523, + 9842600623, 9842731733, 9842862833, 9842993939, 9843125023, 9843256117, 9843387199, + 9843518297, 9843649373, 9843780451, 9843911537, 9844042631, 9844173707, 9844304779, + 9844435879, 9844567027, 9844698103, 9844829207, 9844960283, 9845091367, 9845222447, + 9845353523, 9845484599, 9845615683, 9845746783, 9845877869, 9846008951, 9846140047, + 9846271121, 9846402229, 9846533371, 9846664483, 9846795557, 9846926629, 9847057709, + 9847188809, 9847319927, 9847450999, 9847582093, 9847713191, 9847844263, 9847975391, + 9848106523, 9848237621, 9848368693, 9848499769, 9848630851, 9848761927, 9848893051, + 9849024149, 9849155227, 9849286331, 9849417421, 9849548537, 9849679627, 9849810703, + 9849941779, 9850072861, 9850203943, 9850335127, 9850466251, 9850597333, 9850728469, + 9850859569, 9850990673, 9851121757, 9851252839, 9851383933, 9851515007, 9851646121, + 9851777203, 9851908307, 9852039437, 9852170509, 9852301603, 9852432683, 9852563767, + 9852694847, 9852825937, 9852957011, 9853088083, 9853219199, 9853350323, 9853481399, + 9853612513, 9853743619, 9853874731, 9854005823, 9854136899, 9854267971, 9854399069, + 9854530141, 9854661233, 9854792327, 9854923417, 9855054527, 9855185611, 9855316699, + 9855447781, 9855578857, 9855709933, 9855841013, 9855972097, 9856103177, 9856234253, + 9856365331, 9856496471, 9856627553, 9856758631, 9856889759, 9857020843, 9857151917, + 9857283013, 9857414087, 9857545163, 9857676239, 9857807317, 9857938399, 9858069493, + 9858200581, 9858331657, 9858462749, 9858593827, 9858724903, 9858855989, 9858987113, + 9859118207, 9859249303, 9859380389, 9859511461, 9859642549, 9859773631, 9859904713, + 9860035793, 9860166871, 9860297957, 9860429057, 9860560153, 9860691229, 9860822359, + 9860953447, 9861084529, 9861215603, 9861346679, 9861477751, 9861608837, 9861739919, + 9861871013, 9862002091, 9862133167, 9862264253, 9862395401, 9862526473, 9862657549, + 9862788623, 9862919743, 9863050859, 9863181943, 9863313107, 9863444197, 9863575273, + 9863706361, 9863837443, 9863968549, 9864099647, 9864230743, 9864361853, 9864492943, + 9864624019, 9864755113, 9864886193, 9865017287, 9865148393, 9865279471, 9865410547, + 9865541629, 9865672709, 9865803803, 9865934917, 9866066083, 9866197169, 9866328247, + 9866459347, 9866590423, 9866721499, 9866852573, 9866983661, 9867114757, 9867245833, + 9867376949, 9867508069, 9867639149, 9867770233, 9867901319, 9868032407, 9868163483, + 9868294571, 9868425647, 9868556723, 9868687817, 9868818889, 9868949969, 9869081051, + 9869212153, 9869343283, 9869474357, 9869605429, 9869736509, 9869867653, 9869998741, + 9870129839, 9870260921, 9870392053, 9870523129, 9870654251, 9870785329, 9870916421, + 9871047493, 9871178567, 9871309667, 9871440749, 9871571861, 9871702969, 9871834043, + 9871965149, 9872096243, 9872227363, 9872358449, 9872489527, 9872620601, 9872751719, + 9872882797, 9873013919, 9873145021, 9873276097, 9873407177, 9873538291, 9873669367, + 9873800527, 9873931603, 9874062691, 9874193773, 9874324847, 9874455923, 9874587001, + 9874718089, 9874849199, 9874980407, 9875111503, 9875242607, 9875373721, 9875504813, + 9875635897, 9875766991, 9875898073, 9876029161, 9876160249, 9876291343, 9876422417, + 9876553499, 9876684589, 9876815699, 9876946789, 9877077907, 9877208983, 9877340089, + 9877471207, 9877602299, 9877733377, 9877864483, 9877995559, 9878126647, 9878257721, + 9878388809, 9878519899, 9878650993, 9878782073, 9878913151, 9879044251, 9879175331, + 9879306419, 9879437551, 9879568627, 9879699701, 9879830783, 9879961873, 9880092949, + 9880224023, 9880355099, 9880486177, 9880617287, 9880748377, 9880879469, 9881010541, + 9881141623, 9881272711, 9881403787, 9881534863, 9881665943, 9881797049, 9881928151, + 9882059249, 9882190361, 9882321437, 9882452533, 9882583609, 9882714691, 9882845771, + 9882976919, 9883107991, 9883239073, 9883370173, 9883501247, 9883632457, 9883763551, + 9883894663, 9884025763, 9884156851, 9884287967, 9884419043, 9884550131, 9884681203, + 9884812277, 9884943353, 9885074429, 9885205501, 9885336577, 9885467677, 9885598759, + 9885729851, 9885860951, 9885992041, 9886123123, 9886254221, 9886385293, 9886516369, + 9886647469, 9886778549, 9886909631, 9887040719, 9887171803, 9887302883, 9887433961, + 9887565073, 9887696153, 9887827247, 9887958331, 9888089411, 9888220487, 9888351569, + 9888482677, 9888613751, 9888744863, 9888875939, 9889007027, 9889138099, 9889269191, + 9889400291, 9889531381, 9889662457, 9889793591, 9889924673, 9890055781, 9890186879, + 9890317999, 9890449099, 9890580179, 9890711251, 9890842349, 9890973427, 9891104507, + 9891235589, 9891366671, 9891497773, 9891628847, 9891759923, 9891891007, 9892022081, + 9892153153, 9892284247, 9892415321, 9892546409, 9892677533, 9892808609, 9892939691, + 9893070779, 9893201861, 9893332951, 9893464039, 9893595121, 9893726233, 9893857321, + 9893988397, 9894119471, 9894250621, 9894381697, 9894512833, 9894643937, 9894775039, + 9894906149, 9895037237, 9895168321, 9895299397, 9895430509, 9895561619, 9895692713, + 9895823831, 9895954931, 9896086021, 9896217131, 9896348221, 9896479321, 9896610431, + 9896741513, 9896872597, 9897003703, 9897134801, 9897265877, 9897396953, 9897528029, + 9897659111, 9897790187, 9897921263, 9898052363, 9898183453, 9898314529, 9898445647, + 9898576729, 9898707803, 9898838879, 9898969957, 9899101039, 9899232121, 9899363213, + 9899494307, 9899625409, 9899756509, 9899887583, 9900018677, 9900149771, 9900280843, + 9900411919, 9900543017, 9900674089, 9900805199, 9900936277, 9901067353, 9901198441, + 9901329551, 9901460627, 9901591709, 9901722781, 9901853861, 9901984969, 9902116043, + 9902247139, 9902378231, 9902509307, 9902640389, 9902771531, 9902902643, 9903033727, + 9903164813, 9903295903, 9903426983, 9903558061, 9903689137, 9903820219, 9903951313, + 9904082393, 9904213493, 9904344607, 9904475681, 9904606757, 9904737851, 9904868923, + 9905000009, 9905131081, 9905262163, 9905393243, 9905524327, 9905655439, 9905786519, + 9905917591, 9906048673, 9906179753, 9906310831, 9906441917, 9906572989, 9906704107, + 9906835189, 9906966271, 9907097381, 9907228453, 9907359551, 9907490641, 9907621721, + 9907752817, 9907883893, 9908014967, 9908146081, 9908277163, 9908408243, 9908539339, + 9908670419, 9908801491, 9908932567, 9909063643, 9909194723, 9909325813, 9909456899, + 9909588037, 9909719123, 9909850211, 9909981307, 9910112389, 9910243471, 9910374571, + 9910505651, 9910636751, 9910767833, 9910898917, 9911029993, 9911161093, 9911292169, + 9911423243, 9911554321, 9911685479, 9911816567, 9911947709, 9912078791, 9912209899, + 9912340979, 9912472061, 9912603137, 9912734243, 9912865343, 9912996421, 9913127531, + 9913258651, 9913389743, 9913520819, 9913651921, 9913783001, 9913914091, 9914045177, + 9914176303, 9914307391, 9914438467, 9914569549, 9914700683, 9914831803, 9914962877, + 9915093949, 9915225029, 9915356159, 9915487277, 9915618359, 9915749447, 9915880523, + 9916011647, 9916142729, 9916273813, 9916404919, 9916536041, 9916667113, 9916798187, + 9916929307, 9917060399, 9917191481, 9917322581, 9917453653, 9917584741, 9917715881, + 9917846969, 9917978053, 9918109147, 9918240221, 9918371299, 9918502387, 9918633467, + 9918764561, 9918895669, 9919026743, 9919157819, 9919288921, 9919420001, 9919551107, + 9919682191, 9919813307, 9919944389, 9920075479, 9920206561, 9920337649, 9920468731, + 9920599807, 9920730923, 9920862019, 9920993107, 9921124193, 9921255287, 9921386393, + 9921517511, 9921648623, 9921779701, 9921910783, 9922041869, 9922172977, 9922304069, + 9922435147, 9922566233, 9922697327, 9922828403, 9922959499, 9923090609, 9923221723, + 9923352797, 9923483881, 9923614957, 9923746103, 9923877281, 9924008371, 9924139447, + 9924270533, 9924401609, 9924532687, 9924663781, 9924794879, 9924925951, 9925057027, + 9925188101, 9925319189, 9925450307, 9925581397, 9925712473, 9925843547, 9925974629, + 9926105711, 9926236807, 9926367883, 9926498957, 9926630029, 9926761111, 9926892187, + 9927023291, 9927154381, 9927285463, 9927416669, 9927547759, 9927678841, 9927809929, + 9927941017, 9928072103, 9928203203, 9928334281, 9928465357, 9928596437, 9928727513, + 9928858607, 9928989683, 9929120777, 9929251879, 9929382959, 9929514043, 9929645137, + 9929776217, 9929907329, 9930038401, 9930169499, 9930300571, 9930431669, 9930562769, + 9930693863, 9930824999, 9930956117, 9931087213, 9931218307, 9931349383, 9931480513, + 9931611587, 9931742699, 9931873789, 9932004869, 9932135951, 9932267027, 9932398111, + 9932529247, 9932660321, 9932791397, 9932922479, 9933053551, 9933184633, 9933315719, + 9933446797, 9933577883, 9933708979, 9933840071, 9933971197, 9934102273, 9934233377, + 9934364483, 9934495559, 9934626661, 9934757759, 9934888837, 9935019917, 9935151011, + 9935282083, 9935413217, 9935544337, 9935675443, 9935806549, 9935937629, 9936068717, + 9936199807, 9936330881, 9936461957, 9936593033, 9936724117, 9936855211, 9936986299, + 9937117451, 9937248553, 9937379687, 9937510771, 9937642051, 9937773127, 9937904201, + 9938035277, 9938166349, 9938297431, 9938428523, 9938559619, 9938690759, 9938821883, + 9938953043, 9939084121, 9939215197, 9939346271, 9939477389, 9939608473, 9939739549, + 9939870631, 9940001717, 9940132823, 9940263913, 9940394999, 9940526107, 9940657267, + 9940788343, 9940919419, 9941050499, 9941181583, 9941312713, 9941443817, 9941574889, + 9941706011, 9941837083, 9941968159, 9942099241, 9942230327, 9942361411, 9942492487, + 9942623591, 9942754667, 9942885739, 9943016827, 9943147937, 9943279009, 9943410097, + 9943541177, 9943672261, 9943803341, 9943934417, 9944065553, 9944196629, 9944327707, + 9944458781, 9944589859, 9944720963, 9944852039, 9944983129, 9945114229, 9945245329, + 9945376403, 9945507491, 9945638579, 9945769651, 9945900761, 9946031833, 9946162913, + 9946293997, 9946425077, 9946556153, 9946687229, 9946818311, 9946949401, 9947080523, + 9947211619, 9947342731, 9947473817, 9947604923, 9947735999, 9947867077, 9947998153, + 9948129227, 9948260341, 9948391417, 9948522503, 9948653639, 9948784721, 9948915881, + 9949046963, 9949178053, 9949309129, 9949440203, 9949571309, 9949702391, 9949833473, + 9949964597, 9950095679, 9950226751, 9950357887, 9950488963, 9950620051, 9950751133, + 9950882251, 9951013343, 9951144433, 9951275561, 9951406639, 9951537737, 9951668813, + 9951799903, 9951930977, 9952062097, 9952193171, 9952324301, 9952455389, 9952586467, + 9952717561, 9952848677, 9952979791, 9953110877, 9953242001, 9953373083, 9953504177, + 9953635277, 9953766391, 9953897489, 9954028627, 9954159713, 9954290791, 9954421871, + 9954552943, 9954684059, 9954815131, 9954946231, 9955077313, 9955208399, 9955339487, + 9955470559, 9955601641, 9955732733, 9955863851, 9955994941, 9956126023, 9956257097, + 9956388179, 9956519269, 9956650367, 9956781449, 9956912527, 9957043627, 9957174701, + 9957305833, 9957436927, 9957568037, 9957699121, 9957830227, 9957961301, 9958092401, + 9958223489, 9958354579, 9958485679, 9958616753, 9958747847, 9958878931, 9959010007, + 9959141089, 9959272171, 9959403277, 9959534357, 9959665433, 9959796521, 9959927599, + 9960058699, 9960189779, 9960320861, 9960451981, 9960583097, 9960714173, 9960845261, + 9960976351, 9961107433, 9961238537, 9961369661, 9961500743, 9961631833, 9961762913, + 9961894003, 9962025089, 9962156161, 9962287253, 9962418373, 9962549477, 9962680573, + 9962811647, 9962942747, 9963073847, 9963204919, 9963335999, 9963467081, 9963598159, + 9963729241, 9963860341, 9963991441, 9964122523, 9964253599, 9964384673, 9964515773, + 9964646969, 9964778053, 9964909237, 9965040311, 9965171387, 9965302517, 9965433593, + 9965564671, 9965695763, 9965826847, 9965957941, 9966089041, 9966220153, 9966351229, + 9966482321, 9966613399, 9966744503, 9966875603, 9967006697, 9967137769, 9967268863, + 9967399951, 9967531039, 9967662121, 9967793197, 9967924327, 9968055463, 9968186551, + 9968317651, 9968448751, 9968579837, 9968710919, 9968842003, 9968973083, 9969104161, + 9969235247, 9969366373, 9969497491, 9969628573, 9969759659, 9969890803, 9970021877, + 9970152949, 9970284043, 9970415131, 9970546211, 9970677317, 9970808389, 9970939463, + 9971070559, 9971201663, 9971332741, 9971463839, 9971594911, 9971725987, 9971857117, + 9971988203, 9972119299, 9972250391, 9972381479, 9972512581, 9972643657, 9972774811, + 9972905893, 9973036967, 9973168057, 9973299131, 9973430231, 9973561337, 9973692433, + 9973823513, 9973954607, 9974085679, 9974216767, 9974347843, 9974478923, 9974610013, + 9974741093, 9974872183, 9975003263, 9975134341, 9975265441, 9975396517, 9975527609, + 9975658727, 9975789799, 9975920881, 9976051991, 9976183097, 9976314191, 9976445279, + 9976576367, 9976707443, 9976838519, 9976969621, 9977100719, 9977231791, 9977362877, + 9977493979, 9977625089, 9977756177, 9977887279, 9978018353, 9978149453, 9978280537, + 9978411629, 9978542711, 9978673801, 9978804893, 9978935999, 9979067071, 9979198153, + 9979329259, 9979460353, 9979591439, 9979722539, 9979853627, 9979984699, 9980115779, + 9980246863, 9980377951, 9980509043, 9980640133, 9980771221, 9980902313, 9981033397, + 9981164483, 9981295591, 9981426713, 9981557801, 9981688883, 9981820021, 9981951107, + 9982082191, 9982213271, 9982344371, 9982475443, 9982606523, 9982737619, 9982868729, + 9982999849, 9983130943, 9983262043, 9983393137, 9983524211, 9983655299, 9983786383, + 9983917477, 9984048551, 9984179627, 9984310717, 9984441821, 9984572933, 9984704063, + 9984835139, 9984966223, 9985097357, 9985228471, 9985359577, 9985490653, 9985621727, + 9985752823, 9985883909, 9986015047, 9986146129, 9986277209, 9986408281, 9986539391, + 9986670511, 9986801611, 9986932691, 9987063767, 9987194857, 9987325963, 9987457061, + 9987588137, 9987719233, 9987850309, 9987981433, 9988112531, 9988243607, 9988374679, + 9988505773, 9988636901, 9988767973, 9988899061, 9989030137, 9989161243, 9989292319, + 9989423419, 9989554517, 9989685623, 9989816729, 9989947817, 9990078893, 9990209989, + 9990341069, 9990472237, 9990603323, 9990734401, 9990865517, 9990996607, 9991127683, + 9991258757, 9991389833, 9991520909, 9991652059, 9991783199, 9991914281, 9992045363, + 9992176459, 9992307551, 9992438623, 9992569747, 9992700821, 9992831929, 9992963017, + 9993094103, 9993225191, 9993356281, 9993487363, 9993618451, 9993749611, 9993880697, + 9994011809, 9994142881, 9994273987, 9994405159, 9994536239, 9994667327, 9994798427, + 9994929517, 9995060617, 9995191697, 9995322797, 9995453869, 9995584943, 9995716033, + 9995847137, 9995978221, 9996109301, 9996240391, 9996371479, 9996502561, 9996633697, + 9996764797, 9996895871, 9997026989, 9997158071, 9997289143, 9997420229, 9997551307, + 9997682381, 9997813453, 9997944547, 9998075629, 9998206709, 9998337821, 9998468899, + 9998600009, 9998731091, 9998862163, 9998993243, 9999124337, 9999255433, 9999386533, + 9999517631, 9999648707, 9999779809, 9999910883, 10000042001, 10000173089, 10000304161, + 10000435261, 10000566361, 10000697449, 10000828601, 10000959673, 10001090747, 10001221849, + 10001352941, 10001484019, 10001615093, 10001746211, 10001877299, 10002008417, 10002139507, + 10002270599, 10002401701, 10002532829, 10002663907, 10002794981, 10002926117, 10003057199, + 10003188329, 10003319437, 10003450517, 10003581589, 10003712671, 10003843763, 10003974899, + 10004105977, 10004237051, 10004368123, 10004499217, 10004630327, 10004761447, 10004892533, + 10005023659, 10005154759, 10005285839, 10005416947, 10005548027, 10005679127, 10005810203, + 10005941293, 10006072423, 10006203497, 10006334579, 10006465661, 10006596737, 10006727821, + 10006858921, 10006990027, 10007121133, 10007252209, 10007383291, 10007514367, 10007645441, + 10007776553, 10007907631, 10008038723, 10008169811, 10008300971, 10008432047, 10008563129, + 10008694229, 10008825317, 10008956389, 10009087469, 10009218547, 10009349629, 10009480709, + 10009611811, 10009742903, 10009874009, 10010005091, 10010136179, 10010267269, 10010398397, + 10010529481, 10010660563, 10010791657, 10010922731, 10011053809, 10011184889, 10011315983, + 10011447109, 10011578197, 10011709289, 10011840367, 10011971447, 10012102601, 10012233739, + 10012364819, 10012495937, 10012627019, 10012758097, 10012889171, 10013020249, 10013151353, + 10013282471, 10013413583, 10013544703, 10013675803, 10013806877, 10013937953, 10014069029, + 10014200123, 10014331211, 10014462317, 10014593401, 10014724481, 10014855553, 10014986627, + 10015117699, 10015248773, 10015379849, 10015510933, 10015642009, 10015773101, 10015904177, + 10016035261, 10016166353, 10016297453, 10016428553, 10016559643, 10016690759, 10016821847, + 10016952919, 10017084023, 10017215107, 10017346217, 10017477313, 10017608473, 10017739561, + 10017870637, 10018001729, 10018132801, 10018263919, 10018394999, 10018526081, 10018657163, + 10018788281, 10018919381, 10019050463, 10019181539, 10019312657, 10019443781, 10019574853, + 10019705953, 10019837053, 10019968129, 10020099211, 10020230303, 10020361469, 10020492557, + 10020623677, 10020754753, 10020885871, 10021016953, 10021148029, 10021279109, 10021410181, + 10021541303, 10021672387, 10021803469, 10021934551, 10022065723, 10022196803, 10022327881, + 10022458969, 10022590049, 10022721143, 10022852219, 10022983291, 10023114373, 10023245461, + 10023376541, 10023507629, 10023638701, 10023769793, 10023900883, 10024031959, 10024163087, + 10024294211, 10024425311, 10024556387, 10024687459, 10024818539, 10024949633, 10025080717, + 10025211793, 10025342897, 10025473987, 10025605067, 10025736139, 10025867213, 10025998289, + 10026129367, 10026260479, 10026391553, 10026522629, 10026653743, 10026784837, 10026915937, + 10027047011, 10027178087, 10027309163, 10027440251, 10027571377, 10027702499, 10027833649, + 10027964747, 10028095849, 10028226931, 10028358031, 10028489113, 10028620201, 10028751277, + 10028882371, 10029013499, 10029144581, 10029275653, 10029406727, 10029537851, 10029668923, + 10029799999, 10029931091, 10030062179, 10030193267, 10030324361, 10030455437, 10030586509, + 10030717591, 10030848671, 10030979753, 10031110841, 10031241923, 10031373007, 10031504089, + 10031635183, 10031766259, 10031897333, 10032028453, 10032159551, 10032290623, 10032421697, + 10032552773, 10032683861, 10032814937, 10032946019, 10033077107, 10033208209, 10033339297, + 10033470407, 10033601509, 10033732603, 10033863701, 10033994777, 10034125879, 10034256997, + 10034388079, 10034519167, 10034650261, 10034781397, 10034912477, 10035043621, 10035174733, + 10035305809, 10035436903, 10035568033, 10035699133, 10035830213, 10035961391, 10036092509, + 10036223597, 10036354693, 10036485791, 10036616899, 10036747979, 10036879051, 10037010127, + 10037141201, 10037272307, 10037403403, 10037534501, 10037665577, 10037796649, 10037927741, + 10038058813, 10038189893, 10038320983, 10038452069, 10038583193, 10038714271, 10038845353, + 10038976427, 10039107523, 10039238597, 10039369673, 10039500767, 10039631851, 10039762939, + 10039894037, 10040025133, 10040156239, 10040287321, 10040418407, 10040549501, 10040680589, + 10040811673, 10040942777, 10041073859, 10041204961, 10041336037, 10041467119, 10041598247, + 10041729329, 10041860419, 10041991507, 10042122617, 10042253699, 10042384771, 10042515863, + 10042646993, 10042778077, 10042909157, 10043040263, 10043171363, 10043302453, 10043433527, + 10043564599, 10043695687, 10043826761, 10043957863, 10044088961, 10044220051, 10044351131, + 10044482207, 10044613301, 10044744397, 10044875473, 10045006549, 10045137623, 10045268731, + 10045399843, 10045530917, 10045661993, 10045793123, 10045924219, 10046055301, 10046186377, + 10046317483, 10046448583, 10046579657, 10046710763, 10046841839, 10046972911, 10047103991, + 10047235087, 10047366211, 10047497311, 10047628441, 10047759541, 10047890621, 10048021721, + 10048152811, 10048283941, 10048415017, 10048546111, 10048677229, 10048808309, 10048939423, + 10049070497, 10049201579, 10049332669, 10049463821, 10049594957, 10049726047, 10049857133, + 10049988217, 10050119311, 10050250403, 10050381527, 10050512609, 10050643699, 10050774791, + 10050905863, 10051036979, 10051168069, 10051299157, 10051430273, 10051561379, 10051692467, + 10051823599, 10051954681, 10052085773, 10052216897, 10052347999, 10052479081, 10052610203, + 10052741299, 10052872381, 10053003469, 10053134563, 10053265667, 10053396739, 10053527831, + 10053658919, 10053790001, 10053921077, 10054052189, 10054183267, 10054314353, 10054445431, + 10054576517, 10054707599, 10054838693, 10054969807, 10055100907, 10055231981, 10055363057, + 10055494139, 10055625211, 10055756287, 10055887363, 10056018457, 10056149557, 10056280643, + 10056411731, 10056542819, 10056673897, 10056804973, 10056936049, 10057067123, 10057198223, + 10057329367, 10057460489, 10057591589, 10057722671, 10057853801, 10057984877, 10058115973, + 10058247077, 10058378167, 10058509243, 10058640349, 10058771467, 10058902571, 10059033643, + 10059164743, 10059295817, 10059426913, 10059558043, 10059689117, 10059820213, 10059951287, + 10060082377, 10060213517, 10060344607, 10060475731, 10060606807, 10060737959, 10060869061, + 10061000149, 10061131243, 10061262361, 10061393453, 10061524541, 10061655619, 10061786729, + 10061917819, 10062048959, 10062180071, 10062311159, 10062442249, 10062573349, 10062704459, + 10062835561, 10062966659, 10063097743, 10063228817, 10063359907, 10063491079, 10063622183, + 10063753267, 10063884367, 10064015441, 10064146567, 10064277679, 10064408759, 10064539843, + 10064670929, 10064802019, 10064933129, 10065064259, 10065195331, 10065326449, 10065457543, + 10065588619, 10065719693, 10065850829, 10065981907, 10066112989, 10066244107, 10066375213, + 10066506319, 10066637419, 10066768493, 10066899569, 10067030647, 10067161739, 10067292817, + 10067423893, 10067554999, 10067686099, 10067817173, 10067948249, 10068079331, 10068210403, + 10068341489, 10068472567, 10068603653, 10068734737, 10068865811, 10068996923, 10069128023, + 10069259117, 10069390189, 10069521271, 10069652371, 10069783459, 10069914551, 10070045639, + 10070176811, 10070307887, 10070438981, 10070570077, 10070701159, 10070832241, 10070963317, + 10071094391, 10071225469, 10071356557, 10071487639, 10071618719, 10071749819, 10071880891, + 10072011973, 10072143061, 10072274141, 10072405271, 10072536361, 10072667441, 10072798523, + 10072929613, 10073060717, 10073191841, 10073322947, 10073454073, 10073585147, 10073716243, + 10073847359, 10073978437, 10074109511, 10074240587, 10074371663, 10074502747, 10074633827, + 10074764899, 10074896009, 10075027087, 10075158161, 10075289251, 10075420373, 10075551457, + 10075682549, 10075813633, 10075944721, 10076075833, 10076206913, 10076338007, 10076469083, + 10076600167, 10076731243, 10076862329, 10076993461, 10077124553, 10077255641, 10077386713, + 10077517811, 10077648923, 10077780007, 10077911099, 10078042207, 10078173349, 10078304461, + 10078435547, 10078566629, 10078697701, 10078828801, 10078959883, 10079091017, 10079222093, + 10079353183, 10079484307, 10079615411, 10079746483, 10079877589, 10080008693, 10080139777, + 10080270857, 10080401959, 10080533051, 10080664141, 10080795217, 10080926293, 10081057367, + 10081188497, 10081319623, 10081450723, 10081581817, 10081712891, 10081843969, 10081975051, + 10082106127, 10082237257, 10082368333, 10082499457, 10082630531, 10082761613, 10082892691, + 10083023767, 10083154847, 10083286009, 10083417163, 10083548263, 10083679337, 10083810413, + 10083941501, 10084072573, 10084203673, 10084334761, 10084465877, 10084596953, 10084728089, + 10084859171, 10084990243, 10085121317, 10085252399, 10085383471, 10085514553, 10085645651, + 10085776769, 10085907857, 10086038933, 10086170011, 10086301091, 10086432217, 10086563321, + 10086694399, 10086825499, 10086956573, 10087087693, 10087218773, 10087349903, 10087480979, + 10087612103, 10087743209, 10087874297, 10088005373, 10088136463, 10088267543, 10088398643, + 10088529719, 10088660849, 10088791963, 10088923063, 10089054137, 10089185233, 10089316339, + 10089447437, 10089578533, 10089709649, 10089840779, 10089971861, 10090102937, 10090234013, + 10090365107, 10090496179, 10090627289, 10090758383, 10090889467, 10091020543, 10091151619, + 10091282723, 10091413831, 10091544907, 10091676031, 10091807107, 10091938189, 10092069277, + 10092200387, 10092331463, 10092462553, 10092593639, 10092724717, 10092855797, 10092986879, + 10093117967, 10093249043, 10093380151, 10093511231, 10093642313, 10093773401, 10093904477, + 10094035561, 10094166637, 10094297737, 10094428811, 10094559883, 10094690959, 10094822047, + 10094953147, 10095084227, 10095215303, 10095346379, 10095477479, 10095608563, 10095739657, + 10095870779, 10096001887, 10096132967, 10096264039, 10096395121, 10096526201, 10096657279, + 10096788367, 10096919479, 10097050571, 10097181649, 10097312759, 10097443871, 10097574953, + 10097706029, 10097837107, 10097968201, 10098099283, 10098230369, 10098361451, 10098492529, + 10098623621, 10098754697, 10098885821, 10099016899, 10099147979, 10099279061, 10099410179, + 10099541261, 10099672367, 10099803449, 10099934521, 10100065597, 10100196671, 10100327767, + 10100458847, 10100589931, 10100721017, 10100852089, 10100983171, 10101114271, 10101245359, + 10101376457, 10101507601, 10101638689, 10101769787, 10101900917, 10102032001, 10102163083, + 10102294177, 10102425283, 10102556413, 10102687489, 10102818577, 10102949653, 10103080753, + 10103211857, 10103342941, 10103474023, 10103605097, 10103736169, 10103867273, 10103998349, + 10104129439, 10104260531, 10104391603, 10104522683, 10104653759, 10104784861, 10104915941, + 10105047019, 10105178117, 10105309219, 10105440329, 10105571407, 10105702489, 10105833581, + 10105964699, 10106095771, 10106226859, 10106357953, 10106489033, 10106620151, 10106751229, + 10106882321, 10107013429, 10107144511, 10107275609, 10107406681, 10107537757, 10107668911, + 10107799991, 10107931109, 10108062199, 10108193327, 10108324439, 10108455517, 10108586639, + 10108717721, 10108848811, 10108979897, 10109110981, 10109242057, 10109373133, 10109504219, + 10109635313, 10109766413, 10109897509, 10110028589, 10110159679, 10110290753, 10110421829, + 10110552913, 10110684037, 10110815123, 10110946217, 10111077289, 10111208389, 10111339499, + 10111470583, 10111601657, 10111732747, 10111863841, 10111994917, 10112126009, 10112257091, + 10112388191, 10112519299, 10112650393, 10112781491, 10112912569, 10113043643, 10113174763, + 10113305843, 10113436919, 10113568081, 10113699181, 10113830263, 10113961343, 10114092419, + 10114223519, 10114354597, 10114485673, 10114616749, 10114747823, 10114878919, 10115010023, + 10115141123, 10115272199, 10115403271, 10115534371, 10115665453, 10115796529, 10115927603, + 10116058681, 10116189781, 10116320857, 10116451931, 10116583019, 10116714107, 10116845281, + 10116976393, 10117107487, 10117238567, 10117369643, 10117500739, 10117631813, 10117762909, + 10117893991, 10118025077, 10118156201, 10118287327, 10118418407, 10118549479, 10118680571, + 10118811653, 10118942731, 10119073841, 10119204937, 10119336061, 10119467143, 10119598231, + 10119729331, 10119860449, 10119991537, 10120122637, 10120253711, 10120384783, 10120515857, + 10120646929, 10120778029, 10120909111, 10121040187, 10121171261, 10121302349, 10121433431, + 10121564561, 10121695651, 10121826751, 10121957827, 10122088913, 10122219997, 10122351097, + 10122482179, 10122613271, 10122744347, 10122875429, 10123006513, 10123137587, 10123268663, + 10123399771, 10123530853, 10123662013, 10123793089, 10123924177, 10124055289, 10124186363, + 10124317457, 10124448571, 10124579657, 10124710781, 10124841869, 10124972959, 10125104039, + 10125235117, 10125366203, 10125497287, 10125628391, 10125759467, 10125890569, 10126021649, + 10126152721, 10126283813, 10126414891, 10126546037, 10126677109, 10126808227, 10126939327, + 10127070403, 10127201477, 10127332549, 10127463649, 10127594731, 10127725831, 10127856917, + 10127987993, 10128119077, 10128250159, 10128381259, 10128512333, 10128643409, 10128774497, + 10128905593, 10129036669, 10129167743, 10129298849, 10129429951, 10129561037, 10129692119, + 10129823203, 10129954309, 10130085397, 10130216501, 10130347573, 10130478689, 10130609771, + 10130740889, 10130871983, 10131003083, 10131134171, 10131265247, 10131396343, 10131527423, + 10131658499, 10131789589, 10131920663, 10132051757, 10132182829, 10132313921, 10132444997, + 10132576081, 10132707157, 10132838267, 10132969361, 10133100433, 10133231519, 10133362597, + 10133493677, 10133624771, 10133755871, 10133886947, 10134018031, 10134149107, 10134280181, + 10134411281, 10134542381, 10134673459, 10134804577, 10134935677, 10135066757, 10135197841, + 10135328927, 10135460021, 10135591133, 10135722229, 10135853359, 10135984483, 10136115557, + 10136246629, 10136377709, 10136508817, 10136639899, 10136771011, 10136902093, 10137033187, + 10137164287, 10137295367, 10137426443, 10137557537, 10137688657, 10137819737, 10137950831, + 10138081939, 10138213027, 10138344107, 10138475189, 10138606267, 10138737347, 10138868423, + 10138999501, 10139130581, 10139261653, 10139392759, 10139523847, 10139654927, 10139786009, + 10139917111, 10140048221, 10140179299, 10140310381, 10140441463, 10140572537, 10140703613, + 10140834701, 10140965803, 10141096883, 10141227959, 10141359047, 10141490171, 10141621253, + 10141752337, 10141883413, 10142014489, 10142145571, 10142276647, 10142407739, 10142538907, + 10142670053, 10142801131, 10142932277, 10143063367, 10143194443, 10143325529, 10143456667, + 10143587749, 10143718927, 10143850001, 10143981077, 10144112161, 10144243273, 10144374367, + 10144505461, 10144636547, 10144767671, 10144898749, 10145029831, 10145160917, 10145292013, + 10145423089, 10145554169, 10145685241, 10145816321, 10145947397, 10146078473, 10146209599, + 10146340679, 10146471757, 10146602831, 10146733903, 10146864983, 10146996077, 10147127183, + 10147258271, 10147389361, 10147520441, 10147651583, 10147782661, 10147913759, 10148044867, + 10148175977, 10148307073, 10148438159, 10148569253, 10148700329, 10148831419, 10148962501, + 10149093583, 10149224681, 10149355757, 10149486833, 10149617911, 10149749009, 10149880087, + 10150011161, 10150142243, 10150273319, 10150404401, 10150535501, 10150666597, 10150797673, + 10150928761, 10151059861, 10151190937, 10151322019, 10151453111, 10151584211, 10151715307, + 10151846417, 10151977513, 10152108587, 10152239663, 10152370747, 10152501823, 10152632911, + 10152764033, 10152895111, 10153026193, 10153157359, 10153288447, 10153419571, 10153550717, + 10153681793, 10153812917, 10153944041, 10154075117, 10154206207, 10154337311, 10154468399, + 10154599471, 10154730563, 10154861653, 10154992753, 10155123877, 10155254951, 10155386027, + 10155517111, 10155648193, 10155779279, 10155910351, 10156041499, 10156172627, 10156303739, + 10156434811, 10156565891, 10156696967, 10156828049, 10156959121, 10157090197, 10157221271, + 10157352379, 10157483473, 10157614549, 10157745671, 10157876749, 10158007823, 10158138917, + 10158270013, 10158401093, 10158532169, 10158663289, 10158794417, 10158925489, 10159056679, + 10159187771, 10159318843, 10159449977, 10159581109, 10159712203, 10159843303, 10159974397, + 10160105477, 10160236549, 10160367631, 10160498743, 10160629849, 10160760931, 10160892059, + 10161023149, 10161154319, 10161285397, 10161416471, 10161547573, 10161678647, 10161809719, + 10161940807, 10162071893, 10162202993, 10162334089, 10162465169, 10162596259, 10162727431, + 10162858507, 10162989581, 10163120711, 10163251817, 10163382907, 10163513989, 10163645069, + 10163776159, 10163907301, 10164038449, 10164169553, 10164300631, 10164431731, 10164562817, + 10164693893, 10164824981, 10164956057, 10165087129, 10165218211, 10165349297, 10165480373, + 10165611503, 10165742591, 10165873693, 10166004767, 10166135869, 10166266969, 10166398049, + 10166529169, 10166660249, 10166791331, 10166922413, 10167053509, 10167184591, 10167315673, + 10167446767, 10167577841, 10167708917, 10167839993, 10167971137, 10168102229, 10168233343, + 10168364419, 10168495517, 10168626599, 10168757681, 10168888771, 10169019899, 10169151043, + 10169282153, 10169413231, 10169544367, 10169675447, 10169806529, 10169937601, 10170068791, + 10170199873, 10170330949, 10170462037, 10170593117, 10170724199, 10170855271, 10170986369, + 10171117471, 10171248551, 10171379663, 10171510829, 10171641901, 10171773019, 10171904101, + 10172035183, 10172166271, 10172297351, 10172428439, 10172559533, 10172690623, 10172821721, + 10172952809, 10173083923, 10173215027, 10173346121, 10173477217, 10173608293, 10173739379, + 10173870479, 10174001557, 10174132663, 10174263769, 10174394849, 10174525931, 10174657019, + 10174788137, 10174919233, 10175050321, 10175181403, 10175312479, 10175443609, 10175574701, + 10175705779, 10175836871, 10175967943, 10176099019, 10176230117, 10176361189, 10176492307, + 10176623399, 10176754513, 10176885599, 10177016687, 10177147763, 10177278841, 10177409933, + 10177541029, 10177672111, 10177803187, 10177934281, 10178065379, 10178196487, 10178327623, + 10178458699, 10178589787, 10178720873, 10178851973, 10178983051, 10179114161, 10179245273, + 10179376357, 10179507461, 10179638593, 10179769679, 10179900767, 10180031879, 10180162957, + 10180294049, 10180425127, 10180556249, 10180687351, 10180818433, 10180949533, 10181080619, + 10181211701, 10181342797, 10181473889, 10181604967, 10181736041, 10181867123, 10181998231, + 10182129319, 10182260401, 10182391481, 10182522557, 10182653707, 10182784823, 10182915943, + 10183047029, 10183178107, 10183309187, 10183440287, 10183571369, 10183702469, 10183833547, + 10183964639, 10184095721, 10184226809, 10184357891, 10184488967, 10184620057, 10184751169, + 10184882243, 10185013343, 10185144419, 10185275509, 10185406597, 10185537679, 10185668833, + 10185799913, 10185930991, 10186062067, 10186193209, 10186324321, 10186455397, 10186586483, + 10186717573, 10186848673, 10186979767, 10187110883, 10187241973, 10187373061, 10187504141, + 10187635247, 10187766353, 10187897437, 10188028517, 10188159601, 10188290677, 10188421751, + 10188552833, 10188683927, 10188815009, 10188946081, 10189077163, 10189208251, 10189339327, + 10189470407, 10189601479, 10189732559, 10189863637, 10189994761, 10190125843, 10190256961, + 10190388071, 10190519149, 10190650231, 10190781331, 10190912419, 10191043543, 10191174659, + 10191305777, 10191436859, 10191567941, 10191699031, 10191830167, 10191961253, 10192092343, + 10192223417, 10192354553, 10192485637, 10192616741, 10192747813, 10192878919, 10193009999, + 10193141083, 10193272169, 10193403247, 10193534341, 10193665451, 10193796523, 10193927629, + 10194058711, 10194189821, 10194320921, 10194452017, 10194583097, 10194714193, 10194845279, + 10194976387, 10195107469, 10195238549, 10195369631, 10195500781, 10195631861, 10195762939, + 10195894039, 10196025113, 10196156189, 10196287261, 10196418347, 10196549423, 10196680513, + 10196811589, 10196942687, 10197073763, 10197204887, 10197335971, 10197467083, 10197598163, + 10197729247, 10197860333, 10197991469, 10198122551, 10198253623, 10198384717, 10198515793, + 10198646869, 10198777987, 10198909099, 10199040179, 10199171273, 10199302357, 10199433437, + 10199564539, 10199695619, 10199826709, 10199957797, 10200088901, 10200219989, 10200351061, + 10200482143, 10200613243, 10200744319, 10200875411, 10201006531, 10201137631, 10201268713, + 10201399807, 10201530893, 10201661989, 10201793111, 10201924211, 10202055313, 10202186417, + 10202317513, 10202448587, 10202579669, 10202710787, 10202841877, 10202972953, 10203104029, + 10203235109, 10203366197, 10203497273, 10203628381, 10203759457, 10203890531, 10204021631, + 10204152713, 10204283809, 10204414897, 10204545991, 10204677079, 10204808171, 10204939243, + 10205070319, 10205201399, 10205332477, 10205463553, 10205594627, 10205725703, 10205856781, + 10205987861, 10206118957, 10206250037, 10206381151, 10206512227, 10206643303, 10206774433, + 10206905539, 10207036621, 10207167697, 10207298819, 10207429891, 10207560967, 10207692067, + 10207823209, 10207954297, 10208085373, 10208216461, 10208347549, 10208478661, 10208609773, + 10208740849, 10208871923, 10209003017, 10209134119, 10209265207, 10209396287, 10209527359, + 10209658441, 10209789523, 10209920657, 10210051763, 10210182869, 10210313941, 10210445029, + 10210576111, 10210707259, 10210838353, 10210969429, 10211100503, 10211231581, 10211362657, + 10211493731, 10211624827, 10211755909, 10211886991, 10212018119, 10212149191, 10212280277, + 10212411373, 10212542477, 10212673621, 10212804731, 10212935809, 10213066883, 10213197959, + 10213329043, 10213460123, 10213591207, 10213722287, 10213853383, 10213984471, 10214115581, + 10214246683, 10214377769, 10214508869, 10214639947, 10214771057, 10214902129, 10215033203, + 10215164293, 10215295373, 10215426461, 10215557543, 10215688627, 10215819721, 10215950821, + 10216081921, 10216213067, 10216344143, 10216475231, 10216606333, 10216737407, 10216868509, + 10216999601, 10217130683, 10217261771, 10217392903, 10217523983, 10217655067, 10217786149, + 10217917249, 10218048343, 10218179429, 10218310517, 10218441643, 10218572719, 10218703793, + 10218834917, 10218965989, 10219097071, 10219228157, 10219359239, 10219490339, 10219621411, + 10219752493, 10219883579, 10220014663, 10220145737, 10220276809, 10220407909, 10220538983, + 10220670073, 10220801161, 10220932247, 10221063329, 10221194407, 10221325567, 10221456653, + 10221587741, 10221718817, 10221849917, 10221981041, 10222112113, 10222243193, 10222374271, + 10222505351, 10222636423, 10222767521, 10222898593, 10223029669, 10223160751, 10223291863, + 10223422949, 10223554021, 10223685103, 10223816219, 10223947297, 10224078379, 10224209461, + 10224340537, 10224471659, 10224602767, 10224733867, 10224864941, 10224996037, 10225127123, + 10225258217, 10225389319, 10225520401, 10225651511, 10225782599, 10225913683, 10226044771, + 10226175887, 10226306963, 10226438087, 10226569163, 10226700257, 10226831333, 10226962441, + 10227093553, 10227224647, 10227355751, 10227486827, 10227617899, 10227749003, 10227880087, + 10228011187, 10228142279, 10228273373, 10228404449, 10228535521, 10228666603, 10228797697, + 10228928833, 10229059913, 10229191073, 10229322149, 10229453249, 10229584327, 10229715401, + 10229846489, 10229977577, 10230108653, 10230239729, 10230370837, 10230501929, 10230633001, + 10230764081, 10230895163, 10231026257, 10231157329, 10231288451, 10231419557, 10231550663, + 10231681739, 10231812823, 10231943929, 10232075011, 10232206087, 10232337187, 10232468261, + 10232599339, 10232730413, 10232861491, 10232992573, 10233123661, 10233254741, 10233385843, + 10233516929, 10233648031, 10233779111, 10233910187, 10234041287, 10234172381, 10234303481, + 10234434577, 10234565659, 10234696739, 10234827821, 10234958911, 10235090009, 10235221121, + 10235352229, 10235483333, 10235614511, 10235745593, 10235876671, 10236007759, 10236138839, + 10236269929, 10236401009, 10236532081, 10236663167, 10236794257, 10236925351, 10237056433, + 10237187533, 10237318613, 10237449689, 10237580767, 10237711853, 10237842929, 10237974001, + 10238105083, 10238236159, 10238367233, 10238498321, 10238629393, 10238760559, 10238891651, + 10239022733, 10239153811, 10239284893, 10239415987, 10239547067, 10239678161, 10239809243, + 10239940379, 10240071461, 10240202549, 10240333711, 10240464821, 10240595917, 10240726997, + 10240858079, 10240989181, 10241120293, 10241251381, 10241382469, 10241513549, 10241644627, + 10241775701, 10241906783, 10242037867, 10242168941, 10242300023, 10242431123, 10242562217, + 10242693301, 10242824381, 10242955477, 10243086559, 10243217701, 10243348789, 10243479871, + 10243610959, 10243742051, 10243873127, 10244004203, 10244135299, 10244266381, 10244397463, + 10244528549, 10244659631, 10244790707, 10244921789, 10245052891, 10245183979, 10245315061, + 10245446137, 10245577211, 10245708283, 10245839377, 10245970489, 10246101587, 10246232663, + 10246363741, 10246494827, 10246625927, 10246756999, 10246888097, 10247019187, 10247150297, + 10247281393, 10247412587, 10247543699, 10247674819, 10247805907, 10247936983, 10248068069, + 10248199189, 10248330289, 10248461383, 10248592481, 10248723553, 10248854633, 10248985739, + 10249116817, 10249247893, 10249378967, 10249510093, 10249641167, 10249772249, 10249903331, + 10250034407, 10250165483, 10250296559, 10250427643, 10250558723, 10250689817, 10250820901, + 10250951981, 10251083081, 10251214159, 10251345241, 10251476321, 10251607439, 10251738517, + 10251869591, 10252000667, 10252131781, 10252262897, 10252393993, 10252525091, 10252656163, + 10252787249, 10252918327, 10253049403, 10253180479, 10253311559, 10253442643, 10253573747, + 10253704831, 10253835961, 10253967049, 10254098123, 10254229207, 10254360289, 10254491371, + 10254622447, 10254753521, 10254884603, 10255015703, 10255146787, 10255277867, 10255409039, + 10255540129, 10255671203, 10255802287, 10255933367, 10256064443, 10256195567, 10256326649, + 10256457727, 10256588809, 10256719903, 10256850979, 10256982083, 10257113171, 10257244247, + 10257375319, 10257506401, 10257637499, 10257768581, 10257899669, 10258030753, 10258161827, + 10258292903, 10258423997, 10258555081, 10258686157, 10258817287, 10258948361, 10259079433, + 10259210509, 10259341583, 10259472659, 10259603747, 10259734831, 10259865937, 10259997031, + 10260128113, 10260259187, 10260390271, 10260521347, 10260652463, 10260783563, 10260914681, + 10261045799, 10261176881, 10261307993, 10261439161, 10261570247, 10261701353, 10261832437, + 10261963531, 10262094607, 10262225681, 10262356771, 10262487863, 10262618957, 10262750039, + 10262881127, 10263012209, 10263143299, 10263274393, 10263405491, 10263536567, 10263667639, + 10263798731, 10263929803, 10264060907, 10264191997, 10264323079, 10264454171, 10264585249, + 10264716347, 10264847429, 10264978501, 10265109583, 10265240659, 10265371733, 10265502811, + 10265633893, 10265765017, 10265896133, 10266027221, 10266158293, 10266289367, 10266420449, + 10266551521, 10266682603, 10266813677, 10266944773, 10267075873, 10267206977, 10267338049, + 10267469129, 10267600289, 10267731373, 10267862461, 10267993559, 10268124677, 10268255827, + 10268386913, 10268517989, 10268649071, 10268780167, 10268911243, 10269042331, 10269173407, + 10269304501, 10269435587, 10269566663, 10269697747, 10269828823, 10269959927, 10270091003, + 10270222091, 10270353167, 10270484243, 10270615337, 10270746509, 10270877593, 10271008667, + 10271139761, 10271270881, 10271401963, 10271533043, 10271664121, 10271795197, 10271926283, + 10272057409, 10272188483, 10272319591, 10272450667, 10272581771, 10272712889, 10272843979, + 10272975059, 10273106141, 10273237217, 10273368337, 10273499419, 10273630531, 10273761607, + 10273892687, 10274023769, 10274154841, 10274285921, 10274416993, 10274548133, 10274679211, + 10274810303, 10274941381, 10275072469, 10275203551, 10275334637, 10275465713, 10275596809, + 10275727907, 10275858991, 10275990097, 10276121173, 10276252247, 10276383323, 10276514429, + 10276645517, 10276776589, 10276907699, 10277038799, 10277169887, 10277300987, 10277432071, + 10277563159, 10277694283, 10277825357, 10277956489, 10278087571, 10278218647, 10278349721, + 10278480799, 10278611879, 10278742961, 10278874093, 10279005167, 10279136243, 10279267331, + 10279398433, 10279529527, 10279660613, 10279791763, 10279922837, 10280053919, 10280185109, + 10280316181, 10280447263, 10280578361, 10280709457, 10280840533, 10280971639, 10281102719, + 10281233839, 10281364937, 10281496019, 10281627151, 10281758257, 10281889333, 10282020407, + 10282151501, 10282282579, 10282413667, 10282544813, 10282675927, 10282807033, 10282938119, + 10283069213, 10283200327, 10283331419, 10283462491, 10283593571, 10283724697, 10283855797, + 10283986879, 10284117979, 10284249061, 10284380143, 10284511219, 10284642293, 10284773417, + 10284904499, 10285035587, 10285166687, 10285297787, 10285428863, 10285559939, 10285691027, + 10285822139, 10285953239, 10286084353, 10286215477, 10286346571, 10286477651, 10286608729, + 10286739817, 10286870903, 10287002017, 10287133091, 10287264181, 10287395269, 10287526343, + 10287657449, 10287788573, 10287919651, 10288050743, 10288181821, 10288312933, 10288444027, + 10288575133, 10288706237, 10288837337, 10288968421, 10289099539, 10289230643, 10289361749, + 10289492869, 10289623963, 10289755057, 10289886137, 10290017263, 10290148361, 10290279443, + 10290410521, 10290541631, 10290672703, 10290803791, 10290934877, 10291065959, 10291197053, + 10291328147, 10291459247, 10291590347, 10291721423, 10291852559, 10291983661, 10292114737, + 10292245849, 10292376947, 10292508019, 10292639101, 10292770199, 10292901323, 10293032423, + 10293163501, 10293294577, 10293425669, 10293556751, 10293687829, 10293818921, 10293949999, + 10294081087, 10294212161, 10294343239, 10294474363, 10294605449, 10294736521, 10294867601, + 10294998673, 10295129777, 10295260861, 10295391973, 10295523053, 10295654141, 10295785217, + 10295916343, 10296047423, 10296178499, 10296309571, 10296440647, 10296571721, 10296702803, + 10296833881, 10296964961, 10297096049, 10297227139, 10297358261, 10297489333, 10297620433, + 10297751507, 10297882579, 10298013667, 10298144767, 10298275847, 10298406941, 10298538013, + 10298669111, 10298800207, 10298931343, 10299062419, 10299193493, 10299324709, 10299455791, + 10299586873, 10299717949, 10299849031, 10299980177, 10300111267, 10300242347, 10300373453, + 10300504553, 10300635637, 10300766711, 10300897801, 10301028901, 10301159987, 10301291059, + 10301422139, 10301553281, 10301684363, 10301815441, 10301946527, 10302077629, 10302208723, + 10302339799, 10302470887, 10302601963, 10302733061, 10302864149, 10302995243, 10303126349, + 10303257451, 10303388539, 10303519619, 10303650697, 10303781783, 10303912873, 10304044019, + 10304175181, 10304306267, 10304437369, 10304568467, 10304699551, 10304830637, 10304961727, + 10305092813, 10305223927, 10305355013, 10305486091, 10305617183, 10305748261, 10305879371, + 10306010447, 10306141537, 10306272667, 10306403803, 10306534879, 10306665979, 10306797097, + 10306928197, 10307059277, 10307190373, 10307321467, 10307452543, 10307583623, 10307714759, + 10307845831, 10307976937, 10308108011, 10308239087, 10308370169, 10308501253, 10308632357, + 10308763453, 10308894529, 10309025659, 10309156757, 10309287847, 10309418923, 10309550003, + 10309681087, 10309812179, 10309943257, 10310074339, 10310205413, 10310336489, 10310467567, + 10310598731, 10310729813, 10310860907, 10310991979, 10311123107, 10311254201, 10311385289, + 10311516463, 10311647557, 10311778637, 10311909709, 10312040797, 10312171889, 10312302961, + 10312434049, 10312565141, 10312696237, 10312827313, 10312958401, 10313089481, 10313220563, + 10313351647, 10313482727, 10313613799, 10313744879, 10313875951, 10314007057, 10314138151, + 10314269227, 10314400307, 10314531391, 10314662503, 10314793609, 10314924707, 10315055789, + 10315186873, 10315317977, 10315449061, 10315580153, 10315711229, 10315842307, 10315973401, + 10316104499, 10316235577, 10316366777, 10316497853, 10316628967, 10316760067, 10316891183, + 10317022277, 10317153373, 10317284447, 10317415519, 10317546593, 10317677719, 10317808841, + 10317939923, 10318071013, 10318202093, 10318333169, 10318464253, 10318595341, 10318726447, + 10318857551, 10318988629, 10319119711, 10319250841, 10319381921, 10319512993, 10319644087, + 10319775161, 10319906237, 10320037309, 10320168389, 10320299467, 10320430577, 10320561677, + 10320692761, 10320823847, 10320954977, 10321086059, 10321217171, 10321348249, 10321479341, + 10321610441, 10321741531, 10321872629, 10322003717, 10322134799, 10322265871, 10322396947, + 10322528033, 10322659157, 10322790263, 10322921383, 10323052499, 10323183617, 10323314713, + 10323445799, 10323576881, 10323707971, 10323839051, 10323970123, 10324101199, 10324232279, + 10324363367, 10324494457, 10324625533, 10324756627, 10324887701, 10325018773, 10325149847, + 10325280919, 10325412001, 10325543089, 10325674171, 10325805247, 10325936339, 10326067463, + 10326198551, 10326329687, 10326460759, 10326591833, 10326722929, 10326854099, 10326985199, + 10327116277, 10327247383, 10327378487, 10327509559, 10327640639, 10327771723, 10327902797, + 10328033893, 10328164967, 10328296079, 10328427181, 10328558257, 10328689333, 10328820419, + 10328951497, 10329082571, 10329213647, 10329344731, 10329475811, 10329606893, 10329738017, + 10329869111, 10330000193, 10330131313, 10330262473, 10330393547, 10330524629, 10330655717, + 10330786819, 10330917893, 10331049007, 10331180107, 10331311187, 10331442259, 10331573363, + 10331704483, 10331835607, 10331966681, 10332097793, 10332228869, 10332359953, 10332491051, + 10332622127, 10332753253, 10332884339, 10333015417, 10333146491, 10333277599, 10333408693, + 10333539793, 10333670887, 10333801987, 10333933087, 10334064163, 10334195243, 10334326319, + 10334457391, 10334588477, 10334719583, 10334850661, 10334981737, 10335112817, 10335243917, + 10335375007, 10335506081, 10335637153, 10335768227, 10335899369, 10336030459, 10336161547, + 10336292623, 10336423703, 10336554791, 10336685867, 10336816961, 10336948049, 10337079157, + 10337210231, 10337341303, 10337472419, 10337603513, 10337734591, 10337865697, 10337996771, + 10338127853, 10338259031, 10338390103, 10338521189, 10338652273, 10338783373, 10338914491, + 10339045573, 10339176677, 10339307761, 10339438849, 10339569943, 10339701049, 10339832143, + 10339963243, 10340094341, 10340225419, 10340356517, 10340487649, 10340618759, 10340749831, + 10340880911, 10341011983, 10341143063, 10341274157, 10341405233, 10341536321, 10341667433, + 10341798521, 10341929593, 10342060667, 10342191779, 10342322869, 10342453949, 10342585051, + 10342716143, 10342847219, 10342978357, 10343109479, 10343240573, 10343371673, 10343502751, + 10343633857, 10343764931, 10343896019, 10344027091, 10344158173, 10344289313, 10344420419, + 10344551509, 10344682589, 10344813673, 10344944747, 10345075879, 10345206967, 10345338043, + 10345469179, 10345600277, 10345731371, 10345862477, 10345993573, 10346124671, 10346255749, + 10346386823, 10346517911, 10346649007, 10346780107, 10346911231, 10347042353, 10347173429, + 10347304519, 10347435601, 10347566689, 10347697777, 10347828853, 10347959927, 10348091041, + 10348222117, 10348353209, 10348484281, 10348615391, 10348746517, 10348877603, 10349008679, + 10349139803, 10349270879, 10349401961, 10349533043, 10349664191, 10349795263, 10349926399, + 10350057493, 10350188587, 10350319663, 10350450757, 10350581849, 10350712927, 10350844001, + 10350975073, 10351106153, 10351237229, 10351368331, 10351499423, 10351630517, 10351761619, + 10351892701, 10352023807, 10352154889, 10352285969, 10352417059, 10352548159, 10352679241, + 10352810317, 10352941429, 10353072563, 10353203671, 10353334763, 10353465887, 10353596971, + 10353728057, 10353859133, 10353990217, 10354121299, 10354252393, 10354383497, 10354514579, + 10354645657, 10354776793, 10354907891, 10355038979, 10355170061, 10355301133, 10355432249, + 10355563333, 10355694487, 10355825561, 10355956679, 10356087809, 10356218897, 10356349981, + 10356481061, 10356612191, 10356743263, 10356874361, 10357005433, 10357136521, 10357267699, + 10357398773, 10357529851, 10357660927, 10357792051, 10357923133, 10358054233, 10358185339, + 10358316433, 10358447573, 10358578649, 10358709743, 10358840819, 10358971901, 10359102973, + 10359234047, 10359365141, 10359496223, 10359627307, 10359758407, 10359889487, 10360020607, + 10360151687, 10360282763, 10360413859, 10360544951, 10360676023, 10360807099, 10360938191, + 10361069267, 10361200351, 10361331451, 10361462561, 10361593643, 10361724761, 10361855837, + 10361986909, 10362118003, 10362249097, 10362380191, 10362511277, 10362642377, 10362773461, + 10362904547, 10363035619, 10363166699, 10363297783, 10363428937, 10363560079, 10363691161, + 10363822243, 10363953323, 10364084447, 10364215549, 10364346661, 10364477749, 10364608829, + 10364739901, 10364871017, 10365002129, 10365133201, 10365264277, 10365395371, 10365526447, + 10365657527, 10365788639, 10365919747, 10366051001, 10366182097, 10366313183, 10366444259, + 10366575361, 10366706443, 10366837597, 10366968697, 10367099773, 10367230859, 10367361971, + 10367493049, 10367624167, 10367755243, 10367886317, 10368017437, 10368148537, 10368279671, + 10368410749, 10368541921, 10368673001, 10368804073, 10368935147, 10369066229, 10369197329, + 10369328443, 10369459517, 10369590601, 10369721699, 10369852847, 10369983919, 10370115001, + 10370246101, 10370377219, 10370508319, 10370639399, 10370770537, 10370901647, 10371032719, + 10371163793, 10371294893, 10371425971, 10371557051, 10371688147, 10371819277, 10371950377, + 10372081459, 10372212541, 10372343629, 10372474711, 10372605823, 10372736897, 10372868017, + 10372999097, 10373130169, 10373261267, 10373392339, 10373523439, 10373654519, 10373785603, + 10373916677, 10374047767, 10374178879, 10374309961, 10374441067, 10374572161, 10374703253, + 10374834329, 10374965423, 10375096499, 10375227587, 10375358701, 10375489777, 10375620869, + 10375751941, 10375883041, 10376014153, 10376145343, 10376276431, 10376407507, 10376538583, + 10376669659, 10376800757, 10376931889, 10377062981, 10377194053, 10377325141, 10377456263, + 10377587387, 10377718489, 10377849583, 10377980693, 10378111781, 10378242863, 10378373939, + 10378505023, 10378636097, 10378767173, 10378898263, 10379029343, 10379160469, 10379291561, + 10379422673, 10379553749, 10379684827, 10379815913, 10379946991, 10380078067, 10380209201, + 10380340277, 10380471349, 10380602431, 10380733513, 10380864589, 10380995663, 10381126793, + 10381257877, 10381388959, 10381520047, 10381651157, 10381782277, 10381913363, 10382044469, + 10382175547, 10382306647, 10382437811, 10382568919, 10382700001, 10382831083, 10382962181, + 10383093277, 10383224353, 10383355511, 10383486613, 10383617693, 10383748777, 10383879853, + 10384010927, 10384142053, 10384273153, 10384404257, 10384535339, 10384666441, 10384797541, + 10384928657, 10385059733, 10385190811, 10385321893, 10385453027, 10385584141, 10385715227, + 10385846321, 10385977409, 10386108497, 10386239599, 10386370693, 10386501767, 10386632873, + 10386763949, 10386895021, 10387026103, 10387157203, 10387288279, 10387419379, 10387550483, + 10387681571, 10387812647, 10387943743, 10388074817, 10388205907, 10388337017, 10388468173, + 10388599253, 10388730353, 10388861459, 10388992541, 10389123629, 10389254749, 10389385823, + 10389516911, 10389648019, 10389779111, 10389910241, 10390041349, 10390172423, 10390303537, + 10390434611, 10390565711, 10390696783, 10390827857, 10390958933, 10391090011, 10391221091, + 10391352163, 10391483269, 10391614367, 10391745443, 10391876543, 10392007739, 10392138857, + 10392269933, 10392401027, 10392532103, 10392663181, 10392794261, 10392925369, 10393056461, + 10393187569, 10393318643, 10393449721, 10393580807, 10393711897, 10393843013, 10393974089, + 10394105171, 10394236277, 10394367353, 10394498437, 10394629519, 10394760601, 10394891693, + 10395022777, 10395153851, 10395284923, 10395415997, 10395547079, 10395678191, 10395809299, + 10395940381, 10396071463, 10396202543, 10396333657, 10396464739, 10396595813, 10396726997, + 10396858093, 10396989191, 10397120269, 10397251363, 10397382449, 10397513543, 10397644619, + 10397775769, 10397906863, 10398037939, 10398169013, 10398300097, 10398431171, 10398562243, + 10398693317, 10398824407, 10398955481, 10399086557, 10399217707, 10399348819, 10399479911, + 10399610983, 10399742063, 10399873157, 10400004233, 10400135323, 10400266421, 10400397493, + 10400528573, 10400659649, 10400790721, 10400921801, 10401052877, 10401183977, 10401315091, + 10401446189, 10401577271, 10401708367, 10401839443, 10401970529, 10402101637, 10402232717, + 10402363837, 10402494919, 10402626019, 10402757111, 10402888187, 10403019281, 10403150377, + 10403281459, 10403412533, 10403543627, 10403674703, 10403805779, 10403936891, 10404067979, + 10404199111, 10404330187, 10404461293, 10404592397, 10404723493, 10404854569, 10404985687, + 10405116767, 10405247857, 10405378969, 10405510079, 10405641157, 10405772303, 10405903423, + 10406034511, 10406165633, 10406296711, 10406427791, 10406558867, 10406689939, 10406821039, + 10406952119, 10407083221, 10407214313, 10407345457, 10407476561, 10407607673, 10407738799, + 10407869911, 10408000991, 10408132067, 10408263139, 10408394219, 10408525291, 10408656367, + 10408787443, 10408918519, 10409049631, 10409180707, 10409311789, 10409442887, 10409573981, + 10409705069, 10409836153, 10409967251, 10410098327, 10410229399, 10410360473, 10410491551, + 10410622631, 10410753757, 10410884831, 10411015931, 10411147037, 10411278109, 10411409191, + 10411540267, 10411671341, 10411802413, 10411933487, 10412064571, 10412195669, 10412326747, + 10412457833, 10412588929, 10412720029, 10412851121, 10412982193, 10413113273, 10413244357, + 10413375433, 10413506573, 10413637727, 10413768821, 10413899927, 10414031009, 10414162097, + 10414293187, 10414424261, 10414555343, 10414686439, 10414817521, 10414948613, 10415079707, + 10415210789, 10415341903, 10415473051, 10415604131, 10415735249, 10415866339, 10415997437, + 10416128539, 10416259639, 10416390731, 10416521813, 10416652943, 10416784031, 10416915107, + 10417046183, 10417177271, 10417308361, 10417439437, 10417570519, 10417701599, 10417832717, + 10417963789, 10418094913, 10418225989, 10418357099, 10418488193, 10418619331, 10418750423, + 10418881513, 10419012607, 10419143789, 10419274883, 10419405967, 10419537077, 10419668159, + 10419799237, 10419930337, 10420061441, 10420192543, 10420323629, 10420454717, 10420585801, + 10420716959, 10420848041, 10420979113, 10421110237, 10421241319, 10421372417, 10421503513, + 10421634607, 10421765689, 10421896763, 10422027853, 10422158947, 10422290029, 10422421103, + 10422552197, 10422683273, 10422814351, 10422945427, 10423076501, 10423207573, 10423338703, + 10423469807, 10423600919, 10423731991, 10423863077, 10423994173, 10424125247, 10424256343, + 10424387429, 10424518513, 10424649601, 10424780677, 10424911771, 10425042847, 10425173921, + 10425304993, 10425436069, 10425567199, 10425698281, 10425829391, 10425960473, 10426091549, + 10426222669, 10426353757, 10426484833, 10426615909, 10426747043, 10426878173, 10427009251, + 10427140333, 10427271461, 10427402539, 10427533619, 10427664701, 10427795789, 10427926867, + 10428057947, 10428189019, 10428320099, 10428451171, 10428582247, 10428713371, 10428844499, + 10428975581, 10429106687, 10429237789, 10429368863, 10429499989, 10429631071, 10429762153, + 10429893233, 10430024309, 10430155397, 10430286469, 10430417651, 10430548763, 10430679841, + 10430810959, 10430942087, 10431073187, 10431204263, 10431335357, 10431466433, 10431597521, + 10431728597, 10431859681, 10431990769, 10432121863, 10432252939, 10432384021, 10432515097, + 10432646171, 10432777259, 10432908371, 10433039503, 10433170597, 10433301677, 10433432749, + 10433563837, 10433694917, 10433826017, 10433957147, 10434088243, 10434219317, 10434350393, + 10434481469, 10434612553, 10434743687, 10434874763, 10435005839, 10435136923, 10435268003, + 10435399097, 10435530173, 10435661261, 10435792349, 10435923473, 10436054591, 10436185663, + 10436316743, 10436447821, 10436578907, 10436710001, 10436841073, 10436972179, 10437103349, + 10437234463, 10437365537, 10437496639, 10437627719, 10437758797, 10437889871, 10438020947, + 10438152019, 10438283117, 10438414219, 10438545307, 10438676429, 10438807507, 10438938581, + 10439069671, 10439200747, 10439331827, 10439462909, 10439594021, 10439725099, 10439856257, + 10439987347, 10440118459, 10440249569, 10440380747, 10440511841, 10440642913, 10440774023, + 10440905107, 10441036219, 10441167311, 10441298383, 10441429501, 10441560629, 10441691707, + 10441822793, 10441953881, 10442085001, 10442216101, 10442347211, 10442478301, 10442609389, + 10442740463, 10442871541, 10443002657, 10443133733, 10443264829, 10443395933, 10443527051, + 10443658151, 10443789229, 10443920303, 10444051379, 10444182499, 10444313591, 10444444663, + 10444575737, 10444706821, 10444837919, 10444969019, 10445100097, 10445231221, 10445362313, + 10445493389, 10445624491, 10445755583, 10445886727, 10446017807, 10446148903, 10446279989, + 10446411091, 10446542173, 10446673267, 10446804353, 10446935461, 10447066537, 10447197617, + 10447328743, 10447459853, 10447590929, 10447722031, 10447853107, 10447984189, 10448115277, + 10448246351, 10448377439, 10448508559, 10448639659, 10448770753, 10448901839, 10449032941, + 10449164023, 10449295133, 10449426271, 10449557347, 10449688421, 10449819511, 10449950597, + 10450081669, 10450212761, 10450343861, 10450474973, 10450606057, 10450737137, 10450868237, + 10450999313, 10451130397, 10451261503, 10451392591, 10451523703, 10451654789, 10451785889, + 10451916971, 10452048043, 10452179117, 10452310189, 10452441299, 10452572419, 10452703507, + 10452834589, 10452965669, 10453096747, 10453227871, 10453358957, 10453490081, 10453621183, + 10453752259, 10453883351, 10454014427, 10454145521, 10454276621, 10454407759, 10454538839, + 10454669917, 10454800999, 10454932087, 10455063217, 10455194317, 10455325421, 10455456497, + 10455587579, 10455718699, 10455849821, 10455980893, 10456111973, 10456243051, 10456374191, + 10456505363, 10456636511, 10456767593, 10456898707, 10457029801, 10457160899, 10457292011, + 10457423089, 10457554169, 10457685257, 10457816449, 10457947541, 10458078677, 10458209807, + 10458340883, 10458471977, 10458603053, 10458734159, 10458865237, 10458996323, 10459127401, + 10459258477, 10459389571, 10459520677, 10459651759, 10459782859, 10459913957, 10460045047, + 10460176123, 10460307197, 10460438293, 10460569391, 10460700511, 10460831597, 10460962669, + 10461093781, 10461224861, 10461355937, 10461487009, 10461618091, 10461749167, 10461880249, + 10462011353, 10462142479, 10462273553, 10462404643, 10462535729, 10462666801, 10462797889, + 10462928977, 10463060071, 10463191159, 10463322251, 10463453323, 10463584409, 10463715487, + 10463846587, 10463977661, 10464108749, 10464239837, 10464370951, 10464502051, 10464633133, + 10464764213, 10464895303, 10465026419, 10465157503, 10465288661, 10465419739, 10465550813, + 10465681909, 10465812989, 10465944077, 10466075219, 10466206301, 10466337373, 10466468471, + 10466599543, 10466730643, 10466861719, 10466992831, 10467123937, 10467255013, 10467386087, + 10467517163, 10467648239, 10467779327, 10467910421, 10468041511, 10468172587, 10468303691, + 10468434763, 10468565837, 10468696943, 10468828043, 10468959133, 10469090209, 10469221297, + 10469352371, 10469483467, 10469614549, 10469745623, 10469876707, 10470007819, 10470138893, + 10470269989, 10470401083, 10470532159, 10470663253, 10470794381, 10470925453, 10471056553, + 10471187659, 10471318747, 10471449907, 10471580981, 10471712057, 10471843133, 10471974229, + 10472105339, 10472236417, 10472367527, 10472498599, 10472629679, 10472760761, 10472891879, + 10473022957, 10473154031, 10473285133, 10473416237, 10473547313, 10473678419, 10473809501, + 10473940573, 10474071659, 10474202743, 10474333817, 10474464893, 10474595969, 10474727059, + 10474858133, 10474989221, 10475120303, 10475251387, 10475382479, 10475513551, 10475644631, + 10475775703, 10475906803, 10476037889, 10476168971, 10476300071, 10476431143, 10476562219, + 10476693299, 10476824381, 10476955453, 10477086539, 10477217677, 10477348751, 10477479863, + 10477610947, 10477742057, 10477873139, 10478004217, 10478135321, 10478266397, 10478397487, + 10478528569, 10478659663, 10478790737, 10478921809, 10479052889, 10479184003, 10479315079, + 10479446171, 10479577247, 10479708331, 10479839413, 10479970499, 10480101581, 10480232731, + 10480363811, 10480494919, 10480626017, 10480757099, 10480888181, 10481019259, 10481150363, + 10481281441, 10481412587, 10481543707, 10481674781, 10481805869, 10481936957, 10482068039, + 10482199151, 10482330223, 10482461323, 10482592399, 10482723473, 10482854579, 10482985661, + 10483116733, 10483247807, 10483378891, 10483509973, 10483641059, 10483772161, 10483903267, + 10484034389, 10484165467, 10484296549, 10484427631, 10484558719, 10484689843, 10484820919, + 10484951993, 10485083083, 10485214169, 10485345257, 10485476329, 10485607481, 10485738569, + 10485869689, 10486000781, 10486131881, 10486262959, 10486394057, 10486525169, 10486656269, + 10486787357, 10486918439, 10487049553, 10487180633, 10487311819, 10487442907, 10487573983, + 10487705069, 10487836141, 10487967221, 10488098317, 10488229391, 10488360481, 10488491561, + 10488622643, 10488753739, 10488884821, 10489015907, 10489146991, 10489278083, 10489409159, + 10489540261, 10489671343, 10489802419, 10489933499, 10490064587, 10490195669, 10490326753, + 10490457839, 10490588951, 10490720027, 10490851109, 10490982209, 10491113291, 10491244381, + 10491375463, 10491506549, 10491637633, 10491768709, 10491899797, 10492030877, 10492161971, + 10492293047, 10492424153, 10492555247, 10492686397, 10492817471, 10492948567, 10493079679, + 10493210753, 10493341841, 10493472947, 10493604041, 10493735117, 10493866189, 10493997277, + 10494128383, 10494259471, 10494390551, 10494521623, 10494652703, 10494783787, 10494914891, + 10495045963, 10495177039, 10495308113, 10495439221, 10495570297, 10495701371, 10495832467, + 10495963549, 10496094641, 10496225713, 10496356799, 10496487887, 10496619019, 10496750101, + 10496881177, 10497012257, 10497143333, 10497274421, 10497405509, 10497536587, 10497667699, + 10497798803, 10497929909, 10498061009, 10498192091, 10498323167, 10498454269, 10498585343, + 10498716427, 10498847501, 10498978573, 10499109653, 10499240737, 10499371873, 10499502953, + 10499634037, 10499765119, 10499896213, 10500027301, 10500158377, 10500289451, 10500420527, + 10500551599, 10500682693, 10500813779, 10500944911, 10501075993, 10501207097, 10501338173, + 10501469257, 10501600357, 10501731469, 10501862543, 10501993639, 10502124751, 10502255851, + 10502386931, 10502518003, 10502649083, 10502780177, 10502911249, 10503042349, 10503173441, + 10503304517, 10503435667, 10503566741, 10503697817, 10503828901, 10503959987, 10504091069, + 10504222147, 10504353287, 10504484359, 10504615439, 10504746523, 10504877599, 10505008711, + 10505139793, 10505270869, 10505401969, 10505533043, 10505664181, 10505795347, 10505926451, + 10506057557, 10506188629, 10506319717, 10506450791, 10506581909, 10506712981, 10506844079, + 10506975151, 10507106243, 10507237337, 10507368413, 10507499609, 10507630687, 10507761787, + 10507892909, 10508023997, 10508155079, 10508286157, 10508417243, 10508548319, 10508679403, + 10508810483, 10508941559, 10509072671, 10509203767, 10509334867, 10509466001, 10509597083, + 10509728179, 10509859259, 10509990347, 10510121441, 10510252559, 10510383641, 10510514713, + 10510645799, 10510776901, 10510907999, 10511039141, 10511170231, 10511301319, 10511432413, + 10511563499, 10511694587, 10511825659, 10511956757, 10512087829, 10512218953, 10512350033, + 10512481127, 10512612199, 10512743273, 10512874367, 10513005467, 10513136567, 10513267649, + 10513398811, 10513529891, 10513660973, 10513792057, 10513923137, 10514054219, 10514185301, + 10514316389, 10514447477, 10514578553, 10514709637, 10514840717, 10514971793, 10515102889, + 10515234013, 10515365087, 10515496171, 10515627247, 10515758321, 10515889441, 10516020553, + 10516151641, 10516282717, 10516413821, 10516544917, 10516675991, 10516807111, 10516938227, + 10517069323, 10517200411, 10517331527, 10517462651, 10517593781, 10517724853, 10517855939, + 10517987047, 10518118129, 10518249211, 10518380377, 10518511453, 10518642551, 10518773653, + 10518904733, 10519035823, 10519166923, 10519298003, 10519429079, 10519560157, 10519691243, + 10519822319, 10519953401, 10520084611, 10520215687, 10520346779, 10520477873, 10520608991, + 10520740067, 10520871139, 10521002231, 10521133303, 10521264401, 10521395519, 10521526633, + 10521657743, 10521788843, 10521919931, 10522051003, 10522182101, 10522313201, 10522444333, + 10522575433, 10522706569, 10522837669, 10522968749, 10523099833, 10523230933, 10523362013, + 10523493109, 10523624203, 10523755279, 10523886353, 10524017431, 10524148529, 10524279613, + 10524410713, 10524541829, 10524672911, 10524803987, 10524935081, 10525066177, 10525197253, + 10525328381, 10525459457, 10525590541, 10525721621, 10525852703, 10525983791, 10526114897, + 10526245969, 10526377079, 10526508169, 10526639261, 10526770343, 10526901431, 10527032507, + 10527163597, 10527294683, 10527425761, 10527556873, 10527687953, 10527819037, 10527950117, + 10528081219, 10528212301, 10528343407, 10528474499, 10528605583, 10528736671, 10528867759, + 10528998839, 10529129929, 10529261003, 10529392103, 10529523181, 10529654279, 10529785379, + 10529916461, 10530047533, 10530178609, 10530309703, 10530440777, 10530571853, 10530702929, + 10530834001, 10530965111, 10531096183, 10531227293, 10531358389, 10531489469, 10531620553, + 10531751689, 10531882769, 10532013841, 10532144921, 10532276003, 10532407099, 10532538187, + 10532669263, 10532800337, 10532931527, 10533062599, 10533193673, 10533324751, 10533455839, + 10533586951, 10533718057, 10533849181, 10533980311, 10534111403, 10534242487, 10534373677, + 10534504759, 10534635869, 10534766959, 10534898057, 10535029187, 10535160283, 10535291383, + 10535422477, 10535553569, 10535684647, 10535815721, 10535946821, 10536077917, 10536209011, + 10536340093, 10536471181, 10536602257, 10536733379, 10536864467, 10536995569, 10537126669, + 10537257769, 10537388857, 10537519933, 10537651031, 10537782127, 10537913213, 10538044291, + 10538175383, 10538306479, 10538437589, 10538568673, 10538699753, 10538830829, 10538961919, + 10539093013, 10539224093, 10539355181, 10539486253, 10539617371, 10539748469, 10539879547, + 10540010623, 10540141699, 10540272773, 10540403879, 10540534997, 10540666109, 10540797203, + 10540928287, 10541059387, 10541190469, 10541321551, 10541452673, 10541583797, 10541714873, + 10541845949, 10541977123, 10542108211, 10542239287, 10542370387, 10542501461, 10542632549, + 10542763633, 10542894707, 10543025819, 10543156901, 10543288001, 10543419097, 10543550179, + 10543681273, 10543812347, 10543943461, 10544074553, 10544205643, 10544336731, 10544467841, + 10544598913, 10544730041, 10544861137, 10544992219, 10545123319, 10545254417, 10545385493, + 10545516659, 10545647743, 10545778819, 10545909911, 10546041013, 10546172107, 10546303247, + 10546434323, 10546565411, 10546696493, 10546827581, 10546958657, 10547089733, 10547220847, + 10547351951, 10547483069, 10547614141, 10547745223, 10547876303, 10548007409, 10548138611, + 10548269723, 10548400801, 10548531881, 10548662989, 10548794107, 10548925243, 10549056317, + 10549187399, 10549318471, 10549449551, 10549580633, 10549711721, 10549842817, 10549973911, + 10550105003, 10550236087, 10550367239, 10550498327, 10550629399, 10550760487, 10550891581, + 10551022667, 10551153773, 10551284869, 10551415943, 10551547031, 10551678119, 10551809227, + 10551940361, 10552071449, 10552202527, 10552333657, 10552464763, 10552595849, 10552726949, + 10552858051, 10552989127, 10553120267, 10553251349, 10553382467, 10553513543, 10553644627, + 10553775719, 10553906791, 10554037873, 10554168949, 10554300047, 10554431119, 10554562201, + 10554693283, 10554824383, 10554955457, 10555086559, 10555217633, 10555348723, 10555479799, + 10555610927, 10555742053, 10555873129, 10556004209, 10556135287, 10556266387, 10556397479, + 10556528579, 10556659661, 10556790757, 10556921887, 10557052963, 10557184067, 10557315149, + 10557446231, 10557577307, 10557708383, 10557839473, 10557970561, 10558101637, 10558232719, + 10558363801, 10558494889, 10558625971, 10558757093, 10558888189, 10559019299, 10559150377, + 10559281459, 10559412533, 10559543629, 10559674703, 10559805787, 10559936887, 10560067979, + 10560199063, 10560330149, 10560461221, 10560592313, 10560723427, 10560854503, 10560985607, + 10561116679, 10561247779, 10561378873, 10561509949, 10561641023, 10561772141, 10561903213, + 10562034289, 10562165387, 10562296477, 10562427553, 10562558647, 10562689729, 10562820811, + 10562951891, 10563082963, 10563214097, 10563345187, 10563476293, 10563607433, 10563738509, + 10563869587, 10564000697, 10564131793, 10564262869, 10564393943, 10564525019, 10564656097, + 10564787183, 10564918313, 10565049403, 10565180491, 10565311577, 10565442649, 10565573749, + 10565704841, 10565835919, 10565967011, 10566098089, 10566229169, 10566360283, 10566491371, + 10566622453, 10566753539, 10566884681, 10567015757, 10567146829, 10567277953, 10567409051, + 10567540129, 10567671209, 10567802339, 10567933421, 10568064497, 10568195569, 10568326667, + 10568457797, 10568588873, 10568719957, 10568851043, 10568982157, 10569113281, 10569244363, + 10569375437, 10569506551, 10569637703, 10569768787, 10569899909, 10570030997, 10570162069, + 10570293157, 10570424239, 10570555327, 10570686407, 10570817479, 10570948561, 10571079637, + 10571210737, 10571341813, 10571472893, 10571603981, 10571735087, 10571866159, 10571997257, + 10572128339, 10572259427, 10572390511, 10572521587, 10572652691, 10572783821, 10572914897, + 10573045999, 10573177103, 10573308191, 10573439269, 10573570367, 10573701451, 10573832539, + 10573963649, 10574094721, 10574225803, 10574356879, 10574487961, 10574619053, 10574750161, + 10574881241, 10575012341, 10575143431, 10575274513, 10575405587, 10575536663, 10575667747, + 10575798881, 10575929971, 10576061051, 10576192157, 10576323269, 10576454353, 10576585493, + 10576716593, 10576847681, 10576978759, 10577109833, 10577240939, 10577372023, 10577503103, + 10577634251, 10577765323, 10577896411, 10578027527, 10578158603, 10578289703, 10578420823, + 10578551899, 10578682981, 10578814061, 10578945203, 10579076279, 10579207427, 10579338551, + 10579469627, 10579600709, 10579731803, 10579862903, 10579994021, 10580125123, 10580256199, + 10580387273, 10580518363, 10580649437, 10580780519, 10580911603, 10581042697, 10581173791, + 10581304889, 10581435961, 10581567037, 10581698119, 10581829229, 10581960317, 10582091393, + 10582222507, 10582353583, 10582484657, 10582615843, 10582746931, 10582878101, 10583009189, + 10583140261, 10583271343, 10583402483, 10583533567, 10583664671, 10583795743, 10583926867, + 10584057989, 10584189067, 10584320161, 10584451237, 10584582343, 10584713453, 10584844537, + 10584975619, 10585106731, 10585237841, 10585368919, 10585499993, 10585631083, 10585762157, + 10585893323, 10586024417, 10586155511, 10586286593, 10586417671, 10586548751, 10586679833, + 10586810917, 10586942017, 10587073111, 10587204217, 10587335351, 10587466441, 10587597571, + 10587728647, 10587859741, 10587990841, 10588121923, 10588253023, 10588384123, 10588515211, + 10588646303, 10588777411, 10588908503, 10589039581, 10589170661, 10589301739, 10589432929, + 10589564017, 10589695093, 10589826199, 10589957303, 10590088391, 10590219463, 10590350579, + 10590481709, 10590612797, 10590743873, 10590874969, 10591006057, 10591137143, 10591268221, + 10591399307, 10591530407, 10591661489, 10591792639, 10591923751, 10592054873, 10592185991, + 10592317063, 10592448137, 10592579227, 10592710307, 10592841401, 10592972519, 10593103603, + 10593234703, 10593365789, 10593496861, 10593627991, 10593759191, 10593890267, 10594021367, + 10594152461, 10594283543, 10594414673, 10594545751, 10594676831, 10594807903, 10594939021, + 10595070107, 10595201237, 10595332313, 10595463427, 10595594521, 10595725639, 10595856727, + 10595987821, 10596118901, 10596249977, 10596381067, 10596512149, 10596643241, 10596774323, + 10596905411, 10597036511, 10597167593, 10597298681, 10597429769, 10597560851, 10597691933, + 10597823057, 10597954151, 10598085229, 10598216327, 10598347427, 10598478503, 10598609579, + 10598740651, 10598871749, 10599002893, 10599134003, 10599265081, 10599396167, 10599527291, + 10599658367, 10599789451, 10599920531, 10600051603, 10600182683, 10600313783, 10600444871, + 10600575949, 10600707023, 10600838099, 10600969177, 10601100253, 10601231341, 10601362451, + 10601493541, 10601624641, 10601755729, 10601886811, 10602017893, 10602148969, 10602280063, + 10602411137, 10602542297, 10602673387, 10602804461, 10602935537, 10603066609, 10603197751, + 10603328833, 10603459961, 10603591043, 10603722133, 10603853233, 10603984309, 10604115407, + 10604246479, 10604377561, 10604508643, 10604639723, 10604770817, 10604901899, 10605032983, + 10605164069, 10605295159, 10605426241, 10605557323, 10605688409, 10605819503, 10605950587, + 10606081667, 10606212767, 10606343857, 10606474933, 10606606057, 10606737131, 10606868203, + 10606999283, 10607130371, 10607261443, 10607392577, 10607523809, 10607654881, 10607785957, + 10607917039, 10608048133, 10608179233, 10608310331, 10608441413, 10608572489, 10608703571, + 10608834647, 10608965743, 10609096919, 10609228027, 10609359107, 10609490183, 10609621349, + 10609752431, 10609883503, 10610014589, 10610145673, 10610276797, 10610407877, 10610538959, + 10610670053, 10610801129, 10610932243, 10611063319, 10611194393, 10611325507, 10611456589, + 10611587677, 10611718753, 10611849841, 10611980927, 10612112003, 10612243099, 10612374193, + 10612505303, 10612636381, 10612767457, 10612898537, 10613029619, 10613160731, 10613291813, + 10613422889, 10613553997, 10613685073, 10613816153, 10613947237, 10614078311, 10614209393, + 10614340469, 10614471551, 10614602639, 10614733711, 10614864791, 10614995879, 10615126999, + 10615258097, 10615389217, 10615520291, 10615651363, 10615782439, 10615913519, 10616044613, + 10616175733, 10616306839, 10616437913, 10616569001, 10616700089, 10616831219, 10616962297, + 10617093449, 10617224543, 10617355643, 10617486721, 10617617821, 10617748949, 10617880073, + 10618011179, 10618142333, 10618273447, 10618404521, 10618535611, 10618666717, 10618797797, + 10618928893, 10619059981, 10619191061, 10619322193, 10619453311, 10619584411, 10619715497, + 10619846639, 10619977717, 10620108797, 10620239869, 10620370949, 10620502027, 10620633151, + 10620764251, 10620895331, 10621026413, 10621157497, 10621288583, 10621419659, 10621550741, + 10621681813, 10621812911, 10621944001, 10622075117, 10622206207, 10622337283, 10622468393, + 10622599483, 10622730563, 10622861659, 10622992747, 10623123851, 10623254923, 10623385999, + 10623517103, 10623648179, 10623779261, 10623910393, 10624041479, 10624172567, 10624303717, + 10624434841, 10624565969, 10624697059, 10624828141, 10624959259, 10625090341, 10625221423, + 10625352547, 10625483641, 10625614729, 10625745847, 10625876923, 10626008011, 10626139091, + 10626270197, 10626401287, 10626532361, 10626663451, 10626794543, 10626925649, 10627056767, + 10627187839, 10627318913, 10627450013, 10627581121, 10627712243, 10627843319, 10627974391, + 10628105473, 10628236547, 10628367619, 10628498801, 10628629897, 10628760983, 10628892059, + 10629023201, 10629154301, 10629285379, 10629416467, 10629547547, 10629678659, 10629809731, + 10629940823, 10630071919, 10630203007, 10630334129, 10630465247, 10630596337, 10630727423, + 10630858499, 10630989571, 10631120659, 10631251747, 10631382821, 10631513923, 10631644999, + 10631776073, 10631907149, 10632038227, 10632169319, 10632300391, 10632431471, 10632562543, + 10632693637, 10632824723, 10632955871, 10633086953, 10633218053, 10633349147, 10633480219, + 10633611301, 10633742377, 10633873457, 10634004539, 10634135621, 10634266703, 10634397791, + 10634528867, 10634659943, 10634791043, 10634922121, 10635053197, 10635184271, 10635315389, + 10635446461, 10635577549, 10635708653, 10635839729, 10635970861, 10636101937, 10636233017, + 10636364107, 10636495201, 10636626323, 10636757429, 10636888517, 10637019593, 10637150707, + 10637281801, 10637412911, 10637544007, 10637675089, 10637806169, 10637937263, 10638068339, + 10638199417, 10638330503, 10638461599, 10638592681, 10638723763, 10638854867, 10638985939, + 10639117037, 10639248119, 10639379221, 10639510307, 10639641379, 10639772461, 10639903553, + 10640034631, 10640165759, 10640296861, 10640427947, 10640559019, 10640690117, 10640821193, + 10640952271, 10641083351, 10641214427, 10641345499, 10641476633, 10641607709, 10641738803, + 10641869939, 10642001119, 10642132213, 10642263293, 10642394429, 10642525501, 10642656581, + 10642787663, 10642918763, 10643049871, 10643180959, 10643312039, 10643443157, 10643574233, + 10643705351, 10643836429, 10643967541, 10644098627, 10644229741, 10644360847, 10644491929, + 10644623069, 10644754151, 10644885233, 10645016309, 10645147411, 10645278493, 10645409569, + 10645540643, 10645671719, 10645802803, 10645933933, 10646065007, 10646196091, 10646327183, + 10646458259, 10646589379, 10646720459, 10646851541, 10646982631, 10647113761, 10647244849, + 10647375989, 10647507061, 10647638153, 10647769259, 10647900379, 10648031461, 10648162537, + 10648293613, 10648424713, 10648555807, 10648686887, 10648817983, 10648949081, 10649080153, + 10649211229, 10649342321, 10649473403, 10649604479, 10649735611, 10649866687, 10649997767, + 10650128887, 10650259969, 10650391079, 10650522173, 10650653261, 10650784367, 10650915503, + 10651046587, 10651177699, 10651308797, 10651439873, 10651571053, 10651702147, 10651833239, + 10651964321, 10652095393, 10652226493, 10652357603, 10652488703, 10652619787, 10652750887, + 10652882027, 10653013103, 10653144199, 10653275293, 10653406399, 10653537511, 10653668591, + 10653799733, 10653930851, 10654061923, 10654193003, 10654324091, 10654455199, 10654586291, + 10654717379, 10654848487, 10654979567, 10655110673, 10655241749, 10655372851, 10655503927, + 10655635007, 10655766083, 10655897159, 10656028241, 10656159331, 10656290419, 10656421493, + 10656552581, 10656683669, 10656814747, 10656945829, 10657076921, 10657207997, 10657339073, + 10657470157, 10657601233, 10657732369, 10657863451, 10657994531, 10658125619, 10658256727, + 10658387827, 10658518903, 10658649979, 10658781053, 10658912167, 10659043253, 10659174347, + 10659305483, 10659436573, 10659567673, 10659698767, 10659829853, 10659960931, 10660092077, + 10660223179, 10660354261, 10660485359, 10660616437, 10660747519, 10660878593, 10661009683, + 10661140829, 10661271917, 10661402993, 10661534123, 10661665219, 10661796307, 10661927389, + 10662058471, 10662189563, 10662320639, 10662451769, 10662582841, 10662713947, 10662845029, + 10662976109, 10663107209, 10663238329, 10663369403, 10663500499, 10663631579, 10663762661, + 10663893749, 10664024863, 10664155949, 10664287027, 10664418101, 10664549179, 10664680253, + 10664811329, 10664942411, 10665073493, 10665204577, 10665335669, 10665466753, 10665597841, + 10665728917, 10665859999, 10665991079, 10666122163, 10666253287, 10666384423, 10666515589, + 10666646677, 10666777787, 10666908887, 10667039989, 10667171113, 10667302207, 10667433299, + 10667564389, 10667695487, 10667826563, 10667957669, 10668088763, 10668219853, 10668350929, + 10668482003, 10668613093, 10668744173, 10668875251, 10669006339, 10669137421, 10669268537, + 10669399627, 10669530713, 10669661803, 10669792901, 10669923989, 10670055091, 10670186171, + 10670317243, 10670448319, 10670579407, 10670710483, 10670841583, 10670972657, 10671103769, + 10671234851, 10671365923, 10671497021, 10671628147, 10671759233, 10671890363, 10672021457, + 10672152529, 10672283621, 10672414723, 10672545847, 10672676957, 10672808089, 10672939163, + 10673070251, 10673201353, 10673332451, 10673463527, 10673594611, 10673725687, 10673856779, + 10673987881, 10674118979, 10674250091, 10674381169, 10674512243, 10674643361, 10674774457, + 10674905533, 10675036613, 10675167691, 10675298807, 10675429879, 10675560971, 10675692101, + 10675823173, 10675954249, 10676085331, 10676216407, 10676347501, 10676478607, 10676609681, + 10676740769, 10676871841, 10677002923, 10677133997, 10677265087, 10677396179, 10677527279, + 10677658351, 10677789443, 10677920549, 10678051621, 10678182701, 10678313813, 10678444901, + 10678575979, 10678707059, 10678838173, 10678969283, 10679100361, 10679231443, 10679362523, + 10679493599, 10679624693, 10679755777, 10679886853, 10680017939, 10680149027, 10680280147, + 10680411281, 10680542377, 10680673459, 10680804569, 10680935647, 10681066727, 10681197803, + 10681328989, 10681460063, 10681591139, 10681722211, 10681853291, 10681984367, 10682115463, + 10682246537, 10682377609, 10682508689, 10682639797, 10682770927, 10682902003, 10683033089, + 10683164189, 10683295279, 10683426379, 10683557453, 10683688597, 10683819761, 10683950833, + 10684081921, 10684213003, 10684344101, 10684475287, 10684606363, 10684737443, 10684868531, + 10684999603, 10685130679, 10685261759, 10685392847, 10685523941, 10685655017, 10685786129, + 10685917211, 10686048283, 10686179369, 10686310451, 10686441523, 10686572599, 10686703681, + 10686834757, 10686965831, 10687096913, 10687227997, 10687359073, 10687490161, 10687621237, + 10687752329, 10687883467, 10688014573, 10688145653, 10688276761, 10688407853, 10688538937, + 10688670011, 10688801111, 10688932187, 10689063269, 10689194353, 10689325447, 10689456587, + 10689587677, 10689718757, 10689849851, 10689980927, 10690112003, 10690243111, 10690374199, + 10690505311, 10690636457, 10690767547, 10690898653, 10691029753, 10691160833, 10691291951, + 10691423047, 10691554121, 10691685211, 10691816293, 10691947367, 10692078451, 10692209527, + 10692340661, 10692471761, 10692602909, 10692733991, 10692865069, 10692996199, 10693127273, + 10693258391, 10693389463, 10693520569, 10693651663, 10693782739, 10693913819, 10694044891, + 10694175991, 10694307067, 10694438147, 10694569229, 10694700307, 10694831437, 10694962511, + 10695093613, 10695224713, 10695355807, 10695486899, 10695618013, 10695749131, 10695880213, + 10696011289, 10696142377, 10696273451, 10696404527, 10696535599, 10696666681, 10696797767, + 10696928839, 10697059913, 10697191031, 10697322121, 10697453219, 10697584291, 10697715437, + 10697846531, 10697977621, 10698108727, 10698239821, 10698370901, 10698501991, 10698633079, + 10698764171, 10698895253, 10699026341, 10699157449, 10699288529, 10699419607, 10699550683, + 10699681813, 10699812917, 10699943999, 10700075137, 10700206213, 10700337287, 10700468399, + 10700599517, 10700730647, 10700861719, 10700992823, 10701123907, 10701254987, 10701386063, + 10701517163, 10701648239, 10701779371, 10701910519, 10702041617, 10702172699, 10702303847, + 10702434929, 10702566013, 10702697099, 10702828181, 10702959277, 10703090357, 10703221457, + 10703352529, 10703483603, 10703614697, 10703745797, 10703876891, 10704007969, 10704139051, + 10704270139, 10704401221, 10704532361, 10704663433, 10704794531, 10704925633, 10705056707, + 10705187789, 10705318879, 10705449959, 10705581049, 10705712137, 10705843219, 10705974311, + 10706105383, 10706236487, 10706367569, 10706498641, 10706629721, 10706760817, 10706891893, + 10707022967, 10707154057, 10707285157, 10707416243, 10707547349, 10707678481, 10707809557, + 10707940631, 10708071713, 10708202801, 10708333891, 10708464989, 10708596077, 10708727149, + 10708858231, 10708989373, 10709120447, 10709251543, 10709382617, 10709513701, 10709644789, + 10709775941, 10709907029, 10710038107, 10710169187, 10710300281, 10710431411, 10710562487, + 10710693563, 10710824651, 10710955769, 10711086853, 10711217969, 10711349071, 10711480163, + 10711611241, 10711742329, 10711873411, 10712004517, 10712135617, 10712266693, 10712397767, + 10712528923, 10712660069, 10712791151, 10712922229, 10713053333, 10713184439, 10713315511, + 10713446587, 10713577663, 10713708739, 10713839827, 10713970909, 10714102019, 10714233149, + 10714364303, 10714495387, 10714626467, 10714757579, 10714888663, 10715019761, 10715150839, + 10715281937, 10715413013, 10715544089, 10715675197, 10715806303, 10715937389, 10716068509, + 10716199589, 10716330671, 10716461759, 10716592841, 10716723923, 10716855007, 10716986087, + 10717117193, 10717248271, 10717379353, 10717510429, 10717641521, 10717772627, 10717903709, + 10718034781, 10718165863, 10718296961, 10718428081, 10718559221, 10718690309, 10718821387, + 10718952521, 10719083603, 10719214679, 10719345751, 10719476827, 10719607957, 10719739033, + 10719870143, 10720001239, 10720132333, 10720263439, 10720394513, 10720525589, 10720656677, + 10720787771, 10720918843, 10721049917, 10721180993, 10721312099, 10721443171, 10721574287, + 10721705387, 10721836481, 10721967593, 10722098683, 10722229807, 10722360919, 10722491993, + 10722623071, 10722754153, 10722885253, 10723016347, 10723147429, 10723278521, 10723409621, + 10723540741, 10723671883, 10723802983, 10723934059, 10724065159, 10724196257, 10724327357, + 10724458447, 10724589529, 10724720609, 10724851763, 10724982929, 10725114013, 10725245117, + 10725376219, 10725507313, 10725638401, 10725769487, 10725900587, 10726031681, 10726162813, + 10726293917, 10726424993, 10726556107, 10726687187, 10726818283, 10726949383, 10727080471, + 10727211553, 10727342629, 10727473717, 10727604793, 10727735867, 10727866951, 10727998027, + 10728129119, 10728260197, 10728391307, 10728522391, 10728653503, 10728784597, 10728915683, + 10729046759, 10729177871, 10729308973, 10729440083, 10729571179, 10729702253, 10729833329, + 10729964407, 10730095499, 10730226581, 10730357717, 10730488789, 10730619877, 10730750963, + 10730882053, 10731013133, 10731144227, 10731275299, 10731406403, 10731537503, 10731668599, + 10731799693, 10731930767, 10732061863, 10732192943, 10732324091, 10732455163, 10732586237, + 10732717327, 10732848403, 10732979479, 10733110559, 10733241637, 10733372737, 10733503813, + 10733634887, 10733765963, 10733897123, 10734028199, 10734159287, 10734290377, 10734421499, + 10734552649, 10734683723, 10734814799, 10734945899, 10735076993, 10735208149, 10735339253, + 10735470331, 10735601423, 10735732499, 10735863587, 10735994663, 10736125739, 10736256851, + 10736387933, 10736519009, 10736650123, 10736781203, 10736912281, 10737043381, 10737174463, + 10737305597, 10737436709, 10737567791, 10737698863, 10737829937, 10737961027, 10738092103, + 10738223191, 10738354273, 10738485349, 10738616437, 10738747529, 10738878677, 10739009761, + 10739140849, 10739271989, 10739403061, 10739534203, 10739665283, 10739796377, 10739927453, + 10740058577, 10740189653, 10740320737, 10740451819, 10740582899, 10740713983, 10740845083, + 10740976157, 10741107241, 10741238317, 10741369409, 10741500487, 10741631567, 10741762643, + 10741893733, 10742024819, 10742155973, 10742287069, 10742418143, 10742549221, 10742680303, + 10742811433, 10742942521, 10743073631, 10743204727, 10743335843, 10743466961, 10743598037, + 10743729131, 10743860221, 10743991303, 10744122397, 10744253479, 10744384559, 10744515647, + 10744646729, 10744777811, 10744908907, 10745039989, 10745171069, 10745302147, 10745433229, + 10745564321, 10745695397, 10745826473, 10745957557, 10746088657, 10746219733, 10746350807, + 10746481883, 10746612959, 10746744031, 10746875131, 10747006213, 10747137287, 10747268417, + 10747399499, 10747530583, 10747661671, 10747792787, 10747923871, 10748054963, 10748186041, + 10748317189, 10748448329, 10748579411, 10748710499, 10748841613, 10748972693, 10749103769, + 10749234869, 10749365941, 10749497021, 10749628111, 10749759211, 10749890293, 10750021367, + 10750152527, 10750283639, 10750414739, 10750545821, 10750676921, 10750807997, 10750939093, + 10751070203, 10751201287, 10751332369, 10751463461, 10751594551, 10751725637, 10751856719, + 10751987797, 10752118873, 10752249979, 10752381053, 10752512159, 10752643241, 10752774343, + 10752905417, 10753036501, 10753167611, 10753298701, 10753429777, 10753560907, 10753692007, + 10753823107, 10753954181, 10754085269, 10754216351, 10754347447, 10754478521, 10754609609, + 10754740697, 10754871781, 10755002879, 10755133993, 10755265091, 10755396173, 10755527287, + 10755658373, 10755789487, 10755920599, 10756051711, 10756182799, 10756313873, 10756444967, + 10756576063, 10756707149, 10756838251, 10756969331, 10757100451, 10757231579, 10757362667, + 10757493743, 10757624819, 10757755903, 10757886989, 10758018077, 10758149153, 10758280231, + 10758411311, 10758542383, 10758673463, 10758804557, 10758935657, 10759066733, 10759197859, + 10759328941, 10759460017, 10759591123, 10759722227, 10759853329, 10759984429, 10760115503, + 10760246579, 10760377651, 10760508739, 10760639917, 10760770997, 10760902133, 10761033221, + 10761164317, 10761295397, 10761426469, 10761557557, 10761688631, 10761819713, 10761950789, + 10762081873, 10762212983, 10762344091, 10762475183, 10762606273, 10762737347, 10762868449, + 10762999543, 10763130649, 10763261737, 10763392811, 10763523943, 10763655031, 10763786149, + 10763917231, 10764048311, 10764179399, 10764310489, 10764441587, 10764572713, 10764703787, + 10764834893, 10764965971, 10765097071, 10765228147, 10765359229, 10765490303, 10765621387, + 10765752467, 10765883551, 10766014661, 10766145737, 10766276813, 10766407913, 10766538997, + 10766670073, 10766801153, 10766932229, 10767063323, 10767194467, 10767325553, 10767456643, + 10767587729, 10767718861, 10767849941, 10767981031, 10768112107, 10768243181, 10768374257, + 10768505339, 10768636469, 10768767551, 10768898639, 10769029727, 10769160811, 10769291893, + 10769422969, 10769554093, 10769685167, 10769816257, 10769947337, 10770078467, 10770209579, + 10770340661, 10770471743, 10770602819, 10770733891, 10770865003, 10770996077, 10771127153, + 10771258231, 10771389341, 10771520423, 10771651549, 10771782631, 10771913743, 10772044861, + 10772175937, 10772307011, 10772438087, 10772569177, 10772700251, 10772831339, 10772962411, + 10773093497, 10773224569, 10773355711, 10773486797, 10773617873, 10773748967, 10773880043, + 10774011121, 10774142201, 10774273303, 10774404379, 10774535461, 10774666543, 10774797617, + 10774928809, 10775059903, 10775191003, 10775322097, 10775453189, 10775584301, 10775715403, + 10775846479, 10775977591, 10776108667, 10776239783, 10776370897, 10776501991, 10776633139, + 10776764221, 10776895303, 10777026383, 10777157507, 10777288579, 10777419659, 10777550759, + 10777681843, 10777812923, 10777944041, 10778075171, 10778206273, 10778337371, 10778468453, + 10778599541, 10778730617, 10778861693, 10778992769, 10779123877, 10779254987, 10779386087, + 10779517213, 10779648289, 10779779363, 10779910481, 10780041593, 10780172677, 10780303753, + 10780434829, 10780565941, 10780697027, 10780828129, 10780959209, 10781090323, 10781221417, + 10781352539, 10781483617, 10781614691, 10781745803, 10781876909, 10782007981, 10782139079, + 10782270197, 10782401269, 10782532351, 10782663427, 10782794501, 10782925583, 10783056671, + 10783187749, 10783318831, 10783449947, 10783581019, 10783712117, 10783843211, 10783974301, + 10784105413, 10784236511, 10784367589, 10784498663, 10784629747, 10784760907, 10784891993, + 10785023087, 10785154187, 10785285293, 10785416387, 10785547501, 10785678619, 10785809693, + 10785940777, 10786071851, 10786202927, 10786334047, 10786465121, 10786596193, 10786727267, + 10786858349, 10786989449, 10787120521, 10787251633, 10787382721, 10787513801, 10787644913, + 10787776001, 10787907083, 10788038207, 10788169283, 10788300389, 10788431461, 10788562537, + 10788693613, 10788824723, 10788955799, 10789086911, 10789217987, 10789349069, 10789480153, + 10789611257, 10789742371, 10789873453, 10790004527, 10790135639, 10790266769, 10790397853, + 10790528941, 10790660021, 10790791103, 10790922179, 10791053281, 10791184357, 10791315433, + 10791446509, 10791577613, 10791708689, 10791839767, 10791970859, 10792101941, 10792233041, + 10792364117, 10792495193, 10792626269, 10792757341, 10792888433, 10793019529, 10793150611, + 10793281699, 10793412781, 10793543857, 10793674949, 10793806031, 10793937103, 10794068183, + 10794199271, 10794330343, 10794461417, 10794592489, 10794723571, 10794854657, 10794985769, + 10795116851, 10795247927, 10795379003, 10795510081, 10795641163, 10795772249, 10795903331, + 10796034409, 10796165483, 10796296601, 10796427679, 10796558783, 10796689861, 10796820949, + 10796952073, 10797083153, 10797214247, 10797345323, 10797476399, 10797607481, 10797738569, + 10797869647, 10798000723, 10798131811, 10798262911, 10798393987, 10798525099, 10798656223, + 10798787303, 10798918399, 10799049533, 10799180611, 10799311697, 10799442779, 10799573921, + 10799705023, 10799836133, 10799967257, 10800098333, 10800229411, 10800360499, 10800491599, + 10800622717, 10800753791, 10800884863, 10801015949, 10801147039, 10801278119, 10801409191, + 10801540271, 10801671371, 10801802467, 10801933559, 10802064643, 10802195731, 10802326807, + 10802457889, 10802588971, 10802720069, 10802851153, 10802982227, 10803113303, 10803244381, + 10803375463, 10803506599, 10803637679, 10803768751, 10803899831, 10804030907, 10804162003, + 10804293089, 10804424161, 10804555243, 10804686329, 10804817411, 10804948541, 10805079641, + 10805210791, 10805341909, 10805472989, 10805604071, 10805735147, 10805866223, 10805997331, + 10806128407, 10806259483, 10806390559, 10806521657, 10806652739, 10806783817, 10806914917, + 10807046017, 10807177093, 10807308173, 10807439329, 10807570471, 10807701551, 10807832657, + 10807963729, 10808094853, 10808225929, 10808357003, 10808488111, 10808619209, 10808750287, + 10808881379, 10809012457, 10809143537, 10809274639, 10809405731, 10809536807, 10809667907, + 10809798997, 10809930083, 10810061161, 10810192243, 10810323319, 10810454399, 10810585507, + 10810716607, 10810847693, 10810978771, 10811109853, 10811240959, 10811372053, 10811503163, + 10811634287, 10811765401, 10811896489, 10812027563, 10812158723, 10812289823, 10812420919, + 10812552017, 10812683137, 10812814223, 10812945317, 10813076401, 10813207501, 10813338581, + 10813469699, 10813600781, 10813731871, 10813862947, 10813994021, 10814125097, 10814256191, + 10814387281, 10814518357, 10814649449, 10814780521, 10814911603, 10815042691, 10815173773, + 10815304861, 10815435959, 10815567031, 10815698123, 10815829207, 10815960307, 10816091381, + 10816222499, 10816353637, 10816484713, 10816615829, 10816746923, 10816878001, 10817009081, + 10817140153, 10817271233, 10817402327, 10817533409, 10817664491, 10817795617, 10817926703, + 10818057787, 10818188869, 10818319949, 10818451057, 10818582133, 10818713209, 10818844297, + 10818975373, 10819106453, 10819237543, 10819368629, 10819499741, 10819630831, 10819761961, + 10819893053, 10820024129, 10820155217, 10820286349, 10820417449, 10820548537, 10820679641, + 10820810717, 10820941837, 10821072923, 10821204019, 10821335093, 10821466177, 10821597251, + 10821728371, 10821859511, 10821990587, 10822121659, 10822252747, 10822383941, 10822515037, + 10822646117, 10822777193, 10822908277, 10823039377, 10823170459, 10823301547, 10823432639, + 10823563711, 10823694797, 10823825911, 10823957003, 10824088103, 10824219179, 10824350261, + 10824481351, 10824612433, 10824743507, 10824874589, 10825005673, 10825136747, 10825267819, + 10825398917, 10825530017, 10825661113, 10825792199, 10825923299, 10826054399, 10826185477, + 10826316559, 10826447693, 10826578781, 10826709853, 10826840929, 10826972033, 10827103109, + 10827234211, 10827365291, 10827496403, 10827627487, 10827758563, 10827889649, 10828020727, + 10828151809, 10828282903, 10828413979, 10828545059, 10828676153, 10828807229, 10828938313, + 10829069413, 10829200493, 10829331577, 10829462681, 10829593757, 10829724839, 10829855917, + 10829987017, 10830118111, 10830249217, 10830380303, 10830511379, 10830642457, 10830773537, + 10830904621, 10831035703, 10831166789, 10831297879, 10831428953, 10831560029, 10831691107, + 10831822207, 10831953283, 10832084363, 10832215529, 10832346659, 10832477749, 10832608823, + 10832739947, 10832871061, 10833002149, 10833133229, 10833264329, 10833395413, 10833526519, + 10833657623, 10833788701, 10833919799, 10834050883, 10834181989, 10834313069, 10834444141, + 10834575223, 10834706303, 10834837451, 10834968523, 10835099621, 10835230697, 10835361773, + 10835492867, 10835623961, 10835755039, 10835886121, 10836017197, 10836148273, 10836279379, + 10836410479, 10836541559, 10836672673, 10836803777, 10836934853, 10837065947, 10837197023, + 10837328107, 10837459189, 10837590277, 10837721351, 10837852429, 10837983503, 10838114591, + 10838245681, 10838376763, 10838507837, 10838638931, 10838770021, 10838901097, 10839032177, + 10839163253, 10839294331, 10839425417, 10839556493, 10839687601, 10839818677, 10839949753, + 10840080841, 10840211917, 10840343021, 10840474093, 10840605187, 10840736279, 10840867363, + 10840998523, 10841129609, 10841260693, 10841391767, 10841522849, 10841653937, 10841785013, + 10841916089, 10842047171, 10842178261, 10842309337, 10842440417, 10842571499, 10842702599, + 10842833671, 10842964747, 10843095833, 10843226929, 10843358051, 10843489141, 10843620223, + 10843751339, 10843882421, 10844013503, 10844144621, 10844275723, 10844406829, 10844537917, + 10844668993, 10844800093, 10844931191, 10845062279, 10845193363, 10845324443, 10845455521, + 10845586597, 10845717703, 10845848779, 10845979861, 10846110967, 10846242047, 10846373119, + 10846504199, 10846635277, 10846766363, 10846897469, 10847028547, 10847159627, 10847290709, + 10847421791, 10847552867, 10847683963, 10847815049, 10847946133, 10848077231, 10848208307, + 10848339419, 10848470497, 10848601573, 10848732647, 10848863719, 10848994811, 10849125883, + 10849256959, 10849388063, 10849519141, 10849650233, 10849781309, 10849912391, 10850043469, + 10850174549, 10850305657, 10850436733, 10850567869, 10850698949, 10850830027, 10850961109, + 10851092279, 10851223381, 10851354467, 10851485549, 10851616621, 10851747701, 10851878801, + 10852009877, 10852140973, 10852272071, 10852403143, 10852534283, 10852665361, 10852796441, + 10852927559, 10853058641, 10853189713, 10853320811, 10853451887, 10853582963, 10853714041, + 10853845127, 10853976229, 10854107323, 10854238397, 10854369473, 10854500563, 10854631639, + 10854762733, 10854893821, 10855024897, 10855155973, 10855287071, 10855418159, 10855549231, + 10855680349, 10855811429, 10855942507, 10856073617, 10856204731, 10856335829, 10856466911, + 10856598007, 10856729083, 10856860169, 10856991247, 10857122321, 10857253403, 10857384533, + 10857515611, 10857646699, 10857777773, 10857908849, 10858039921, 10858171013, 10858302107, + 10858433203, 10858564291, 10858695371, 10858826501, 10858957573, 10859088649, 10859219753, + 10859350837, 10859481953, 10859613031, 10859744107, 10859875249, 10860006329, 10860137419, + 10860268499, 10860399617, 10860530717, 10860661793, 10860792869, 10860923971, 10861055057, + 10861186129, 10861317211, 10861448399, 10861579471, 10861710571, 10861841707, 10861972787, + 10862103859, 10862234953, 10862366051, 10862497147, 10862628221, 10862759339, 10862890429, + 10863021517, 10863152591, 10863283693, 10863414769, 10863545879, 10863676973, 10863808093, + 10863939173, 10864070291, 10864201417, 10864332527, 10864463611, 10864594691, 10864725779, + 10864856861, 10864987967, 10865119039, 10865250127, 10865381203, 10865512279, 10865643359, + 10865774453, 10865905529, 10866036607, 10866167687, 10866298801, 10866429877, 10866560951, + 10866692069, 10866823153, 10866954227, 10867085303, 10867216417, 10867347497, 10867478579, + 10867609657, 10867740757, 10867871831, 10868002939, 10868134027, 10868265113, 10868396281, + 10868527381, 10868658503, 10868789593, 10868920679, 10869051811, 10869182899, 10869314017, + 10869445141, 10869576253, 10869707347, 10869838531, 10869969623, 10870100699, 10870231777, + 10870362857, 10870493929, 10870625009, 10870756093, 10870887169, 10871018293, 10871149381, + 10871280457, 10871411531, 10871542631, 10871673719, 10871804803, 10871935891, 10872066991, + 10872198079, 10872329161, 10872460297, 10872591413, 10872722489, 10872853573, 10872984691, + 10873115777, 10873246883, 10873377961, 10873509041, 10873640117, 10873771189, 10873902313, + 10874033419, 10874164501, 10874295583, 10874426663, 10874557769, 10874688841, 10874819929, + 10874951053, 10875082133, 10875213253, 10875344351, 10875475439, 10875606529, 10875737603, + 10875868687, 10875999791, 10876130869, 10876261961, 10876393037, 10876524121, 10876655227, + 10876786307, 10876917383, 10877048459, 10877179609, 10877310733, 10877441807, 10877572883, + 10877703961, 10877835041, 10877966147, 10878097261, 10878228337, 10878359411, 10878490487, + 10878621571, 10878752711, 10878883783, 10879014857, 10879145939, 10879277027, 10879408117, + 10879539199, 10879670339, 10879801411, 10879932491, 10880063567, 10880194649, 10880325727, + 10880456819, 10880587901, 10880718977, 10880850059, 10880981147, 10881112219, 10881243313, + 10881374401, 10881505477, 10881636569, 10881767669, 10881898751, 10882029841, 10882160977, + 10882292051, 10882423141, 10882554217, 10882685291, 10882816363, 10882947437, 10883078527, + 10883209669, 10883340763, 10883471839, 10883602913, 10883734027, 10883865119, 10883996197, + 10884127297, 10884258373, 10884389501, 10884520573, 10884651647, 10884782731, 10884913813, + 10885044889, 10885175963, 10885307053, 10885438129, 10885569221, 10885700299, 10885831393, + 10885962497, 10886093597, 10886224681, 10886355761, 10886486837, 10886617909, 10886749021, + 10886880097, 10887011189, 10887142267, 10887273343, 10887404417, 10887535489, 10887666589, + 10887797699, 10887928781, 10888059899, 10888190981, 10888322083, 10888453171, 10888584251, + 10888715329, 10888846411, 10888977523, 10889108599, 10889239679, 10889370773, 10889501899, + 10889632981, 10889764079, 10889895179, 10890026429, 10890157541, 10890288659, 10890419737, + 10890550837, 10890681913, 10890813029, 10890944111, 10891075199, 10891206343, 10891337417, + 10891468517, 10891599619, 10891730699, 10891861819, 10891992899, 10892123971, 10892255063, + 10892386157, 10892517271, 10892648383, 10892779483, 10892910563, 10893041641, 10893172723, + 10893303859, 10893434953, 10893566027, 10893697109, 10893828199, 10893959291, 10894090391, + 10894221467, 10894352603, 10894483693, 10894614767, 10894745843, 10894876931, 10895008009, + 10895139107, 10895270189, 10895401289, 10895532367, 10895663459, 10895794579, 10895925697, + 10896056791, 10896187879, 10896318967, 10896450083, 10896581167, 10896712273, 10896843359, + 10896974437, 10897105517, 10897236607, 10897367681, 10897498757, 10897629851, 10897760941, + 10897892017, 10898023109, 10898154277, 10898285357, 10898416469, 10898547547, 10898678633, + 10898809709, 10898940791, 10899071881, 10899202973, 10899334073, 10899465149, 10899596231, + 10899727313, 10899858413, 10899989491, 10900120577, 10900251673, 10900382819, 10900513903, + 10900645027, 10900776119, 10900907197, 10901038271, 10901169343, 10901300467, 10901431549, + 10901562643, 10901693731, 10901824811, 10901955887, 10902086989, 10902218111, 10902349187, + 10902480283, 10902611359, 10902742517, 10902873599, 10903004677, 10903135757, 10903266833, + 10903397941, 10903529051, 10903660181, 10903791299, 10903922371, 10904053493, 10904184589, + 10904315677, 10904446783, 10904577889, 10904708999, 10904840099, 10904971171, 10905102289, + 10905233377, 10905364451, 10905495539, 10905626621, 10905757721, 10905888823, 10906019897, + 10906150973, 10906282061, 10906413139, 10906544219, 10906675301, 10906806373, 10906937449, + 10907068531, 10907199631, 10907330711, 10907461811, 10907592889, 10907724013, 10907855089, + 10907986207, 10908117289, 10908248363, 10908379439, 10908510517, 10908641591, 10908772691, + 10908903763, 10909034887, 10909165963, 10909297039, 10909428137, 10909559231, 10909690331, + 10909821427, 10909952531, 10910083607, 10910214683, 10910345773, 10910476867, 10910607947, + 10910739061, 10910870141, 10911001219, 10911132301, 10911263387, 10911394471, 10911525571, + 10911656671, 10911787753, 10911918839, 10912049927, 10912180999, 10912312133, 10912443209, + 10912574291, 10912705379, 10912836481, 10912967561, 10913098633, 10913229749, 10913360837, + 10913491933, 10913623031, 10913754119, 10913885261, 10914016349, 10914147443, 10914278663, + 10914409771, 10914540877, 10914671987, 10914803059, 10914934141, 10915065251, 10915196333, + 10915327421, 10915458493, 10915589567, 10915720643, 10915851721, 10915982813, 10916113961, + 10916245049, 10916376131, 10916507243, 10916638351, 10916769449, 10916900521, 10917031607, + 10917162689, 10917293773, 10917424873, 10917555949, 10917687031, 10917818129, 10917949283, + 10918080367, 10918211443, 10918342529, 10918473607, 10918604687, 10918735783, 10918866859, + 10918997941, 10919129029, 10919260103, 10919391211, 10919522303, 10919653391, 10919784529, + 10919915623, 10920046703, 10920177787, 10920308863, 10920439949, 10920571021, 10920702109, + 10920833219, 10920964291, 10921095371, 10921226497, 10921357571, 10921488647, 10921619777, + 10921750877, 10921881953, 10922013061, 10922144137, 10922275253, 10922406343, 10922537447, + 10922668531, 10922799611, 10922930719, 10923061801, 10923192881, 10923323963, 10923455047, + 10923586123, 10923717209, 10923848329, 10923979403, 10924110523, 10924241617, 10924372691, + 10924503781, 10924634873, 10924765991, 10924897063, 10925028143, 10925159227, 10925290333, + 10925421407, 10925552479, 10925683597, 10925814703, 10925945791, 10926076957, 10926208031, + 10926339103, 10926470179, 10926601253, 10926732329, 10926863411, 10926994489, 10927125571, + 10927256647, 10927387727, 10927518803, 10927649879, 10927780967, 10927912043, 10928043163, + 10928174249, 10928305321, 10928436427, 10928567509, 10928698589, 10928829727, 10928960831, + 10929091933, 10929223027, 10929354131, 10929485213, 10929616331, 10929747403, 10929878501, + 10930009589, 10930140679, 10930271773, 10930402867, 10930533947, 10930665043, 10930796143, + 10930927229, 10931058311, 10931189407, 10931320529, 10931451607, 10931582687, 10931713759, + 10931844839, 10931975921, 10932106993, 10932238087, 10932369167, 10932500263, 10932631379, + 10932762499, 10932893603, 10933024681, 10933155757, 10933286849, 10933417921, 10933549027, + 10933680127, 10933811249, 10933942321, 10934073401, 10934204497, 10934335591, 10934466703, + 10934597777, 10934728877, 10934859977, 10934991049, 10935122129, 10935253201, 10935384307, + 10935515399, 10935646483, 10935777563, 10935908677, 10936039799, 10936170881, 10936301963, + 10936433051, 10936564123, 10936695197, 10936826273, 10936957379, 10937088467, 10937219539, + 10937350621, 10937481697, 10937612773, 10937743877, 10937874971, 10938006043, 10938137141, + 10938268223, 10938399331, 10938530411, 10938661483, 10938792569, 10938923669, 10939054747, + 10939185839, 10939316933, 10939448029, 10939579103, 10939710209, 10939841281, 10939972357, + 10940103529, 10940234609, 10940365697, 10940496773, 10940627869, 10940758963, 10940890043, + 10941021121, 10941152197, 10941283279, 10941414373, 10941545453, 10941676553, 10941807659, + 10941938737, 10942069811, 10942200889, 10942331963, 10942463039, 10942594127, 10942725251, + 10942856341, 10942987463, 10943118577, 10943249657, 10943380729, 10943511853, 10943642947, + 10943774029, 10943905111, 10944036221, 10944167309, 10944298459, 10944429547, 10944560639, + 10944691711, 10944822799, 10944953881, 10945085069, 10945216141, 10945347241, 10945478329, + 10945609417, 10945740527, 10945871611, 10946002699, 10946133799, 10946264893, 10946395973, + 10946527061, 10946658143, 10946789251, 10946920343, 10947051449, 10947182531, 10947313603, + 10947444689, 10947575761, 10947706883, 10947837961, 10947969061, 10948100167, 10948231241, + 10948362367, 10948493441, 10948624567, 10948755641, 10948886723, 10949017799, 10949148871, + 10949279959, 10949411041, 10949542133, 10949673211, 10949804303, 10949935387, 10950066461, + 10950197563, 10950328657, 10950459757, 10950590837, 10950721913, 10950853073, 10950984151, + 10951115237, 10951246331, 10951377403, 10951508521, 10951639609, 10951770691, 10951901783, + 10952032879, 10952163953, 10952295031, 10952426117, 10952557211, 10952688317, 10952819389, + 10952950469, 10953081553, 10953212653, 10953343733, 10953474853, 10953605933, 10953737009, + 10953868099, 10953999179, 10954130261, 10954261343, 10954392433, 10954523507, 10954654589, + 10954785679, 10954916761, 10955047891, 10955178977, 10955310059, 10955441131, 10955572219, + 10955703307, 10955834387, 10955965499, 10956096589, 10956227663, 10956358753, 10956489857, + 10956620953, 10956752033, 10956883109, 10957014181, 10957145357, 10957276439, 10957407523, + 10957538617, 10957669693, 10957800779, 10957931923, 10958063009, 10958194109, 10958325181, + 10958456263, 10958587357, 10958718443, 10958849543, 10958980631, 10959111767, 10959242849, + 10959373927, 10959505003, 10959636113, 10959767219, 10959898297, 10960029373, 10960160473, + 10960291553, 10960422637, 10960553717, 10960684811, 10960815883, 10960946977, 10961078057, + 10961209159, 10961340259, 10961471347, 10961602423, 10961733499, 10961864581, 10961995663, + 10962126743, 10962257833, 10962388909, 10962519983, 10962651083, 10962782177, 10962913277, + 10963044353, 10963175437, 10963306559, 10963437647, 10963568747, 10963699841, 10963830947, + 10963962041, 10964093141, 10964224253, 10964355371, 10964486473, 10964617549, 10964748629, + 10964879701, 10965010799, 10965141893, 10965273019, 10965404117, 10965535193, 10965666293, + 10965797383, 10965928537, 10966059613, 10966190687, 10966321771, 10966452853, 10966583933, + 10966715017, 10966846109, 10966977181, 10967108267, 10967239373, 10967370521, 10967501593, + 10967632667, 10967763743, 10967894827, 10968025903, 10968157043, 10968288119, 10968419197, + 10968550279, 10968681371, 10968812443, 10968943529, 10969074643, 10969205803, 10969336879, + 10969467953, 10969599049, 10969730137, 10969861267, 10969992403, 10970123491, 10970254571, + 10970385649, 10970516803, 10970647901, 10970778989, 10970910077, 10971041183, 10971172271, + 10971303349, 10971434459, 10971565537, 10971696629, 10971827717, 10971958813, 10972089917, + 10972220993, 10972352081, 10972483157, 10972614239, 10972745321, 10972876393, 10973007467, + 10973138549, 10973269649, 10973400721, 10973531809, 10973662919, 10973793991, 10973925077, + 10974056153, 10974187267, 10974318343, 10974449429, 10974580579, 10974711653, 10974842789, + 10974973873, 10975104977, 10975236073, 10975367167, 10975498249, 10975629367, 10975760441, + 10975891517, 10976022593, 10976153687, 10976284771, 10976415851, 10976546923, 10976678003, + 10976809147, 10976940229, 10977071317, 10977202399, 10977333491, 10977464579, 10977595669, + 10977726779, 10977857851, 10977988949, 10978120051, 10978251131, 10978382203, 10978513279, + 10978644359, 10978775503, 10978906597, 10979037673, 10979168773, 10979299847, 10979430923, + 10979562001, 10979693089, 10979824169, 10979955281, 10980086389, 10980217483, 10980348571, + 10980479647, 10980610723, 10980741797, 10980872869, 10981003951, 10981135073, 10981266209, + 10981397303, 10981528409, 10981659509, 10981790581, 10981921721, 10982052793, 10982183867, + 10982314943, 10982446061, 10982577139, 10982708239, 10982839327, 10982970437, 10983101509, + 10983232621, 10983363731, 10983494831, 10983625927, 10983757003, 10983888077, 10984019159, + 10984150241, 10984281313, 10984412399, 10984543499, 10984674619, 10984805693, 10984936789, + 10985067889, 10985198963, 10985330053, 10985461129, 10985592251, 10985723341, 10985854417, + 10985985533, 10986116641, 10986247747, 10986378829, 10986509923, 10986641011, 10986772127, + 10986903227, 10987034389, 10987165463, 10987296539, 10987427657, 10987558741, 10987689833, + 10987820951, 10987952029, 10988083109, 10988214203, 10988345287, 10988476427, 10988607547, + 10988738639, 10988869729, 10989000811, 10989131921, 10989263003, 10989394081, 10989525181, + 10989656263, 10989787337, 10989918419, 10990049491, 10990180571, 10990311659, 10990442731, + 10990573813, 10990704917, 10990836001, 10990967093, 10991098187, 10991229281, 10991360363, + 10991491493, 10991622581, 10991753671, 10991884793, 10992015877, 10992146983, 10992278093, + 10992409171, 10992540301, 10992671377, 10992802519, 10992933599, 10993064683, 10993195799, + 10993326871, 10993457971, 10993589051, 10993720139, 10993851241, 10993982317, 10994113391, + 10994244463, 10994375549, 10994506657, 10994637733, 10994768849, 10994899969, 10995031043, + 10995162137, 10995293213, 10995424289, 10995555391, 10995686467, 10995817561, 10995948643, + 10996079761, 10996210843, 10996341949, 10996473023, 10996604111, 10996735187, 10996866269, + 10996997357, 10997128433, 10997259521, 10997390597, 10997521673, 10997652797, 10997783893, + 10997914969, 10998046069, 10998177167, 10998308267, 10998439349, 10998570431, 10998701537, + 10998832631, 10998963707, 10999094797, 10999225873, 10999356989, 10999488061, 10999619143, + 10999750217, 10999881313, 11000012389, 11000143463, 11000274553, 11000405629, 11000536739, + 11000667841, 11000798917, 11000930033, 11001061111, 11001192217, 11001323297, 11001454421, + 11001585499, 11001716581, 11001847657, 11001978739, 11002109819, 11002240901, 11002371997, + 11002503073, 11002634147, 11002765229, 11002896353, 11003027429, 11003158513, 11003289611, + 11003420693, 11003551771, 11003682847, 11003813927, 11003945009, 11004076099, 11004207173, + 11004338251, 11004469327, 11004600403, 11004731477, 11004862553, 11004993653, 11005124749, + 11005255831, 11005386923, 11005518023, 11005649113, 11005780223, 11005911317, 11006042401, + 11006173481, 11006304559, 11006435639, 11006566733, 11006697829, 11006828909, 11006959991, + 11007091079, 11007222151, 11007353233, 11007484331, 11007615407, 11007746513, 11007877591, + 11008008689, 11008139789, 11008270873, 11008401947, 11008533049, 11008664129, 11008795207, + 11008926301, 11009057419, 11009188493, 11009319577, 11009450723, 11009581799, 11009712919, + 11009843993, 11009975069, 11010106147, 11010237229, 11010368321, 11010499403, 11010630481, + 11010761599, 11010892679, 11011023791, 11011154909, 11011285981, 11011417069, 11011548143, + 11011679251, 11011810343, 11011941463, 11012072563, 11012203639, 11012334731, 11012465831, + 11012596979, 11012728091, 11012859167, 11012990251, 11013121337, 11013252413, 11013383509, + 11013514613, 11013645739, 11013776857, 11013907939, 11014039013, 11014170109, 11014301201, + 11014432321, 11014563409, 11014694501, 11014825609, 11014956691, 11015087791, 11015218909, + 11015350007, 11015481083, 11015612171, 11015743273, 11015874347, 11016005479, 11016136609, + 11016267701, 11016398791, 11016529871, 11016660947, 11016792029, 11016923153, 11017054229, + 11017185323, 11017316399, 11017447513, 11017578601, 11017709713, 11017840787, 11017971859, + 11018102939, 11018234023, 11018365097, 11018496193, 11018627293, 11018758417, 11018889491, + 11019020581, 11019151657, 11019282797, 11019413921, 11019545003, 11019676079, 11019807191, + 11019938287, 11020069363, 11020200449, 11020331537, 11020462657, 11020593739, 11020724851, + 11020855957, 11020987037, 11021118149, 11021249221, 11021380309, 11021511433, 11021642537, + 11021773621, 11021904697, 11022035797, 11022166879, 11022297967, 11022429073, 11022560161, + 11022691249, 11022822331, 11022953407, 11023084549, 11023215647, 11023346729, 11023477823, + 11023608923, 11023739999, 11023871071, 11024002147, 11024133221, 11024264309, 11024395387, + 11024526463, 11024657543, 11024788639, 11024919743, 11025050849, 11025181949, 11025313069, + 11025444211, 11025575291, 11025706409, 11025837481, 11025968567, 11026099661, 11026230749, + 11026361849, 11026492937, 11026624043, 11026755139, 11026886249, 11027017357, 11027148479, + 11027279573, 11027410661, 11027541739, 11027672857, 11027803937, 11027935031, 11028066149, + 11028197221, 11028328303, 11028459439, 11028590519, 11028721621, 11028852707, 11028983803, + 11029114879, 11029245977, 11029377049, 11029508123, 11029639199, 11029770287, 11029901369, + 11030032459, 11030163577, 11030294699, 11030425781, 11030556863, 11030687951, 11030819029, + 11030950103, 11031081209, 11031212327, 11031343417, 11031474511, 11031605587, 11031736673, + 11031867767, 11031998897, 11032129973, 11032261069, 11032392143, 11032523291, 11032654363, + 11032785437, 11032916519, 11033047621, 11033178713, 11033309849, 11033440933, 11033572007, + 11033703157, 11033834237, 11033965309, 11034096389, 11034227489, 11034358627, 11034489721, + 11034620801, 11034751879, 11034882953, 11035014071, 11035145167, 11035276267, 11035407367, + 11035538467, 11035669549, 11035800719, 11035931857, 11036062943, 11036194021, 11036325169, + 11036456243, 11036587319, 11036718401, 11036849477, 11036980571, 11037111649, 11037242729, + 11037373801, 11037504899, 11037636011, 11037767119, 11037898199, 11038029281, 11038160363, + 11038291447, 11038422523, 11038553597, 11038684669, 11038815829, 11038946921, 11039077997, + 11039209081, 11039340227, 11039471341, 11039602447, 11039733553, 11039864657, 11039995739, + 11040126817, 11040257947, 11040389047, 11040520123, 11040651203, 11040782279, 11040913369, + 11041044449, 11041175527, 11041306663, 11041437761, 11041568869, 11041699961, 11041831033, + 11041962149, 11042093221, 11042224327, 11042355413, 11042486491, 11042617577, 11042748659, + 11042879759, 11043010831, 11043141937, 11043273011, 11043404101, 11043535187, 11043666289, + 11043797383, 11043928459, 11044059541, 11044190639, 11044321753, 11044452833, 11044583939, + 11044715027, 11044846147, 11044977233, 11045108309, 11045239409, 11045370527, 11045501641, + 11045632753, 11045763863, 11045894939, 11046026083, 11046157189, 11046288283, 11046419359, + 11046550433, 11046681511, 11046812593, 11046943667, 11047074751, 11047205833, 11047336939, + 11047468043, 11047599127, 11047730233, 11047861343, 11047992427, 11048123509, 11048254597, + 11048385737, 11048516819, 11048647891, 11048779061, 11048910137, 11049041219, 11049172301, + 11049303383, 11049434483, 11049565561, 11049696641, 11049827753, 11049958847, 11050089929, + 11050221023, 11050352099, 11050483219, 11050614319, 11050745437, 11050876513, 11051007589, + 11051138689, 11051269769, 11051400991, 11051532067, 11051663141, 11051794223, 11051925319, + 11052056443, 11052187537, 11052318619, 11052449699, 11052580783, 11052711881, 11052842987, + 11052974059, 11053105139, 11053236251, 11053367399, 11053498471, 11053629599, 11053760671, + 11053891829, 11054022937, 11054154031, 11054285107, 11054416199, 11054547299, 11054678377, + 11054809481, 11054940569, 11055071641, 11055202727, 11055333827, 11055464909, 11055596089, + 11055727183, 11055858277, 11055989359, 11056120451, 11056251523, 11056382639, 11056513711, + 11056644811, 11056775909, 11056906997, 11057038099, 11057169181, 11057300269, 11057431391, + 11057562463, 11057693551, 11057824627, 11057955707, 11058086797, 11058217879, 11058349013, + 11058480089, 11058611191, 11058742271, 11058873347, 11059004419, 11059135501, 11059266577, + 11059397681, 11059528787, 11059659869, 11059791013, 11059922089, 11060053163, 11060184257, + 11060315339, 11060446427, 11060577509, 11060708597, 11060839697, 11060970773, 11061101873, + 11061232951, 11061364051, 11061495127, 11061626221, 11061757337, 11061888419, 11062019491, + 11062150579, 11062281653, 11062412729, 11062543813, 11062674901, 11062805983, 11062937057, + 11063068151, 11063199227, 11063330347, 11063461463, 11063592559, 11063723653, 11063854727, + 11063985811, 11064116887, 11064247991, 11064379099, 11064510199, 11064641281, 11064772363, + 11064903449, 11065034551, 11065165633, 11065296707, 11065427797, 11065558871, 11065689967, + 11065821049, 11065952123, 11066083313, 11066214493, 11066345593, 11066476693, 11066607767, + 11066738861, 11066869939, 11067001021, 11067132113, 11067263189, 11067394291, 11067525383, + 11067656461, 11067787547, 11067918671, 11068049747, 11068180859, 11068311937, 11068443031, + 11068574123, 11068705213, 11068836293, 11068967387, 11069098487, 11069229629, 11069360749, + 11069491883, 11069622959, 11069754037, 11069885117, 11070016193, 11070147281, 11070278363, + 11070409439, 11070540511, 11070671687, 11070802759, 11070933833, 11071064929, 11071196009, + 11071327103, 11071458179, 11071589251, 11071720351, 11071851433, 11071982507, 11072113601, + 11072244679, 11072375857, 11072506957, 11072638051, 11072769133, 11072900227, 11073031301, + 11073162379, 11073293467, 11073424547, 11073555641, 11073686713, 11073817787, 11073948863, + 11074079959, 11074211039, 11074342157, 11074473229, 11074604327, 11074735411, 11074866493, + 11074997567, 11075128661, 11075259749, 11075390827, 11075521901, 11075653003, 11075784101, + 11075915173, 11076046271, 11076177353, 11076308449, 11076439537, 11076570629, 11076701731, + 11076832849, 11076963923, 11077094999, 11077226113, 11077357189, 11077488263, 11077619341, + 11077750433, 11077881509, 11078012591, 11078143697, 11078274787, 11078405873, 11078536949, + 11078668031, 11078799107, 11078930197, 11079061271, 11079192343, 11079323429, 11079454511, + 11079585607, 11079716717, 11079847811, 11079978913, 11080110029, 11080241119, 11080372213, + 11080503311, 11080634407, 11080765511, 11080896583, 11081027663, 11081158783, 11081289859, + 11081420971, 11081552057, 11081683159, 11081814251, 11081945341, 11082076459, 11082207547, + 11082338629, 11082469721, 11082600803, 11082731879, 11082863047, 11082994121, 11083125217, + 11083256309, 11083387421, 11083518547, 11083649623, 11083780699, 11083911779, 11084042911, + 11084173999, 11084305097, 11084436211, 11084567321, 11084698421, 11084829499, 11084960629, + 11085091709, 11085222787, 11085353933, 11085485009, 11085616127, 11085747217, 11085878291, + 11086009373, 11086140449, 11086271527, 11086402619, 11086533713, 11086664837, 11086795943, + 11086927031, 11087058109, 11087189249, 11087320369, 11087451443, 11087582521, 11087713603, + 11087844707, 11087975779, 11088106853, 11088237943, 11088369073, 11088500147, 11088631237, + 11088762313, 11088893393, 11089024489, 11089155563, 11089286639, 11089417721, 11089548793, + 11089679869, 11089810961, 11089942033, 11090073179, 11090204299, 11090335387, 11090466461, + 11090597533, 11090728637, 11090859727, 11090990809, 11091121889, 11091252967, 11091384043, + 11091515117, 11091646217, 11091777317, 11091908419, 11092039499, 11092170577, 11092301653, + 11092432733, 11092563841, 11092694923, 11092826011, 11092957111, 11093088199, 11093219299, + 11093350423, 11093481541, 11093612671, 11093743753, 11093874851, 11094005927, 11094137011, + 11094268099, 11094399179, 11094530267, 11094661339, 11094792431, 11094923513, 11095054681, + 11095185791, 11095316879, 11095447973, 11095579049, 11095710179, 11095841269, 11095972343, + 11096103433, 11096234537, 11096365633, 11096496707, 11096627827, 11096758919, 11096890001, + 11097021073, 11097152149, 11097283247, 11097414319, 11097545401, 11097676489, 11097807569, + 11097938641, 11098069739, 11098200823, 11098331903, 11098463011, 11098594099, 11098725173, + 11098856273, 11098987357, 11099118461, 11099249533, 11099380639, 11099511719, 11099642843, + 11099773931, 11099905009, 11100036121, 11100167207, 11100298373, 11100429479, 11100560557, + 11100691669, 11100822773, 11100953869, 11101085029, 11101216123, 11101347199, 11101478273, + 11101609373, 11101740449, 11101871531, 11102002603, 11102133677, 11102264779, 11102395939, + 11102527031, 11102658103, 11102789177, 11102920273, 11103051397, 11103182491, 11103313597, + 11103444689, 11103575809, 11103706903, 11103838007, 11103969083, 11104100209, 11104231289, + 11104362377, 11104493453, 11104624547, 11104755631, 11104886711, 11105017787, 11105148889, + 11105279989, 11105411081, 11105542153, 11105673233, 11105804327, 11105935409, 11106066487, + 11106197569, 11106328657, 11106459739, 11106590827, 11106721907, 11106853013, 11106984103, + 11107115177, 11107246261, 11107377361, 11107508459, 11107639547, 11107770623, 11107901699, + 11108032787, 11108163863, 11108294941, 11108426023, 11108557099, 11108688179, 11108819261, + 11108950379, 11109081463, 11109212537, 11109343649, 11109474731, 11109605803, 11109736877, + 11109867959, 11109999031, 11110130137, 11110261223, 11110392353, 11110523449, 11110654537, + 11110785643, 11110916731, 11111047811, 11111178899, 11111309971, 11111441069, 11111572211, + 11111703299, 11111834407, 11111965483, 11112096557, 11112227629, 11112358709, 11112489781, + 11112620863, 11112751963, 11112883079, 11113014151, 11113145273, 11113276373, 11113407469, + 11113538573, 11113669661, 11113800743, 11113931837, 11114062909, 11114194037, 11114325109, + 11114456183, 11114587271, 11114718353, 11114849437, 11114980519, 11115111607, 11115242689, + 11115373769, 11115504853, 11115635957, 11115767081, 11115898159, 11116029247, 11116160339, + 11116291429, 11116422503, 11116553579, 11116684679, 11116815767, 11116946843, 11117077921, + 11117209043, 11117340121, 11117471237, 11117602333, 11117733409, 11117864491, 11117995601, + 11118126673, 11118257767, 11118388861, 11118519941, 11118651013, 11118782093, 11118913199, + 11119044289, 11119175381, 11119306459, 11119437533, 11119568627, 11119699727, 11119830803, + 11119961911, 11120093029, 11120224189, 11120355269, 11120486347, 11120617427, 11120748557, + 11120879629, 11121010721, 11121141809, 11121272887, 11121404009, 11121535153, 11121666233, + 11121797327, 11121928421, 11122059499, 11122190593, 11122321673, 11122452773, 11122583891, + 11122714963, 11122846039, 11122977133, 11123108221, 11123239321, 11123370409, 11123501491, + 11123632579, 11123763661, 11123894741, 11124025883, 11124156959, 11124288041, 11124419167, + 11124550247, 11124681349, 11124812423, 11124943499, 11125074589, 11125205669, 11125336751, + 11125467883, 11125598969, 11125730071, 11125861169, 11125992257, 11126123347, 11126254421, + 11126385499, 11126516633, 11126647709, 11126778799, 11126909909, 11127041077, 11127172151, + 11127303293, 11127434393, 11127565469, 11127696571, 11127827701, 11127958781, 11128089893, + 11128220977, 11128352107, 11128483253, 11128614347, 11128745443, 11128876553, 11129007629, + 11129138701, 11129269777, 11129400851, 11129531953, 11129663033, 11129794147, 11129925221, + 11130056389, 11130187507, 11130318587, 11130449689, 11130580771, 11130711877, 11130842969, + 11130974053, 11131105171, 11131236269, 11131367363, 11131498447, 11131629557, 11131760657, + 11131891759, 11132022833, 11132153957, 11132285051, 11132416171, 11132547247, 11132678321, + 11132809423, 11132940547, 11133071629, 11133202733, 11133333823, 11133464897, 11133595973, + 11133727051, 11133858133, 11133989213, 11134120331, 11134251421, 11134382507, 11134513591, + 11134644671, 11134775783, 11134906907, 11135038003, 11135169083, 11135300213, 11135431297, + 11135562457, 11135693539, 11135824613, 11135955773, 11136086869, 11136217957, 11136349031, + 11136480109, 11136611249, 11136742321, 11136873409, 11137004563, 11137135637, 11137266737, + 11137397813, 11137528891, 11137660013, 11137791107, 11137922231, 11138053309, 11138184383, + 11138315467, 11138446541, 11138577617, 11138708689, 11138839781, 11138970853, 11139101929, + 11139233029, 11139364127, 11139495221, 11139626387, 11139757469, 11139888541, 11140019629, + 11140150817, 11140281959, 11140413041, 11140544141, 11140675237, 11140806343, 11140937417, + 11141068489, 11141199583, 11141330657, 11141461753, 11141592881, 11141723987, 11141855077, + 11141986153, 11142117227, 11142248303, 11142379403, 11142510487, 11142641603, 11142772679, + 11142903763, 11143034867, 11143165963, 11143297063, 11143428139, 11143559221, 11143690297, + 11143821383, 11143952497, 11144083589, 11144214703, 11144345809, 11144476921, 11144608021, + 11144739173, 11144870287, 11145001409, 11145132497, 11145263573, 11145394657, 11145525791, + 11145656881, 11145787963, 11145919051, 11146050133, 11146181213, 11146312297, 11146443377, + 11146574449, 11146705529, 11146836611, 11146967683, 11147098763, 11147229869, 11147360957, + 11147492099, 11147623199, 11147754281, 11147885377, 11148016459, 11148147559, 11148278653, + 11148409747, 11148540839, 11148671939, 11148803023, 11148934099, 11149065211, 11149196291, + 11149327373, 11149458461, 11149589573, 11149720663, 11149851743, 11149982827, 11150113913, + 11150245087, 11150376163, 11150507239, 11150638313, 11150769389, 11150900521, 11151031609, + 11151162689, 11151293773, 11151424853, 11151555967, 11151687059, 11151818147, 11151949229, + 11152080301, 11152211381, 11152342459, 11152473547, 11152604641, 11152735717, 11152866793, + 11152997879, 11153128963, 11153260051, 11153391133, 11153522243, 11153653319, 11153784401, + 11153915501, 11154046573, 11154177647, 11154308723, 11154439819, 11154570913, 11154702011, + 11154833111, 11154964243, 11155095317, 11155226393, 11155357469, 11155488559, 11155619653, + 11155750729, 11155881811, 11156012927, 11156144011, 11156275093, 11156406211, 11156537299, + 11156668373, 11156799463, 11156930563, 11157061637, 11157192727, 11157323803, 11157454883, + 11157585977, 11157717089, 11157848201, 11157979297, 11158110391, 11158241467, 11158372553, + 11158503647, 11158634723, 11158765801, 11158896877, 11159027951, 11159159029, 11159290133, + 11159421209, 11159552297, 11159683373, 11159814493, 11159945717, 11160076793, 11160207869, + 11160338951, 11160470039, 11160601117, 11160732217, 11160863291, 11160994373, 11161125463, + 11161256549, 11161387639, 11161518743, 11161649831, 11161780909, 11161912031, 11162043127, + 11162174237, 11162305313, 11162436401, 11162567497, 11162698571, 11162829659, 11162960761, + 11163091867, 11163222943, 11163354023, 11163485101, 11163616213, 11163747299, 11163878381, + 11164009453, 11164140583, 11164271681, 11164402763, 11164533841, 11164664933, 11164796011, + 11164927087, 11165058251, 11165189359, 11165320433, 11165451547, 11165582621, 11165713697, + 11165844797, 11165975881, 11166106961, 11166238043, 11166369121, 11166500197, 11166631291, + 11166762421, 11166893519, 11167024591, 11167155667, 11167286797, 11167417889, 11167549021, + 11167680133, 11167811243, 11167942343, 11168073461, 11168204543, 11168335637, 11168466721, + 11168597821, 11168728897, 11168859973, 11168991079, 11169122189, 11169253273, 11169384397, + 11169515473, 11169646547, 11169777637, 11169908713, 11170039799, 11170170877, 11170301957, + 11170433039, 11170564117, 11170695199, 11170826279, 11170957351, 11171088473, 11171219681, + 11171350783, 11171481859, 11171612953, 11171744029, 11171875133, 11172006217, 11172137293, + 11172268381, 11172399463, 11172530549, 11172661639, 11172792721, 11172923803, 11173054897, + 11173186001, 11173317079, 11173448159, 11173579237, 11173710341, 11173841473, 11173972553, + 11174103643, 11174234717, 11174365789, 11174496901, 11174627987, 11174759087, 11174890159, + 11175021241, 11175152333, 11175283433, 11175414511, 11175545599, 11175676711, 11175807793, + 11175938881, 11176069979, 11176201067, 11176332157, 11176463239, 11176594321, 11176725401, + 11176856489, 11176987567, 11177118647, 11177249729, 11177380873, 11177511967, 11177643091, + 11177774197, 11177905301, 11178036379, 11178167459, 11178298531, 11178429643, 11178560741, + 11178691847, 11178822929, 11178954029, 11179085107, 11179216189, 11179347337, 11179478423, + 11179609531, 11179740629, 11179871723, 11180002811, 11180133893, 11180264987, 11180396063, + 11180527147, 11180658257, 11180789357, 11180920441, 11181051517, 11181182599, 11181313733, + 11181444863, 11181575941, 11181707021, 11181838093, 11181969191, 11182100311, 11182231393, + 11182362469, 11182493557, 11182624639, 11182755721, 11182886837, 11183017913, 11183149007, + 11183280161, 11183411249, 11183542373, 11183673493, 11183804573, 11183935669, 11184066781, + 11184197891, 11184328997, 11184460081, 11184591157, 11184722249, 11184853331, 11184984407, + 11185115483, 11185246561, 11185377713, 11185508809, 11185639939, 11185771099, 11185902241, + 11186033333, 11186164433, 11186295569, 11186426659, 11186557751, 11186688869, 11186819953, + 11186951033, 11187082141, 11187213259, 11187344351, 11187475441, 11187606539, 11187737633, + 11187868711, 11187999793, 11188130869, 11188261943, 11188393061, 11188524173, 11188655249, + 11188786339, 11188917413, 11189048503, 11189179601, 11189310673, 11189441749, 11189572913, + 11189704037, 11189835121, 11189966201, 11190097277, 11190228377, 11190359449, 11190490583, + 11190621677, 11190752761, 11190883883, 11191014997, 11191146089, 11191277173, 11191408273, + 11191539347, 11191670509, 11191801603, 11191932683, 11192063759, 11192194831, 11192325913, + 11192457007, 11192588101, 11192719211, 11192850287, 11192981363, 11193112459, 11193243541, + 11193374623, 11193505709, 11193636827, 11193767899, 11193898981, 11194030079, 11194161169, + 11194292251, 11194423327, 11194554401, 11194685483, 11194816597, 11194947671, 11195078777, + 11195209871, 11195340953, 11195472037, 11195603123, 11195734223, 11195865299, 11195996381, + 11196127487, 11196258559, 11196389647, 11196520723, 11196651841, 11196782939, 11196914021, + 11197045147, 11197176233, 11197307333, 11197438423, 11197569511, 11197700593, 11197831691, + 11197962773, 11198093857, 11198224931, 11198356019, 11198487107, 11198618191, 11198749279, + 11198880359, 11199011437, 11199142567, 11199273641, 11199404717, 11199535801, 11199666889, + 11199797993, 11199929129, 11200060237, 11200191361, 11200322453, 11200453529, 11200584667, + 11200715767, 11200846841, 11200977917, 11201108999, 11201240077, 11201371189, 11201502311, + 11201633393, 11201764477, 11201895553, 11202026713, 11202157789, 11202288871, 11202419981, + 11202551071, 11202682159, 11202813247, 11202944387, 11203075489, 11203206577, 11203337683, + 11203468763, 11203599871, 11203730947, 11203862023, 11203993109, 11204124181, 11204255269, + 11204386357, 11204517449, 11204648549, 11204779633, 11204910737, 11205041831, 11205172919, + 11205304031, 11205435149, 11205566231, 11205697309, 11205828401, 11205959483, 11206090607, + 11206221749, 11206352831, 11206483921, 11206614997, 11206746077, 11206877161, 11207008271, + 11207139353, 11207270491, 11207401603, 11207532689, 11207663783, 11207794889, 11207926019, + 11208057121, 11208188207, 11208319361, 11208450437, 11208581537, 11208712639, 11208843719, + 11208974797, 11209105889, 11209237003, 11209368077, 11209499183, 11209630261, 11209761361, + 11209892453, 11210023529, 11210154649, 11210285731, 11210416883, 11210547989, 11210679071, + 11210810173, 11210941283, 11211072373, 11211203447, 11211334531, 11211465623, 11211596729, + 11211727801, 11211858899, 11211989981, 11212121059, 11212252157, 11212383277, 11212514353, + 11212645441, 11212776521, 11212907593, 11213038673, 11213169749, 11213300821, 11213431907, + 11213562979, 11213694083, 11213825159, 11213956231, 11214087307, 11214218381, 11214349459, + 11214480577, 11214611651, 11214742769, 11214873883, 11215004981, 11215136063, 11215267157, + 11215398239, 11215529363, 11215660441, 11215791527, 11215922617, 11216053699, 11216184821, + 11216315911, 11216446987, 11216578073, 11216709151, 11216840263, 11216971349, 11217102467, + 11217233549, 11217364649, 11217495721, 11217626831, 11217757919, 11217889037, 11218020137, + 11218151213, 11218282297, 11218413379, 11218544473, 11218675577, 11218806649, 11218937753, + 11219068829, 11219199973, 11219331059, 11219462131, 11219593237, 11219724337, 11219855411, + 11219986483, 11220117607, 11220248687, 11220379829, 11220510907, 11220641987, 11220773093, + 11220904187, 11221035263, 11221166381, 11221297459, 11221428587, 11221559663, 11221690741, + 11221821823, 11221952939, 11222084039, 11222215111, 11222346203, 11222477293, 11222608387, + 11222739467, 11222870551, 11223001633, 11223132719, 11223263819, 11223394901, 11223525979, + 11223657059, 11223788137, 11223919243, 11224050391, 11224181483, 11224312559, 11224443641, + 11224574719, 11224705813, 11224836911, 11224967989, 11225099071, 11225230147, 11225361223, + 11225492297, 11225623403, 11225754479, 11225885569, 11226016673, 11226147773, 11226278881, + 11226409973, 11226541049, 11226672179, 11226803251, 11226934337, 11227065413, 11227196489, + 11227327577, 11227458667, 11227589741, 11227720813, 11227851931, 11227983043, 11228114129, + 11228245207, 11228376283, 11228507359, 11228638439, 11228769523, 11228900609, 11229031703, + 11229162781, 11229293861, 11229424937, 11229556021, 11229687113, 11229818227, 11229949307, + 11230080403, 11230211479, 11230342577, 11230473671, 11230604743, 11230735819, 11230866919, + 11230998001, 11231129081, 11231260163, 11231391263, 11231522353, 11231653441, 11231784559, + 11231915659, 11232046733, 11232177821, 11232308977, 11232440099, 11232571193, 11232702277, + 11232833371, 11232964459, 11233095539, 11233226737, 11233357841, 11233488943, 11233620037, + 11233751119, 11233882199, 11234013293, 11234144377, 11234275453, 11234406527, 11234537617, + 11234668699, 11234799833, 11234930933, 11235062009, 11235193093, 11235324167, 11235455293, + 11235586387, 11235717473, 11235848551, 11235979639, 11236110727, 11236241801, 11236372877, + 11236503953, 11236635077, 11236766159, 11236897247, 11237028367, 11237159447, 11237290529, + 11237421623, 11237552707, 11237683819, 11237814937, 11237946037, 11238077143, 11238208231, + 11238339313, 11238470387, 11238601459, 11238732551, 11238863633, 11238994717, 11239125811, + 11239256887, 11239387967, 11239519073, 11239650193, 11239781291, 11239912379, 11240043461, + 11240174551, 11240305639, 11240436721, 11240567809, 11240698951, 11240830057, 11240961131, + 11241092267, 11241223417, 11241354497, 11241485581, 11241616663, 11241747757, 11241878863, + 11242009957, 11242141061, 11242272157, 11242403231, 11242534309, 11242665407, 11242796483, + 11242927571, 11243058653, 11243189729, 11243320819, 11243451899, 11243582989, 11243714063, + 11243845139, 11243976229, 11244107311, 11244238391, 11244369463, 11244500543, 11244631637, + 11244762709, 11244893789, 11245024871, 11245155953, 11245287043, 11245418117, 11245549193, + 11245680317, 11245811399, 11245942481, 11246073593, 11246204677, 11246335757, 11246466859, + 11246597939, 11246729017, 11246860129, 11246991209, 11247122303, 11247253387, 11247384461, + 11247515581, 11247646681, 11247777851, 11247908939, 11248040053, 11248171153, 11248302227, + 11248433321, 11248564417, 11248695499, 11248826593, 11248957679, 11249088793, 11249219879, + 11249350979, 11249482061, 11249613139, 11249744243, 11249875321, 11250006401, 11250137473, + 11250268609, 11250399683, 11250530777, 11250661871, 11250792997, 11250924079, 11251055197, + 11251186333, 11251317409, 11251448491, 11251579583, 11251710707, 11251841831, 11251972931, + 11252104037, 11252235133, 11252366221, 11252497349, 11252628427, 11252759513, 11252890589, + 11253021713, 11253152821, 11253283897, 11253414971, 11253546047, 11253677129, 11253808231, + 11253939311, 11254070411, 11254201489, 11254332569, 11254463651, 11254594759, 11254725841, + 11254856917, 11254988033, 11255119121, 11255250217, 11255381303, 11255512399, 11255643499, + 11255774573, 11255905673, 11256036749, 11256167843, 11256298919, 11256430007, 11256561079, + 11256692173, 11256823247, 11256954341, 11257085423, 11257216573, 11257347653, 11257478737, + 11257609817, 11257740899, 11257872029, 11258003123, 11258134243, 11258265329, 11258396423, + 11258527507, 11258658599, 11258789677, 11258920787, 11259051883, 11259182999, 11259314093, + 11259445229, 11259576311, 11259707383, 11259838459, 11259969559, 11260100633, 11260231709, + 11260362781, 11260493861, 11260624961, 11260756033, 11260887139, 11261018231, 11261149337, + 11261280427, 11261411519, 11261542603, 11261673697, 11261804777, 11261935891, 11262066971, + 11262198061, 11262329149, 11262460267, 11262591421, 11262722521, 11262853607, 11262984727, + 11263115813, 11263246913, 11263377991, 11263509077, 11263640153, 11263771231, 11263902311, + 11264033387, 11264164501, 11264295583, 11264426731, 11264557807, 11264688913, 11264819989, + 11264951141, 11265082217, 11265213313, 11265344393, 11265475483, 11265606557, 11265737699, + 11265868777, 11265999851, 11266130923, 11266262027, 11266393111, 11266524229, 11266655303, + 11266786381, 11266917479, 11267048557, 11267179631, 11267310727, 11267441803, 11267572903, + 11267704027, 11267835101, 11267966183, 11268097271, 11268228343, 11268359429, 11268490543, + 11268621641, 11268752723, 11268883819, 11269014901, 11269145977, 11269277053, 11269408177, + 11269539263, 11269670353, 11269801451, 11269932539, 11270063621, 11270194703, 11270325851, + 11270456959, 11270588047, 11270719139, 11270850233, 11270981347, 11271112423, 11271243499, + 11271374603, 11271505697, 11271636787, 11271767869, 11271898961, 11272030037, 11272161127, + 11272292219, 11272423301, 11272554413, 11272685519, 11272816601, 11272947691, 11273078771, + 11273209877, 11273340961, 11273472043, 11273603177, 11273734261, 11273865341, 11273996417, + 11274127517, 11274258601, 11274389677, 11274520793, 11274651907, 11274782983, 11274914069, + 11275045217, 11275176299, 11275307371, 11275438469, 11275569541, 11275700621, 11275831709, + 11275962781, 11276093861, 11276224951, 11276356031, 11276487113, 11276618189, 11276749273, + 11276880379, 11277011491, 11277142571, 11277273643, 11277404759, 11277535847, 11277666947, + 11277798029, 11277929107, 11278060207, 11278191311, 11278322383, 11278453457, 11278584529, + 11278715627, 11278846703, 11278977821, 11279108923, 11279240017, 11279371139, 11279502239, + 11279633311, 11279764399, 11279895491, 11280026573, 11280157687, 11280288763, 11280419849, + 11280550979, 11280682057, 11280813139, 11280944219, 11281075297, 11281206397, 11281337477, + 11281468577, 11281599671, 11281730767, 11281861847, 11281992949, 11282124023, 11282255137, + 11282386217, 11282517307, 11282648387, 11282779471, 11282910547, 11283041683, 11283172757, + 11283303839, 11283434951, 11283566033, 11283697109, 11283828181, 11283959317, 11284090393, + 11284221479, 11284352579, 11284483663, 11284614749, 11284745821, 11284876903, 11285008013, + 11285139113, 11285270189, 11285401321, 11285532409, 11285663551, 11285794633, 11285925709, + 11286056813, 11286187901, 11286318973, 11286450047, 11286581123, 11286712207, 11286843283, + 11286974389, 11287105517, 11287236607, 11287367681, 11287498757, 11287629841, 11287760927, + 11287892009, 11288023081, 11288154167, 11288285269, 11288416357, 11288547493, 11288678581, + 11288809667, 11288940853, 11289071957, 11289203059, 11289334169, 11289465241, 11289596321, + 11289727409, 11289858493, 11289989567, 11290120679, 11290251751, 11290382837, 11290513931, + 11290645019, 11290776121, 11290907209, 11291038303, 11291169391, 11291300473, 11291431577, + 11291562691, 11291693771, 11291824867, 11291955959, 11292087047, 11292218141, 11292349217, + 11292480383, 11292611467, 11292742543, 11292873617, 11293004693, 11293135771, 11293266851, + 11293397939, 11293529011, 11293660151, 11293791263, 11293922357, 11294053483, 11294184571, + 11294315651, 11294446733, 11294577871, 11294708989, 11294840083, 11294971157, 11295102233, + 11295233359, 11295364439, 11295495517, 11295626593, 11295757667, 11295888743, 11296019849, + 11296150933, 11296282007, 11296413143, 11296544239, 11296675349, 11296806427, 11296937507, + 11297068649, 11297199743, 11297330867, 11297461961, 11297593037, 11297724157, 11297855251, + 11297986409, 11298117491, 11298248567, 11298379709, 11298510793, 11298641867, 11298772949, + 11298904069, 11299035151, 11299166237, 11299297309, 11299428389, 11299559497, 11299690601, + 11299821677, 11299952749, 11300083849, 11300214943, 11300346037, 11300477119, 11300608199, + 11300739271, 11300870353, 11301001489, 11301132571, 11301263671, 11301394781, 11301525853, + 11301656939, 11301788033, 11301919129, 11302050203, 11302181287, 11302312367, 11302443443, + 11302574603, 11302705699, 11302836803, 11302967887, 11303098987, 11303230091, 11303361163, + 11303492237, 11303623313, 11303754419, 11303885491, 11304016573, 11304147653, 11304278753, + 11304409829, 11304540911, 11304671993, 11304803087, 11304934163, 11305065251, 11305196341, + 11305327459, 11305458559, 11305589639, 11305720711, 11305851787, 11305982861, 11306113937, + 11306245009, 11306376127, 11306507221, 11306638297, 11306769373, 11306900453, 11307031583, + 11307162697, 11307293819, 11307424901, 11307555979, 11307687077, 11307818149, 11307949253, + 11308080367, 11308211461, 11308342543, 11308473623, 11308604719, 11308735793, 11308866889, + 11308997981, 11309129063, 11309260141, 11309391259, 11309522333, 11309653409, 11309784481, + 11309915579, 11310046667, 11310177751, 11310308861, 11310439961, 11310571043, 11310702163, + 11310833243, 11310964319, 11311095391, 11311226483, 11311357583, 11311488659, 11311619741, + 11311750823, 11311881901, 11312012981, 11312144087, 11312275207, 11312406317, 11312537389, + 11312668487, 11312799571, 11312930683, 11313061759, 11313192859, 11313323941, 11313455017, + 11313586091, 11313717167, 11313848239, 11313979319, 11314110403, 11314241479, 11314372603, + 11314503703, 11314634791, 11314765873, 11314897039, 11315028149, 11315159231, 11315290303, + 11315421433, 11315552609, 11315683703, 11315814841, 11315945923, 11316077041, 11316208159, + 11316339277, 11316470383, 11316601469, 11316732551, 11316863629, 11316994709, 11317125797, + 11317256887, 11317387979, 11317519099, 11317650203, 11317781317, 11317912391, 11318043497, + 11318174587, 11318305697, 11318436769, 11318567857, 11318698949, 11318830031, 11318961161, + 11319092249, 11319223387, 11319354461, 11319485549, 11319616639, 11319747731, 11319878819, + 11320009933, 11320141037, 11320272109, 11320403209, 11320534297, 11320665371, 11320796471, + 11320927549, 11321058641, 11321189723, 11321320873, 11321451961, 11321583073, 11321714149, + 11321845237, 11321976349, 11322107449, 11322238621, 11322369697, 11322500857, 11322631949, + 11322763033, 11322894137, 11323025213, 11323156301, 11323287403, 11323418521, 11323549607, + 11323680703, 11323811777, 11323942853, 11324073931, 11324205031, 11324336137, 11324467213, + 11324598287, 11324729359, 11324860439, 11324991631, 11325122707, 11325253811, 11325384883, + 11325515969, 11325647041, 11325778157, 11325909229, 11326040303, 11326171379, 11326302467, + 11326433551, 11326564631, 11326695703, 11326826807, 11326957879, 11327088953, 11327220029, + 11327351111, 11327482183, 11327613257, 11327744333, 11327875417, 11328006493, 11328137567, + 11328268661, 11328399763, 11328530879, 11328661957, 11328793043, 11328924161, 11329055249, + 11329186331, 11329317427, 11329448551, 11329579627, 11329710713, 11329841819, 11329972903, + 11330104007, 11330235121, 11330366213, 11330497289, 11330628409, 11330759507, 11330890579, + 11331021671, 11331152743, 11331283841, 11331414917, 11331546007, 11331677081, 11331808171, + 11331939257, 11332070339, 11332201417, 11332332491, 11332463567, 11332594649, 11332725727, + 11332856807, 11332987903, 11333118989, 11333250077, 11333381153, 11333512237, 11333643319, + 11333774401, 11333905489, 11334036569, 11334167657, 11334298733, 11334429809, 11334560891, + 11334691987, 11334823061, 11334954149, 11335085231, 11335216303, 11335347437, 11335478563, + 11335609651, 11335740761, 11335871843, 11336002921, 11336134001, 11336265113, 11336396237, + 11336527313, 11336658391, 11336789491, 11336920591, 11337051673, 11337182749, 11337313829, + 11337444929, 11337576011, 11337707107, 11337838189, 11337969271, 11338100357, 11338231439, + 11338362521, 11338493623, 11338624733, 11338755859, 11338886941, 11339018023, 11339149097, + 11339280259, 11339411357, 11339542433, 11339673511, 11339804617, 11339935693, 11340066781, + 11340197857, 11340328991, 11340460081, 11340591179, 11340722251, 11340853367, 11340984439, + 11341115543, 11341246627, 11341377701, 11341508839, 11341639921, 11341770997, 11341902073, + 11342033149, 11342164237, 11342295311, 11342426399, 11342557493, 11342688583, 11342819659, + 11342950739, 11343081851, 11343212929, 11343344003, 11343475139, 11343606221, 11343737323, + 11343868451, 11343999551, 11344130639, 11344261717, 11344392799, 11344523893, 11344654973, + 11344786067, 11344917149, 11345048261, 11345179333, 11345310437, 11345441537, 11345572613, + 11345703739, 11345834879, 11345965951, 11346097033, 11346228167, 11346359239, 11346490313, + 11346621397, 11346752509, 11346883609, 11347014751, 11347145851, 11347276939, 11347408021, + 11347539101, 11347670183, 11347801279, 11347932359, 11348063437, 11348194511, 11348325587, + 11348456659, 11348587739, 11348718817, 11348849903, 11348980987, 11349112081, 11349243203, + 11349374297, 11349505379, 11349636457, 11349767549, 11349898631, 11350029739, 11350160827, + 11350291907, 11350422983, 11350554071, 11350685153, 11350816231, 11350947323, 11351078407, + 11351209483, 11351340569, 11351471669, 11351602799, 11351733889, 11351864999, 11351996111, + 11352127219, 11352258293, 11352389383, 11352520471, 11352651551, 11352782713, 11352913829, + 11353044929, 11353176017, 11353307111, 11353438183, 11353569287, 11353700387, 11353831471, + 11353962553, 11354093687, 11354224759, 11354355889, 11354486977, 11354618057, 11354749183, + 11354880283, 11355011407, 11355142507, 11355273617, 11355404717, 11355535799, 11355666877, + 11355798031, 11355929113, 11356060229, 11356191307, 11356322389, 11356453469, 11356584599, + 11356715719, 11356846793, 11356977871, 11357108953, 11357240029, 11357371199, 11357502313, + 11357633393, 11357764471, 11357895547, 11358026623, 11358157697, 11358288779, 11358419861, + 11358550979, 11358682051, 11358813127, 11358944203, 11359075309, 11359206407, 11359337489, + 11359468613, 11359599737, 11359730813, 11359861913, 11359992989, 11360124071, 11360255143, + 11360386259, 11360517383, 11360648477, 11360779559, 11360910709, 11361041801, 11361172931, + 11361304061, 11361435133, 11361566257, 11361697339, 11361828419, 11361959527, 11362090609, + 11362221707, 11362352783, 11362483889, 11362615009, 11362746119, 11362877209, 11363008291, + 11363139379, 11363270453, 11363401583, 11363532659, 11363663747, 11363794861, 11363925949, + 11364057059, 11364188149, 11364319229, 11364450319, 11364581407, 11364712507, 11364843613, + 11364974737, 11365105819, 11365236913, 11365368017, 11365499129, 11365630231, 11365761427, + 11365892501, 11366023589, 11366154689, 11366285771, 11366416877, 11366547953, 11366679047, + 11366810137, 11366941283, 11367072359, 11367203479, 11367334579, 11367465691, 11367596791, + 11367727883, 11367859037, 11367990131, 11368121213, 11368252307, 11368383407, 11368514483, + 11368645577, 11368776703, 11368907779, 11369038861, 11369169949, 11369301023, 11369432141, + 11369563217, 11369694289, 11369825393, 11369956487, 11370087571, 11370218677, 11370349763, + 11370480857, 11370611929, 11370743009, 11370874093, 11371005187, 11371136261, 11371267333, + 11371398419, 11371529509, 11371660613, 11371791719, 11371922831, 11372053937, 11372185009, + 11372316091, 11372447189, 11372578271, 11372709343, 11372840441, 11372971517, 11373102589, + 11373233687, 11373364763, 11373495841, 11373626941, 11373758021, 11373889129, 11374020233, + 11374151311, 11374282397, 11374413481, 11374544593, 11374675681, 11374806797, 11374937909, + 11375068993, 11375200073, 11375331151, 11375462321, 11375593403, 11375724487, 11375855567, + 11375986651, 11376117733, 11376248813, 11376379919, 11376510991, 11376642083, 11376773179, + 11376904307, 11377035407, 11377166483, 11377297559, 11377428661, 11377559747, 11377690871, + 11377821967, 11377953043, 11378084129, 11378215201, 11378346319, 11378477393, 11378608469, + 11378739563, 11378870653, 11379001757, 11379132859, 11379263941, 11379395017, 11379526111, + 11379657197, 11379788281, 11379919367, 11380050439, 11380181521, 11380312627, 11380443719, + 11380574791, 11380705867, 11380836959, 11380968041, 11381099153, 11381230241, 11381361317, + 11381492389, 11381623499, 11381754649, 11381885741, 11382016813, 11382147937, 11382279043, + 11382410153, 11382541253, 11382672403, 11382803489, 11382934567, 11383065641, 11383196729, + 11383327801, 11383458913, 11383590007, 11383721087, 11383852189, 11383983283, 11384114359, + 11384245459, 11384376541, 11384507627, 11384638703, 11384769787, 11384900899, 11385032011, + 11385163103, 11385294181, 11385425263, 11385556361, 11385687461, 11385818537, 11385949657, + 11386080749, 11386211843, 11386342931, 11386474007, 11386605119, 11386736269, 11386867391, + 11386998479, 11387129563, 11387260639, 11387391713, 11387522807, 11387653891, 11387784971, + 11387916047, 11388047137, 11388178213, 11388309307, 11388440383, 11388571499, 11388702659, + 11388833737, 11388964817, 11389095899, 11389226971, 11389358051, 11389489129, 11389620247, + 11389751353, 11389882459, 11390013539, 11390144629, 11390275747, 11390406851, 11390537927, + 11390669009, 11390800093, 11390931191, 11391062273, 11391193369, 11391324509, 11391455657, + 11391586733, 11391717809, 11391848899, 11391980023, 11392111097, 11392242187, 11392373261, + 11392504337, 11392635431, 11392766513, 11392897597, 11393028697, 11393159797, 11393290873, + 11393421983, 11393553121, 11393684221, 11393815331, 11393946409, 11394077483, 11394208583, + 11394339667, 11394470771, 11394601859, 11394732941, 11394864017, 11394995107, 11395126199, + 11395257271, 11395388357, 11395519469, 11395650593, 11395781707, 11395912783, 11396043937, + 11396175059, 11396306143, 11396437249, 11396568367, 11396699527, 11396830609, 11396961701, + 11397092801, 11397223913, 11397355019, 11397486109, 11397617213, 11397748289, 11397879373, + 11398010471, 11398141571, 11398272661, 11398403761, 11398534843, 11398665923, 11398797023, + 11398928141, 11399059267, 11399190401, 11399321477, 11399452549, 11399583647, 11399714741, + 11399845829, 11399976901, 11400107993, 11400239093, 11400370171, 11400501247, 11400632329, + 11400763427, 11400894511, 11401025591, 11401156673, 11401287757, 11401418869, 11401549961, + 11401681037, 11401812131, 11401943207, 11402074279, 11402205377, 11402336453, 11402467529, + 11402598619, 11402729707, 11402860817, 11402991913, 11403123041, 11403254113, 11403385219, + 11403516301, 11403647389, 11403778487, 11403909563, 11404040639, 11404171733, 11404302823, + 11404433903, 11404565047, 11404696129, 11404827223, 11404958321, 11405089439, 11405220523, + 11405351627, 11405482717, 11405613799, 11405744887, 11405875961, 11406007049, 11406138179, + 11406269261, 11406400333, 11406531457, 11406662551, 11406793679, 11406924761, 11407055843, + 11407186933, 11407318033, 11407449107, 11407580257, 11407711363, 11407842443, 11407973567, + 11408104667, 11408235749, 11408366939, 11408498029, 11408629117, 11408760193, 11408891287, + 11409022381, 11409153461, 11409284533, 11409415607, 11409546679, 11409677759, 11409808831, + 11409939923, 11410071031, 11410202129, 11410333201, 11410464281, 11410595359, 11410726463, + 11410857551, 11410988623, 11411119751, 11411250839, 11411381959, 11411513053, 11411644219, + 11411775301, 11411906381, 11412037453, 11412168563, 11412299653, 11412430739, 11412561817, + 11412692903, 11412823999, 11412955087, 11413086169, 11413217281, 11413348369, 11413479443, + 11413610521, 11413741601, 11413872677, 11414003771, 11414134877, 11414265949, 11414397077, + 11414528183, 11414659261, 11414790349, 11414921423, 11415052501, 11415183581, 11415314653, + 11415445739, 11415576817, 11415707903, 11415839011, 11415970087, 11416101161, 11416232257, + 11416363331, 11416494407, 11416625497, 11416756573, 11416887653, 11417018731, 11417149823, + 11417280911, 11417412001, 11417543087, 11417674171, 11417805293, 11417936381, 11418067471, + 11418198587, 11418329707, 11418460793, 11418591871, 11418722947, 11418854021, 11418985117, + 11419116277, 11419247353, 11419378429, 11419509503, 11419640611, 11419771703, 11419902787, + 11420033909, 11420164981, 11420296061, 11420427133, 11420558239, 11420689339, 11420820431, + 11420951569, 11421082657, 11421213731, 11421344819, 11421475927, 11421607003, 11421738089, + 11421869191, 11422000277, 11422131349, 11422262429, 11422393501, 11422524583, 11422655659, + 11422786759, 11422917839, 11423048911, 11423179997, 11423311087, 11423442169, 11423573261, + 11423704361, 11423835473, 11423966551, 11424097679, 11424228757, 11424359833, 11424490907, + 11424622021, 11424753103, 11424884179, 11425015309, 11425146487, 11425277569, 11425408649, + 11425539751, 11425670827, 11425801921, 11425933003, 11426064079, 11426195153, 11426326277, + 11426457377, 11426588479, 11426719553, 11426850647, 11426981747, 11427112843, 11427243943, + 11427375017, 11427506107, 11427637189, 11427768263, 11427899369, 11428030457, 11428161529, + 11428292609, 11428423711, 11428554791, 11428685909, 11428816991, 11428948127, 11429079281, + 11429210363, 11429341471, 11429472617, 11429603707, 11429734807, 11429865883, 11429996957, + 11430128057, 11430259129, 11430390203, 11430521281, 11430652391, 11430783467, 11430914557, + 11431045663, 11431176767, 11431307903, 11431438981, 11431570079, 11431701179, 11431832267, + 11431963409, 11432094481, 11432225579, 11432356651, 11432487751, 11432618833, 11432749921, + 11432880997, 11433012079, 11433143167, 11433274247, 11433405341, 11433536441, 11433667519, + 11433798611, 11433929707, 11434060789, 11434191863, 11434322957, 11434454033, 11434585109, + 11434716187, 11434847267, 11434978361, 11435109437, 11435240521, 11435371609, 11435502709, + 11435633801, 11435764883, 11435896009, 11436027089, 11436158171, 11436289247, 11436420329, + 11436551431, 11436682513, 11436813613, 11436944749, 11437075843, 11437206919, 11437337993, + 11437469089, 11437600193, 11437731289, 11437862407, 11437993481, 11438124553, 11438255663, + 11438386747, 11438517841, 11438648929, 11438780011, 11438911093, 11439042187, 11439173267, + 11439304379, 11439435509, 11439566599, 11439697699, 11439828773, 11439959887, 11440090979, + 11440222099, 11440353179, 11440484309, 11440615397, 11440746491, 11440877563, 11441008637, + 11441139709, 11441270887, 11441401981, 11441533073, 11441664167, 11441795249, 11441926333, + 11442057413, 11442188503, 11442319579, 11442450689, 11442581783, 11442712859, 11442843953, + 11442975029, 11443106107, 11443237187, 11443368311, 11443499393, 11443630481, 11443761577, + 11443892687, 11444023813, 11444154901, 11444285977, 11444417077, 11444548177, 11444679251, + 11444810339, 11444941411, 11445072581, 11445203663, 11445334751, 11445465853, 11445596951, + 11445728039, 11445859133, 11445990211, 11446121321, 11446252417, 11446383497, 11446514591, + 11446645667, 11446776749, 11446907831, 11447038921, 11447170003, 11447301133, 11447432237, + 11447563313, 11447694397, 11447825503, 11447956577, 11448087649, 11448218723, 11448349819, + 11448480893, 11448611987, 11448743099, 11448874181, 11449005289, 11449136371, 11449267469, + 11449398581, 11449529659, 11449660757, 11449791841, 11449922917, 11450054017, 11450185111, + 11450316197, 11450447287, 11450578387, 11450709481, 11450840563, 11450971687, 11451102769, + 11451233851, 11451364933, 11451496031, 11451627107, 11451758183, 11451889259, 11452020361, + 11452151461, 11452282553, 11452413631, 11452544713, 11452675859, 11452806931, 11452938011, + 11453069083, 11453200219, 11453331353, 11453462437, 11453593517, 11453724589, 11453855669, + 11453986741, 11454117847, 11454248921, 11454380027, 11454511099, 11454642179, 11454773251, + 11454904327, 11455035443, 11455166521, 11455297649, 11455428739, 11455559827, 11455690901, + 11455822033, 11455953109, 11456084203, 11456215307, 11456346401, 11456477503, 11456608633, + 11456739709, 11456870797, 11457001889, 11457132961, 11457264037, 11457395111, 11457526187, + 11457657269, 11457788393, 11457919469, 11458050589, 11458181717, 11458312819, 11458443907, + 11458574993, 11458706071, 11458837177, 11458968251, 11459099341, 11459230441, 11459361521, + 11459492657, 11459623733, 11459754809, 11459885959, 11460017069, 11460148207, 11460279283, + 11460410363, 11460541457, 11460672551, 11460803639, 11460934711, 11461065809, 11461196921, + 11461327993, 11461459073, 11461590149, 11461721237, 11461852313, 11461983409, 11462114497, + 11462245607, 11462376713, 11462507803, 11462638879, 11462769953, 11462901041, 11463032233, + 11463163319, 11463294397, 11463425497, 11463556631, 11463687721, 11463818819, 11463949909, + 11464080989, 11464212107, 11464343197, 11464474279, 11464605379, 11464736467, 11464867543, + 11464998653, 11465129737, 11465260817, 11465391893, 11465522983, 11465654119, 11465785207, + 11465916281, 11466047371, 11466178457, 11466309541, 11466440641, 11466571747, 11466702899, + 11466833981, 11466965089, 11467096211, 11467227283, 11467358387, 11467489543, 11467620649, + 11467751731, 11467882813, 11468013899, 11468145019, 11468276107, 11468407211, 11468538293, + 11468669413, 11468800489, 11468931569, 11469062659, 11469193787, 11469324917, 11469456017, + 11469587093, 11469718199, 11469849329, 11469980411, 11470111483, 11470242571, 11470373699, + 11470504831, 11470635931, 11470767013, 11470898093, 11471029217, 11471160293, 11471291393, + 11471422471, 11471553547, 11471684639, 11471815723, 11471946847, 11472077923, 11472209017, + 11472340141, 11472471223, 11472602311, 11472733399, 11472864479, 11472995551, 11473126633, + 11473257727, 11473388819, 11473519919, 11473651009, 11473782083, 11473913273, 11474044397, + 11474175469, 11474306561, 11474437679, 11474568769, 11474699843, 11474830951, 11474962091, + 11475093169, 11475224251, 11475355357, 11475486431, 11475617509, 11475748589, 11475879683, + 11476010783, 11476141891, 11476272971, 11476404083, 11476535159, 11476666237, 11476797317, + 11476928399, 11477059493, 11477190581, 11477321657, 11477452747, 11477583823, 11477714953, + 11477846033, 11477977127, 11478108203, 11478239293, 11478370417, 11478501563, 11478632677, + 11478763757, 11478894907, 11479025989, 11479157069, 11479288181, 11479419323, 11479550399, + 11479681487, 11479812563, 11479943663, 11480074741, 11480205817, 11480336899, 11480467981, + 11480599153, 11480730227, 11480861363, 11480992477, 11481123593, 11481254677, 11481385777, + 11481516881, 11481647953, 11481779033, 11481910133, 11482041217, 11482172293, 11482303367, + 11482434451, 11482565543, 11482696679, 11482827779, 11482958857, 11483089939, 11483221019, + 11483352091, 11483483239, 11483614319, 11483745401, 11483876479, 11484007621, 11484138713, + 11484269789, 11484400883, 11484531959, 11484663059, 11484794147, 11484925253, 11485056343, + 11485187429, 11485318511, 11485449589, 11485580677, 11485711753, 11485842871, 11485973953, + 11486105051, 11486236159, 11486367247, 11486498339, 11486629463, 11486760559, 11486891651, + 11487022747, 11487153823, 11487284929, 11487416009, 11487547103, 11487678199, 11487809293, + 11487940369, 11488071443, 11488202533, 11488333643, 11488464763, 11488595849, 11488726937, + 11488858021, 11488989107, 11489120189, 11489251283, 11489382389, 11489513479, 11489644559, + 11489775653, 11489906737, 11490037813, 11490168887, 11490299963, 11490431039, 11490562199, + 11490693271, 11490824353, 11490955471, 11491086547, 11491217623, 11491348699, 11491479773, + 11491610857, 11491741931, 11491873033, 11492004113, 11492135279, 11492266367, 11492397461, + 11492528539, 11492659613, 11492790703, 11492921801, 11493052877, 11493183967, 11493315077, + 11493446183, 11493577301, 11493708427, 11493839551, 11493970639, 11494101757, 11494232833, + 11494363921, 11494494997, 11494626083, 11494757167, 11494888267, 11495019343, 11495150431, + 11495281559, 11495412659, 11495543737, 11495674837, 11495805917, 11495936999, 11496068137, + 11496199259, 11496330383, 11496461489, 11496592589, 11496723683, 11496854767, 11496985859, + 11497116989, 11497248067, 11497379141, 11497510229, 11497641347, 11497772437, 11497903517, + 11498034599, 11498165677, 11498296753, 11498427841, 11498558933, 11498690041, 11498821121, + 11498952217, 11499083311, 11499214387, 11499345467, 11499476539, 11499607661, 11499738749, + 11499869839, 11500000951, 11500132027, 11500263157, 11500394249, 11500525321, 11500656413, + 11500787489, 11500918573, 11501049649, 11501180729, 11501311813, 11501442889, 11501574053, + 11501705143, 11501836223, 11501967299, 11502098371, 11502229477, 11502360557, 11502491633, + 11502622711, 11502753793, 11502884881, 11503015973, 11503147081, 11503278197, 11503409287, + 11503540379, 11503671481, 11503802561, 11503933657, 11504064757, 11504195837, 11504326913, + 11504458027, 11504589137, 11504720257, 11504851343, 11504982479, 11505113561, 11505244679, + 11505375769, 11505506843, 11505637933, 11505769061, 11505900137, 11506031219, 11506162301, + 11506293377, 11506424467, 11506555547, 11506686641, 11506817767, 11506948847, 11507079919, + 11507210993, 11507342069, 11507473147, 11507604223, 11507735297, 11507866369, 11507997461, + 11508128603, 11508259681, 11508390757, 11508521837, 11508652919, 11508784013, 11508915091, + 11509046177, 11509177271, 11509308367, 11509439441, 11509570519, 11509701631, 11509832717, + 11509963819, 11510094899, 11510225981, 11510357057, 11510488159, 11510619287, 11510750359, + 11510881439, 11511012533, 11511143629, 11511274727, 11511405799, 11511536891, 11511667991, + 11511799063, 11511930173, 11512061251, 11512192327, 11512323409, 11512454489, 11512585649, + 11512716739, 11512847839, 11512978913, 11513109991, 11513241097, 11513372201, 11513503289, + 11513634373, 11513765447, 11513896549, 11514027643, 11514158729, 11514289811, 11514420919, + 11514552059, 11514683137, 11514814217, 11514945301, 11515076381, 11515207453, 11515338529, + 11515469659, 11515600753, 11515731863, 11515862993, 11515994179, 11516125253, 11516256337, + 11516387417, 11516518499, 11516649577, 11516780651, 11516911727, 11517042833, 11517173911, + 11517304987, 11517436067, 11517567143, 11517698219, 11517829303, 11517960397, 11518091483, + 11518222591, 11518353683, 11518484771, 11518615847, 11518746949, 11518878083, 11519009189, + 11519140271, 11519271353, 11519402429, 11519533507, 11519664623, 11519795701, 11519926811, + 11520057893, 11520189001, 11520320081, 11520451153, 11520582289, 11520713417, 11520844519, + 11520975593, 11521106671, 11521237747, 11521368847, 11521499933, 11521631053, 11521762129, + 11521893221, 11522024323, 11522155397, 11522286509, 11522417597, 11522548673, 11522679767, + 11522810867, 11522941981, 11523073061, 11523204167, 11523335249, 11523466379, 11523597457, + 11523728539, 11523859637, 11523990761, 11524121867, 11524252963, 11524384093, 11524515187, + 11524646281, 11524777361, 11524908457, 11525039543, 11525170627, 11525301701, 11525432791, + 11525563871, 11525694977, 11525826077, 11525957161, 11526088243, 11526219329, 11526350431, + 11526481531, 11526612611, 11526743689, 11526874813, 11527005901, 11527136993, 11527268089, + 11527399189, 11527530283, 11527661389, 11527792469, 11527923577, 11528054669, 11528185807, + 11528316893, 11528447977, 11528579131, 11528710213, 11528841323, 11528972431, 11529103513, + 11529234593, 11529365671, 11529496751, 11529627827, 11529758899, 11529889979, 11530021081, + 11530152157, 11530283231, 11530414327, 11530545401, 11530676477, 11530807559, 11530938637, + 11531069747, 11531200843, 11531331949, 11531463101, 11531594177, 11531725259, 11531856337, + 11531987419, 11532118621, 11532249697, 11532380807, 11532511883, 11532642959, 11532774031, + 11532905123, 11533036213, 11533167293, 11533298377, 11533429463, 11533560539, 11533691621, + 11533822747, 11533953869, 11534084951, 11534216027, 11534347129, 11534478203, 11534609279, + 11534740351, 11534871431, 11535002513, 11535133619, 11535264701, 11535395779, 11535526879, + 11535657979, 11535789107, 11535920183, 11536051271, 11536182421, 11536313533, 11536444607, + 11536575689, 11536706771, 11536837843, 11536968917, 11537100017, 11537231149, 11537362223, + 11537493299, 11537624407, 11537755499, 11537886571, 11538017651, 11538148729, 11538279811, + 11538410899, 11538541979, 11538673057, 11538804149, 11538935231, 11539066307, 11539197391, + 11539328473, 11539459549, 11539590649, 11539721773, 11539852867, 11539983941, 11540115019, + 11540246111, 11540377231, 11540508389, 11540639491, 11540770567, 11540901641, 11541032719, + 11541163793, 11541294899, 11541425983, 11541557077, 11541688157, 11541819259, 11541950333, + 11542081451, 11542212523, 11542343597, 11542474681, 11542605757, 11542736831, 11542867943, + 11542999037, 11543130113, 11543261207, 11543392391, 11543523491, 11543654627, 11543785727, + 11543916799, 11544047887, 11544178999, 11544310079, 11544441187, 11544572261, 11544703399, + 11544834479, 11544965587, 11545096681, 11545227779, 11545358893, 11545490009, 11545621091, + 11545752187, 11545883267, 11546014343, 11546145431, 11546276503, 11546407603, 11546538691, + 11546669767, 11546800907, 11546932003, 11547063091, 11547194209, 11547325343, 11547456451, + 11547587531, 11547718613, 11547849701, 11547980789, 11548111891, 11548242967, 11548374067, + 11548505147, 11548636249, 11548767371, 11548898443, 11549029549, 11549160641, 11549291753, + 11549422849, 11549553943, 11549685067, 11549816147, 11549947229, 11550078361, 11550209449, + 11550340531, 11550471671, 11550602801, 11550733921, 11550865031, 11550996157, 11551127233, + 11551258319, 11551389391, 11551520479, 11551651567, 11551782643, 11551913767, 11552044871, + 11552175953, 11552307043, 11552438129, 11552569207, 11552700287, 11552831363, 11552962439, + 11553093533, 11553224621, 11553355717, 11553486829, 11553617909, 11553748993, 11553880081, + 11554011187, 11554142261, 11554273373, 11554404457, 11554535533, 11554666609, 11554797691, + 11554928767, 11555059849, 11555190923, 11555322011, 11555453113, 11555584189, 11555715293, + 11555846399, 11555977471, 11556108563, 11556239657, 11556370733, 11556501809, 11556632897, + 11556763969, 11556895061, 11557026161, 11557157251, 11557288367, 11557419449, 11557550549, + 11557681621, 11557812701, 11557943773, 11558074873, 11558205949, 11558337029, 11558468149, + 11558599229, 11558730301, 11558861389, 11558992477, 11559123571, 11559254653, 11559385727, + 11559516811, 11559647887, 11559778969, 11559910067, 11560041139, 11560172233, 11560303327, + 11560434407, 11560565501, 11560696577, 11560827721, 11560958797, 11561089877, 11561220961, + 11561352053, 11561483137, 11561614243, 11561745319, 11561876393, 11562007487, 11562138559, + 11562269647, 11562400741, 11562531817, 11562662927, 11562794003, 11562925091, 11563056173, + 11563187281, 11563318367, 11563449439, 11563580521, 11563711609, 11563842691, 11563973777, + 11564104891, 11564235967, 11564367049, 11564498129, 11564629211, 11564760359, 11564891477, + 11565022571, 11565153647, 11565284719, 11565415793, 11565546871, 11565677947, 11565809033, + 11565940229, 11566071301, 11566202383, 11566333483, 11566464557, 11566595639, 11566726711, + 11566857833, 11566988957, 11567120053, 11567251147, 11567382223, 11567513299, 11567644393, + 11567775493, 11567906573, 11568037669, 11568168749, 11568299843, 11568430931, 11568562039, + 11568693113, 11568824243, 11568955319, 11569086391, 11569217497, 11569348607, 11569479683, + 11569610761, 11569741847, 11569872929, 11570004029, 11570135123, 11570266207, 11570397287, + 11570528383, 11570659469, 11570790547, 11570921629, 11571052711, 11571183817, 11571314893, + 11571445979, 11571577091, 11571708271, 11571839353, 11571970453, 11572101533, 11572232621, + 11572363703, 11572494823, 11572625983, 11572757059, 11572888147, 11573019223, 11573150311, + 11573281399, 11573412479, 11573543551, 11573674711, 11573805791, 11573936873, 11574067951, + 11574199033, 11574330161, 11574461243, 11574592331, 11574723403, 11574854479, 11574985571, + 11575116647, 11575247729, 11575378813, 11575509893, 11575641001, 11575772099, 11575903217, + 11576034367, 11576165449, 11576296607, 11576427761, 11576558837, 11576689909, 11576821019, + 11576952097, 11577083179, 11577214279, 11577345361, 11577476441, 11577607519, 11577738593, + 11577869713, 11578000787, 11578131863, 11578262957, 11578394029, 11578525117, 11578656211, + 11578787287, 11578918387, 11579049473, 11579180593, 11579311669, 11579442751, 11579573861, + 11579704937, 11579836019, 11579967101, 11580098177, 11580229289, 11580360361, 11580491441, + 11580622583, 11580753689, 11580884773, 11581015847, 11581146949, 11581278029, 11581409107, + 11581540183, 11581671289, 11581802377, 11581933457, 11582064547, 11582195627, 11582326699, + 11582457781, 11582588863, 11582719943, 11582851039, 11582982121, 11583113219, 11583244297, + 11583375407, 11583506497, 11583637579, 11583768659, 11583899737, 11584030813, 11584161907, + 11584292981, 11584424063, 11584555211, 11584686283, 11584817359, 11584948447, 11585079559, + 11585210641, 11585341721, 11585472803, 11585603881, 11585734973, 11585866057, 11585997151, + 11586128231, 11586259309, 11586390391, 11586521501, 11586652573, 11586783667, 11586914743, + 11587045819, 11587176901, 11587307983, 11587439089, 11587570207, 11587701283, 11587832369, + 11587963441, 11588094559, 11588225639, 11588356711, 11588487791, 11588618869, 11588749957, + 11588881043, 11589012221, 11589143303, 11589274397, 11589405497, 11589536591, 11589667673, + 11589798749, 11589929831, 11590060903, 11590191979, 11590323067, 11590454149, 11590585243, + 11590716373, 11590847453, 11590978541, 11591109617, 11591240707, 11591371787, 11591502859, + 11591633941, 11591765021, 11591896111, 11592027193, 11592158269, 11592289343, 11592420449, + 11592551533, 11592682613, 11592813719, 11592944801, 11593075903, 11593206979, 11593338061, + 11593469137, 11593600223, 11593731307, 11593862383, 11593993471, 11594124557, 11594255653, + 11594386751, 11594517863, 11594648959, 11594780083, 11594911157, 11595042257, 11595173353, + 11595304471, 11595435583, 11595566687, 11595697759, 11595828841, 11595959927, 11596091047, + 11596222147, 11596353283, 11596484387, 11596615463, 11596746599, 11596877683, 11597008783, + 11597139857, 11597270963, 11597402041, 11597533147, 11597664229, 11597795309, 11597926409, + 11598057503, 11598188593, 11598319721, 11598450817, 11598581927, 11598713011, 11598844109, + 11598975197, 11599106269, 11599237369, 11599368457, 11599499531, 11599630607, 11599761731, + 11599892809, 11600023909, 11600154991, 11600286083, 11600417161, 11600548291, 11600679367, + 11600810479, 11600941571, 11601072647, 11601203759, 11601334861, 11601465937, 11601597023, + 11601728161, 11601859331, 11601990461, 11602121543, 11602252619, 11602383697, 11602514779, + 11602645861, 11602776943, 11602908041, 11603039137, 11603170283, 11603301373, 11603432461, + 11603563547, 11603694659, 11603825731, 11603956807, 11604087959, 11604219031, 11604350119, + 11604481253, 11604612343, 11604743417, 11604874513, 11605005617, 11605136701, 11605267789, + 11605398863, 11605529941, 11605661027, 11605792103, 11605923179, 11606054261, 11606185343, + 11606316431, 11606447549, 11606578631, 11606709703, 11606840803, 11606971889, 11607102989, + 11607234091, 11607365191, 11607496267, 11607627349, 11607758441, 11607889541, 11608020629, + 11608151713, 11608282787, 11608413967, 11608545043, 11608676147, 11608807267, 11608938347, + 11609069449, 11609200541, 11609331659, 11609462737, 11609593829, 11609724901, 11609856001, + 11609987099, 11610118211, 11610249337, 11610380413, 11610511511, 11610642689, 11610773807, + 11610904913, 11611035991, 11611167101, 11611298201, 11611429307, 11611560391, 11611691479, + 11611822603, 11611953697, 11612084777, 11612215859, 11612346931, 11612478013, 11612609143, + 11612740229, 11612871353, 11613002459, 11613133547, 11613264667, 11613395809, 11613526889, + 11613657997, 11613789079, 11613920159, 11614051243, 11614182317, 11614313393, 11614444493, + 11614575589, 11614706687, 11614837771, 11614968863, 11615099939, 11615231021, 11615362111, + 11615493203, 11615624291, 11615755363, 11615886439, 11616017519, 11616148591, 11616279667, + 11616410747, 11616541819, 11616672901, 11616803977, 11616935051, 11617066151, 11617197257, + 11617328347, 11617459423, 11617590497, 11617721569, 11617852681, 11617983791, 11618114887, + 11618245963, 11618377037, 11618508157, 11618639243, 11618770327, 11618901407, 11619032507, + 11619163627, 11619294707, 11619425827, 11619556903, 11619687983, 11619819077, 11619950161, + 11620081399, 11620212473, 11620343569, 11620474681, 11620605761, 11620736833, 11620867957, + 11620999069, 11621130187, 11621261261, 11621392361, 11621523437, 11621654537, 11621785619, + 11621916727, 11622047803, 11622178879, 11622309967, 11622441079, 11622572161, 11622703277, + 11622834373, 11622965461, 11623096549, 11623227643, 11623358741, 11623489861, 11623620947, + 11623752047, 11623883123, 11624014247, 11624145331, 11624276471, 11624407591, 11624538701, + 11624669857, 11624800937, 11624932019, 11625063103, 11625194197, 11625325277, 11625456389, + 11625587503, 11625718579, 11625849709, 11625980801, 11626111897, 11626243003, 11626374077, + 11626505179, 11626636283, 11626767359, 11626898431, 11627029511, 11627160631, 11627291713, + 11627422813, 11627553893, 11627684989, 11627816093, 11627947169, 11628078257, 11628209353, + 11628340447, 11628471521, 11628602621, 11628733709, 11628864799, 11628995921, 11629127017, + 11629258093, 11629389179, 11629520257, 11629651339, 11629782443, 11629913521, 11630044627, + 11630175719, 11630306791, 11630437873, 11630568959, 11630700043, 11630831137, 11630962237, + 11631093311, 11631224483, 11631355633, 11631486739, 11631617819, 11631748957, 11631880049, + 11632011121, 11632142243, 11632273321, 11632404439, 11632535527, 11632666613, 11632797707, + 11632928821, 11633059901, 11633190973, 11633322059, 11633453131, 11633584213, 11633715293, + 11633846387, 11633977483, 11634108571, 11634239671, 11634370777, 11634501863, 11634632969, + 11634764041, 11634895121, 11635026199, 11635157299, 11635288397, 11635419511, 11635550599, + 11635681691, 11635812791, 11635943863, 11636074991, 11636206063, 11636337137, 11636468209, + 11636599283, 11636730359, 11636861443, 11636992553, 11637123643, 11637254753, 11637385847, + 11637516959, 11637648049, 11637779123, 11637910199, 11638041281, 11638172389, 11638303477, + 11638434571, 11638565651, 11638696777, 11638827859, 11638958957, 11639090033, 11639221129, + 11639352301, 11639483521, 11639614633, 11639745721, 11639876861, 11640007979, 11640139079, + 11640270221, 11640401293, 11640532403, 11640663491, 11640794573, 11640925687, 11641056787, + 11641187879, 11641319003, 11641450099, 11641581191, 11641712287, 11641843387, 11641974473, + 11642105549, 11642236649, 11642367727, 11642498809, 11642629891, 11642761003, 11642892091, + 11643023191, 11643154273, 11643285347, 11643416441, 11643547519, 11643678619, 11643809803, + 11643940879, 11644072001, 11644203097, 11644334183, 11644465291, 11644596389, 11644727461, + 11644858597, 11644989673, 11645120749, 11645251847, 11645382919, 11645513993, 11645645069, + 11645776141, 11645907223, 11646038297, 11646169369, 11646300451, 11646431561, 11646562643, + 11646693733, 11646824857, 11646955933, 11647087019, 11647218113, 11647349191, 11647480267, + 11647611341, 11647742459, 11647873537, 11648004617, 11648135689, 11648266801, 11648397881, + 11648528993, 11648660071, 11648791157, 11648922239, 11649053333, 11649184453, 11649315533, + 11649446621, 11649577703, 11649708787, 11649839879, 11649970963, 11650102081, 11650233167, + 11650364239, 11650495327, 11650626401, 11650757491, 11650888589, 11651019689, 11651150783, + 11651281883, 11651412967, 11651544043, 11651675153, 11651806241, 11651937361, 11652068501, + 11652199583, 11652330673, 11652461767, 11652592877, 11652724037, 11652855131, 11652986203, + 11653117277, 11653248371, 11653379483, 11653510567, 11653641641, 11653772737, 11653903813, + 11654034907, 11654165981, 11654297069, 11654428147, 11654559221, 11654690293, 11654821421, + 11654952523, 11655083647, 11655214721, 11655345803, 11655476909, 11655607987, 11655739093, + 11655870167, 11656001239, 11656132337, 11656263419, 11656394513, 11656525597, 11656656689, + 11656787761, 11656918843, 11657049973, 11657181071, 11657312159, 11657443241, 11657574319, + 11657705407, 11657836493, 11657967569, 11658098659, 11658229733, 11658360817, 11658491891, + 11658622999, 11658754099, 11658885211, 11659016293, 11659147391, 11659278479, 11659409551, + 11659540631, 11659671721, 11659802797, 11659933897, 11660064991, 11660196103, 11660327201, + 11660458273, 11660589377, 11660720453, 11660851529, 11660982617, 11661113731, 11661244817, + 11661375899, 11661507007, 11661638099, 11661769177, 11661900251, 11662031347, 11662162427, + 11662293509, 11662424581, 11662555759, 11662686853, 11662817981, 11662949063, 11663080139, + 11663211221, 11663342309, 11663473403, 11663604487, 11663735569, 11663866663, 11663997749, + 11664128821, 11664259903, 11664390979, 11664522073, 11664653153, 11664784249, 11664915341, + 11665046429, 11665177501, 11665308581, 11665439659, 11665570783, 11665701893, 11665832977, + 11665964131, 11666095219, 11666226293, 11666357377, 11666488453, 11666619527, 11666750611, + 11666881693, 11667012769, 11667143863, 11667274937, 11667406013, 11667537131, 11667668227, + 11667799307, 11667930389, 11668061467, 11668192553, 11668323629, 11668454701, 11668585787, + 11668716881, 11668847963, 11668979051, 11669110151, 11669241277, 11669372359, 11669503451, + 11669634523, 11669765603, 11669896697, 11670027781, 11670158869, 11670289987, 11670421093, + 11670552181, 11670683261, 11670814361, 11670945437, 11671076531, 11671207633, 11671338713, + 11671469791, 11671600883, 11671731971, 11671863053, 11671994129, 11672125237, 11672256311, + 11672387411, 11672518519, 11672649641, 11672780747, 11672911819, 11673042917, 11673174041, + 11673305113, 11673436219, 11673567299, 11673698371, 11673829451, 11673960589, 11674091711, + 11674222817, 11674353919, 11674484999, 11674616111, 11674747223, 11674878307, 11675009431, + 11675140511, 11675271589, 11675402671, 11675533747, 11675664829, 11675795909, 11675926993, + 11676058067, 11676189143, 11676320219, 11676451313, 11676582389, 11676713501, 11676844607, + 11676975697, 11677106801, 11677237877, 11677368953, 11677500031, 11677631113, 11677762189, + 11677893281, 11678024381, 11678155453, 11678286553, 11678417651, 11678548723, 11678679799, + 11678810881, 11678941957, 11679073061, 11679204137, 11679335267, 11679466339, 11679597427, + 11679728519, 11679859627, 11679990761, 11680121833, 11680252921, 11680383997, 11680515083, + 11680646171, 11680777243, 11680908383, 11681039459, 11681170561, 11681301637, 11681432753, + 11681563837, 11681694929, 11681826001, 11681957141, 11682088213, 11682219301, 11682350399, + 11682481511, 11682612583, 11682743711, 11682874811, 11683005899, 11683136977, 11683268053, + 11683399153, 11683530233, 11683661321, 11683792457, 11683923547, 11684054653, 11684185729, + 11684316811, 11684447897, 11684578973, 11684710087, 11684841167, 11684972251, 11685103343, + 11685234443, 11685365539, 11685496631, 11685627787, 11685758867, 11685889939, 11686021013, + 11686152151, 11686283227, 11686414307, 11686545379, 11686676461, 11686807547, 11686938673, + 11687069761, 11687200901, 11687331983, 11687463061, 11687594137, 11687725219, 11687856307, + 11687987413, 11688118513, 11688249593, 11688380677, 11688511763, 11688642877, 11688774001, + 11688905077, 11689036211, 11689167311, 11689298393, 11689429481, 11689560581, 11689691669, + 11689822741, 11689953823, 11690084897, 11690215973, 11690347117, 11690478193, 11690609269, + 11690740343, 11690871421, 11691002513, 11691133609, 11691264707, 11691395783, 11691526859, + 11691657931, 11691789007, 11691920089, 11692051177, 11692182269, 11692313357, 11692444429, + 11692575563, 11692706653, 11692837733, 11692968817, 11693099897, 11693230979, 11693362063, + 11693493151, 11693624251, 11693755369, 11693886469, 11694017549, 11694148637, 11694279731, + 11694410803, 11694541891, 11694673009, 11694804083, 11694935159, 11695066283, 11695197391, + 11695328473, 11695459571, 11695590649, 11695721749, 11695852841, 11695983913, 11696114987, + 11696246087, 11696377163, 11696508253, 11696639371, 11696770453, 11696901529, 11697032617, + 11697163703, 11697294781, 11697425869, 11697557023, 11697688097, 11697819179, 11697950269, + 11698081427, 11698212503, 11698343593, 11698474687, 11698605773, 11698736869, 11698867949, + 11698999027, 11699130101, 11699261183, 11699392279, 11699523373, 11699654497, 11699785571, + 11699916673, 11700047803, 11700178883, 11700309961, 11700441043, 11700572119, 11700703199, + 11700834329, 11700965447, 11701096607, 11701227683, 11701358819, 11701489999, 11701621079, + 11701752157, 11701883269, 11702014349, 11702145439, 11702276611, 11702407709, 11702538791, + 11702669939, 11702801053, 11702932127, 11703063199, 11703194389, 11703325489, 11703456563, + 11703587647, 11703718729, 11703849809, 11703980887, 11704111999, 11704243087, 11704374173, + 11704505249, 11704636327, 11704767419, 11704898537, 11705029627, 11705160787, 11705291881, + 11705422973, 11705554057, 11705685139, 11705816249, 11705947373, 11706078451, 11706209539, + 11706340631, 11706471727, 11706602801, 11706733877, 11706864973, 11706996047, 11707127161, + 11707258261, 11707389409, 11707520483, 11707651573, 11707782659, 11707913761, 11708044841, + 11708175943, 11708307019, 11708438129, 11708569259, 11708700331, 11708831419, 11708962493, + 11709093569, 11709224671, 11709355753, 11709486889, 11709617981, 11709749083, 11709880183, + 11710011283, 11710142363, 11710273447, 11710404557, 11710535647, 11710666769, 11710797853, + 11710928959, 11711060057, 11711191153, 11711322241, 11711453363, 11711584459, 11711715541, + 11711846623, 11711977751, 11712108847, 11712239969, 11712371057, 11712502133, 11712633211, + 11712764299, 11712895379, 11713026473, 11713157579, 11713288667, 11713419749, 11713550831, + 11713681907, 11713813021, 11713944101, 11714075203, 11714206297, 11714337421, 11714468501, + 11714599643, 11714730739, 11714861861, 11714992957, 11715124061, 11715255133, 11715386213, + 11715517301, 11715648389, 11715779497, 11715910643, 11716041739, 11716172821, 11716303919, + 11716435009, 11716566089, 11716697207, 11716828283, 11716959403, 11717090507, 11717221597, + 11717352677, 11717483783, 11717614861, 11717745937, 11717877053, 11718008161, 11718139261, + 11718270359, 11718401437, 11718532517, 11718663637, 11718794713, 11718925831, 11719056983, + 11719188059, 11719319147, 11719450247, 11719581323, 11719712419, 11719843501, 11719974589, + 11720105687, 11720236763, 11720367859, 11720498939, 11720630011, 11720761123, 11720892217, + 11721023309, 11721154381, 11721285503, 11721416579, 11721547693, 11721678769, 11721809851, + 11721940927, 11722072001, 11722203089, 11722334213, 11722465291, 11722596397, 11722727479, + 11722858559, 11722989661, 11723120749, 11723251829, 11723382901, 11723514013, 11723645099, + 11723776213, 11723907311, 11724038387, 11724169489, 11724300613, 11724431699, 11724562781, + 11724693899, 11724824983, 11724956081, 11725087193, 11725218287, 11725349359, 11725480433, + 11725611511, 11725742617, 11725873697, 11726004791, 11726135873, 11726267017, 11726398097, + 11726529173, 11726660249, 11726791327, 11726922401, 11727053473, 11727184561, 11727315643, + 11727446749, 11727577843, 11727708919, 11727839993, 11727971071, 11728102151, 11728233239, + 11728364341, 11728495423, 11728626523, 11728757611, 11728888729, 11729019817, 11729150899, + 11729281973, 11729413061, 11729544133, 11729675207, 11729806279, 11729937377, 11730068479, + 11730199561, 11730330649, 11730461753, 11730592847, 11730723997, 11730855119, 11730986191, + 11731117289, 11731248407, 11731379479, 11731510577, 11731641653, 11731772747, 11731903823, + 11732034907, 11732165993, 11732297089, 11732428207, 11732559313, 11732690413, 11732821487, + 11732952587, 11733083671, 11733214789, 11733345893, 11733476971, 11733608059, 11733739141, + 11733870217, 11734001311, 11734132439, 11734263551, 11734394647, 11734525729, 11734656811, + 11734787903, 11734919011, 11735050091, 11735181167, 11735312257, 11735443361, 11735574437, + 11735705533, 11735836621, 11735967701, 11736098791, 11736229873, 11736360967, 11736492121, + 11736623207, 11736754283, 11736885359, 11737016443, 11737147529, 11737278617, 11737409701, + 11737540777, 11737671877, 11737802953, 11737934029, 11738065121, 11738196209, 11738327287, + 11738458379, 11738589461, 11738720551, 11738851627, 11738982721, 11739113807, 11739244897, + 11739376013, 11739507089, 11739638177, 11739769259, 11739900371, 11740031449, 11740162559, + 11740293661, 11740424777, 11740555901, 11740686983, 11740818079, 11740949189, 11741080261, + 11741211371, 11741342447, 11741473559, 11741604643, 11741735743, 11741866817, 11741997893, + 11742128977, 11742260093, 11742391201, 11742522277, 11742653359, 11742784441, 11742915517, + 11743046591, 11743177681, 11743308767, 11743439857, 11743570961, 11743702073, 11743833149, + 11743964251, 11744095327, 11744226407, 11744357507, 11744488603, 11744619727, 11744750827, + 11744881903, 11745013009, 11745144109, 11745275279, 11745406357, 11745537449, 11745668549, + 11745799631, 11745930731, 11746061807, 11746192903, 11746324013, 11746455089, 11746586161, + 11746717237, 11746848331, 11746979407, 11747110489, 11747241589, 11747372669, 11747503751, + 11747634851, 11747765927, 11747897033, 11748028129, 11748159251, 11748290383, 11748421457, + 11748552547, 11748683621, 11748814703, 11748945847, 11749076929, 11749208017, 11749339093, + 11749470193, 11749601291, 11749732391, 11749863479, 11749994561, 11750125643, 11750256731, + 11750387809, 11750518931, 11750650003, 11750781101, 11750912203, 11751043279, 11751174427, + 11751305551, 11751436633, 11751567731, 11751698809, 11751829927, 11751961019, 11752092139, + 11752223251, 11752354333, 11752485427, 11752616501, 11752747577, 11752878779, 11753009861, + 11753140939, 11753272019, 11753403107, 11753534183, 11753665289, 11753796371, 11753927443, + 11754058531, 11754189677, 11754320749, 11754451871, 11754582943, 11754714047, 11754845149, + 11754976223, 11755107319, 11755238419, 11755369511, 11755500599, 11755631687, 11755762801, + 11755893881, 11756025013, 11756156101, 11756287181, 11756418277, 11756549353, 11756680433, + 11756811527, 11756942627, 11757073709, 11757204793, 11757335873, 11757466957, 11757598033, + 11757729107, 11757860183, 11757991277, 11758122419, 11758253513, 11758384597, 11758515673, + 11758646747, 11758777837, 11758908929, 11759040047, 11759171143, 11759302241, 11759433313, + 11759564413, 11759695501, 11759826581, 11759957681, 11760088777, 11760219857, 11760350963, + 11760482039, 11760613187, 11760744301, 11760875393, 11761006469, 11761137547, 11761268689, + 11761399787, 11761530871, 11761661957, 11761793051, 11761924151, 11762055223, 11762186297, + 11762317373, 11762448449, 11762579533, 11762710607, 11762841683, 11762972761, 11763103841, + 11763234961, 11763366049, 11763497147, 11763628243, 11763759347, 11763890429, 11764021501, + 11764152623, 11764283719, 11764414807, 11764545893, 11764676969, 11764808063, 11764939163, + 11765070257, 11765201347, 11765332429, 11765463557, 11765594657, 11765725753, 11765856827, + 11765987911, 11766118997, 11766250079, 11766381169, 11766512273, 11766643349, 11766774421, + 11766905497, 11767036573, 11767167653, 11767298791, 11767429867, 11767560943, 11767692029, + 11767823129, 11767954213, 11768085289, 11768216377, 11768347489, 11768478577, 11768609653, + 11768740741, 11768871839, 11769002911, 11769134059, 11769265169, 11769396241, 11769527323, + 11769658403, 11769789481, 11769920563, 11770051661, 11770182761, 11770313873, 11770444979, + 11770576109, 11770707191, 11770838269, 11770969361, 11771100433, 11771231551, 11771362627, + 11771493707, 11771624797, 11771755871, 11771886953, 11772018103, 11772149177, 11772280259, + 11772411331, 11772542413, 11772673531, 11772804629, 11772935701, 11773066807, 11773197881, + 11773328977, 11773460093, 11773591169, 11773722253, 11773853369, 11773984447, 11774115533, + 11774246609, 11774377687, 11774508773, 11774639867, 11774770981, 11774902093, 11775033167, + 11775164251, 11775295331, 11775426407, 11775557491, 11775688591, 11775819667, 11775950741, + 11776081843, 11776212967, 11776344061, 11776475149, 11776606223, 11776737319, 11776868431, + 11776999517, 11777130593, 11777261669, 11777392747, 11777523827, 11777654921, 11777786023, + 11777917121, 11778048193, 11778179269, 11778310343, 11778441469, 11778572581, 11778703661, + 11778834733, 11778965819, 11779096891, 11779228009, 11779359133, 11779490231, 11779621307, + 11779752389, 11779883501, 11780014607, 11780145703, 11780276843, 11780407921, 11780539009, + 11780670103, 11780801189, 11780932279, 11781063367, 11781194501, 11781325579, 11781456667, + 11781587747, 11781718829, 11781849901, 11781980999, 11782112071, 11782243157, 11782374277, + 11782505351, 11782636433, 11782767509, 11782898581, 11783029667, 11783160749, 11783291857, + 11783422949, 11783554031, 11783685103, 11783816221, 11783947297, 11784078373, 11784209453, + 11784340591, 11784471691, 11784602771, 11784733861, 11784864947, 11784996019, 11785127099, + 11785258187, 11785389263, 11785520347, 11785651459, 11785782553, 11785913627, 11786044703, + 11786175787, 11786306891, 11786437967, 11786569111, 11786700187, 11786831327, 11786962403, + 11787093509, 11787224593, 11787355667, 11787486743, 11787617837, 11787748937, 11787880063, + 11788011139, 11788142221, 11788273309, 11788404389, 11788535461, 11788666553, 11788797641, + 11788928729, 11789059801, 11789190901, 11789322001, 11789453077, 11789584171, 11789715257, + 11789846329, 11789977417, 11790108493, 11790239621, 11790370727, 11790501817, 11790632891, + 11790763981, 11790895069, 11791026157, 11791157233, 11791288343, 11791419449, 11791550579, + 11791681669, 11791812763, 11791943843, 11792074919, 11792206001, 11792337091, 11792468167, + 11792599243, 11792730337, 11792861411, 11792992489, 11793123611, 11793254731, 11793385819, + 11793516919, 11793648019, 11793779093, 11793910187, 11794041313, 11794172389, 11794303487, + 11794434563, 11794565639, 11794696721, 11794827799, 11794958881, 11795089987, 11795221103, + 11795352181, 11795483311, 11795614399, 11795745487, 11795876579, 11796007661, 11796138737, + 11796269827, 11796400901, 11796531991, 11796663079, 11796794171, 11796925319, 11797056391, + 11797187477, 11797318571, 11797449679, 11797580759, 11797711831, 11797842911, 11797973987, + 11798105063, 11798236189, 11798367307, 11798498429, 11798629559, 11798760653, 11798891743, + 11799022817, 11799153913, 11799285041, 11799416131, 11799547211, 11799678283, 11799809431, + 11799940513, 11800071587, 11800202663, 11800333789, 11800464911, 11800596001, 11800727129, + 11800858247, 11800989329, 11801120407, 11801251489, 11801382577, 11801513651, 11801644733, + 11801775809, 11801906881, 11802037981, 11802169069, 11802300149, 11802431231, 11802562337, + 11802693421, 11802824503, 11802955597, 11803086671, 11803217773, 11803348877, 11803479983, + 11803611077, 11803742149, 11803873229, 11804004343, 11804135449, 11804266541, 11804397643, + 11804528759, 11804659859, 11804790941, 11804922013, 11805053087, 11805184159, 11805315259, + 11805446333, 11805577409, 11805708493, 11805839581, 11805970661, 11806101739, 11806232813, + 11806363903, 11806494989, 11806626109, 11806757231, 11806888319, 11807019431, 11807150569, + 11807281657, 11807412737, 11807543819, 11807674927, 11807806013, 11807937131, 11808068213, + 11808199297, 11808330371, 11808461453, 11808592577, 11808723653, 11808854737, 11808985813, + 11809116901, 11809248007, 11809379081, 11809510177, 11809641289, 11809772371, 11809903463, + 11810034541, 11810165651, 11810296769, 11810427851, 11810558941, 11810690039, 11810821117, + 11810952211, 11811083287, 11811214399, 11811345473, 11811476581, 11811607663, 11811738769, + 11811869869, 11812000951, 11812132039, 11812263131, 11812394207, 11812525279, 11812656367, + 11812787449, 11812918541, 11813049613, 11813180693, 11813311771, 11813442937, 11813574029, + 11813705159, 11813836259, 11813967331, 11814098467, 11814229541, 11814360631, 11814491723, + 11814622811, 11814753893, 11814884987, 11815016071, 11815147189, 11815278311, 11815409399, + 11815540483, 11815671557, 11815802651, 11815933741, 11816064833, 11816195917, 11816326997, + 11816458091, 11816589167, 11816720243, 11816851331, 11816982451, 11817113587, 11817244687, + 11817375797, 11817506879, 11817638003, 11817769099, 11817900191, 11818031263, 11818162337, + 11818293437, 11818424509, 11818555597, 11818686701, 11818817783, 11818948871, 11819079973, + 11819211077, 11819342149, 11819473223, 11819604299, 11819735393, 11819866523, 11819997599, + 11820128699, 11820259777, 11820390859, 11820522031, 11820653111, 11820784193, 11820915299, + 11821046399, 11821177493, 11821308571, 11821439647, 11821570723, 11821701803, 11821832881, + 11821963957, 11822095037, 11822226109, 11822357221, 11822488303, 11822619379, 11822750473, + 11822881547, 11823012659, 11823143743, 11823274819, 11823405901, 11823536983, 11823668111, + 11823799241, 11823930343, 11824061419, 11824192493, 11824323569, 11824454657, 11824585733, + 11824716863, 11824847959, 11824979057, 11825110133, 11825241217, 11825372291, 11825503369, + 11825634481, 11825765557, 11825896657, 11826027761, 11826158857, 11826289931, 11826421003, + 11826552077, 11826683159, 11826814277, 11826945349, 11827076423, 11827207517, 11827338623, + 11827469713, 11827600847, 11827731931, 11827863007, 11827994117, 11828125193, 11828256281, + 11828387369, 11828518517, 11828649593, 11828780669, 11828911777, 11829042871, 11829173981, + 11829305063, 11829436159, 11829567241, 11829698317, 11829829399, 11829960487, 11830091573, + 11830222673, 11830353751, 11830484849, 11830615921, 11830747021, 11830878121, 11831009213, + 11831140301, 11831271377, 11831402459, 11831533541, 11831664619, 11831795707, 11831926789, + 11832057863, 11832188941, 11832320029, 11832451109, 11832582187, 11832713281, 11832844363, + 11832975449, 11833106587, 11833237679, 11833368751, 11833499833, 11833630933, 11833762007, + 11833893079, 11834024159, 11834155231, 11834286367, 11834417453, 11834548541, 11834679653, + 11834810731, 11834941829, 11835072911, 11835203993, 11835335081, 11835466171, 11835597253, + 11835728353, 11835859457, 11835990539, 11836121639, 11836252723, 11836383799, 11836514887, + 11836646039, 11836777123, 11836908197, 11837039281, 11837170357, 11837301449, 11837432561, + 11837563649, 11837694749, 11837825833, 11837956913, 11838087991, 11838219067, 11838350189, + 11838481313, 11838612391, 11838743467, 11838874547, 11839005631, 11839136707, 11839267837, + 11839398913, 11839530007, 11839661087, 11839792169, 11839923247, 11840054321, 11840185393, + 11840316473, 11840447573, 11840578759, 11840709901, 11840840981, 11840972063, 11841103147, + 11841234227, 11841365299, 11841496379, 11841627451, 11841758543, 11841889621, 11842020721, + 11842151801, 11842282901, 11842414009, 11842545097, 11842676171, 11842807243, 11842938319, + 11843069393, 11843200477, 11843331559, 11843462713, 11843593787, 11843724859, 11843856007, + 11843987081, 11844118193, 11844249283, 11844380363, 11844511489, 11844642569, 11844773651, + 11844904777, 11845035887, 11845166969, 11845298051, 11845429153, 11845560229, 11845691317, + 11845822397, 11845953479, 11846084557, 11846215643, 11846346737, 11846477809, 11846608901, + 11846740007, 11846871137, 11847002249, 11847133351, 11847264449, 11847395543, 11847526633, + 11847657739, 11847788861, 11847919933, 11848051021, 11848182133, 11848313233, 11848444343, + 11848575421, 11848706503, 11848837591, 11848968667, 11849099771, 11849230849, 11849361929, + 11849493083, 11849624179, 11849755367, 11849886463, 11850017537, 11850148649, 11850279737, + 11850410833, 11850541931, 11850673033, 11850804107, 11850935183, 11851066267, 11851197343, + 11851328441, 11851459519, 11851590593, 11851721689, 11851852783, 11851983883, 11852114993, + 11852246069, 11852377193, 11852508277, 11852639369, 11852770441, 11852901527, 11853032623, + 11853163703, 11853294781, 11853425869, 11853556963, 11853688069, 11853819149, 11853950231, + 11854081303, 11854212389, 11854343461, 11854474537, 11854605689, 11854736791, 11854867903, + 11854998983, 11855130059, 11855261141, 11855392243, 11855523367, 11855654443, 11855785553, + 11855916643, 11856047719, 11856178801, 11856309901, 11856440977, 11856572069, 11856703151, + 11856834247, 11856965321, 11857096417, 11857227509, 11857358599, 11857489673, 11857620763, + 11857751849, 11857882979, 11858014061, 11858145139, 11858276239, 11858407331, 11858538413, + 11858669503, 11858800627, 11858931701, 11859062773, 11859193849, 11859324941, 11859456017, + 11859587119, 11859718223, 11859849319, 11859980393, 11860111511, 11860242619, 11860373711, + 11860504793, 11860635887, 11860766963, 11860898041, 11861029151, 11861160247, 11861291341, + 11861422453, 11861553527, 11861684617, 11861815699, 11861946793, 11862077869, 11862208973, + 11862340067, 11862471151, 11862602243, 11862733411, 11862864509, 11862995581, 11863126663, + 11863257739, 11863388843, 11863519919, 11863651003, 11863782079, 11863913167, 11864044249, + 11864175341, 11864306431, 11864437517, 11864568619, 11864699699, 11864830841, 11864961923, + 11865093013, 11865224113, 11865355189, 11865486323, 11865617399, 11865748481, 11865879583, + 11866010669, 11866141741, 11866272823, 11866403911, 11866534991, 11866666067, 11866797167, + 11866928263, 11867059343, 11867190457, 11867321539, 11867452613, 11867583709, 11867714783, + 11867845883, 11867977019, 11868108097, 11868239231, 11868370307, 11868501391, 11868632471, + 11868763547, 11868894637, 11869025713, 11869156841, 11869287961, 11869419071, 11869550159, + 11869681247, 11869812341, 11869943413, 11870074549, 11870205637, 11870336741, 11870467841, + 11870598919, 11870730013, 11870861129, 11870992207, 11871123281, 11871254387, 11871385483, + 11871516599, 11871647699, 11871778783, 11871909871, 11872040981, 11872172057, 11872303193, + 11872434293, 11872565377, 11872696477, 11872827581, 11872958653, 11873089747, 11873220823, + 11873351899, 11873482991, 11873614069, 11873745161, 11873876233, 11874007337, 11874138467, + 11874269557, 11874400691, 11874531769, 11874662851, 11874793927, 11874925019, 11875056163, + 11875187239, 11875318333, 11875449427, 11875580527, 11875711619, 11875842691, 11875973779, + 11876104861, 11876235947, 11876367023, 11876498107, 11876629183, 11876760299, 11876891419, + 11877022501, 11877153677, 11877284777, 11877415867, 11877546949, 11877678023, 11877809137, + 11877940211, 11878071299, 11878202377, 11878333471, 11878464557, 11878595629, 11878726703, + 11878857787, 11878988893, 11879119969, 11879251123, 11879382223, 11879513369, 11879644451, + 11879775553, 11879906651, 11880037759, 11880168869, 11880299953, 11880431029, 11880562139, + 11880693259, 11880824399, 11880955501, 11881086583, 11881217687, 11881348769, 11881479881, + 11881610969, 11881742071, 11881873151, 11882004241, 11882135327, 11882266421, 11882397521, + 11882528639, 11882659741, 11882790889, 11882921971, 11883053051, 11883184129, 11883315203, + 11883446291, 11883577367, 11883708439, 11883839521, 11883970597, 11884101707, 11884232827, + 11884363943, 11884495057, 11884626133, 11884757219, 11884888313, 11885019401, 11885150491, + 11885281591, 11885412683, 11885543777, 11885674861, 11885805937, 11885937029, 11886068101, + 11886199207, 11886330331, 11886461459, 11886592577, 11886723659, 11886854761, 11886985841, + 11887116929, 11887248007, 11887379083, 11887510169, 11887641277, 11887772411, 11887903507, + 11888034581, 11888165657, 11888296781, 11888427869, 11888558947, 11888690063, 11888821163, + 11888952247, 11889083407, 11889214483, 11889345571, 11889476653, 11889607727, 11889738799, + 11889869897, 11890000981, 11890132073, 11890263173, 11890394273, 11890525369, 11890656461, + 11890787543, 11890918639, 11891049757, 11891180831, 11891311909, 11891442989, 11891574067, + 11891705191, 11891836283, 11891967359, 11892098443, 11892229519, 11892360619, 11892491713, + 11892622817, 11892753973, 11892885073, 11893016147, 11893147219, 11893278301, 11893409383, + 11893540469, 11893671593, 11893802689, 11893933783, 11894064869, 11894196001, 11894327087, + 11894458207, 11894589281, 11894720353, 11894851433, 11894982511, 11895113621, 11895244717, + 11895375799, 11895506879, 11895637969, 11895769049, 11895900131, 11896031243, 11896162351, + 11896293499, 11896424597, 11896555679, 11896686761, 11896817839, 11896948939, 11897080021, + 11897211103, 11897342183, 11897473277, 11897604391, 11897735467, 11897866549, 11897997673, + 11898128773, 11898259859, 11898390943, 11898522017, 11898653167, 11898784243, 11898915337, + 11899046429, 11899177553, 11899308691, 11899439771, 11899570843, 11899701929, 11899833013, + 11899964117, 11900095213, 11900226301, 11900357377, 11900488463, 11900619553, 11900750657, + 11900881771, 11901012917, 11901144007, 11901275101, 11901406183, 11901537269, 11901668357, + 11901799439, 11901930511, 11902061621, 11902192739, 11902323827, 11902454903, 11902585987, + 11902717063, 11902848161, 11902979237, 11903110309, 11903241403, 11903372483, 11903503607, + 11903634679, 11903765777, 11903896931, 11904028039, 11904159143, 11904290221, 11904421297, + 11904552377, 11904683503, 11904814613, 11904945707, 11905076801, 11905207877, 11905338967, + 11905470077, 11905601167, 11905732271, 11905863383, 11905994461, 11906125571, 11906256643, + 11906387723, 11906518801, 11906649883, 11906780971, 11906912053, 11907043153, 11907174241, + 11907305327, 11907436399, 11907567473, 11907698599, 11907829679, 11907960767, 11908091849, + 11908222943, 11908354027, 11908485101, 11908616197, 11908747297, 11908878379, 11909009479, + 11909140571, 11909271707, 11909402797, 11909533871, 11909664961, 11909796053, 11909927173, + 11910058301, 11910189377, 11910320467, 11910451543, 11910582623, 11910713729, 11910844871, + 11910975943, 11911107031, 11911238113, 11911369213, 11911500299, 11911631377, 11911762463, + 11911893547, 11912024639, 11912155729, 11912286809, 11912417887, 11912548993, 11912680067, + 11912811143, 11912942227, 11913073303, 11913204439, 11913335549, 11913466639, 11913597719, + 11913728803, 11913859949, 11913991043, 11914122119, 11914253201, 11914384309, 11914515391, + 11914646467, 11914777559, 11914908647, 11915039749, 11915170867, 11915301943, 11915433031, + 11915564123, 11915695201, 11915826287, 11915957363, 11916088439, 11916219517, 11916350597, + 11916481697, 11916612787, 11916743869, 11916875029, 11917006109, 11917137187, 11917268281, + 11917399363, 11917530467, 11917661579, 11917792657, 11917923733, 11918054809, 11918185891, + 11918317003, 11918448089, 11918579161, 11918710343, 11918841427, 11918972503, 11919103577, + 11919234673, 11919365749, 11919496829, 11919627919, 11919758999, 11919890113, 11920021199, + 11920152287, 11920283387, 11920414459, 11920545577, 11920676681, 11920807763, 11920938839, + 11921069911, 11921201077, 11921332153, 11921463263, 11921594341, 11921725429, 11921856521, + 11921987593, 11922118669, 11922249763, 11922380837, 11922511943, 11922643063, 11922774139, + 11922905219, 11923036361, 11923167433, 11923298521, 11923429597, 11923560697, 11923691807, + 11923822891, 11923953973, 11924085137, 11924216221, 11924347297, 11924478373, 11924609471, + 11924740543, 11924871661, 11925002741, 11925133823, 11925264929, 11925396001, 11925527083, + 11925658163, 11925789263, 11925920407, 11926051507, 11926182641, 11926313723, 11926444801, + 11926575877, 11926706963, 11926838069, 11926969141, 11927100221, 11927231293, 11927362393, + 11927493469, 11927624543, 11927755621, 11927886703, 11928017789, 11928148861, 11928279991, + 11928411091, 11928542207, 11928673279, 11928804361, 11928935489, 11929066561, 11929197649, + 11929328729, 11929459823, 11929590923, 11929722011, 11929853083, 11929984159, 11930115277, + 11930246353, 11930377427, 11930508509, 11930639599, 11930770673, 11930901751, 11931032833, + 11931163921, 11931295003, 11931426077, 11931557189, 11931688261, 11931819343, 11931950431, + 11932081517, 11932212601, 11932343701, 11932474781, 11932605859, 11932736939, 11932868011, + 11932999103, 11933130197, 11933261279, 11933392411, 11933523521, 11933654617, 11933785709, + 11933916793, 11934047891, 11934178979, 11934310051, 11934441151, 11934572263, 11934703349, + 11934834523, 11934965599, 11935096673, 11935227749, 11935358899, 11935489987, 11935621091, + 11935752193, 11935883329, 11936014421, 11936145517, 11936276593, 11936407669, 11936538751, + 11936669831, 11936800973, 11936932087, 11937063161, 11937194233, 11937325307, 11937456407, + 11937587503, 11937718577, 11937849709, 11937980797, 11938111877, 11938242973, 11938374047, + 11938505147, 11938636247, 11938767341, 11938898441, 11939029523, 11939160601, 11939291699, + 11939422771, 11939553863, 11939684947, 11939816027, 11939947133, 11940078209, 11940209327, + 11940340403, 11940471493, 11940602581, 11940733691, 11940864763, 11940995839, 11941126949, + 11941258027, 11941389121, 11941520209, 11941651283, 11941782361, 11941913447, 11942044537, + 11942175613, 11942306689, 11942437777, 11942568857, 11942699939, 11942831027, 11942962123, + 11943093221, 11943224299, 11943355379, 11943486517, 11943617611, 11943748741, 11943879823, + 11944010927, 11944141999, 11944273073, 11944404181, 11944535363, 11944666439, 11944797517, + 11944928617, 11945059699, 11945190781, 11945321867, 11945452963, 11945584103, 11945715211, + 11945846291, 11945977403, 11946108527, 11946239611, 11946370699, 11946501793, 11946632891, + 11946763979, 11946895117, 11947026211, 11947157293, 11947288393, 11947419487, 11947550591, + 11947681663, 11947812757, 11947943849, 11948074933, 11948206007, 11948337109, 11948468183, + 11948599303, 11948730389, 11948861471, 11948992543, 11949123629, 11949254711, 11949385787, + 11949516877, 11949647951, 11949779057, 11949910151, 11950041227, 11950172309, 11950303427, + 11950434499, 11950565587, 11950696663, 11950827743, 11950958839, 11951089949, 11951221033, + 11951352109, 11951483233, 11951614331, 11951745409, 11951876491, 11952007567, 11952138683, + 11952269767, 11952400843, 11952531919, 11952662993, 11952794153, 11952925247, 11953056331, + 11953187443, 11953318541, 11953449653, 11953580759, 11953711837, 11953842941, 11953974017, + 11954105117, 11954236193, 11954367283, 11954498399, 11954629499, 11954760583, 11954891693, + 11955022769, 11955153853, 11955284941, 11955416017, 11955547103, 11955678181, 11955809263, + 11955940391, 11956071481, 11956202569, 11956333651, 11956464743, 11956595831, 11956726927, + 11956858027, 11956989103, 11957120183, 11957251283, 11957382397, 11957513489, 11957644607, + 11957775749, 11957906843, 11958037919, 11958169001, 11958300077, 11958431153, 11958562249, + 11958693343, 11958824417, 11958955493, 11959086583, 11959217707, 11959348787, 11959479941, + 11959611043, 11959742143, 11959873231, 11960004307, 11960135387, 11960266459, 11960397539, + 11960528621, 11960659699, 11960790773, 11960921873, 11961052973, 11961184073, 11961315151, + 11961446303, 11961577379, 11961708461, 11961839579, 11961970673, 11962101803, 11962232899, + 11962363981, 11962495067, 11962626139, 11962757221, 11962888331, 11963019403, 11963150483, + 11963281559, 11963412653, 11963543729, 11963674829, 11963805929, 11963937019, 11964068093, + 11964199187, 11964330263, 11964461389, 11964592487, 11964723569, 11964854659, 11964985757, + 11965116853, 11965247941, 11965379017, 11965510127, 11965641203, 11965772281, 11965903361, + 11966034463, 11966165537, 11966296609, 11966427689, 11966558761, 11966689841, 11966820919, + 11966951999, 11967083081, 11967214183, 11967345259, 11967476333, 11967607409, 11967738481, + 11967869597, 11968000703, 11968131779, 11968262927, 11968394017, 11968525091, 11968656181, + 11968787263, 11968918363, 11969049467, 11969180539, 11969311631, 11969442721, 11969573807, + 11969704897, 11969835989, 11969967089, 11970098183, 11970229279, 11970360397, 11970491479, + 11970622561, 11970753637, 11970884719, 11971015799, 11971146893, 11971277977, 11971409077, + 11971540169, 11971671251, 11971802327, 11971933411, 11972064491, 11972195581, 11972326661, + 11972457769, 11972588867, 11972719939, 11972851013, 11972982089, 11973113189, 11973244291, + 11973375431, 11973506579, 11973637657, 11973768773, 11973899851, 11974030961, 11974162049, + 11974293167, 11974424239, 11974555361, 11974686511, 11974817641, 11974948717, 11975079791, + 11975210869, 11975341957, 11975473057, 11975604131, 11975735227, 11975866313, 11975997389, + 11976128501, 11976259583, 11976390661, 11976521747, 11976652819, 11976783901, 11976914977, + 11977046051, 11977177133, 11977308257, 11977439329, 11977570421, 11977701503, 11977832591, + 11977963687, 11978094803, 11978225957, 11978357033, 11978488111, 11978619193, 11978750291, + 11978881363, 11979012457, 11979143537, 11979274609, 11979405689, 11979536773, 11979667927, + 11979799001, 11979930119, 11980061201, 11980192351, 11980323427, 11980454527, 11980585649, + 11980716763, 11980847899, 11980978987, 11981110087, 11981241191, 11981372269, 11981503363, + 11981634437, 11981765539, 11981896631, 11982027709, 11982158801, 11982289883, 11982420959, + 11982552031, 11982683123, 11982814211, 11982945349, 11983076459, 11983207553, 11983338659, + 11983469741, 11983600841, 11983731941, 11983863049, 11983994137, 11984125211, 11984256331, + 11984387461, 11984518549, 11984649643, 11984780719, 11984911819, 11985042919, 11985173999, + 11985305093, 11985436171, 11985567257, 11985698359, 11985829433, 11985960563, 11986091647, + 11986222727, 11986353817, 11986484911, 11986615999, 11986747121, 11986878199, 11987009299, + 11987140393, 11987271469, 11987402543, 11987533627, 11987664739, 11987795843, 11987926919, + 11988058003, 11988189077, 11988320171, 11988451247, 11988582341, 11988713413, 11988844501, + 11988975631, 11989106711, 11989237783, 11989368857, 11989499939, 11989631023, 11989762123, + 11989893199, 11990024279, 11990155351, 11990286457, 11990417531, 11990548627, 11990679703, + 11990810801, 11990941873, 11991072971, 11991204053, 11991335159, 11991466237, 11991597313, + 11991728401, 11991859489, 11991990607, 11992121707, 11992252787, 11992383917, 11992515043, + 11992646129, 11992777207, 11992908283, 11993039413, 11993170499, 11993301583, 11993432761, + 11993563889, 11993694971, 11993826101, 11993957203, 11994088283, 11994219371, 11994350471, + 11994481561, 11994612649, 11994743743, 11994874823, 11995005917, 11995137029, 11995268101, + 11995399183, 11995530289, 11995661371, 11995792483, 11995923613, 11996054687, 11996185759, + 11996316833, 11996447917, 11996579011, 11996710157, 11996841229, 11996972303, 11997103397, + 11997234481, 11997365563, 11997496639, 11997627731, 11997758827, 11997889903, 11998020977, + 11998152059, 11998283147, 11998414229, 11998545323, 11998676429, 11998807501, 11998938593, + 11999069669, 11999200771, 11999331881, 11999462957, 11999594029, 11999725109, 11999856227, + 11999987333, 12000118447, 12000249523, 12000380657, 12000511729, 12000642803, 12000773893, + 12000904969, 12001036051, 12001167149, 12001298233, 12001429331, 12001560413, 12001691491, + 12001822601, 12001953683, 12002084761, 12002215837, 12002346991, 12002478067, 12002609141, + 12002740219, 12002871317, 12003002419, 12003133537, 12003264619, 12003395731, 12003526819, + 12003657937, 12003789013, 12003920113, 12004051207, 12004182299, 12004313437, 12004444513, + 12004575637, 12004706717, 12004837813, 12004968893, 12005099983, 12005231059, 12005362153, + 12005493229, 12005624329, 12005755457, 12005886583, 12006017657, 12006148757, 12006279833, + 12006410917, 12006542003, 12006673087, 12006804167, 12006935251, 12007066373, 12007197457, + 12007328539, 12007459637, 12007590709, 12007721827, 12007852943, 12007984039, 12008115139, + 12008246213, 12008377289, 12008508361, 12008639443, 12008770517, 12008901601, 12009032699, + 12009163787, 12009294877, 12009425959, 12009557033, 12009688111, 12009819191, 12009950317, + 12010081451, 12010212523, 12010343623, 12010474717, 12010605799, 12010736879, 12010867951, + 12010999031, 12011130107, 12011261201, 12011392273, 12011523373, 12011654483, 12011785571, + 12011916643, 12012047717, 12012178837, 12012309917, 12012441059, 12012572161, 12012703253, + 12012834367, 12012965443, 12013096517, 12013227607, 12013358729, 12013489811, 12013620923, + 12013751999, 12013883071, 12014014183, 12014145271, 12014276353, 12014407459, 12014538541, + 12014669621, 12014800781, 12014931853, 12015062933, 12015194011, 12015325087, 12015456169, + 12015587263, 12015718343, 12015849449, 12015980539, 12016111643, 12016242757, 12016373833, + 12016504933, 12016636033, 12016767107, 12016898197, 12017029279, 12017160371, 12017291501, + 12017422609, 12017553731, 12017684831, 12017815907, 12017947031, 12018078131, 12018209293, + 12018340381, 12018471523, 12018602639, 12018733711, 12018864787, 12018995887, 12019126961, + 12019258033, 12019389121, 12019520257, 12019651333, 12019782407, 12019913491, 12020044583, + 12020175691, 12020306797, 12020437901, 12020569003, 12020700079, 12020831171, 12020962243, + 12021093323, 12021224417, 12021355517, 12021486601, 12021617681, 12021748787, 12021879917, + 12022011019, 12022142107, 12022273189, 12022404281, 12022535353, 12022666433, 12022797529, + 12022928627, 12023059717, 12023190791, 12023321867, 12023452939, 12023584043, 12023715157, + 12023846231, 12023977331, 12024108427, 12024239503, 12024370619, 12024501703, 12024632803, + 12024763913, 12024894989, 12025026073, 12025157147, 12025288229, 12025419347, 12025550419, + 12025681519, 12025812599, 12025943729, 12026074811, 12026205923, 12026337053, 12026468159, + 12026599241, 12026730341, 12026861417, 12026992489, 12027123613, 12027254717, 12027385813, + 12027516899, 12027647971, 12027779053, 12027910127, 12028041203, 12028172297, 12028303379, + 12028434503, 12028565597, 12028696711, 12028827791, 12028958863, 12029089939, 12029221067, + 12029352151, 12029483251, 12029614351, 12029745449, 12029876533, 12030007631, 12030138719, + 12030269813, 12030400909, 12030531983, 12030663103, 12030794177, 12030925259, 12031056347, + 12031187447, 12031318531, 12031449613, 12031580707, 12031711781, 12031842863, 12031973957, + 12032105081, 12032236157, 12032367229, 12032498311, 12032629403, 12032760503, 12032891593, + 12033022667, 12033153751, 12033284827, 12033415903, 12033546989, 12033678061, 12033809191, + 12033940267, 12034071347, 12034202423, 12034333501, 12034464583, 12034595663, 12034726771, + 12034857859, 12034988969, 12035120057, 12035251141, 12035382221, 12035513327, 12035644421, + 12035775497, 12035906579, 12036037687, 12036168763, 12036299839, 12036430993, 12036562079, + 12036693233, 12036824309, 12036955409, 12037086491, 12037217587, 12037348667, 12037479743, + 12037610831, 12037741951, 12037873037, 12038004151, 12038135243, 12038266319, 12038397407, + 12038528479, 12038659681, 12038790767, 12038921887, 12039052969, 12039184043, 12039315133, + 12039446207, 12039577279, 12039708361, 12039839447, 12039970541, 12040101613, 12040232747, + 12040363837, 12040494923, 12040626001, 12040757189, 12040888273, 12041019371, 12041150453, + 12041281627, 12041412701, 12041543791, 12041674873, 12041805967, 12041937041, 12042068123, + 12042199199, 12042330323, 12042461399, 12042592543, 12042723683, 12042854773, 12042985891, + 12043116971, 12043248053, 12043379137, 12043510223, 12043641301, 12043772437, 12043903513, + 12044034593, 12044165687, 12044296769, 12044427851, 12044558963, 12044690041, 12044821121, + 12044952203, 12045083291, 12045214381, 12045345497, 12045476623, 12045607699, 12045738781, + 12045869903, 12046001017, 12046132097, 12046263211, 12046394291, 12046525367, 12046656439, + 12046787513, 12046918627, 12047049709, 12047180837, 12047311949, 12047443021, 12047574151, + 12047705249, 12047836391, 12047967467, 12048098539, 12048229643, 12048360719, 12048491797, + 12048622921, 12048754019, 12048885119, 12049016201, 12049147289, 12049278379, 12049409459, + 12049540561, 12049671649, 12049802773, 12049933859, 12050064991, 12050196079, 12050327153, + 12050458243, 12050589329, 12050720411, 12050851507, 12050982589, 12051113687, 12051244763, + 12051375851, 12051506963, 12051638059, 12051769133, 12051900233, 12052031347, 12052162429, + 12052293509, 12052424609, 12052555733, 12052686857, 12052817957, 12052949033, 12053080133, + 12053211211, 12053342299, 12053473379, 12053604461, 12053735543, 12053866633, 12053997721, + 12054128797, 12054259891, 12054390979, 12054522101, 12054653231, 12054784307, 12054915391, + 12055046473, 12055177553, 12055308649, 12055439729, 12055570801, 12055701893, 12055832989, + 12055964087, 12056095199, 12056226293, 12056357431, 12056488511, 12056619593, 12056750677, + 12056881751, 12057012829, 12057143909, 12057274993, 12057406087, 12057537169, 12057668243, + 12057799337, 12057930421, 12058061497, 12058192609, 12058323691, 12058454767, 12058585919, + 12058717031, 12058848103, 12058979183, 12059110277, 12059241367, 12059372453, 12059503529, + 12059634611, 12059765771, 12059896853, 12060027983, 12060159077, 12060290149, 12060421249, + 12060552341, 12060683419, 12060814559, 12060945661, 12061076737, 12061207811, 12061338889, + 12061469969, 12061601047, 12061732129, 12061863263, 12061994341, 12062125417, 12062256541, + 12062387627, 12062518739, 12062649817, 12062780893, 12062911981, 12063043081, 12063174163, + 12063305263, 12063436349, 12063567433, 12063698527, 12063829601, 12063960683, 12064091759, + 12064222837, 12064353911, 12064485061, 12064616147, 12064747309, 12064878391, 12065009471, + 12065140609, 12065271689, 12065402761, 12065533841, 12065664971, 12065796077, 12065927261, + 12066058369, 12066189449, 12066320549, 12066451627, 12066582721, 12066713803, 12066844877, + 12066975961, 12067107053, 12067238147, 12067369231, 12067500323, 12067631447, 12067762541, + 12067893637, 12068024713, 12068155793, 12068286871, 12068417953, 12068549081, 12068680201, + 12068811319, 12068942393, 12069073519, 12069204599, 12069335683, 12069466757, 12069597863, + 12069728939, 12069860027, 12069991099, 12070122173, 12070253269, 12070384349, 12070515421, + 12070646503, 12070777627, 12070908763, 12071039879, 12071170957, 12071302031, 12071433131, + 12071564227, 12071695309, 12071826401, 12071957489, 12072088579, 12072219713, 12072350803, + 12072481903, 12072612983, 12072744071, 12072875147, 12073006273, 12073137347, 12073268423, + 12073399571, 12073530649, 12073661723, 12073792813, 12073923893, 12074054977, 12074186071, + 12074317159, 12074448233, 12074579311, 12074710391, 12074841469, 12074972573, 12075103679, + 12075234751, 12075365831, 12075496913, 12075628009, 12075759103, 12075890179, 12076021271, + 12076152353, 12076283477, 12076414583, 12076545713, 12076676917, 12076807997, 12076939093, + 12077070169, 12077201291, 12077332363, 12077463443, 12077594519, 12077725601, 12077856677, + 12077987777, 12078118849, 12078249941, 12078381041, 12078512153, 12078643261, 12078774341, + 12078905413, 12079036513, 12079167587, 12079298663, 12079429771, 12079560853, 12079691933, + 12079823033, 12079954127, 12080085203, 12080216279, 12080347351, 12080478469, 12080609543, + 12080740619, 12080871703, 12081002783, 12081133913, 12081264989, 12081396071, 12081527201, + 12081658283, 12081789373, 12081920471, 12082051571, 12082182653, 12082313741, 12082444853, + 12082575949, 12082707023, 12082838099, 12082969237, 12083100311, 12083231399, 12083362477, + 12083493553, 12083624647, 12083755769, 12083886853, 12084017927, 12084149041, 12084280127, + 12084411203, 12084542303, 12084673423, 12084804499, 12084935581, 12085066703, 12085197833, + 12085328911, 12085459999, 12085591097, 12085722193, 12085853287, 12085984367, 12086115491, + 12086246569, 12086377643, 12086508761, 12086639849, 12086770921, 12086902013, 12087033097, + 12087164231, 12087295351, 12087426427, 12087557501, 12087688583, 12087819659, 12087950737, + 12088081847, 12088212949, 12088344031, 12088475111, 12088606193, 12088737343, 12088868423, + 12088999499, 12089130587, 12089261659, 12089392807, 12089523923, 12089654999, 12089786117, + 12089917219, 12090048317, 12090179441, 12090310517, 12090441637, 12090572719, 12090703829, + 12090834953, 12090966029, 12091097101, 12091228183, 12091359263, 12091490339, 12091621439, + 12091752529, 12091883611, 12092014699, 12092145829, 12092276909, 12092408011, 12092539091, + 12092670167, 12092801239, 12092932349, 12093063421, 12093194497, 12093325571, 12093456647, + 12093587741, 12093718837, 12093849967, 12093981047, 12094112143, 12094243229, 12094374319, + 12094505393, 12094636481, 12094767563, 12094898653, 12095029753, 12095160829, 12095292019, + 12095423111, 12095554231, 12095685383, 12095816477, 12095947571, 12096078653, 12096209743, + 12096340819, 12096471899, 12096602993, 12096734077, 12096865159, 12096996277, 12097127369, + 12097258469, 12097389541, 12097520641, 12097651729, 12097782821, 12097913903, 12098044979, + 12098176061, 12098307167, 12098438239, 12098569349, 12098700499, 12098831617, 12098962697, + 12099093793, 12099224881, 12099355969, 12099487051, 12099618137, 12099749209, 12099880301, + 12100011383, 12100142459, 12100273553, 12100404643, 12100535717, 12100666801, 12100797899, + 12100928989, 12101060077, 12101191171, 12101322251, 12101453323, 12101584399, 12101715491, + 12101846591, 12101977709, 12102108791, 12102239869, 12102370981, 12102502063, 12102633163, + 12102764237, 12102895313, 12103026389, 12103157467, 12103288541, 12103419707, 12103550801, + 12103681927, 12103813003, 12103944077, 12104075161, 12104206273, 12104337379, 12104468461, + 12104599571, 12104730679, 12104861779, 12104992901, 12105124061, 12105255133, 12105386327, + 12105517409, 12105648481, 12105779579, 12105910651, 12106041757, 12106172833, 12106303907, + 12106434979, 12106566067, 12106697227, 12106828309, 12106959401, 12107090519, 12107221601, + 12107352683, 12107483807, 12107614919, 12107746003, 12107877079, 12108008201, 12108139331, + 12108270403, 12108401483, 12108532567, 12108663649, 12108794729, 12108925811, 12109056889, + 12109188017, 12109319099, 12109450187, 12109581269, 12109712341, 12109843423, 12109974511, + 12110105597, 12110236681, 12110367757, 12110498833, 12110629907, 12110760983, 12110892077, + 12111023153, 12111154277, 12111285353, 12111416431, 12111547517, 12111678589, 12111809663, + 12111940739, 12112071817, 12112202911, 12112333993, 12112465093, 12112596173, 12112727257, + 12112858333, 12112989431, 12113120527, 12113251609, 12113382733, 12113513851, 12113644931, + 12113776007, 12113907079, 12114038159, 12114169231, 12114300329, 12114431401, 12114562487, + 12114693581, 12114824681, 12114955753, 12115086833, 12115217927, 12115349003, 12115480079, + 12115611163, 12115742239, 12115873331, 12116004451, 12116135527, 12116266601, 12116397737, + 12116528819, 12116659937, 12116791033, 12116922121, 12117053227, 12117184309, 12117315383, + 12117446459, 12117577601, 12117708751, 12117839831, 12117970903, 12118101997, 12118233091, + 12118364171, 12118495243, 12118626319, 12118757393, 12118888489, 12119019587, 12119150669, + 12119281747, 12119412859, 12119543951, 12119675059, 12119806207, 12119937287, 12120068407, + 12120199489, 12120330577, 12120461659, 12120592747, 12120723833, 12120854917, 12120985991, + 12121117091, 12121248221, 12121379317, 12121510417, 12121641503, 12121772581, 12121903679, + 12122034767, 12122165897, 12122296973, 12122428049, 12122559139, 12122690233, 12122821307, + 12122952409, 12123083507, 12123214637, 12123345721, 12123476819, 12123607921, 12123738997, + 12123870089, 12124001161, 12124132309, 12124263433, 12124394519, 12124525591, 12124656673, + 12124787749, 12124918831, 12125049913, 12125180989, 12125312071, 12125443157, 12125574239, + 12125705401, 12125836493, 12125967569, 12126098671, 12126229751, 12126360847, 12126491941, + 12126623029, 12126754103, 12126885181, 12127016267, 12127147339, 12127278419, 12127409513, + 12127540591, 12127671683, 12127802767, 12127933843, 12128064919, 12128195993, 12128327093, + 12128458201, 12128589353, 12128720459, 12128851549, 12128982623, 12129113701, 12129244781, + 12129375877, 12129506971, 12129638051, 12129769181, 12129900253, 12130031339, 12130162411, + 12130293493, 12130424567, 12130555639, 12130686721, 12130817821, 12130948901, 12131079979, + 12131211133, 12131342207, 12131473331, 12131604461, 12131735537, 12131866609, 12131997719, + 12132128807, 12132259889, 12132390971, 12132522071, 12132653149, 12132784241, 12132915323, + 12133046423, 12133177561, 12133308647, 12133439777, 12133570853, 12133701947, 12133833053, + 12133964173, 12134095271, 12134226343, 12134357479, 12134488579, 12134619751, 12134750827, + 12134881931, 12135013021, 12135144097, 12135275177, 12135406271, 12135537343, 12135668437, + 12135799541, 12135930647, 12136061759, 12136192837, 12136323917, 12136455043, 12136586141, + 12136717223, 12136848359, 12136979443, 12137110541, 12137241659, 12137372761, 12137503837, + 12137634917, 12137766013, 12137897089, 12138028163, 12138159251, 12138290323, 12138421397, + 12138552469, 12138683563, 12138814637, 12138945733, 12139076819, 12139207891, 12139338979, + 12139470071, 12139601161, 12139732243, 12139863341, 12139994429, 12140125513, 12140256613, + 12140387717, 12140518801, 12140649907, 12140781011, 12140912107, 12141043183, 12141174263, + 12141305339, 12141436453, 12141567527, 12141698623, 12141829723, 12141960799, 12142091891, + 12142222979, 12142354067, 12142485181, 12142616287, 12142747387, 12142878491, 12143009579, + 12143140657, 12143271737, 12143402819, 12143533933, 12143665013, 12143796103, 12143927177, + 12144058249, 12144189341, 12144320423, 12144451511, 12144582629, 12144713717, 12144844799, + 12144975881, 12145106959, 12145238033, 12145369133, 12145500317, 12145631461, 12145762553, + 12145893679, 12146024753, 12146155831, 12146286931, 12146418017, 12146549099, 12146680171, + 12146811293, 12146942371, 12147073447, 12147204527, 12147335633, 12147466729, 12147597811, + 12147728893, 12147859987, 12147991061, 12148122193, 12148253279, 12148384363, 12148515439, + 12148646593, 12148777681, 12148908757, 12149039839, 12149170949, 12149302037, 12149433113, + 12149564213, 12149695297, 12149826379, 12149957459, 12150088567, 12150219647, 12150350741, + 12150481831, 12150612907, 12150743981, 12150875063, 12151006169, 12151137247, 12151268321, + 12151399453, 12151530527, 12151661611, 12151792753, 12151923827, 12152054909, 12152185987, + 12152317061, 12152448163, 12152579239, 12152710373, 12152841457, 12152972593, 12153103687, + 12153234773, 12153365863, 12153496937, 12153628087, 12153759169, 12153890251, 12154021349, + 12154152433, 12154283563, 12154414637, 12154545713, 12154676797, 12154807871, 12154938947, + 12155070029, 12155201117, 12155332193, 12155463277, 12155594387, 12155725481, 12155856563, + 12155987663, 12156118763, 12156249893, 12156380989, 12156512183, 12156643321, 12156774401, + 12156905477, 12157036559, 12157167643, 12157298833, 12157429951, 12157561049, 12157692149, + 12157823239, 12157954331, 12158085409, 12158216491, 12158347573, 12158478649, 12158609759, + 12158740831, 12158871917, 12159003029, 12159134147, 12159265229, 12159396349, 12159527453, + 12159658541, 12159789617, 12159920693, 12160051781, 12160182863, 12160313989, 12160445093, + 12160576223, 12160707301, 12160838387, 12160969481, 12161100559, 12161231671, 12161362747, + 12161493821, 12161624897, 12161755973, 12161887079, 12162018151, 12162149239, 12162280321, + 12162411427, 12162542501, 12162673603, 12162804697, 12162935773, 12163066849, 12163197931, + 12163329023, 12163460137, 12163591283, 12163722383, 12163853509, 12163984589, 12164115749, + 12164246821, 12164377913, 12164508989, 12164640067, 12164771161, 12164902237, 12165033341, + 12165164467, 12165295553, 12165426631, 12165557741, 12165688813, 12165819923, 12165951011, + 12166082083, 12166213181, 12166344257, 12166475359, 12166606451, 12166737551, 12166868677, + 12166999763, 12167130841, 12167261923, 12167393087, 12167524183, 12167655281, 12167786369, + 12167917441, 12168048649, 12168179729, 12168310837, 12168441919, 12168573019, 12168704099, + 12168835187, 12168966263, 12169097377, 12169228451, 12169359551, 12169490639, 12169621721, + 12169752809, 12169883909, 12170015041, 12170146169, 12170277253, 12170408353, 12170539439, + 12170670521, 12170801603, 12170932687, 12171063761, 12171194839, 12171325921, 12171457013, + 12171588101, 12171719201, 12171850279, 12171981389, 12172112461, 12172243579, 12172374671, + 12172505831, 12172636933, 12172768063, 12172899173, 12173030263, 12173161381, 12173292473, + 12173423609, 12173554681, 12173685781, 12173816867, 12173947939, 12174079051, 12174210151, + 12174341227, 12174472301, 12174603383, 12174734459, 12174865531, 12174996679, 12175127771, + 12175258847, 12175389979, 12175521067, 12175652147, 12175783229, 12175914313, 12176045423, + 12176176499, 12176307589, 12176438741, 12176569819, 12176700923, 12176832001, 12176963077, + 12177094183, 12177225257, 12177356341, 12177487451, 12177618527, 12177749609, 12177880699, + 12178011793, 12178142917, 12178273997, 12178405069, 12178536151, 12178667227, 12178798409, + 12178929493, 12179060611, 12179191693, 12179322781, 12179453893, 12179584973, 12179716063, + 12179847139, 12179978227, 12180109307, 12180240379, 12180371491, 12180502573, 12180633667, + 12180764779, 12180895891, 12181026967, 12181158047, 12181289119, 12181420213, 12181551299, + 12181682399, 12181813477, 12181944553, 12182075629, 12182206711, 12182337793, 12182468869, + 12182599943, 12182731039, 12182862127, 12182993209, 12183124309, 12183255431, 12183386519, + 12183517609, 12183648707, 12183779813, 12183910889, 12184041971, 12184173059, 12184304147, + 12184435223, 12184566299, 12184697411, 12184828483, 12184959581, 12185090711, 12185221813, + 12185352887, 12185483963, 12185615053, 12185746187, 12185877293, 12186008399, 12186139481, + 12186270557, 12186401641, 12186532717, 12186663791, 12186794863, 12186925957, 12187057049, + 12187188121, 12187319213, 12187450321, 12187581409, 12187712491, 12187843567, 12187974649, + 12188105767, 12188236871, 12188367949, 12188499077, 12188630171, 12188761253, 12188892341, + 12189023417, 12189154529, 12189285601, 12189416719, 12189547819, 12189678901, 12189809977, + 12189941077, 12190072157, 12190203239, 12190334311, 12190465423, 12190596499, 12190727611, + 12190858711, 12190989791, 12191120899, 12191251997, 12191383073, 12191514173, 12191645261, + 12191776351, 12191907457, 12192038531, 12192169657, 12192300767, 12192431873, 12192562961, + 12192694039, 12192825133, 12192956231, 12193087321, 12193218407, 12193349479, 12193480553, + 12193611629, 12193742741, 12193873847, 12194004923, 12194136049, 12194267143, 12194398253, + 12194529329, 12194660407, 12194791493, 12194922629, 12195053719, 12195184811, 12195315893, + 12195447073, 12195578147, 12195709247, 12195840323, 12195971399, 12196102487, 12196233563, + 12196364639, 12196495721, 12196626803, 12196757887, 12196889009, 12197020111, 12197151191, + 12197282269, 12197413363, 12197544493, 12197675573, 12197806661, 12197937749, 12198068873, + 12198199961, 12198331069, 12198462151, 12198593257, 12198724379, 12198855451, 12198986533, + 12199117607, 12199248683, 12199379783, 12199510901, 12199641973, 12199773083, 12199904173, + 12200035297, 12200166373, 12200297449, 12200428531, 12200559703, 12200690779, 12200821877, + 12200952983, 12201084083, 12201215177, 12201346273, 12201477433, 12201608519, 12201739619, + 12201870713, 12202001857, 12202132933, 12202264021, 12202395169, 12202526251, 12202657393, + 12202788469, 12202919557, 12203050631, 12203181743, 12203312851, 12203443963, 12203575039, + 12203706127, 12203837207, 12203968289, 12204099403, 12204230501, 12204361577, 12204492667, + 12204623741, 12204754817, 12204885919, 12205017001, 12205148101, 12205279187, 12205410317, + 12205541393, 12205672481, 12205803557, 12205934633, 12206065717, 12206196817, 12206327891, + 12206458973, 12206590057, 12206721143, 12206852221, 12206983307, 12207114427, 12207245507, + 12207376583, 12207507667, 12207638741, 12207769831, 12207900937, 12208032013, 12208163111, + 12208294207, 12208425283, 12208556359, 12208687453, 12208818527, 12208949609, 12209080691, + 12209211779, 12209342881, 12209473957, 12209605033, 12209736131, 12209867203, 12209998289, + 12210129361, 12210260449, 12210391541, 12210522619, 12210653737, 12210784823, 12210915911, + 12211046983, 12211178071, 12211309199, 12211440281, 12211571357, 12211702453, 12211833581, + 12211964683, 12212095757, 12212226847, 12212357947, 12212489041, 12212620117, 12212751203, + 12212882281, 12213013357, 12213144481, 12213275567, 12213406649, 12213537727, 12213668851, + 12213799951, 12213931039, 12214062127, 12214193209, 12214324337, 12214455467, 12214586561, + 12214717639, 12214848713, 12214979807, 12215110889, 12215241967, 12215373047, 12215504141, + 12215635261, 12215766373, 12215897497, 12216028577, 12216159653, 12216290759, 12216421873, + 12216552961, 12216684037, 12216815119, 12216946199, 12217077317, 12217208467, 12217339543, + 12217470619, 12217601699, 12217732783, 12217863863, 12217994951, 12218126023, 12218257147, + 12218388227, 12218519317, 12218650393, 12218781511, 12218912603, 12219043703, 12219174817, + 12219305893, 12219436993, 12219568079, 12219699181, 12219830269, 12219961357, 12220092433, + 12220223531, 12220354667, 12220485829, 12220616909, 12220747999, 12220879091, 12221010163, + 12221141267, 12221272361, 12221403449, 12221534599, 12221665717, 12221796803, 12221927891, + 12222058967, 12222190051, 12222321143, 12222452233, 12222583319, 12222714431, 12222845519, + 12222976643, 12223107791, 12223238921, 12223369999, 12223501079, 12223632151, 12223763257, + 12223894343, 12224025427, 12224156513, 12224287613, 12224418709, 12224549819, 12224680913, + 12224811997, 12224943091, 12225074171, 12225205243, 12225336317, 12225467393, 12225598529, + 12225729611, 12225860747, 12225991819, 12226122893, 12226253981, 12226385063, 12226516139, + 12226647233, 12226778323, 12226909417, 12227040517, 12227171591, 12227302669, 12227433749, + 12227564831, 12227695913, 12227827009, 12227958089, 12228089161, 12228220271, 12228351349, + 12228482471, 12228613571, 12228744653, 12228875731, 12229006817, 12229137923, 12229269023, + 12229400101, 12229531219, 12229662299, 12229793413, 12229924501, 12230055577, 12230186651, + 12230317733, 12230448823, 12230579903, 12230710981, 12230842067, 12230973203, 12231104279, + 12231235369, 12231366449, 12231497539, 12231628621, 12231759719, 12231890809, 12232021909, + 12232153019, 12232284133, 12232415227, 12232546307, 12232677383, 12232808459, 12232939541, + 12233070649, 12233201723, 12233332861, 12233463941, 12233595019, 12233726111, 12233857189, + 12233988271, 12234119347, 12234250433, 12234381527, 12234512603, 12234643697, 12234774791, + 12234905863, 12235036937, 12235168027, 12235299103, 12235430201, 12235561297, 12235692389, + 12235823461, 12235954547, 12236085619, 12236216693, 12236347789, 12236478889, 12236609969, + 12236741113, 12236872211, 12237003341, 12237134419, 12237265493, 12237396581, 12237527669, + 12237658781, 12237789859, 12237920953, 12238052027, 12238183117, 12238314197, 12238445273, + 12238576349, 12238707433, 12238838527, 12238969607, 12239100703, 12239231803, 12239362931, + 12239494013, 12239625103, 12239756197, 12239887333, 12240018409, 12240149497, 12240280579, + 12240411683, 12240542791, 12240673901, 12240804991, 12240936073, 12241067147, 12241198219, + 12241329293, 12241460369, 12241591463, 12241722547, 12241853621, 12241984709, 12242115797, + 12242246879, 12242377991, 12242509067, 12242640149, 12242771237, 12242902333, 12243033427, + 12243164513, 12243295613, 12243426721, 12243557813, 12243688903, 12243820003, 12243951091, + 12244082219, 12244213327, 12244344487, 12244475561, 12244606651, 12244737731, 12244868807, + 12244999909, 12245131007, 12245262097, 12245393179, 12245524259, 12245655347, 12245786419, + 12245917501, 12246048599, 12246179677, 12246310753, 12246441847, 12246572959, 12246704051, + 12246835147, 12246966223, 12247097323, 12247228397, 12247359469, 12247490543, 12247621621, + 12247752721, 12247883839, 12248014921, 12248146003, 12248277089, 12248408167, 12248539243, + 12248670331, 12248801413, 12248932489, 12249063599, 12249194747, 12249325819, 12249456893, + 12249587989, 12249719089, 12249850177, 12249981269, 12250112351, 12250243427, 12250374509, + 12250505591, 12250636691, 12250767787, 12250898927, 12251030009, 12251161151, 12251292269, + 12251423351, 12251554459, 12251685539, 12251816639, 12251947727, 12252078799, 12252209891, + 12252340973, 12252472079, 12252603151, 12252734237, 12252865309, 12252996389, 12253127461, + 12253258559, 12253389647, 12253520731, 12253651819, 12253782949, 12253914037, 12254045123, + 12254176237, 12254307337, 12254438411, 12254569519, 12254700629, 12254831749, 12254962829, + 12255093901, 12255225029, 12255356129, 12255487249, 12255618329, 12255749449, 12255880573, + 12256011667, 12256142783, 12256273859, 12256404947, 12256536031, 12256667107, 12256798189, + 12256929271, 12257060353, 12257191451, 12257322523, 12257453651, 12257584723, 12257715851, + 12257846963, 12257978039, 12258109133, 12258240263, 12258371371, 12258502463, 12258633539, + 12258764611, 12258895699, 12259026781, 12259157863, 12259288939, 12259420031, 12259551107, + 12259682179, 12259813261, 12259944343, 12260075431, 12260206561, 12260337643, 12260468723, + 12260599829, 12260730907, 12260861999, 12260993081, 12261124153, 12261255233, 12261386309, + 12261517397, 12261648517, 12261779639, 12261910753, 12262041871, 12262172963, 12262304039, + 12262435111, 12262566187, 12262697267, 12262828339, 12262959413, 12263090503, 12263221589, + 12263352677, 12263483753, 12263614871, 12263745973, 12263877053, 12264008149, 12264139229, + 12264270323, 12264401399, 12264532507, 12264663581, 12264794681, 12264925753, 12265056847, + 12265187939, 12265319029, 12265450117, 12265581193, 12265712267, 12265843391, 12265974467, + 12266105563, 12266236663, 12266367749, 12266498821, 12266629897, 12266761033, 12266892139, + 12267023221, 12267154313, 12267285409, 12267416507, 12267547609, 12267678733, 12267809821, + 12267940933, 12268072009, 12268203083, 12268334167, 12268465267, 12268596341, 12268727437, + 12268858517, 12268989611, 12269120693, 12269251783, 12269382857, 12269513947, 12269645023, + 12269776171, 12269907253, 12270038351, 12270169433, 12270300517, 12270431597, 12270562727, + 12270693833, 12270824941, 12270956039, 12271087133, 12271218209, 12271349327, 12271480399, + 12271611479, 12271742597, 12271873703, 12272004803, 12272135879, 12272266987, 12272398081, + 12272529193, 12272660297, 12272791409, 12272922481, 12273053567, 12273184681, 12273315757, + 12273446851, 12273577931, 12273709003, 12273840119, 12273971233, 12274102327, 12274233409, + 12274364489, 12274495589, 12274626697, 12274757797, 12274888891, 12275020031, 12275151113, + 12275282203, 12275413313, 12275544409, 12275675491, 12275806601, 12275937731, 12276068803, + 12276199967, 12276331079, 12276462151, 12276593227, 12276724321, 12276855397, 12276986479, + 12277117591, 12277248671, 12277379759, 12277510879, 12277641967, 12277773041, 12277904143, + 12278035241, 12278166319, 12278297393, 12278428469, 12278559593, 12278690689, 12278821771, + 12278952859, 12279083941, 12279215021, 12279346097, 12279477169, 12279608251, 12279739337, + 12279870409, 12280001491, 12280132567, 12280263641, 12280394747, 12280525819, 12280656959, + 12280788059, 12280919141, 12281050231, 12281181317, 12281312437, 12281443511, 12281574583, + 12281705663, 12281836739, 12281967881, 12282098957, 12282230033, 12282361171, 12282492283, + 12282623389, 12282754487, 12282885583, 12283016663, 12283147739, 12283278811, 12283409893, + 12283540979, 12283672081, 12283803167, 12283934297, 12284065393, 12284196469, 12284327579, + 12284458657, 12284589773, 12284720857, 12284851949, 12284983021, 12285114103, 12285245183, + 12285376261, 12285507347, 12285638501, 12285769579, 12285900661, 12286031741, 12286162843, + 12286293949, 12286425029, 12286556101, 12286687207, 12286818301, 12286949407, 12287080513, + 12287211611, 12287342689, 12287473763, 12287604863, 12287735951, 12287867029, 12287998139, + 12288129211, 12288260329, 12288391403, 12288522509, 12288653593, 12288784687, 12288915761, + 12289046843, 12289177961, 12289309057, 12289440139, 12289571213, 12289702297, 12289833389, + 12289964473, 12290095561, 12290226647, 12290357719, 12290488799, 12290619907, 12290751013, + 12290882113, 12291013219, 12291144329, 12291275429, 12291406513, 12291537593, 12291668737, + 12291799813, 12291930919, 12292062011, 12292193087, 12292324169, 12292455269, 12292586399, + 12292717511, 12292848583, 12292979669, 12293110757, 12293241853, 12293372929, 12293504011, + 12293635091, 12293766169, 12293897249, 12294028339, 12294159421, 12294290501, 12294421577, + 12294552653, 12294683759, 12294814859, 12294945973, 12295077103, 12295208179, 12295339297, + 12295470409, 12295601497, 12295732577, 12295863677, 12295994807, 12296125879, 12296256971, + 12296388043, 12296519173, 12296650271, 12296781373, 12296912449, 12297043537, 12297174613, + 12297305693, 12297436771, 12297567857, 12297698929, 12297830011, 12297961127, 12298092217, + 12298223293, 12298354391, 12298485469, 12298616563, 12298747639, 12298878719, 12299009813, + 12299140891, 12299271991, 12299403089, 12299534171, 12299665283, 12299796367, 12299927447, + 12300058523, 12300189607, 12300320687, 12300451763, 12300582859, 12300713939, 12300845047, + 12300976133, 12301107229, 12301238311, 12301369403, 12301500479, 12301631557, 12301762633, + 12301893761, 12302024851, 12302155951, 12302287033, 12302418109, 12302549213, 12302680303, + 12302811377, 12302942479, 12303073567, 12303204649, 12303335767, 12303466841, 12303598039, + 12303729157, 12303860237, 12303991321, 12304122401, 12304253477, 12304384601, 12304515679, + 12304646773, 12304777861, 12304908977, 12305040049, 12305171159, 12305302241, 12305433317, + 12305564389, 12305695481, 12305826581, 12305957659, 12306088733, 12306219817, 12306350989, + 12306482093, 12306613171, 12306744269, 12306875341, 12307006427, 12307137517, 12307268627, + 12307399703, 12307530799, 12307661879, 12307792979, 12307924051, 12308055127, 12308186207, + 12308317289, 12308448377, 12308579473, 12308710597, 12308841697, 12308972777, 12309103943, + 12309235019, 12309366101, 12309497191, 12309628271, 12309759379, 12309890477, 12310021621, + 12310152733, 12310283837, 12310414937, 12310546021, 12310677121, 12310808197, 12310939271, + 12311070361, 12311201443, 12311332519, 12311463607, 12311594693, 12311725781, 12311856883, + 12311987957, 12312119033, 12312250123, 12312381217, 12312512299, 12312643391, 12312774469, + 12312905567, 12313036649, 12313167733, 12313298831, 12313429939, 12313561049, 12313692133, + 12313823209, 12313954307, 12314085431, 12314216513, 12314347657, 12314478767, 12314609843, + 12314740927, 12314872013, 12315003119, 12315134233, 12315265331, 12315396409, 12315527509, + 12315658631, 12315789769, 12315920849, 12316051933, 12316183027, 12316314323, 12316445399, + 12316576487, 12316707563, 12316838669, 12316969747, 12317100841, 12317231921, 12317363017, + 12317494099, 12317625181, 12317756257, 12317887331, 12318018403, 12318149477, 12318280561, + 12318411647, 12318542723, 12318673823, 12318804917, 12318935989, 12319067063, 12319198163, + 12319329287, 12319460371, 12319591463, 12319722577, 12319853713, 12319984793, 12320115911, + 12320246993, 12320378093, 12320509181, 12320640257, 12320771341, 12320902463, 12321033563, + 12321164677, 12321295817, 12321426917, 12321558013, 12321689089, 12321820163, 12321951287, + 12322082389, 12322213471, 12322344571, 12322475657, 12322606729, 12322737803, 12322868917, + 12323000003, 12323131081, 12323262167, 12323393239, 12323524319, 12323655451, 12323786551, + 12323917643, 12324048739, 12324179827, 12324310937, 12324442019, 12324573101, 12324704219, + 12324835291, 12324966371, 12325097471, 12325228577, 12325359677, 12325490753, 12325621849, + 12325752973, 12325884049, 12326015147, 12326146243, 12326277331, 12326408407, 12326539493, + 12326670571, 12326801647, 12326932729, 12327063839, 12327194917, 12327326029, 12327457123, + 12327588263, 12327719353, 12327850429, 12327981503, 12328112597, 12328243673, 12328374749, + 12328505821, 12328636907, 12328767991, 12328899083, 12329030227, 12329161309, 12329292383, + 12329423467, 12329554541, 12329685629, 12329816749, 12329947849, 12330078931, 12330210017, + 12330341161, 12330472241, 12330603359, 12330734459, 12330865583, 12330996673, 12331127773, + 12331258861, 12331389949, 12331521053, 12331652149, 12331783231, 12331914307, 12332045413, + 12332176487, 12332307649, 12332438731, 12332569877, 12332700967, 12332832067, 12332963233, + 12333094369, 12333225481, 12333356561, 12333487643, 12333618721, 12333749797, 12333880901, + 12334011973, 12334143071, 12334274189, 12334405261, 12334536341, 12334667489, 12334798561, + 12334929643, 12335060729, 12335191849, 12335322977, 12335454059, 12335585159, 12335716231, + 12335847311, 12335978383, 12336109531, 12336240607, 12336371681, 12336502781, 12336633857, + 12336764939, 12336896027, 12337027117, 12337158193, 12337289273, 12337420349, 12337551427, + 12337682531, 12337813613, 12337944691, 12338075777, 12338206891, 12338338003, 12338469089, + 12338600179, 12338731261, 12338862373, 12338993449, 12339124541, 12339255613, 12339386737, + 12339517819, 12339648899, 12339779981, 12339911071, 12340042159, 12340173253, 12340304351, + 12340435451, 12340566541, 12340697623, 12340828699, 12340959791, 12341090873, 12341221951, + 12341353109, 12341484247, 12341615323, 12341746447, 12341877529, 12342008629, 12342139729, + 12342270803, 12342401963, 12342533039, 12342664121, 12342795203, 12342926339, 12343057411, + 12343188523, 12343319609, 12343450697, 12343581793, 12343712873, 12343843949, 12343975037, + 12344106109, 12344237197, 12344368297, 12344499379, 12344630479, 12344761553, 12344892641, + 12345023759, 12345154841, 12345285917, 12345416989, 12345548063, 12345679187, 12345810259, + 12345941339, 12346072433, 12346203509, 12346334593, 12346465667, 12346596767, 12346727843, + 12346858949, 12346990043, 12347121121, 12347252263, 12347383351, 12347514451, 12347645543, + 12347776621, 12347907731, 12348038861, 12348169961, 12348301037, 12348432121, 12348563197, + 12348694279, 12348825361, 12348956453, 12349087567, 12349218649, 12349349731, 12349480811, + 12349611899, 12349742971, 12349874107, 12350005211, 12350136289, 12350267429, 12350398513, + 12350529619, 12350660711, 12350791801, 12350922923, 12351054017, 12351185101, 12351316177, + 12351447271, 12351578377, 12351709457, 12351840533, 12351971617, 12352102703, 12352233781, + 12352364861, 12352495951, 12352627117, 12352758217, 12352889291, 12353020417, 12353151523, + 12353282609, 12353413691, 12353544769, 12353675857, 12353806957, 12353938033, 12354069109, + 12354200207, 12354331313, 12354462389, 12354593467, 12354724621, 12354855701, 12354986779, + 12355117891, 12355248973, 12355380077, 12355511153, 12355642237, 12355773341, 12355904413, + 12356035519, 12356166689, 12356297813, 12356428927, 12356560003, 12356691089, 12356822167, + 12356953289, 12357084371, 12357215447, 12357346523, 12357477611, 12357608687, 12357739769, + 12357870953, 12358002031, 12358133129, 12358264231, 12358395319, 12358526443, 12358657517, + 12358788593, 12358919681, 12359050777, 12359181889, 12359312981, 12359444089, 12359575169, + 12359706241, 12359837317, 12359968399, 12360099487, 12360230587, 12360361661, 12360492751, + 12360623879, 12360754951, 12360886033, 12361017107, 12361148213, 12361279373, 12361410449, + 12361541561, 12361672639, 12361803733, 12361934843, 12362065927, 12362197009, 12362328091, + 12362459167, 12362590249, 12362721361, 12362852441, 12362983531, 12363114623, 12363245773, + 12363376853, 12363507973, 12363639061, 12363770143, 12363901261, 12364032349, 12364163479, + 12364294597, 12364425673, 12364556759, 12364687939, 12364819057, 12364950133, 12365081237, + 12365212313, 12365343391, 12365474479, 12365605579, 12365736667, 12365867753, 12365998831, + 12366129943, 12366261041, 12366392119, 12366523219, 12366654331, 12366785413, 12366916489, + 12367047619, 12367178737, 12367309837, 12367440931, 12367572013, 12367703123, 12367834211, + 12367965289, 12368096431, 12368227591, 12368358689, 12368489773, 12368620867, 12368751943, + 12368883031, 12369014131, 12369145207, 12369276299, 12369407387, 12369538463, 12369669547, + 12369800659, 12369931757, 12370062847, 12370193929, 12370325053, 12370456139, 12370587211, + 12370718293, 12370849369, 12370980449, 12371111521, 12371242607, 12371373683, 12371504797, + 12371635901, 12371767003, 12371898083, 12372029171, 12372160247, 12372291319, 12372422411, + 12372553483, 12372684557, 12372815633, 12372946709, 12373077781, 12373208867, 12373339963, + 12373471039, 12373602139, 12373733219, 12373864337, 12373995457, 12374126533, 12374257723, + 12374388797, 12374519893, 12374650979, 12374782093, 12374913217, 12375044303, 12375175391, + 12375306467, 12375437549, 12375568627, 12375699731, 12375830807, 12375961891, 12376093019, + 12376224101, 12376355203, 12376486289, 12376617403, 12376748479, 12376879553, 12377010629, + 12377141719, 12377272799, 12377403881, 12377534963, 12377666053, 12377797199, 12377928287, + 12378059359, 12378190453, 12378321559, 12378452659, 12378583741, 12378714841, 12378845923, + 12378977003, 12379108099, 12379239181, 12379370303, 12379501391, 12379632479, 12379763569, + 12379894643, 12380025737, 12380156827, 12380287903, 12380418989, 12380550163, 12380681237, + 12380812321, 12380943403, 12381074477, 12381205579, 12381336707, 12381467821, 12381598909, + 12381729989, 12381861061, 12381992153, 12382123231, 12382254337, 12382385417, 12382516501, + 12382647581, 12382778657, 12382909733, 12383040853, 12383171947, 12383303033, 12383434111, + 12383565197, 12383696279, 12383827367, 12383958439, 12384089513, 12384220609, 12384351701, + 12384482801, 12384613907, 12384744989, 12384876121, 12385007203, 12385138291, 12385269373, + 12385400491, 12385531573, 12385662659, 12385793741, 12385924823, 12386055907, 12386187041, + 12386318117, 12386449213, 12386580289, 12386711413, 12386842519, 12386973661, 12387104761, + 12387235837, 12387366967, 12387498047, 12387629131, 12387760207, 12387891319, 12388022513, + 12388153597, 12388284751, 12388415857, 12388546939, 12388678021, 12388809107, 12388940191, + 12389071297, 12389202401, 12389333549, 12389464631, 12389595761, 12389726851, 12389857939, + 12389989013, 12390120161, 12390251243, 12390382387, 12390513463, 12390644551, 12390775697, + 12390906823, 12391037927, 12391169027, 12391300133, 12391431277, 12391562353, 12391693427, + 12391824589, 12391955669, 12392086757, 12392217833, 12392348909, 12392479999, 12392611079, + 12392742163, 12392873261, 12393004343, 12393135421, 12393266497, 12393397571, 12393528643, + 12393659723, 12393790859, 12393921937, 12394053029, 12394184107, 12394315223, 12394446313, + 12394577389, 12394708481, 12394839571, 12394970647, 12395101739, 12395232821, 12395363921, + 12395495003, 12395626079, 12395757191, 12395888347, 12396019423, 12396150517, 12396281657, + 12396412753, 12396543829, 12396674957, 12396806029, 12396937103, 12397068193, 12397199273, + 12397330411, 12397461491, 12397592579, 12397723703, 12397854779, 12397985861, 12398116993, + 12398248073, 12398379151, 12398510231, 12398641351, 12398772427, 12398903501, 12399034579, + 12399165677, 12399296759, 12399427837, 12399558917, 12399690041, 12399821123, 12399952249, + 12400083323, 12400214401, 12400345493, 12400476577, 12400607651, 12400738733, 12400869809, + 12401000903, 12401131979, 12401263087, 12401394179, 12401525267, 12401656339, 12401787421, + 12401918537, 12402049609, 12402180683, 12402311791, 12402442879, 12402573959, 12402705053, + 12402836137, 12402967229, 12403098311, 12403229407, 12403360511, 12403491629, 12403622713, + 12403753919, 12403885019, 12404016101, 12404147183, 12404278273, 12404409371, 12404540479, + 12404671577, 12404802667, 12404933753, 12405064871, 12405195983, 12405327059, 12405458179, + 12405589303, 12405720377, 12405851509, 12405982609, 12406113689, 12406244777, 12406375937, + 12406507031, 12406638121, 12406769209, 12406900313, 12407031433, 12407162531, 12407293631, + 12407424703, 12407555813, 12407686897, 12407817977, 12407949049, 12408080161, 12408211247, + 12408342319, 12408473419, 12408604499, 12408735571, 12408866671, 12408997753, 12409128829, + 12409259923, 12409391003, 12409522087, 12409653163, 12409784237, 12409915321, 12410046401, + 12410177501, 12410308577, 12410439649, 12410570749, 12410701837, 12410832911, 12410964001, + 12411095131, 12411226237, 12411357311, 12411488393, 12411619483, 12411750563, 12411881641, + 12412012729, 12412143803, 12412274879, 12412405961, 12412537057, 12412668209, 12412799281, + 12412930363, 12413061467, 12413192551, 12413323651, 12413454797, 12413585897, 12413717047, + 12413848123, 12413979203, 12414110287, 12414241363, 12414372449, 12414503527, 12414634601, + 12414765673, 12414896749, 12415027831, 12415158979, 12415290067, 12415421141, 12415552229, + 12415683317, 12415814429, 12415945571, 12416076653, 12416207747, 12416338849, 12416469931, + 12416601013, 12416732087, 12416863159, 12416994251, 12417125323, 12417256451, 12417387529, + 12417518621, 12417649697, 12417780853, 12417911929, 12418043003, 12418174123, 12418305233, + 12418436311, 12418567391, 12418698491, 12418829573, 12418960651, 12419091743, 12419222839, + 12419353939, 12419485021, 12419616109, 12419747201, 12419878277, 12420009377, 12420140459, + 12420271541, 12420402649, 12420533731, 12420664813, 12420795929, 12420927017, 12421058099, + 12421189211, 12421320287, 12421451363, 12421582463, 12421713607, 12421844683, 12421975771, + 12422106859, 12422237941, 12422369077, 12422500159, 12422631233, 12422762333, 12422893409, + 12423024491, 12423155599, 12423286717, 12423417817, 12423548903, 12423679979, 12423811097, + 12423942173, 12424073261, 12424204337, 12424335409, 12424466521, 12424597597, 12424728721, + 12424859833, 12424990909, 12425122009, 12425253107, 12425384221, 12425515327, 12425646407, + 12425777489, 12425908571, 12426039649, 12426170747, 12426301837, 12426432937, 12426564083, + 12426695159, 12426826249, 12426957341, 12427088477, 12427219549, 12427350629, 12427481701, + 12427612823, 12427743907, 12427875011, 12428006119, 12428137217, 12428268289, 12428399381, + 12428530501, 12428661589, 12428792669, 12428923753, 12429054863, 12429185941, 12429317053, + 12429448151, 12429579299, 12429710407, 12429841507, 12429972587, 12430103687, 12430234769, + 12430365851, 12430497017, 12430628101, 12430759181, 12430890271, 12431021357, 12431152469, + 12431283581, 12431414689, 12431545769, 12431676857, 12431807951, 12431939033, 12432070159, + 12432201251, 12432332327, 12432463399, 12432594511, 12432725611, 12432856817, 12432987899, + 12433118981, 12433250131, 12433381211, 12433512313, 12433643441, 12433774537, 12433905613, + 12434036707, 12434167783, 12434298857, 12434429929, 12434561011, 12434692103, 12434823253, + 12434954333, 12435085441, 12435216529, 12435347651, 12435478729, 12435609827, 12435740903, + 12435872041, 12436003133, 12436134209, 12436265287, 12436396397, 12436527469, 12436658569, + 12436789661, 12436920739, 12437051831, 12437182903, 12437313991, 12437445071, 12437576143, + 12437707231, 12437838323, 12437969447, 12438100529, 12438231607, 12438362687, 12438493801, + 12438624881, 12438755969, 12438887057, 12439018177, 12439149259, 12439280353, 12439411429, + 12439542509, 12439673599, 12439804687, 12439935839, 12440066929, 12440198009, 12440329147, + 12440460257, 12440591341, 12440722423, 12440853499, 12440984593, 12441115699, 12441246791, + 12441377911, 12441508987, 12441640063, 12441771149, 12441902227, 12442033313, 12442164401, + 12442295473, 12442426547, 12442557623, 12442688719, 12442819811, 12442950889, 12443081977, + 12443213089, 12443344211, 12443475313, 12443606437, 12443737561, 12443868643, 12443999723, + 12444130817, 12444261901, 12444392977, 12444524087, 12444655183, 12444786257, 12444917347, + 12445048453, 12445179529, 12445310627, 12445441733, 12445572871, 12445703971, 12445835089, + 12445966189, 12446097263, 12446228351, 12446359439, 12446490559, 12446621633, 12446752709, + 12446883791, 12447014897, 12447145979, 12447277091, 12447408163, 12447539261, 12447670337, + 12447801409, 12447932521, 12448063597, 12448194727, 12448325801, 12448456883, 12448587967, + 12448719077, 12448850159, 12448981243, 12449112317, 12449243431, 12449374507, 12449505583, + 12449636659, 12449767783, 12449898887, 12450030059, 12450161173, 12450292249, 12450423367, + 12450554461, 12450685547, 12450816629, 12450947759, 12451078949, 12451210021, 12451341103, + 12451472191, 12451603319, 12451734413, 12451865501, 12451996573, 12452127707, 12452258783, + 12452389913, 12452521087, 12452652161, 12452783243, 12452914319, 12453045421, 12453176497, + 12453307583, 12453438667, 12453569773, 12453700859, 12453831931, 12453963017, 12454094137, + 12454225237, 12454356323, 12454487401, 12454618481, 12454749553, 12454880639, 12455011747, + 12455142841, 12455273933, 12455405023, 12455536099, 12455667173, 12455798269, 12455929349, + 12456060427, 12456191519, 12456322607, 12456453703, 12456584797, 12456715897, 12456846971, + 12456978049, 12457109131, 12457240217, 12457371301, 12457502383, 12457633459, 12457764547, + 12457895627, 12458026703, 12458157827, 12458288903, 12458419991, 12458551109, 12458682191, + 12458813281, 12458944363, 12459075437, 12459206521, 12459337607, 12459468683, 12459599783, + 12459730873, 12459861949, 12459993023, 12460124099, 12460255189, 12460386269, 12460517347, + 12460648451, 12460779533, 12460910611, 12461041721, 12461172793, 12461303999, 12461435089, + 12461566171, 12461697247, 12461828333, 12461959423, 12462090539, 12462221647, 12462352817, + 12462483889, 12462614971, 12462746071, 12462877159, 12463008277, 12463139363, 12463270447, + 12463401527, 12463532617, 12463663697, 12463794779, 12463925861, 12464056939, 12464188057, + 12464319163, 12464450263, 12464581351, 12464712427, 12464843509, 12464974589, 12465105671, + 12465236747, 12465367823, 12465498943, 12465630031, 12465761111, 12465892193, 12466023281, + 12466154357, 12466285457, 12466416533, 12466547609, 12466678699, 12466809779, 12466940869, + 12467071943, 12467203027, 12467334167, 12467465251, 12467596333, 12467727413, 12467858509, + 12467989609, 12468120683, 12468251771, 12468382897, 12468513971, 12468645103, 12468776183, + 12468907271, 12469038343, 12469169417, 12469300489, 12469431589, 12469562663, 12469693739, + 12469824847, 12469955921, 12470087009, 12470218081, 12470349163, 12470480263, 12470611357, + 12470742443, 12470873521, 12471004621, 12471135709, 12471266849, 12471397951, 12471529043, + 12471660119, 12471791221, 12471922327, 12472053401, 12472184503, 12472315589, 12472446683, + 12472577783, 12472708907, 12472839979, 12472971053, 12473102129, 12473233229, 12473364307, + 12473495381, 12473626453, 12473757533, 12473888611, 12474019687, 12474150779, 12474281873, + 12474412981, 12474544067, 12474675139, 12474806221, 12474937339, 12475068439, 12475199533, + 12475330607, 12475461709, 12475592797, 12475723877, 12475854959, 12475986067, 12476117141, + 12476248219, 12476379301, 12476510411, 12476641483, 12476772569, 12476903689, 12477034769, + 12477165893, 12477296983, 12477428059, 12477559163, 12477690271, 12477821383, 12477952469, + 12478083557, 12478214653, 12478345727, 12478476859, 12478607957, 12478739057, 12478870147, + 12479001247, 12479132327, 12479263399, 12479394481, 12479525567, 12479656643, 12479787721, + 12479918821, 12480049943, 12480181061, 12480312133, 12480443279, 12480574399, 12480705481, + 12480836573, 12480967649, 12481098769, 12481229843, 12481360919, 12481492007, 12481623101, + 12481754191, 12481885267, 12482016377, 12482147453, 12482278531, 12482409707, 12482540809, + 12482671891, 12482802971, 12482934091, 12483065207, 12483196279, 12483327391, 12483458467, + 12483589553, 12483720671, 12483851797, 12483982871, 12484113947, 12484245019, 12484376101, + 12484507177, 12484638311, 12484769443, 12484900517, 12485031607, 12485162699, 12485293781, + 12485424863, 12485555947, 12485687021, 12485818097, 12485949187, 12486080279, 12486211363, + 12486342443, 12486473521, 12486604621, 12486735727, 12486866827, 12486997909, 12487128989, + 12487260083, 12487391159, 12487522241, 12487653323, 12487784399, 12487915493, 12488046569, + 12488177641, 12488308717, 12488439793, 12488570879, 12488701963, 12488833051, 12488964139, + 12489095221, 12489226361, 12489357473, 12489488563, 12489619651, 12489750727, 12489881809, + 12490012903, 12490143977, 12490275073, 12490406147, 12490537237, 12490668353, 12490799441, + 12490930531, 12491061617, 12491192699, 12491323777, 12491454907, 12491585983, 12491717083, + 12491848169, 12491979251, 12492110333, 12492241441, 12492372523, 12492503633, 12492634747, + 12492765821, 12492896917, 12493028057, 12493159141, 12493290217, 12493421309, 12493552411, + 12493683493, 12493814569, 12493945687, 12494076797, 12494207879, 12494338951, 12494470033, + 12494601127, 12494732207, 12494863291, 12494994389, 12495125479, 12495256567, 12495387649, + 12495518731, 12495649807, 12495780907, 12495912007, 12496043081, 12496174157, 12496305319, + 12496436411, 12496567487, 12496698559, 12496829633, 12496960727, 12497091821, 12497222911, + 12497353993, 12497485067, 12497616203, 12497747333, 12497878409, 12498009481, 12498140573, + 12498271651, 12498402733, 12498533833, 12498664921, 12498795997, 12498927071, 12499058161, + 12499189301, 12499320377, 12499451449, 12499582531, 12499713613, 12499844689, 12499975903, + 12500106977, 12500238059, 12500369179, 12500500261, 12500631347, 12500762423, 12500893511, + 12501024587, 12501155663, 12501286741, 12501417829, 12501548947, 12501680039, 12501811123, + 12501942197, 12502073279, 12502204381, 12502335463, 12502466549, 12502597643, 12502728757, + 12502859851, 12502990943, 12503122019, 12503253101, 12503384221, 12503515309, 12503646391, + 12503777467, 12503908541, 12504039643, 12504170719, 12504301807, 12504432881, 12504563963, + 12504695069, 12504826141, 12504957221, 12505088363, 12505219459, 12505350551, 12505481663, + 12505612747, 12505743841, 12505874929, 12506006011, 12506137099, 12506268197, 12506399303, + 12506530427, 12506661511, 12506792587, 12506923661, 12507054757, 12507185851, 12507316981, + 12507448067, 12507579143, 12507710221, 12507841337, 12507972409, 12508103539, 12508234621, + 12508365721, 12508496813, 12508627907, 12508758991, 12508890089, 12509021171, 12509152247, + 12509283329, 12509414417, 12509545511, 12509676587, 12509807659, 12509938757, 12510069829, + 12510200933, 12510332027, 12510463109, 12510594181, 12510725287, 12510856363, 12510987539, + 12511118623, 12511249703, 12511380781, 12511511863, 12511642987, 12511774063, 12511905143, + 12512036219, 12512167307, 12512298431, 12512429507, 12512560591, 12512691671, 12512822743, + 12512953829, 12513084901, 12513216071, 12513347167, 12513478273, 12513609377, 12513740453, + 12513871529, 12514002647, 12514133729, 12514264831, 12514395911, 12514527001, 12514658081, + 12514789171, 12514920349, 12515051441, 12515182517, 12515313607, 12515444701, 12515575801, + 12515706877, 12515837959, 12515969033, 12516100117, 12516231193, 12516362273, 12516493393, + 12516624467, 12516755557, 12516886651, 12517017757, 12517148843, 12517279937, 12517411013, + 12517542091, 12517673191, 12517804279, 12517935383, 12518066461, 12518197543, 12518328623, + 12518459717, 12518590801, 12518721877, 12518852963, 12518984053, 12519115127, 12519246239, + 12519377317, 12519508447, 12519639533, 12519770621, 12519901727, 12520032803, 12520163899, + 12520294979, 12520426063, 12520557143, 12520688231, 12520819331, 12520950433, 12521081543, + 12521212619, 12521343721, 12521474809, 12521605903, 12521736977, 12521868071, 12521999173, + 12522130259, 12522261373, 12522392483, 12522523567, 12522654647, 12522785789, 12522916921, + 12523048001, 12523179169, 12523310243, 12523441331, 12523572409, 12523703513, 12523834607, + 12523965697, 12524096771, 12524227889, 12524358971, 12524490089, 12524621177, 12524752297, + 12524883389, 12525014483, 12525145583, 12525276689, 12525407767, 12525538859, 12525669943, + 12525801047, 12525932173, 12526063261, 12526194347, 12526325443, 12526456531, 12526587637, + 12526718723, 12526849813, 12526980899, 12527111983, 12527243107, 12527374187, 12527505259, + 12527636333, 12527767513, 12527898599, 12528029687, 12528160759, 12528291833, 12528422923, + 12528554009, 12528685121, 12528816193, 12528947293, 12529078409, 12529209481, 12529340567, + 12529471673, 12529602749, 12529733849, 12529864927, 12529996001, 12530127079, 12530258189, + 12530389271, 12530520371, 12530651477, 12530782577, 12530913743, 12531044839, 12531175913, + 12531307003, 12531438077, 12531569173, 12531700267, 12531831341, 12531962447, 12532093523, + 12532224637, 12532355861, 12532486937, 12532618073, 12532749149, 12532880221, 12533011319, + 12533142397, 12533273491, 12533404579, 12533535667, 12533666741, 12533797817, 12533928893, + 12534059977, 12534191051, 12534322127, 12534453223, 12534584317, 12534715399, 12534846473, + 12534977551, 12535108667, 12535239781, 12535370891, 12535501969, 12535633051, 12535764127, + 12535895209, 12536026291, 12536157367, 12536288473, 12536419547, 12536550643, 12536681747, + 12536812831, 12536943929, 12537075013, 12537206117, 12537337193, 12537468299, 12537599381, + 12537730453, 12537861571, 12537992657, 12538123751, 12538254829, 12538385927, 12538517003, + 12538648079, 12538779173, 12538910273, 12539041391, 12539172467, 12539303597, 12539434697, + 12539565769, 12539696849, 12539827939, 12539959013, 12540090091, 12540221167, 12540352249, + 12540483349, 12540614431, 12540745523, 12540876631, 12541007737, 12541138823, 12541269899, + 12541401053, 12541532131, 12541663229, 12541794301, 12541925447, 12542056523, 12542187611, + 12542318683, 12542449757, 12542580847, 12542711947, 12542843021, 12542974109, 12543105181, + 12543236261, 12543367387, 12543498493, 12543629573, 12543760679, 12543891803, 12544022879, + 12544153967, 12544285049, 12544416121, 12544547207, 12544678309, 12544809397, 12544940479, + 12545071577, 12545202697, 12545333803, 12545464949, 12545596043, 12545727127, 12545858209, + 12545989301, 12546120403, 12546251479, 12546382559, 12546513643, 12546644753, 12546775841, + 12546906973, 12547038103, 12547169177, 12547300273, 12547431353, 12547562429, 12547693507, + 12547824581, 12547955677, 12548086751, 12548217839, 12548348921, 12548479997, 12548611079, + 12548742161, 12548873251, 12549004327, 12549135413, 12549266491, 12549397577, 12549528661, + 12549659761, 12549790889, 12549922003, 12550053077, 12550184161, 12550315273, 12550446347, + 12550577419, 12550708493, 12550839641, 12550970723, 12551101811, 12551232887, 12551363963, + 12551495041, 12551626117, 12551757193, 12551888309, 12552019397, 12552150473, 12552281557, + 12552412637, 12552543709, 12552674801, 12552805873, 12552936973, 12553068091, 12553199171, + 12553330249, 12553461331, 12553592411, 12553723487, 12553854569, 12553985657, 12554116781, + 12554247869, 12554378957, 12554510063, 12554641139, 12554772233, 12554903351, 12555034439, + 12555165521, 12555296599, 12555427691, 12555558767, 12555689849, 12555820961, 12555952037, + 12556083121, 12556214221, 12556345303, 12556476389, 12556607477, 12556738567, 12556869659, + 12557000737, 12557131813, 12557262899, 12557394043, 12557525143, 12557656247, 12557787349, + 12557918441, 12558049529, 12558180637, 12558311737, 12558442843, 12558573971, 12558705043, + 12558836117, 12558967189, 12559098269, 12559229341, 12559360459, 12559491547, 12559622623, + 12559753699, 12559884829, 12560015917, 12560146997, 12560278099, 12560409179, 12560540269, + 12560671349, 12560802431, 12560933513, 12561064627, 12561195709, 12561326839, 12561457919, + 12561589009, 12561720091, 12561851177, 12561982253, 12562113373, 12562244501, 12562375621, + 12562506703, 12562637783, 12562768909, 12562899983, 12563031067, 12563162167, 12563293277, + 12563424361, 12563555437, 12563686529, 12563817601, 12563948687, 12564079769, 12564210877, + 12564341981, 12564473057, 12564604139, 12564735223, 12564866329, 12564997409, 12565128481, + 12565259563, 12565390637, 12565521719, 12565652893, 12565783973, 12565915111, 12566046191, + 12566177279, 12566308351, 12566439437, 12566570519, 12566701607, 12566832683, 12566963777, + 12567094849, 12567225929, 12567357001, 12567488081, 12567619187, 12567750281, 12567881377, + 12568012493, 12568143671, 12568274773, 12568405921, 12568537001, 12568668103, 12568799183, + 12568930259, 12569061331, 12569192423, 12569323531, 12569454607, 12569585683, 12569716759, + 12569847877, 12569978963, 12570110057, 12570241153, 12570372233, 12570503327, 12570634421, + 12570765497, 12570896593, 12571027669, 12571158751, 12571289851, 12571420931, 12571552033, + 12571683109, 12571814219, 12571945297, 12572076373, 12572207471, 12572338543, 12572469617, + 12572600701, 12572731807, 12572862881, 12572993959, 12573125041, 12573256127, 12573387259, + 12573518341, 12573649433, 12573780529, 12573911627, 12574042727, 12574173809, 12574304891, + 12574435963, 12574567051, 12574698133, 12574829219, 12574960297, 12575091391, 12575222467, + 12575353561, 12575484637, 12575615737, 12575746811, 12575877893, 12576008987, 12576140063, + 12576271193, 12576402283, 12576533393, 12576664511, 12576795601, 12576926701, 12577057783, + 12577188913, 12577320071, 12577451143, 12577582249, 12577713331, 12577844443, 12577975519, + 12578106613, 12578237687, 12578368813, 12578499917, 12578631017, 12578762129, 12578893213, + 12579024299, 12579155383, 12579286469, 12579417541, 12579548759, 12579679831, 12579810911, + 12579941999, 12580073101, 12580204181, 12580335259, 12580466347, 12580597427, 12580728499, + 12580859579, 12580990663, 12581121743, 12581252833, 12581383931, 12581515031, 12581646109, + 12581777183, 12581908271, 12582039361, 12582170437, 12582301517, 12582432661, 12582563737, + 12582694879, 12582825953, 12582957061, 12583088153, 12583219237, 12583350319, 12583481411, + 12583612513, 12583743589, 12583874663, 12584005781, 12584136857, 12584267989, 12584399063, + 12584530157, 12584661241, 12584792323, 12584923411, 12585054553, 12585185647, 12585316763, + 12585447899, 12585579023, 12585710117, 12585841207, 12585972299, 12586103377, 12586234471, + 12586365559, 12586496639, 12586627727, 12586758817, 12586889921, 12587020997, 12587152079, + 12587283173, 12587414303, 12587545379, 12587676457, 12587807537, 12587938619, 12588069719, + 12588200857, 12588331933, 12588463031, 12588594103, 12588725197, 12588856279, 12588987361, + 12589118501, 12589249597, 12589380673, 12589511801, 12589642873, 12589773949, 12589905037, + 12590036111, 12590167223, 12590298341, 12590429413, 12590560487, 12590691559, 12590822641, + 12590953721, 12591084823, 12591215909, 12591347011, 12591478147, 12591609241, 12591740327, + 12591871399, 12592002497, 12592133573, 12592264669, 12592395773, 12592526851, 12592657951, + 12592789051, 12592920157, 12593051239, 12593182313, 12593313407, 12593444491, 12593575601, + 12593706679, 12593837791, 12593968867, 12594099943, 12594231029, 12594362101, 12594493193, + 12594624269, 12594755351, 12594886483, 12595017571, 12595148653, 12595279729, 12595410827, + 12595541923, 12595673009, 12595804087, 12595935167, 12596066243, 12596197363, 12596328461, + 12596459563, 12596590663, 12596721737, 12596852861, 12596983933, 12597115021, 12597246127, + 12597377237, 12597508309, 12597639401, 12597770489, 12597901609, 12598032739, 12598163821, + 12598294897, 12598425979, 12598557061, 12598688147, 12598819253, 12598950347, 12599081419, + 12599212501, 12599343587, 12599474711, 12599605787, 12599736859, 12599867947, 12599999039, + 12600130129, 12600261203, 12600392293, 12600523367, 12600654463, 12600785551, 12600916693, + 12601047821, 12601178927, 12601310021, 12601441103, 12601572209, 12601703287, 12601834373, + 12601965461, 12602096561, 12602227633, 12602358707, 12602489813, 12602620909, 12602752021, + 12602883109, 12603014191, 12603145277, 12603276359, 12603407431, 12603538513, 12603669599, + 12603800681, 12603931771, 12604062881, 12604193971, 12604325057, 12604456177, 12604587269, + 12604718383, 12604849549, 12604980631, 12605111707, 12605242787, 12605373881, 12605504953, + 12605636047, 12605767123, 12605898199, 12606029321, 12606160393, 12606291479, 12606422557, + 12606553633, 12606684709, 12606815791, 12606946871, 12607077943, 12607209037, 12607340117, + 12607471231, 12607602307, 12607733381, 12607864457, 12607995581, 12608126659, 12608257769, + 12608388857, 12608519939, 12608651023, 12608782103, 12608913179, 12609044257, 12609175331, + 12609306427, 12609437501, 12609568597, 12609699671, 12609830771, 12609961843, 12610092923, + 12610224001, 12610355077, 12610486183, 12610617269, 12610748399, 12610879471, 12611010553, + 12611141633, 12611272711, 12611403793, 12611534879, 12611665987, 12611797073, 12611928149, + 12612059233, 12612190307, 12612321389, 12612452483, 12612583561, 12612714637, 12612845711, + 12612976793, 12613107869, 12613238947, 12613370027, 12613501133, 12613632221, 12613763299, + 12613894399, 12614025491, 12614156573, 12614287687, 12614418781, 12614549903, 12614680979, + 12614812061, 12614943137, 12615074209, 12615205319, 12615336403, 12615467477, 12615598591, + 12615729667, 12615860779, 12615991853, 12616123007, 12616254089, 12616385191, 12616516273, + 12616647367, 12616778441, 12616909523, 12617040599, 12617171683, 12617302781, 12617433877, + 12617564957, 12617696029, 12617827109, 12617958181, 12618089273, 12618220379, 12618351491, + 12618482563, 12618613691, 12618744769, 12618875861, 12619006943, 12619138019, 12619269109, + 12619400207, 12619531291, 12619662389, 12619793471, 12619924543, 12620055619, 12620186729, + 12620317849, 12620448949, 12620580029, 12620711101, 12620842183, 12620973289, 12621104401, + 12621235519, 12621366613, 12621497689, 12621628763, 12621759881, 12621890971, 12622022053, + 12622153133, 12622284217, 12622415291, 12622546369, 12622677451, 12622808531, 12622939621, + 12623070737, 12623201821, 12623332901, 12623463989, 12623595071, 12623726173, 12623857261, + 12623988337, 12624119461, 12624250549, 12624381643, 12624512723, 12624643861, 12624774937, + 12624906059, 12625037143, 12625168217, 12625299317, 12625430399, 12625561483, 12625692571, + 12625823647, 12625954729, 12626085839, 12626216963, 12626348051, 12626479123, 12626610259, + 12626741383, 12626872457, 12627003541, 12627134623, 12627265747, 12627396823, 12627527897, + 12627658969, 12627790061, 12627921143, 12628052263, 12628183357, 12628314449, 12628445537, + 12628576661, 12628707779, 12628838867, 12628969957, 12629101031, 12629232107, 12629363239, + 12629494321, 12629625409, 12629756507, 12629887583, 12630018673, 12630149761, 12630280853, + 12630411971, 12630543053, 12630674141, 12630805219, 12630936347, 12631067441, 12631198513, + 12631329611, 12631460729, 12631591811, 12631722893, 12631854071, 12631985143, 12632116267, + 12632247347, 12632378419, 12632509523, 12632640607, 12632771717, 12632902829, 12633033947, + 12633165047, 12633296177, 12633427249, 12633558331, 12633689423, 12633820513, 12633951613, + 12634082687, 12634213793, 12634344871, 12634475993, 12634607087, 12634738159, 12634869241, + 12635000341, 12635131463, 12635262539, 12635393611, 12635524709, 12635655817, 12635786893, + 12635918011, 12636049091, 12636180163, 12636311239, 12636442361, 12636573461, 12636704569, + 12636835649, 12636966733, 12637097819, 12637228897, 12637359991, 12637491077, 12637622149, + 12637753231, 12637884307, 12638015381, 12638146471, 12638277569, 12638408663, 12638539741, + 12638670817, 12638801893, 12638932973, 12639064073, 12639195187, 12639326261, 12639457351, + 12639588427, 12639719503, 12639850607, 12639981701, 12640112801, 12640243877, 12640374997, + 12640506079, 12640637173, 12640768253, 12640899361, 12641030489, 12641161571, 12641292649, + 12641423731, 12641554843, 12641685977, 12641817053, 12641948171, 12642079259, 12642210349, + 12642341423, 12642472499, 12642603583, 12642734659, 12642865751, 12642996827, 12643127927, + 12643259003, 12643390117, 12643521227, 12643652303, 12643783381, 12643914457, 12644045549, + 12644176621, 12644307703, 12644438809, 12644569909, 12644701009, 12644832197, 12644963291, + 12645094379, 12645225493, 12645356573, 12645487649, 12645618737, 12645749821, 12645880909, + 12646012013, 12646143127, 12646274213, 12646405397, 12646536479, 12646667573, 12646798649, + 12646929751, 12647060831, 12647191903, 12647322979, 12647454073, 12647585147, 12647716223, + 12647847301, 12647978407, 12648109493, 12648240589, 12648371693, 12648502781, 12648633863, + 12648764959, 12648896033, 12649027141, 12649158241, 12649289327, 12649420417, 12649551493, + 12649682567, 12649813651, 12649944803, 12650075927, 12650206999, 12650338093, 12650469217, + 12650600341, 12650731447, 12650862527, 12650993617, 12651124699, 12651255781, 12651386863, + 12651517981, 12651649117, 12651780277, 12651911381, 12652042463, 12652173539, 12652304633, + 12652435709, 12652566781, 12652697857, 12652828933, 12652960007, 12653091079, 12653222161, + 12653353319, 12653484391, 12653615479, 12653746571, 12653877647, 12654008737, 12654139811, + 12654270907, 12654401989, 12654533063, 12654664157, 12654795269, 12654926341, 12655057421, + 12655188503, 12655319587, 12655450663, 12655581767, 12655712857, 12655843973, 12655975081, + 12656106157, 12656237261, 12656368363, 12656499437, 12656630513, 12656761589, 12656892679, + 12657023761, 12657154841, 12657285947, 12657417023, 12657548119, 12657679201, 12657810331, + 12657941411, 12658072487, 12658203581, 12658334669, 12658465811, 12658596883, 12658727959, + 12658859033, 12658990159, 12659121253, 12659252327, 12659383411, 12659514487, 12659645591, + 12659776663, 12659907833, 12660039037, 12660170111, 12660301201, 12660432277, 12660563351, + 12660694457, 12660825533, 12660956611, 12661087687, 12661218763, 12661349837, 12661480913, + 12661612021, 12661743109, 12661874243, 12662005351, 12662136439, 12662267521, 12662398607, + 12662529683, 12662660807, 12662791891, 12662922973, 12663054067, 12663185147, 12663316219, + 12663447299, 12663578377, 12663709459, 12663840587, 12663971659, 12664102741, 12664233821, + 12664364917, 12664496021, 12664627121, 12664758193, 12664889273, 12665020367, 12665151449, + 12665282551, 12665413637, 12665544743, 12665675819, 12665806903, 12665938001, 12666069089, + 12666200161, 12666331243, 12666462317, 12666593441, 12666724529, 12666855623, 12666986699, + 12667117783, 12667248887, 12667379999, 12667511081, 12667642199, 12667773289, 12667904369, + 12668035451, 12668166547, 12668297641, 12668428723, 12668559823, 12668690941, 12668822029, + 12668953181, 12669084257, 12669215357, 12669346447, 12669477529, 12669608603, 12669739741, + 12669870821, 12670001959, 12670133041, 12670264121, 12670395193, 12670526287, 12670657369, + 12670788443, 12670919539, 12671050699, 12671181773, 12671312869, 12671443951, 12671575031, + 12671706121, 12671837197, 12671968279, 12672099361, 12672230509, 12672361601, 12672492683, + 12672623767, 12672754841, 12672885923, 12673017017, 12673148113, 12673279193, 12673410283, + 12673541369, 12673672447, 12673803539, 12673934617, 12674065693, 12674196793, 12674327947, + 12674459047, 12674590127, 12674721203, 12674852303, 12674983411, 12675114497, 12675245623, + 12675376717, 12675507797, 12675638873, 12675769957, 12675901057, 12676032151, 12676163257, + 12676294331, 12676425407, 12676556533, 12676687609, 12676818703, 12676949783, 12677080907, + 12677212027, 12677343121, 12677474197, 12677605271, 12677736389, 12677867471, 12677998547, + 12678129641, 12678260717, 12678391871, 12678522943, 12678654031, 12678785111, 12678916189, + 12679047281, 12679178387, 12679309493, 12679440569, 12679571647, 12679702727, 12679833833, + 12679964909, 12680095997, 12680227099, 12680358227, 12680489321, 12680620423, 12680751547, + 12680882639, 12681013721, 12681144793, 12681275869, 12681406951, 12681538031, 12681669107, + 12681800203, 12681931289, 12682062403, 12682193479, 12682324667, 12682455809, 12682586881, + 12682717969, 12682849061, 12682980157, 12683111263, 12683242361, 12683373433, 12683504531, + 12683635697, 12683766773, 12683897857, 12684028997, 12684160103, 12684291181, 12684422263, + 12684553367, 12684684469, 12684815621, 12684946693, 12685077841, 12685208917, 12685339991, + 12685471069, 12685602161, 12685733239, 12685864327, 12685995401, 12686126477, 12686257579, + 12686388679, 12686519761, 12686650849, 12686781923, 12686913047, 12687044129, 12687175201, + 12687306277, 12687437351, 12687568423, 12687699509, 12687830633, 12687961717, 12688092869, + 12688223969, 12688355051, 12688486169, 12688617247, 12688748333, 12688879409, 12689010487, + 12689141567, 12689272657, 12689403757, 12689534833, 12689665909, 12689796983, 12689928059, + 12690059159, 12690190237, 12690321317, 12690452429, 12690583511, 12690714583, 12690845659, + 12690976733, 12691107823, 12691238897, 12691369973, 12691501051, 12691632143, 12691763233, + 12691894307, 12692025407, 12692156489, 12692287583, 12692418689, 12692549801, 12692680877, + 12692811953, 12692943031, 12693074113, 12693205207, 12693336319, 12693467399, 12693598529, + 12693729641, 12693860779, 12693991873, 12694122949, 12694254029, 12694385219, 12694516319, + 12694647391, 12694778479, 12694909559, 12695040641, 12695171717, 12695302813, 12695433899, + 12695564993, 12695696093, 12695827181, 12695958281, 12696089353, 12696220477, 12696351557, + 12696482641, 12696613729, 12696744821, 12696875929, 12697007017, 12697138099, 12697269173, + 12697400251, 12697531333, 12697662493, 12697793593, 12697924697, 12698055779, 12698186857, + 12698317949, 12698449051, 12698580143, 12698711239, 12698842319, 12698973407, 12699104479, + 12699235553, 12699366629, 12699497717, 12699628793, 12699759869, 12699890969, 12700022059, + 12700153183, 12700284277, 12700415381, 12700546459, 12700677551, 12700808669, 12700939777, + 12701070881, 12701201969, 12701333059, 12701464189, 12701595289, 12701726371, 12701857457, + 12701988601, 12702119681, 12702250793, 12702381869, 12702512941, 12702644039, 12702775121, + 12702906197, 12703037317, 12703168391, 12703299491, 12703430563, 12703561699, 12703692773, + 12703823849, 12703954961, 12704086051, 12704217143, 12704348243, 12704479339, 12704610419, + 12704741507, 12704872601, 12705003677, 12705134791, 12705265871, 12705396983, 12705528091, + 12705659171, 12705790267, 12705921401, 12706052483, 12706183573, 12706314659, 12706445747, + 12706576829, 12706707901, 12706839011, 12706970113, 12707101193, 12707232311, 12707363387, + 12707494483, 12707625629, 12707756701, 12707887793, 12708018893, 12708149969, 12708281041, + 12708412121, 12708543203, 12708674371, 12708805511, 12708936589, 12709067671, 12709198753, + 12709329827, 12709460971, 12709592053, 12709723153, 12709854247, 12709985371, 12710116459, + 12710247533, 12710378617, 12710509699, 12710640781, 12710771863, 12710902961, 12711034069, + 12711165163, 12711296261, 12711427343, 12711558473, 12711689603, 12711820721, 12711951797, + 12712082869, 12712213961, 12712345081, 12712476191, 12712607263, 12712738361, 12712869439, + 12713000539, 12713131631, 12713262733, 12713393821, 12713524921, 12713656003, 12713787101, + 12713918209, 12714049331, 12714180403, 12714311501, 12714442589, 12714573671, 12714704749, + 12714835841, 12714966949, 12715098023, 12715229123, 12715360199, 12715491301, 12715622393, + 12715753537, 12715884617, 12716015701, 12716146787, 12716277883, 12716409059, 12716540171, + 12716671243, 12716802317, 12716933401, 12717064517, 12717195677, 12717326759, 12717457843, + 12717588971, 12717720049, 12717851137, 12717982231, 12718113307, 12718244423, 12718375507, + 12718506583, 12718637683, 12718768763, 12718899871, 12719030953, 12719162041, 12719293117, + 12719424233, 12719555327, 12719686453, 12719817527, 12719948603, 12720079709, 12720210791, + 12720341917, 12720472991, 12720604067, 12720735169, 12720866299, 12720997397, 12721128491, + 12721259581, 12721390679, 12721521793, 12721652893, 12721783973, 12721915069, 12722046149, + 12722177233, 12722308307, 12722439407, 12722570479, 12722701561, 12722832653, 12722963753, + 12723094837, 12723225917, 12723357007, 12723488093, 12723619193, 12723750313, 12723881441, + 12724012517, 12724143643, 12724274741, 12724405819, 12724536893, 12724667971, 12724799069, + 12724930157, 12725061263, 12725192341, 12725323417, 12725454491, 12725585563, 12725716637, + 12725847751, 12725978827, 12726109901, 12726240991, 12726372077, 12726503171, 12726634243, + 12726765319, 12726896417, 12727027499, 12727158589, 12727289681, 12727420759, 12727551833, + 12727682923, 12727814051, 12727945163, 12728076253, 12728207341, 12728338429, 12728469503, + 12728600609, 12728731739, 12728862821, 12728993939, 12729125027, 12729256103, 12729387199, + 12729518279, 12729649357, 12729780439, 12729911533, 12730042607, 12730173697, 12730304773, + 12730435849, 12730566923, 12730698119, 12730829191, 12730960267, 12731091349, 12731222423, + 12731353511, 12731484589, 12731615719, 12731746823, 12731877931, 12732009029, 12732140117, + 12732271199, 12732402283, 12732533357, 12732664429, 12732795563, 12732926653, 12733057741, + 12733188829, 12733319959, 12733451033, 12733582109, 12733713191, 12733844267, 12733975343, + 12734106419, 12734237533, 12734368607, 12734499683, 12734630803, 12734761903, 12734892979, + 12735024061, 12735155143, 12735286241, 12735417323, 12735548401, 12735679487, 12735810629, + 12735941707, 12736072787, 12736203859, 12736334981, 12736466069, 12736597141, 12736728227, + 12736859347, 12736990451, 12737121571, 12737252653, 12737383733, 12737514817, 12737645941, + 12737777029, 12737908201, 12738039313, 12738170407, 12738301489, 12738432587, 12738563683, + 12738694757, 12738825851, 12738956927, 12739088009, 12739219099, 12739350187, 12739481269, + 12739612343, 12739743427, 12739874503, 12740005583, 12740136679, 12740267767, 12740398841, + 12740529959, 12740661053, 12740792191, 12740923291, 12741054373, 12741185533, 12741316667, + 12741447739, 12741578813, 12741709919, 12741841081, 12741972161, 12742103243, 12742234331, + 12742365403, 12742496519, 12742627607, 12742758719, 12742889821, 12743020897, 12743152003, + 12743283083, 12743414191, 12743545277, 12743676349, 12743807423, 12743938511, 12744069587, + 12744200669, 12744331753, 12744462833, 12744593941, 12744725023, 12744856133, 12744987259, + 12745118341, 12745249421, 12745380493, 12745511567, 12745642667, 12745773751, 12745904837, + 12746035921, 12746167103, 12746298211, 12746429341, 12746560447, 12746691539, 12746822659, + 12746953781, 12747084853, 12747215947, 12747347027, 12747478103, 12747609209, 12747740321, + 12747871399, 12748002479, 12748133551, 12748264651, 12748395739, 12748526837, 12748657913, + 12748788989, 12748920071, 12749051191, 12749182291, 12749313377, 12749444459, 12749575549, + 12749706647, 12749837719, 12749968807, 12750099883, 12750230971, 12750362047, 12750493121, + 12750624193, 12750755267, 12750886367, 12751017443, 12751148519, 12751279643, 12751410719, + 12751541797, 12751672873, 12751803947, 12751935023, 12752066149, 12752197229, 12752328301, + 12752459443, 12752590519, 12752721599, 12752852683, 12752983777, 12753114863, 12753245959, + 12753377041, 12753508121, 12753639257, 12753770353, 12753901451, 12754032547, 12754163621, + 12754294703, 12754425791, 12754556909, 12754687997, 12754819097, 12754950191, 12755081267, + 12755212343, 12755343431, 12755474507, 12755605609, 12755736709, 12755867843, 12755998933, + 12756130021, 12756261139, 12756392237, 12756523309, 12756654431, 12756785537, 12756916621, + 12757047731, 12757178809, 12757309889, 12757441001, 12757572077, 12757703207, 12757834339, + 12757965433, 12758096521, 12758227633, 12758358707, 12758489791, 12758620873, 12758751961, + 12758883043, 12759014117, 12759145211, 12759276287, 12759407369, 12759538453, 12759669529, + 12759800623, 12759931699, 12760062781, 12760193893, 12760324987, 12760456061, 12760587139, + 12760718237, 12760849313, 12760980391, 12761111477, 12761242561, 12761373661, 12761504737, + 12761635823, 12761766923, 12761898043, 12762029177, 12762160267, 12762291361, 12762422437, + 12762553519, 12762684619, 12762815693, 12762946783, 12763077871, 12763208947, 12763340039, + 12763471153, 12763602233, 12763733371, 12763864493, 12763995577, 12764126653, 12764257739, + 12764388823, 12764519897, 12764650973, 12764782057, 12764913157, 12765044287, 12765175363, + 12765306451, 12765437653, 12765568831, 12765699907, 12765830999, 12765962071, 12766093163, + 12766224257, 12766355333, 12766486409, 12766617497, 12766748611, 12766879693, 12767010827, + 12767141951, 12767273047, 12767404171, 12767535283, 12767666357, 12767797429, 12767928529, + 12768059611, 12768190723, 12768321799, 12768452897, 12768583999, 12768715073, 12768846151, + 12768977233, 12769108309, 12769239391, 12769370539, 12769501621, 12769632697, 12769763801, + 12769894873, 12770025953, 12770157067, 12770288159, 12770419253, 12770550329, 12770681419, + 12770812507, 12770943607, 12771074731, 12771205823, 12771336901, 12771467987, 12771599063, + 12771730141, 12771861229, 12771992309, 12772123381, 12772254457, 12772385531, 12772516633, + 12772647763, 12772778869, 12772909951, 12773041027, 12773172101, 12773303189, 12773434319, + 12773565391, 12773696479, 12773827559, 12773958649, 12774089743, 12774220843, 12774351917, + 12774483011, 12774614087, 12774745187, 12774876259, 12775007339, 12775138421, 12775269541, + 12775400621, 12775531697, 12775662793, 12775793903, 12775925053, 12776056127, 12776187247, + 12776318449, 12776449529, 12776580613, 12776711687, 12776842783, 12776973889, 12777104981, + 12777236077, 12777367151, 12777498301, 12777629399, 12777760483, 12777891559, 12778022689, + 12778153777, 12778284859, 12778415981, 12778547053, 12778678127, 12778809221, 12778940297, + 12779071369, 12779202463, 12779333543, 12779464639, 12779595733, 12779726809, 12779857889, + 12779988971, 12780120097, 12780251179, 12780382253, 12780513341, 12780644447, 12780775531, + 12780906613, 12781037701, 12781168783, 12781299857, 12781430939, 12781562069, 12781693157, + 12781824271, 12781955383, 12782086469, 12782217557, 12782348659, 12782479733, 12782610809, + 12782741899, 12782872979, 12783004057, 12783135149, 12783266231, 12783397307, 12783528389, + 12783659467, 12783790541, 12783921637, 12784052737, 12784183823, 12784314911, 12784446013, + 12784577129, 12784708231, 12784839313, 12784970423, 12785101507, 12785232587, 12785363687, + 12785494769, 12785625841, 12785756917, 12785888029, 12786019123, 12786150197, 12786281293, + 12786412391, 12786543467, 12786674561, 12786805651, 12786936727, 12787067819, 12787198891, + 12787329967, 12787461053, 12787592171, 12787723253, 12787854397, 12787985471, 12788116543, + 12788247617, 12788378689, 12788509807, 12788640899, 12788771971, 12788903047, 12789034129, + 12789165211, 12789296291, 12789427381, 12789558469, 12789689551, 12789820669, 12789951791, + 12790082887, 12790213973, 12790345079, 12790476151, 12790607231, 12790738319, 12790869431, + 12791000539, 12791131637, 12791262763, 12791393837, 12791524939, 12791656067, 12791787143, + 12791918219, 12792049397, 12792180469, 12792311549, 12792442633, 12792573737, 12792704819, + 12792835897, 12792966971, 12793098049, 12793229143, 12793360249, 12793491323, 12793622453, + 12793753541, 12793884613, 12794015701, 12794146777, 12794277889, 12794408971, 12794540047, + 12794671159, 12794802281, 12794933353, 12795064553, 12795195641, 12795326759, 12795457867, + 12795588941, 12795720017, 12795851099, 12795982181, 12796113277, 12796244453, 12796375577, + 12796506649, 12796637741, 12796768813, 12796899937, 12797031041, 12797162141, 12797293213, + 12797424337, 12797555413, 12797686487, 12797817581, 12797948701, 12798079781, 12798210871, + 12798341987, 12798473059, 12798604187, 12798735307, 12798866383, 12798997517, 12799128599, + 12799259677, 12799390753, 12799521841, 12799652923, 12799784083, 12799915157, 12800046229, + 12800177311, 12800308403, 12800439499, 12800570609, 12800701733, 12800832809, 12800963897, + 12801094997, 12801226099, 12801357193, 12801488339, 12801619451, 12801750523, 12801881629, + 12802012759, 12802143841, 12802274939, 12802406021, 12802537109, 12802668209, 12802799287, + 12802930421, 12803061503, 12803192653, 12803323751, 12803454841, 12803585933, 12803717011, + 12803848103, 12803979187, 12804110329, 12804241403, 12804372509, 12804503599, 12804634673, + 12804765761, 12804896849, 12805027957, 12805159043, 12805290119, 12805421191, 12805552267, + 12805683349, 12805814449, 12805945547, 12806076631, 12806207717, 12806338801, 12806469881, + 12806600959, 12806732033, 12806863133, 12806994227, 12807125327, 12807256471, 12807387547, + 12807518627, 12807649733, 12807780857, 12807911939, 12808043011, 12808174097, 12808305173, + 12808436257, 12808567333, 12808698457, 12808829549, 12808960667, 12809091767, 12809222843, + 12809353939, 12809485027, 12809616103, 12809747201, 12809878273, 12810009383, 12810140459, + 12810271531, 12810402611, 12810533683, 12810664831, 12810795919, 12810926993, 12811058089, + 12811189163, 12811320253, 12811451327, 12811582423, 12811713521, 12811844597, 12811975679, + 12812106751, 12812237827, 12812368901, 12812499979, 12812631053, 12812762161, 12812893253, + 12813024331, 12813155417, 12813286531, 12813417607, 12813548687, 12813679763, 12813810851, + 12813941927, 12814073003, 12814204079, 12814335151, 12814466233, 12814597309, 12814728397, + 12814859479, 12814990567, 12815121647, 12815252729, 12815383807, 12815515001, 12815646089, + 12815777207, 12815908279, 12816039377, 12816170489, 12816301577, 12816432649, 12816563741, + 12816694819, 12816825893, 12816957001, 12817088107, 12817219187, 12817350263, 12817481357, + 12817612453, 12817743551, 12817874627, 12818005741, 12818136817, 12818267897, 12818398969, + 12818530073, 12818661151, 12818792243, 12818923343, 12819054419, 12819185543, 12819316637, + 12819447727, 12819578801, 12819709879, 12819840977, 12819972059, 12820103221, 12820234307, + 12820365413, 12820496527, 12820627601, 12820758689, 12820889777, 12821020871, 12821151983, + 12821283103, 12821414219, 12821545307, 12821676409, 12821807491, 12821938573, 12822069677, + 12822200759, 12822331843, 12822462937, 12822594017, 12822725093, 12822856181, 12822987263, + 12823118369, 12823249463, 12823380587, 12823511663, 12823642757, 12823773839, 12823904923, + 12824035999, 12824167099, 12824298173, 12824429251, 12824560337, 12824691419, 12824822497, + 12824953573, 12825084673, 12825215789, 12825346861, 12825477941, 12825609029, 12825740149, + 12825871229, 12826002311, 12826133387, 12826264471, 12826395557, 12826526689, 12826657801, + 12826788883, 12826919983, 12827051119, 12827182213, 12827313293, 12827444411, 12827575489, + 12827706587, 12827837683, 12827968759, 12828099847, 12828230927, 12828362017, 12828493109, + 12828624253, 12828755341, 12828886423, 12829017497, 12829148569, 12829279657, 12829410733, + 12829541807, 12829672883, 12829803971, 12829935047, 12830066143, 12830197223, 12830328319, + 12830459393, 12830590501, 12830721587, 12830852659, 12830983741, 12831114823, 12831245923, + 12831377003, 12831508103, 12831639239, 12831770381, 12831901477, 12832032571, 12832163647, + 12832294733, 12832425833, 12832556917, 12832687993, 12832819073, 12832950173, 12833081263, + 12833212367, 12833343449, 12833474543, 12833605621, 12833736701, 12833867791, 12833998871, + 12834129947, 12834261023, 12834392149, 12834523277, 12834654367, 12834785471, 12834916543, + 12835047661, 12835178749, 12835309849, 12835440953, 12835572077, 12835703159, 12835834259, + 12835965341, 12836096489, 12836227637, 12836358727, 12836489807, 12836620883, 12836752007, + 12836883091, 12837014231, 12837145303, 12837276407, 12837407521, 12837538601, 12837669709, + 12837800791, 12837931891, 12838062997, 12838194143, 12838325257, 12838456349, 12838587449, + 12838718521, 12838849601, 12838980683, 12839111767, 12839242853, 12839373931, 12839505043, + 12839636123, 12839767211, 12839898283, 12840029359, 12840160439, 12840291551, 12840422689, + 12840553763, 12840684839, 12840815929, 12840947003, 12841078091, 12841209169, 12841340279, + 12841471399, 12841602547, 12841733659, 12841864747, 12841995821, 12842126897, 12842257973, + 12842389081, 12842520157, 12842651273, 12842782357, 12842913437, 12843044527, 12843175613, + 12843306701, 12843437779, 12843568861, 12843699983, 12843831089, 12843962207, 12844093337, + 12844224433, 12844355569, 12844486651, 12844617803, 12844748881, 12844879961, 12845011051, + 12845142133, 12845273269, 12845404349, 12845535433, 12845666539, 12845797633, 12845928761, + 12846059851, 12846190963, 12846322039, 12846453119, 12846584207, 12846715289, 12846846361, + 12846977443, 12847108543, 12847239637, 12847370719, 12847501861, 12847632953, 12847764107, + 12847895189, 12848026273, 12848157403, 12848288483, 12848419559, 12848550653, 12848681731, + 12848812811, 12848943917, 12849074999, 12849206081, 12849337169, 12849468251, 12849599333, + 12849730417, 12849861551, 12849992641, 12850123721, 12850254817, 12850385963, 12850517041, + 12850648121, 12850779239, 12850910333, 12851041417, 12851172527, 12851303617, 12851434691, + 12851565773, 12851696899, 12851827991, 12851959073, 12852090187, 12852221297, 12852352399, + 12852483473, 12852614573, 12852745649, 12852876769, 12853007851, 12853138951, 12853270097, + 12853401179, 12853532269, 12853663357, 12853794433, 12853925527, 12854056639, 12854187739, + 12854318819, 12854449963, 12854581039, 12854712133, 12854843219, 12854974291, 12855105383, + 12855236483, 12855367561, 12855498641, 12855629747, 12855760831, 12855891949, 12856023023, + 12856154123, 12856285213, 12856416301, 12856547399, 12856678477, 12856809571, 12856940669, + 12857071813, 12857202893, 12857334001, 12857465087, 12857596201, 12857727359, 12857858473, + 12857989553, 12858120689, 12858251837, 12858382909, 12858514037, 12858645109, 12858776213, + 12858907289, 12859038373, 12859169447, 12859300537, 12859431623, 12859562707, 12859693807, + 12859824889, 12859955971, 12860087069, 12860218159, 12860349233, 12860480317, 12860611403, + 12860742481, 12860873561, 12861004643, 12861135797, 12861266911, 12861397999, 12861529073, + 12861660157, 12861791231, 12861922321, 12862053427, 12862184521, 12862315603, 12862446677, + 12862577759, 12862708841, 12862839919, 12862971029, 12863102101, 12863233213, 12863364317, + 12863495413, 12863626499, 12863757581, 12863888659, 12864019769, 12864150853, 12864281977, + 12864413053, 12864544153, 12864675269, 12864806351, 12864937427, 12865068499, 12865199579, + 12865330657, 12865461751, 12865592833, 12865723907, 12865854979, 12865986071, 12866117153, + 12866248229, 12866379301, 12866510399, 12866641519, 12866772599, 12866903681, 12867034777, + 12867165901, 12867296989, 12867428087, 12867559169, 12867690247, 12867821321, 12867952403, + 12868083497, 12868214599, 12868345681, 12868476763, 12868607891, 12868738963, 12868870051, + 12869001137, 12869132279, 12869263357, 12869394437, 12869525527, 12869656619, 12869787691, + 12869918771, 12870049847, 12870180923, 12870311999, 12870443083, 12870574169, 12870705257, + 12870836443, 12870967537, 12871098677, 12871229759, 12871360847, 12871491929, 12871623007, + 12871754107, 12871885183, 12872016281, 12872147383, 12872278457, 12872409559, 12872540689, + 12872671783, 12872802871, 12872933977, 12873065071, 12873196181, 12873327281, 12873458357, + 12873589447, 12873720529, 12873851609, 12873982691, 12874113809, 12874244897, 12874375973, + 12874507057, 12874638149, 12874769249, 12874900321, 12875031409, 12875162549, 12875293649, + 12875424721, 12875555809, 12875686891, 12875817973, 12875949059, 12876080131, 12876211223, + 12876342307, 12876473383, 12876604471, 12876735563, 12876866647, 12876997723, 12877128809, + 12877259893, 12877390997, 12877522079, 12877653179, 12877784267, 12877915357, 12878046437, + 12878177509, 12878308613, 12878439689, 12878570819, 12878701937, 12878833031, 12878964121, + 12879095209, 12879226291, 12879357383, 12879488467, 12879619549, 12879750623, 12879881699, + 12880012781, 12880143863, 12880274969, 12880406047, 12880537139, 12880668223, 12880799303, + 12880930399, 12881061499, 12881192579, 12881323661, 12881454737, 12881585839, 12881716951, + 12881848043, 12881979137, 12882110221, 12882241297, 12882372379, 12882503467, 12882634577, + 12882765667, 12882896749, 12883027823, 12883158907, 12883290011, 12883421107, 12883552207, + 12883683299, 12883814371, 12883945457, 12884076539, 12884207627, 12884338717, 12884469803, + 12884600903, 12884731999, 12884863093, 12884994173, 12885125257, 12885256357, 12885387433, + 12885518507, 12885649583, 12885780707, 12885911803, 12886042909, 12886174003, 12886305139, + 12886436273, 12886567357, 12886698443, 12886829533, 12886960613, 12887091709, 12887222783, + 12887353867, 12887484997, 12887616127, 12887747203, 12887878301, 12888009391, 12888140509, + 12888271657, 12888402731, 12888533807, 12888664889, 12888796001, 12888927101, 12889058173, + 12889189289, 12889320361, 12889451483, 12889582571, 12889713647, 12889844743, 12889975817, + 12890106893, 12890237977, 12890369057, 12890500141, 12890631233, 12890762341, 12890893429, + 12891024539, 12891155623, 12891286697, 12891417811, 12891548903, 12891679991, 12891811067, + 12891942209, 12892073291, 12892204373, 12892335461, 12892466533, 12892597607, 12892728689, + 12892859761, 12892990841, 12893121959, 12893253031, 12893384111, 12893515199, 12893646281, + 12893777363, 12893908507, 12894039583, 12894170657, 12894301741, 12894432827, 12894563909, + 12894694987, 12894826157, 12894957239, 12895088317, 12895219397, 12895350491, 12895481567, + 12895612643, 12895743761, 12895874869, 12896005949, 12896137057, 12896268139, 12896399227, + 12896530303, 12896661439, 12896792521, 12896923601, 12897054701, 12897185783, 12897316877, + 12897447971, 12897579073, 12897710191, 12897841301, 12897972379, 12898103489, 12898234603, + 12898365679, 12898496813, 12898627897, 12898759001, 12898890073, 12899021189, 12899152283, + 12899283373, 12899414447, 12899545537, 12899676611, 12899807707, 12899938783, 12900069859, + 12900200947, 12900332047, 12900463151, 12900594229, 12900725311, 12900856387, 12900987493, + 12901118641, 12901249729, 12901380839, 12901511921, 12901642997, 12901774099, 12901905197, + 12902036281, 12902167361, 12902298439, 12902429537, 12902560609, 12902691701, 12902822773, + 12902953849, 12903084947, 12903216023, 12903347143, 12903478229, 12903609307, 12903740407, + 12903871507, 12904002583, 12904133659, 12904264739, 12904395821, 12904526903, 12904658057, + 12904789187, 12904920271, 12905051431, 12905182519, 12905313713, 12905444791, 12905575867, + 12905706949, 12905838041, 12905969117, 12906100217, 12906231301, 12906362377, 12906493507, + 12906624581, 12906755663, 12906886771, 12907017853, 12907148957, 12907280033, 12907411159, + 12907542259, 12907673413, 12907804513, 12907935613, 12908066687, 12908197781, 12908328859, + 12908459939, 12908591021, 12908722093, 12908853169, 12908984251, 12909115327, 12909246407, + 12909377513, 12909508589, 12909639713, 12909770791, 12909901877, 12910032959, 12910164041, + 12910295131, 12910426237, 12910557329, 12910688411, 12910819499, 12910950593, 12911081699, + 12911212781, 12911343877, 12911474957, 12911606033, 12911737123, 12911868199, 12911999299, + 12912130381, 12912261457, 12912392567, 12912523649, 12912654721, 12912785801, 12912916903, + 12913047977, 12913179061, 12913310147, 12913441271, 12913572349, 12913703443, 12913834547, + 12913965643, 12914096747, 12914227831, 12914358917, 12914490023, 12914621101, 12914752177, + 12914883259, 12915014347, 12915145433, 12915276509, 12915407587, 12915538663, 12915669773, + 12915800851, 12915931933, 12916063073, 12916194149, 12916325221, 12916456303, 12916587377, + 12916718471, 12916849573, 12916980649, 12917111737, 12917242813, 12917373899, 12917504981, + 12917636059, 12917767147, 12917898223, 12918029297, 12918160429, 12918291509, 12918422597, + 12918553699, 12918684811, 12918815909, 12918947009, 12919078093, 12919209169, 12919340267, + 12919471349, 12919602499, 12919733591, 12919864669, 12919995743, 12920126831, 12920257919, + 12920388991, 12920520103, 12920651203, 12920782307, 12920913403, 12921044509, 12921175607, + 12921306679, 12921437777, 12921568873, 12921699953, 12921831073, 12921962239, 12922093411, + 12922224493, 12922355591, 12922486669, 12922617751, 12922748831, 12922879927, 12923011021, + 12923142101, 12923273201, 12923404283, 12923535403, 12923666521, 12923797609, 12923928707, + 12924059803, 12924190919, 12924322069, 12924453151, 12924584243, 12924715343, 12924846421, + 12924977519, 12925108621, 12925239773, 12925370849, 12925501943, 12925633027, 12925764113, + 12925895197, 12926026283, 12926157403, 12926288477, 12926419553, 12926550641, 12926681767, + 12926812867, 12926943941, 12927075017, 12927206099, 12927337201, 12927468289, 12927599369, + 12927730447, 12927861553, 12927992639, 12928123711, 12928254793, 12928385923, 12928517011, + 12928648153, 12928779229, 12928910341, 12929041417, 12929172517, 12929303663, 12929434783, + 12929565863, 12929696981, 12929828053, 12929959157, 12930090233, 12930221323, 12930352403, + 12930483487, 12930614561, 12930745669, 12930876811, 12931007899, 12931138981, 12931270057, + 12931401139, 12931532233, 12931663307, 12931794391, 12931925477, 12932056549, 12932187629, + 12932318713, 12932449787, 12932580877, 12932711977, 12932843089, 12932974177, 12933105277, + 12933236357, 12933367471, 12933498547, 12933629659, 12933760733, 12933891821, 12934022897, + 12934154017, 12934285097, 12934416199, 12934547303, 12934678433, 12934809509, 12934940647, + 12935071733, 12935202821, 12935333899, 12935464979, 12935596061, 12935727143, 12935858249, + 12935989457, 12936120553, 12936251663, 12936382777, 12936513853, 12936644947, 12936776033, + 12936907157, 12937038259, 12937169347, 12937300421, 12937431509, 12937562591, 12937693669, + 12937824763, 12937955843, 12938086919, 12938218009, 12938349121, 12938480209, 12938611297, + 12938742389, 12938873477, 12939004549, 12939135631, 12939266723, 12939397817, 12939528893, + 12939659969, 12939791057, 12939922129, 12940053221, 12940184303, 12940315393, 12940446469, + 12940577549, 12940708631, 12940839731, 12940970807, 12941101903, 12941232979, 12941364061, + 12941495153, 12941626283, 12941757391, 12941888471, 12942019543, 12942150619, 12942281701, + 12942412781, 12942543863, 12942675091, 12942806207, 12942937279, 12943068353, 12943199471, + 12943330553, 12943461659, 12943592741, 12943723847, 12943854919, 12943985993, 12944117107, + 12944248181, 12944379269, 12944510389, 12944641469, 12944772541, 12944903641, 12945034763, + 12945165851, 12945296933, 12945428009, 12945559087, 12945690217, 12945821321, 12945952433, + 12946083511, 12946214627, 12946345717, 12946476811, 12946607897, 12946738993, 12946870073, + 12947001149, 12947132227, 12947263331, 12947394413, 12947525491, 12947656591, 12947787667, + 12947918759, 12948049843, 12948180919, 12948312019, 12948443117, 12948574207, 12948705311, + 12948836419, 12948967511, 12949098587, 12949229659, 12949360759, 12949491871, 12949622947, + 12949754021, 12949885097, 12950016217, 12950147323, 12950278399, 12950409473, 12950540593, + 12950671667, 12950802773, 12950933893, 12951064999, 12951196079, 12951327161, 12951458257, + 12951589331, 12951720449, 12951851603, 12951982679, 12952113761, 12952244867, 12952375951, + 12952507037, 12952638109, 12952769189, 12952900273, 12953031353, 12953162489, 12953293583, + 12953424661, 12953555801, 12953686897, 12953818027, 12953949131, 12954080239, 12954211337, + 12954342413, 12954473491, 12954604577, 12954735649, 12954866731, 12954997807, 12955128899, + 12955259983, 12955391069, 12955522187, 12955653307, 12955784411, 12955915507, 12956046581, + 12956177657, 12956308823, 12956439901, 12956570987, 12956702063, 12956833151, 12956964257, + 12957095381, 12957226483, 12957357583, 12957488659, 12957619747, 12957750847, 12957881927, + 12958013017, 12958144117, 12958275193, 12958406323, 12958537399, 12958668479, 12958799551, + 12958930681, 12959061761, 12959192833, 12959323921, 12959455027, 12959586109, 12959717207, + 12959848283, 12959979371, 12960110453, 12960241529, 12960372613, 12960503713, 12960634823, + 12960765907, 12960897029, 12961028107, 12961159199, 12961290281, 12961421371, 12961552453, + 12961683563, 12961814639, 12961945723, 12962076833, 12962207941, 12962339023, 12962470109, + 12962601203, 12962732303, 12962863471, 12962994553, 12963125641, 12963256717, 12963387823, + 12963518917, 12963650041, 12963781121, 12963912277, 12964043363, 12964174477, 12964305581, + 12964436669, 12964567741, 12964698823, 12964829947, 12964961029, 12965092141, 12965223253, + 12965354333, 12965485409, 12965616481, 12965747609, 12965878687, 12966009761, 12966140849, + 12966271921, 12966403003, 12966534103, 12966665203, 12966796277, 12966927353, 12967058441, + 12967189537, 12967320629, 12967451719, 12967582829, 12967713961, 12967845047, 12967976209, + 12968107283, 12968238391, 12968369467, 12968500543, 12968631617, 12968762693, 12968893771, + 12969024857, 12969155987, 12969287059, 12969418141, 12969549217, 12969680293, 12969811367, + 12969942439, 12970073521, 12970204603, 12970335689, 12970466779, 12970597883, 12970728973, + 12970860053, 12970991183, 12971122261, 12971253341, 12971384423, 12971515523, 12971646601, + 12971777677, 12971908777, 12972039881, 12972170971, 12972302071, 12972433163, 12972564251, + 12972695339, 12972826411, 12972957493, 12973088573, 12973219681, 12973350779, 12973481869, + 12973612961, 12973744037, 12973875137, 12974006219, 12974137301, 12974268409, 12974399483, + 12974530573, 12974661653, 12974792737, 12974923811, 12975054901, 12975186017, 12975317093, + 12975448177, 12975579257, 12975710329, 12975841409, 12975972523, 12976103641, 12976234723, + 12976365811, 12976496903, 12976628023, 12976759109, 12976890193, 12977021279, 12977152367, + 12977283547, 12977414621, 12977545703, 12977676781, 12977807867, 12977938949, 12978070037, + 12978201157, 12978332231, 12978463319, 12978594401, 12978725479, 12978856573, 12978987649, + 12979118771, 12979249861, 12979380937, 12979512017, 12979643099, 12979774187, 12979905383, + 12980036471, 12980167549, 12980298623, 12980429701, 12980560781, 12980691877, 12980822951, + 12980954123, 12981085213, 12981216319, 12981347419, 12981478493, 12981609577, 12981740657, + 12981871843, 12982002931, 12982134013, 12982265111, 12982396183, 12982527269, 12982658399, + 12982789531, 12982920617, 12983051723, 12983182813, 12983313901, 12983444989, 12983576069, + 12983707169, 12983838251, 12983969353, 12984100427, 12984231503, 12984362609, 12984493723, + 12984624853, 12984755929, 12984887021, 12985018097, 12985149187, 12985280261, 12985411381, + 12985542467, 12985673573, 12985804661, 12985935737, 12986066813, 12986197897, 12986329003, + 12986460083, 12986591171, 12986722267, 12986853353, 12986984429, 12987115523, 12987246607, + 12987377693, 12987508783, 12987639883, 12987770977, 12987902071, 12988033159, 12988164251, + 12988295377, 12988426457, 12988557551, 12988688623, 12988819709, 12988950797, 12989081869, + 12989212981, 12989344057, 12989475133, 12989606209, 12989737339, 12989868433, 12989999573, + 12990130651, 12990261727, 12990392813, 12990523891, 12990654973, 12990786047, 12990917123, + 12991048211, 12991179293, 12991310383, 12991441459, 12991572541, 12991703651, 12991834781, + 12991965887, 12992096981, 12992228059, 12992359181, 12992490253, 12992621371, 12992752447, + 12992883571, 12993014653, 12993145727, 12993276809, 12993407881, 12993538979, 12993670091, + 12993801179, 12993932279, 12994063361, 12994194461, 12994325563, 12994456639, 12994587737, + 12994718819, 12994849897, 12994980983, 12995112071, 12995243161, 12995374261, 12995505371, + 12995636461, 12995767559, 12995898649, 12996029723, 12996160817, 12996291907, 12996423001, + 12996554101, 12996685189, 12996816269, 12996947351, 12997078427, 12997209499, 12997340579, + 12997471667, 12997602797, 12997733869, 12997864961, 12997996079, 12998127151, 12998258227, + 12998389301, 12998520401, 12998651473, 12998782547, 12998913673, 12999044753, 12999175837, + 12999306923, 12999438013, 12999569113, 12999700253, 12999831347, 12999962449, 13000093537, + 13000224623, 13000355699, 13000486783, 13000617869, 13000748947, 13000880059, 13001011151, + 13001142229, 13001273309, 13001404387, 13001535467, 13001666563, 13001797651, 13001928739, + 13002059881, 13002190961, 13002322093, 13002453203, 13002584297, 13002715459, 13002846539, + 13002977641, 13003108829, 13003239901, 13003370977, 13003502051, 13003633151, 13003764247, + 13003895327, 13004026403, 13004157503, 13004288623, 13004419699, 13004550781, 13004681867, + 13004812969, 13004944049, 13005075121, 13005206219, 13005337369, 13005468449, 13005599533, + 13005730649, 13005861731, 13005992837, 13006123909, 13006254997, 13006386091, 13006517171, + 13006648267, 13006779353, 13006910453, 13007041543, 13007172643, 13007303719, 13007434799, + 13007565871, 13007696957, 13007828111, 13007959199, 13008090281, 13008221431, 13008352517, + 13008483613, 13008614791, 13008745877, 13008876961, 13009008049, 13009139137, 13009270231, + 13009401313, 13009532407, 13009663481, 13009794557, 13009925639, 13010056711, 13010187791, + 13010318873, 13010449957, 13010581069, 13010712149, 13010843221, 13010974303, 13011105377, + 13011236449, 13011367543, 13011498631, 13011629707, 13011760831, 13011891917, 13012022993, + 13012154083, 13012285201, 13012416283, 13012547407, 13012678487, 13012809629, 13012940741, + 13013071829, 13013202901, 13013333981, 13013465093, 13013596171, 13013727253, 13013858357, + 13013989451, 13014120529, 13014251617, 13014382853, 13014513943, 13014645041, 13014776129, + 13014907237, 13015038349, 13015169467, 13015300607, 13015431691, 13015562789, 13015693871, + 13015824947, 13015956029, 13016087107, 13016218183, 13016349257, 13016480329, 13016611411, + 13016742491, 13016873587, 13017004661, 13017135749, 13017266827, 13017397903, 13017528977, + 13017660079, 13017791173, 13017922273, 13018053401, 13018184573, 13018315657, 13018446739, + 13018577839, 13018708979, 13018840063, 13018971143, 13019102219, 13019233309, 13019364403, + 13019495497, 13019626573, 13019757671, 13019888759, 13020019843, 13020150931, 13020282013, + 13020413117, 13020544189, 13020675289, 13020806387, 13020937459, 13021068623, 13021199713, + 13021330787, 13021461917, 13021593041, 13021724113, 13021855229, 13021986323, 13022117413, + 13022248493, 13022379569, 13022510717, 13022641829, 13022772901, 13022904007, 13023035087, + 13023166207, 13023297283, 13023428359, 13023559477, 13023690571, 13023821659, 13023952757, + 13024083857, 13024214953, 13024346029, 13024477111, 13024608197, 13024739291, 13024870373, + 13025001481, 13025132651, 13025263733, 13025394817, 13025525923, 13025657011, 13025788117, + 13025919209, 13026050333, 13026181417, 13026312521, 13026443603, 13026574679, 13026705781, + 13026836861, 13026967937, 13027099049, 13027230173, 13027361261, 13027492349, 13027623421, + 13027754533, 13027885609, 13028016709, 13028147809, 13028278889, 13028409983, 13028541067, + 13028672141, 13028803231, 13028934311, 13029065383, 13029196463, 13029327631, 13029458759, + 13029589841, 13029720929, 13029852023, 13029983201, 13030114313, 13030245427, 13030376509, + 13030507657, 13030638749, 13030769821, 13030900963, 13031032039, 13031163113, 13031294197, + 13031425273, 13031556359, 13031687441, 13031818517, 13031949631, 13032080717, 13032211789, + 13032342881, 13032473959, 13032605051, 13032736159, 13032867247, 13032998351, 13033129427, + 13033260517, 13033391627, 13033522703, 13033653799, 13033784887, 13033915981, 13034047073, + 13034178161, 13034309333, 13034440409, 13034571497, 13034702573, 13034833673, 13034964751, + 13035095851, 13035226927, 13035358013, 13035489127, 13035620207, 13035751279, 13035882373, + 13036013447, 13036144529, 13036275617, 13036406689, 13036537763, 13036668859, 13036799953, + 13036931051, 13037062163, 13037193241, 13037324317, 13037455421, 13037586533, 13037717621, + 13037848717, 13037979793, 13038110867, 13038241943, 13038373031, 13038504137, 13038635227, + 13038766313, 13038897401, 13039028489, 13039159577, 13039290659, 13039421737, 13039552819, + 13039683931, 13039815011, 13039946083, 13040077201, 13040208281, 13040339381, 13040470453, + 13040601619, 13040732701, 13040863777, 13040994859, 13041125983, 13041257077, 13041388163, + 13041519259, 13041650357, 13041781453, 13041912529, 13042043603, 13042174687, 13042305761, + 13042436837, 13042567913, 13042699031, 13042830109, 13042961189, 13043092331, 13043223407, + 13043354483, 13043485561, 13043616643, 13043747807, 13043878901, 13044009991, 13044141109, + 13044272209, 13044403303, 13044534383, 13044665461, 13044796537, 13044927619, 13045058693, + 13045189777, 13045320851, 13045451941, 13045583021, 13045714151, 13045845223, 13045976309, + 13046107387, 13046238467, 13046369573, 13046500669, 13046631791, 13046762887, 13046893961, + 13047025081, 13047156163, 13047287263, 13047418337, 13047549439, 13047680599, 13047811691, + 13047942781, 13048073873, 13048204963, 13048336061, 13048467149, 13048598249, 13048729339, + 13048860439, 13048991519, 13049122607, 13049253709, 13049384791, 13049515873, 13049646949, + 13049778083, 13049909183, 13050040261, 13050171349, 13050302429, 13050433511, 13050564617, + 13050695743, 13050826823, 13050957911, 13051088983, 13051220057, 13051351147, 13051482229, + 13051613329, 13051744417, 13051875497, 13052006587, 13052137663, 13052268743, 13052399839, + 13052530913, 13052662001, 13052793097, 13052924179, 13053055283, 13053186397, 13053317479, + 13053448591, 13053579677, 13053710777, 13053841877, 13053972949, 13054104029, 13054235107, + 13054366219, 13054497317, 13054628399, 13054759489, 13054890599, 13055021677, 13055152763, + 13055283931, 13055415007, 13055546107, 13055677183, 13055808281, 13055939353, 13056070429, + 13056201503, 13056332587, 13056463733, 13056594809, 13056725893, 13056856973, 13056988067, + 13057119139, 13057250221, 13057381321, 13057512431, 13057643507, 13057774607, 13057905691, + 13058036777, 13058167849, 13058298923, 13058429999, 13058561093, 13058692169, 13058823247, + 13058954323, 13059085399, 13059216479, 13059347557, 13059478631, 13059609713, 13059740789, + 13059871879, 13060002971, 13060134047, 13060265123, 13060396207, 13060527283, 13060658371, + 13060789457, 13060920547, 13061051629, 13061182709, 13061313787, 13061444863, 13061575963, + 13061707037, 13061838143, 13061969251, 13062100327, 13062231409, 13062362483, 13062493583, + 13062624661, 13062755743, 13062886841, 13063017917, 13063149067, 13063280143, 13063411219, + 13063542329, 13063673407, 13063804549, 13063935629, 13064066737, 13064197829, 13064328917, + 13064460001, 13064591129, 13064722213, 13064853287, 13064984363, 13065115499, 13065246599, + 13065377713, 13065508787, 13065639889, 13065770989, 13065902119, 13066033231, 13066164379, + 13066295521, 13066426601, 13066557677, 13066688773, 13066819847, 13066950931, 13067082019, + 13067213099, 13067344181, 13067475257, 13067606329, 13067737433, 13067868511, 13067999597, + 13068130687, 13068261797, 13068392893, 13068523991, 13068655079, 13068786151, 13068917261, + 13069048361, 13069179443, 13069310557, 13069441643, 13069572743, 13069703851, 13069834961, + 13069966033, 13070097109, 13070228209, 13070359301, 13070490373, 13070621477, 13070752567, + 13070883643, 13071014767, 13071145849, 13071276943, 13071408029, 13071539111, 13071670193, + 13071801307, 13071932399, 13072063483, 13072194559, 13072325653, 13072456729, 13072587877, + 13072718957, 13072850033, 13072981123, 13073112223, 13073243317, 13073374453, 13073505527, + 13073636657, 13073767769, 13073898847, 13074029923, 13074161063, 13074292223, 13074423311, + 13074554393, 13074685469, 13074816551, 13074947651, 13075078739, 13075209811, 13075340923, + 13075472027, 13075603139, 13075734211, 13075865287, 13075996379, 13076127451, 13076258537, + 13076389631, 13076520707, 13076651813, 13076782903, 13076914013, 13077045101, 13077176179, + 13077307259, 13077438331, 13077569431, 13077700523, 13077831607, 13077962693, 13078093771, + 13078224931, 13078356041, 13078487129, 13078618277, 13078749377, 13078880483, 13079011567, + 13079142647, 13079273723, 13079404831, 13079535923, 13079667001, 13079798099, 13079929241, + 13080060407, 13080191507, 13080322579, 13080453653, 13080584743, 13080715831, 13080846967, + 13080978059, 13081109131, 13081240217, 13081371311, 13081502393, 13081633559, 13081764637, + 13081895711, 13082026801, 13082157877, 13082289001, 13082420093, 13082551231, 13082682307, + 13082813389, 13082944481, 13083075559, 13083206639, 13083337739, 13083468817, 13083599909, + 13083731021, 13083862097, 13083993217, 13084124351, 13084255439, 13084386529, 13084517609, + 13084648697, 13084779769, 13084910903, 13085042011, 13085173103, 13085304179, 13085435263, + 13085566339, 13085697421, 13085828507, 13085959589, 13086090701, 13086221821, 13086352919, + 13086484051, 13086615127, 13086746201, 13086877339, 13087008427, 13087139503, 13087270579, + 13087401659, 13087532767, 13087663871, 13087794959, 13087926031, 13088057117, 13088188199, + 13088319323, 13088450407, 13088581483, 13088712577, 13088843683, 13088974793, 13089105877, + 13089236959, 13089368053, 13089499169, 13089630289, 13089761389, 13089892477, 13090023553, + 13090154653, 13090285751, 13090416863, 13090547947, 13090679027, 13090810147, 13090941263, + 13091072339, 13091203423, 13091334497, 13091465617, 13091596729, 13091727851, 13091858959, + 13091990063, 13092121153, 13092252241, 13092383351, 13092514423, 13092645551, 13092776713, + 13092907787, 13093038863, 13093169963, 13093301047, 13093432129, 13093563209, 13093694297, + 13093825373, 13093956451, 13094087527, 13094218639, 13094349743, 13094480849, 13094611927, + 13094743003, 13094874097, 13095005177, 13095136277, 13095267377, 13095398461, 13095529553, + 13095660631, 13095791717, 13095922789, 13096053863, 13096184989, 13096316069, 13096447163, + 13096578283, 13096709393, 13096840469, 13096971551, 13097102633, 13097233711, 13097364793, + 13097495869, 13097626951, 13097758027, 13097889113, 13098020249, 13098151333, 13098282427, + 13098413507, 13098544601, 13098675683, 13098806801, 13098937879, 13099068953, 13099200041, + 13099331129, 13099462219, 13099593329, 13099724413, 13099855487, 13099986569, 13100117677, + 13100248751, 13100379833, 13100510921, 13100642011, 13100773099, 13100904233, 13101035371, + 13101166447, 13101297527, 13101428609, 13101559693, 13101690779, 13101821861, 13101952937, + 13102084057, 13102215169, 13102346251, 13102477361, 13102608439, 13102739543, 13102870633, + 13103001707, 13103132831, 13103263909, 13103395001, 13103526089, 13103657179, 13103788283, + 13103919407, 13104050497, 13104181591, 13104312677, 13104443789, 13104574891, 13104705979, + 13104837077, 13104968171, 13105099261, 13105230349, 13105361431, 13105492531, 13105623607, + 13105754707, 13105885787, 13106016863, 13106147963, 13106279089, 13106410189, 13106541263, + 13106672347, 13106803433, 13106934587, 13107065711, 13107196799, 13107327907, 13107459023, + 13107590101, 13107721177, 13107852253, 13107983347, 13108114423, 13108245551, 13108376639, + 13108507771, 13108638913, 13108770007, 13108901119, 13109032207, 13109163289, 13109294377, + 13109425451, 13109556529, 13109687609, 13109818697, 13109949833, 13110080909, 13110211987, + 13110343063, 13110474203, 13110605293, 13110736369, 13110867457, 13110998531, 13111129643, + 13111260719, 13111391791, 13111522877, 13111653979, 13111785067, 13111916141, 13112047213, + 13112178301, 13112309377, 13112440463, 13112571539, 13112702657, 13112833753, 13112964869, + 13113095951, 13113227027, 13113358147, 13113489239, 13113620339, 13113751421, 13113882499, + 13114013581, 13114144657, 13114275737, 13114406827, 13114537913, 13114669021, 13114800107, + 13114931191, 13115062309, 13115193383, 13115324471, 13115455543, 13115586623, 13115717701, + 13115848783, 13115979871, 13116111023, 13116242137, 13116373211, 13116504283, 13116635381, + 13116766459, 13116897557, 13117028653, 13117159813, 13117290919, 13117422001, 13117553087, + 13117684207, 13117815371, 13117946447, 13118077543, 13118208619, 13118339693, 13118470777, + 13118601863, 13118732971, 13118864071, 13118995159, 13119126259, 13119257341, 13119388423, + 13119519593, 13119650681, 13119781783, 13119912893, 13120043983, 13120175063, 13120306159, + 13120437247, 13120568323, 13120699409, 13120830509, 13120961587, 13121092667, 13121223767, + 13121354887, 13121485967, 13121617043, 13121748127, 13121879203, 13122010327, 13122141413, + 13122272497, 13122403573, 13122534671, 13122665749, 13122796829, 13122927911, 13123059043, + 13123190177, 13123321249, 13123452367, 13123583477, 13123714573, 13123845667, 13123976771, + 13124107957, 13124239033, 13124370113, 13124501189, 13124632271, 13124763347, 13124894437, + 13125025519, 13125156601, 13125287701, 13125418777, 13125549919, 13125680993, 13125812137, + 13125943247, 13126074329, 13126205437, 13126336513, 13126467587, 13126598687, 13126729771, + 13126860883, 13126991993, 13127123081, 13127254177, 13127385251, 13127516341, 13127647457, + 13127778541, 13127909621, 13128040697, 13128171773, 13128302851, 13128433937, 13128565097, + 13128696181, 13128827281, 13128958369, 13129089461, 13129220539, 13129351619, 13129482697, + 13129613773, 13129744871, 13129875943, 13130007031, 13130138113, 13130269193, 13130400307, + 13130531431, 13130662511, 13130793607, 13130924683, 13131055789, 13131186889, 13131317971, + 13131449053, 13131580153, 13131711239, 13131842329, 13131973417, 13132104523, 13132235609, + 13132366727, 13132497799, 13132628879, 13132759951, 13132891069, 13133022169, 13133153261, + 13133284337, 13133415409, 13133546507, 13133677619, 13133808739, 13133939827, 13134070907, + 13134201979, 13134333089, 13134464171, 13134595261, 13134726343, 13134857419, 13134988501, + 13135119607, 13135250699, 13135381793, 13135512889, 13135644013, 13135775117, 13135906193, + 13136037289, 13136168401, 13136299493, 13136430589, 13136561701, 13136692783, 13136823857, + 13136954947, 13137086057, 13137217133, 13137348227, 13137479321, 13137610393, 13137741481, + 13137872557, 13138003657, 13138134733, 13138265851, 13138396969, 13138528049, 13138659161, + 13138790267, 13138921349, 13139052457, 13139183537, 13139314619, 13139445701, 13139576783, + 13139707877, 13139838953, 13139970047, 13140101147, 13140232241, 13140363337, 13140494441, + 13140625573, 13140756677, 13140887777, 13141018871, 13141149943, 13141281029, 13141412129, + 13141543213, 13141674317, 13141805401, 13141936519, 13142067593, 13142198677, 13142329763, + 13142460841, 13142591921, 13142723023, 13142854099, 13142985181, 13143116269, 13143247391, + 13143378499, 13143509573, 13143640667, 13143771749, 13143902831, 13144033909, 13144164997, + 13144296089, 13144427173, 13144558319, 13144689427, 13144820509, 13144951591, 13145082667, + 13145213749, 13145344831, 13145475971, 13145607047, 13145738173, 13145869249, 13146000403, + 13146131477, 13146262553, 13146393661, 13146524773, 13146655853, 13146786943, 13146918073, + 13147049171, 13147180261, 13147311347, 13147442431, 13147573519, 13147704611, 13147835737, + 13147966831, 13148097947, 13148229043, 13148360123, 13148491211, 13148622323, 13148753419, + 13148884493, 13149015571, 13149146683, 13149277763, 13149408871, 13149539947, 13149671023, + 13149802097, 13149933197, 13150064269, 13150195361, 13150326463, 13150457557, 13150588637, + 13150719737, 13150850813, 13150981897, 13151113033, 13151244109, 13151375191, 13151506271, + 13151637349, 13151768423, 13151899531, 13152030659, 13152161731, 13152292807, 13152423917, + 13152555001, 13152686083, 13152817163, 13152948239, 13153079321, 13153210397, 13153341479, + 13153472581, 13153603663, 13153734743, 13153865827, 13153996927, 13154128019, 13154259101, + 13154390189, 13154521279, 13154652391, 13154783479, 13154914567, 13155045697, 13155176777, + 13155307853, 13155438929, 13155570011, 13155701101, 13155832243, 13155963323, 13156094423, + 13156225583, 13156356677, 13156487753, 13156618859, 13156749953, 13156881029, 13157012101, + 13157143177, 13157274271, 13157405351, 13157536433, 13157667539, 13157798639, 13157929717, + 13158060791, 13158191899, 13158322997, 13158454093, 13158585197, 13158716269, 13158847363, + 13158978461, 13159109569, 13159240667, 13159371761, 13159502833, 13159633933, 13159765037, + 13159896119, 13160027191, 13160158301, 13160289377, 13160420459, 13160551541, 13160682659, + 13160813747, 13160944831, 13161075943, 13161207061, 13161338243, 13161469357, 13161600449, + 13161731533, 13161862667, 13161993743, 13162124849, 13162255921, 13162387033, 13162518137, + 13162649221, 13162780321, 13162911401, 13163042479, 13163173579, 13163304677, 13163435783, + 13163566861, 13163697961, 13163829059, 13163960137, 13164091223, 13164222311, 13164353407, + 13164484507, 13164615613, 13164746689, 13164877769, 13165008859, 13165139963, 13165271083, + 13165402177, 13165533287, 13165664371, 13165795529, 13165926611, 13166057713, 13166188787, + 13166319961, 13166451043, 13166582119, 13166713199, 13166844287, 13166975369, 13167106451, + 13167237553, 13167368629, 13167499703, 13167630799, 13167761879, 13167892957, 13168024057, + 13168155139, 13168286213, 13168417289, 13168548377, 13168679453, 13168810531, 13168941607, + 13169072711, 13169203811, 13169334949, 13169466031, 13169597113, 13169728199, 13169859281, + 13169990359, 13170121441, 13170252541, 13170383623, 13170514727, 13170645809, 13170776893, + 13170907973, 13171039087, 13171170191, 13171301263, 13171432369, 13171563443, 13171694519, + 13171825613, 13171956697, 13172087777, 13172218877, 13172349959, 13172481103, 13172612263, + 13172743411, 13172874487, 13173005569, 13173136643, 13173267761, 13173398891, 13173529991, + 13173661091, 13173792173, 13173923251, 13174054367, 13174185443, 13174316527, 13174447621, + 13174578707, 13174709791, 13174840867, 13174972061, 13175103157, 13175234263, 13175365349, + 13175496449, 13175627537, 13175758619, 13175889691, 13176020797, 13176151883, 13176283027, + 13176414109, 13176545219, 13176676291, 13176807377, 13176938477, 13177069579, 13177200671, + 13177331747, 13177462843, 13177593931, 13177725061, 13177856137, 13177987219, 13178118301, + 13178249419, 13178380529, 13178511607, 13178642689, 13178773789, 13178904863, 13179035951, + 13179167033, 13179298109, 13179429209, 13179560287, 13179691363, 13179822463, 13179953539, + 13180084637, 13180215709, 13180346801, 13180477879, 13180608971, 13180740049, 13180871177, + 13181002283, 13181133373, 13181264461, 13181395537, 13181526667, 13181657773, 13181788849, + 13181919977, 13182051049, 13182182161, 13182313237, 13182444343, 13182575423, 13182706501, + 13182837581, 13182968653, 13183099733, 13183230829, 13183361941, 13183493041, 13183624159, + 13183755241, 13183886333, 13184017409, 13184148491, 13184279593, 13184410693, 13184541803, + 13184672887, 13184803991, 13184935067, 13185066157, 13185197239, 13185328313, 13185459473, + 13185590597, 13185721687, 13185852787, 13185983911, 13186115039, 13186246111, 13186377223, + 13186508317, 13186639399, 13186770497, 13186901587, 13187032673, 13187163757, 13187294947, + 13187426023, 13187557133, 13187688209, 13187819291, 13187950459, 13188081541, 13188212629, + 13188343703, 13188474779, 13188605861, 13188736949, 13188868027, 13188999127, 13189130239, + 13189261363, 13189392439, 13189523591, 13189654679, 13189785761, 13189916891, 13190047963, + 13190179097, 13190310193, 13190441293, 13190572387, 13190703467, 13190834543, 13190965637, + 13191096733, 13191227813, 13191358897, 13191489973, 13191621049, 13191752129, 13191883253, + 13192014337, 13192145411, 13192276501, 13192407577, 13192538659, 13192669759, 13192800847, + 13192931977, 13193063057, 13193194129, 13193325239, 13193456323, 13193587399, 13193718493, + 13193849587, 13193980661, 13194111743, 13194242821, 13194373901, 13194504997, 13194636107, + 13194767207, 13194898303, 13195029401, 13195160477, 13195291559, 13195422659, 13195553737, + 13195684829, 13195815917, 13195946993, 13196078081, 13196209153, 13196340247, 13196471347, + 13196602439, 13196733521, 13196864609, 13196995697, 13197126823, 13197257897, 13197388969, + 13197520057, 13197651133, 13197782243, 13197913321, 13198044397, 13198175503, 13198306619, + 13198437709, 13198568797, 13198699879, 13198830973, 13198962071, 13199093179, 13199224261, + 13199355341, 13199486429, 13199617517, 13199748607, 13199879713, 13200010787, 13200141859, + 13200272941, 13200404017, 13200535121, 13200666203, 13200797299, 13200928373, 13201059451, + 13201190539, 13201321663, 13201452739, 13201583821, 13201714931, 13201846033, 13201977127, + 13202108203, 13202239277, 13202370463, 13202501551, 13202632627, 13202763713, 13202894791, + 13203025903, 13203156977, 13203288061, 13203419149, 13203550253, 13203681341, 13203812417, + 13203943591, 13204074679, 13204205761, 13204336837, 13204467911, 13204599019, 13204730101, + 13204861181, 13204992293, 13205123369, 13205254483, 13205385587, 13205516669, 13205647757, + 13205778841, 13205909923, 13206041003, 13206172099, 13206303193, 13206434317, 13206565451, + 13206696557, 13206827633, 13206958711, 13207089827, 13207220909, 13207352021, 13207483099, + 13207614179, 13207745261, 13207876333, 13208007419, 13208138497, 13208269609, 13208400683, + 13208531779, 13208662853, 13208793929, 13208925011, 13209056099, 13209187171, 13209318247, + 13209449417, 13209580507, 13209711607, 13209842689, 13209973769, 13210104877, 13210235993, + 13210367081, 13210498177, 13210629259, 13210760351, 13210891427, 13211022511, 13211153591, + 13211284673, 13211415799, 13211546903, 13211678041, 13211809123, 13211940197, 13212071297, + 13212202369, 13212333499, 13212464579, 13212595661, 13212726773, 13212857893, 13212988967, + 13213120097, 13213251211, 13213382321, 13213513399, 13213644481, 13213775581, 13213906669, + 13214037743, 13214168827, 13214299907, 13214430997, 13214562083, 13214693161, 13214824241, + 13214955317, 13215086399, 13215217471, 13215348551, 13215479623, 13215610697, 13215741769, + 13215872867, 13216003939, 13216135013, 13216266139, 13216397251, 13216528337, 13216659409, + 13216790501, 13216921631, 13217052727, 13217183809, 13217314889, 13217445979, 13217577151, + 13217708243, 13217839331, 13217970413, 13218101527, 13218232603, 13218363689, 13218494761, + 13218625877, 13218756959, 13218888047, 13219019183, 13219150267, 13219281367, 13219412441, + 13219543517, 13219674607, 13219805699, 13219936771, 13220067853, 13220198933, 13220330009, + 13220461081, 13220592163, 13220723267, 13220854349, 13220985433, 13221116581, 13221247661, + 13221378743, 13221509831, 13221640909, 13221771989, 13221903061, 13222034149, 13222165261, + 13222296343, 13222427419, 13222558493, 13222689643, 13222820731, 13222951813, 13223082907, + 13223214077, 13223345183, 13223476271, 13223607343, 13223738419, 13223869513, 13224000593, + 13224131731, 13224262811, 13224393883, 13224524977, 13224656059, 13224787159, 13224918241, + 13225049317, 13225180393, 13225311511, 13225442617, 13225573709, 13225704787, 13225835879, + 13225966951, 13226098097, 13226229187, 13226360297, 13226491423, 13226622503, 13226753581, + 13226884679, 13227015751, 13227146827, 13227277913, 13227409033, 13227540119, 13227671213, + 13227802303, 13227933379, 13228064453, 13228195529, 13228326613, 13228457713, 13228588817, + 13228719913, 13228850993, 13228982069, 13229113151, 13229244227, 13229375317, 13229506391, + 13229637479, 13229768561, 13229899649, 13230030727, 13230161827, 13230292919, 13230423991, + 13230555067, 13230686141, 13230817231, 13230948317, 13231079423, 13231210513, 13231341589, + 13231472663, 13231603739, 13231734821, 13231865903, 13231996979, 13232128073, 13232259169, + 13232390243, 13232521327, 13232652427, 13232783507, 13232914589, 13233045677, 13233176779, + 13233307859, 13233438997, 13233570079, 13233701207, 13233832279, 13233963367, 13234094441, + 13234225519, 13234356631, 13234487713, 13234618801, 13234749887, 13234880999, 13235012081, + 13235143153, 13235274229, 13235405327, 13235536417, 13235667499, 13235798591, 13235929687, + 13236060779, 13236191867, 13236322943, 13236454019, 13236585119, 13236716191, 13236847307, + 13236978389, 13237109467, 13237240547, 13237371619, 13237502717, 13237633793, 13237764893, + 13237895999, 13238027071, 13238158147, 13238289277, 13238420383, 13238551481, 13238682593, + 13238813671, 13238944751, 13239075823, 13239206923, 13239337999, 13239469109, 13239600229, + 13239731333, 13239862421, 13239993509, 13240124627, 13240255729, 13240386823, 13240517921, + 13240649011, 13240780121, 13240911251, 13241042351, 13241173441, 13241304521, 13241435629, + 13241566727, 13241697809, 13241828891, 13241959967, 13242091043, 13242222143, 13242353219, + 13242484319, 13242615403, 13242746567, 13242877649, 13243008743, 13243139827, 13243270913, + 13243401989, 13243533131, 13243664209, 13243795289, 13243926373, 13244057447, 13244188547, + 13244319631, 13244450759, 13244581837, 13244712913, 13244844037, 13244975113, 13245106187, + 13245237259, 13245368347, 13245499471, 13245630577, 13245761653, 13245892729, 13246023809, + 13246154881, 13246285999, 13246417081, 13246548157, 13246679231, 13246810307, 13246941397, + 13247072473, 13247203547, 13247334623, 13247465701, 13247596777, 13247727869, 13247858947, + 13247990051, 13248121129, 13248252209, 13248383297, 13248514373, 13248645523, 13248776609, + 13248907699, 13249038779, 13249169863, 13249300943, 13249432019, 13249563109, 13249694239, + 13249825327, 13249956409, 13250087483, 13250218559, 13250349643, 13250480767, 13250611841, + 13250742943, 13250874029, 13251005107, 13251136181, 13251267313, 13251398387, 13251529463, + 13251660559, 13251791633, 13251922711, 13252053797, 13252184903, 13252315997, 13252447069, + 13252578161, 13252709237, 13252840343, 13252971421, 13253102507, 13253233597, 13253364673, + 13253495777, 13253626849, 13253757943, 13253889031, 13254020137, 13254151219, 13254282317, + 13254413437, 13254544529, 13254675619, 13254806699, 13254937793, 13255068901, 13255199977, + 13255331071, 13255462151, 13255593283, 13255724413, 13255855511, 13255986593, 13256117711, + 13256248847, 13256379919, 13256510999, 13256642117, 13256773223, 13256904301, 13257035413, + 13257166537, 13257297611, 13257428711, 13257559811, 13257690931, 13257822023, 13257953129, + 13258084201, 13258215287, 13258346363, 13258477469, 13258608541, 13258739629, 13258870747, + 13259001823, 13259133001, 13259264101, 13259395183, 13259526277, 13259657351, 13259788433, + 13259919529, 13260050603, 13260181703, 13260312809, 13260443951, 13260575087, 13260706183, + 13260837263, 13260968339, 13261099417, 13261230491, 13261361573, 13261492649, 13261623733, + 13261754887, 13261885991, 13262017063, 13262148139, 13262279221, 13262410303, 13262541389, + 13262672471, 13262803553, 13262934647, 13263065743, 13263196831, 13263327907, 13263458993, + 13263590071, 13263721157, 13263852247, 13263983323, 13264114397, 13264245473, 13264376551, + 13264507661, 13264638791, 13264769873, 13264900993, 13265032069, 13265163167, 13265294249, + 13265425361, 13265556517, 13265687597, 13265818669, 13265949743, 13266080819, 13266211943, + 13266343049, 13266474121, 13266605207, 13266736291, 13266867389, 13266998471, 13267129543, + 13267260623, 13267391741, 13267522813, 13267653911, 13267784989, 13267916093, 13268047207, + 13268178289, 13268309363, 13268440457, 13268571599, 13268702701, 13268833783, 13268964857, + 13269095951, 13269227047, 13269358127, 13269489227, 13269620327, 13269751511, 13269882601, + 13270013677, 13270144751, 13270275827, 13270406917, 13270537991, 13270669079, 13270800163, + 13270931257, 13271062361, 13271193443, 13271324531, 13271455633, 13271586719, 13271717827, + 13271848913, 13271980009, 13272111091, 13272242171, 13272373253, 13272504347, 13272635419, + 13272766513, 13272897587, 13273028689, 13273159829, 13273290907, 13273422013, 13273553089, + 13273684181, 13273815253, 13273946333, 13274077489, 13274208601, 13274339681, 13274470753, + 13274601841, 13274732929, 13274864021, 13274995093, 13275126173, 13275257257, 13275388333, + 13275519409, 13275650483, 13275781567, 13275912647, 13276043743, 13276174819, 13276305947, + 13276437037, 13276568113, 13276699187, 13276830271, 13276961419, 13277092501, 13277223587, + 13277354659, 13277485769, 13277616883, 13277747969, 13277879081, 13278010169, 13278141257, + 13278272389, 13278403471, 13278534551, 13278665629, 13278796717, 13278927797, 13279058873, + 13279189967, 13279321051, 13279452161, 13279583287, 13279714369, 13279845457, 13279976537, + 13280107613, 13280238757, 13280369833, 13280500907, 13280631979, 13280763059, 13280894131, + 13281025211, 13281156299, 13281287387, 13281418477, 13281549559, 13281680639, 13281811729, + 13281942809, 13282073881, 13282204997, 13282336069, 13282467167, 13282598311, 13282729423, + 13282860497, 13282991573, 13283122651, 13283253727, 13283384801, 13283515873, 13283646973, + 13283778089, 13283909161, 13284040271, 13284171359, 13284302453, 13284433537, 13284564637, + 13284695813, 13284826889, 13284957979, 13285089089, 13285220213, 13285351291, 13285482421, + 13285613501, 13285744607, 13285875689, 13286006761, 13286137871, 13286268949, 13286400053, + 13286531177, 13286662261, 13286793337, 13286924437, 13287055519, 13287186593, 13287317669, + 13287448747, 13287579859, 13287710957, 13287842083, 13287973157, 13288104241, 13288235381, + 13288366463, 13288497539, 13288628621, 13288759721, 13288890827, 13289021899, 13289153021, + 13289284093, 13289415187, 13289546261, 13289677391, 13289808491, 13289939587, 13290070691, + 13290201773, 13290332863, 13290464029, 13290595111, 13290726209, 13290857287, 13290988421, + 13291119511, 13291250587, 13291381669, 13291512779, 13291643879, 13291774963, 13291906049, + 13292037131, 13292168203, 13292299289, 13292430413, 13292561489, 13292692579, 13292823671, + 13292954761, 13293085837, 13293216917, 13293348059, 13293479153, 13293610249, 13293741337, + 13293872437, 13294003517, 13294134593, 13294265671, 13294396783, 13294527887, 13294658981, + 13294790053, 13294921201, 13295052301, 13295183393, 13295314481, 13295445563, 13295576647, + 13295707739, 13295838811, 13295969893, 13296101069, 13296232177, 13296363257, 13296494353, + 13296625469, 13296756589, 13296887699, 13297018783, 13297149863, 13297280951, 13297412059, + 13297543151, 13297674263, 13297805347, 13297936439, 13298067533, 13298198647, 13298329757, + 13298460869, 13298591959, 13298723063, 13298854139, 13298985223, 13299116323, 13299247447, + 13299378553, 13299509647, 13299640723, 13299771833, 13299902909, 13300034021, 13300165133, + 13300296211, 13300427303, 13300558417, 13300689499, 13300820573, 13300951649, 13301082787, + 13301213867, 13301344939, 13301476037, 13301607127, 13301738249, 13301869331, 13302000403, + 13302131519, 13302262591, 13302393667, 13302524771, 13302655867, 13302786941, 13302918017, + 13303049147, 13303180223, 13303311311, 13303442407, 13303573487, 13303704599, 13303835681, + 13303966757, 13304097839, 13304228941, 13304360023, 13304491097, 13304622169, 13304753263, + 13304884339, 13305015467, 13305146627, 13305277703, 13305408803, 13305539899, 13305670991, + 13305802079, 13305933191, 13306064279, 13306195351, 13306326433, 13306457533, 13306588609, + 13306719691, 13306850797, 13306981871, 13307112943, 13307244019, 13307375099, 13307506181, + 13307637253, 13307768363, 13307899441, 13308030577, 13308161729, 13308292817, 13308423893, + 13308554977, 13308686107, 13308817189, 13308948269, 13309079383, 13309210483, 13309341557, + 13309472651, 13309603751, 13309734827, 13309865911, 13309997003, 13310128127, 13310259223, + 13310390311, 13310521423, 13310652541, 13310783617, 13310914691, 13311045799, 13311176899, + 13311307979, 13311439069, 13311570149, 13311701297, 13311832403, 13311963491, 13312094567, + 13312225669, 13312356749, 13312487843, 13312618919, 13312750001, 13312881073, 13313012149, + 13313143237, 13313274343, 13313405423, 13313536513, 13313667613, 13313798723, 13313929801, + 13314060937, 13314192011, 13314323089, 13314454169, 13314585257, 13314716329, 13314847411, + 13314978491, 13315109629, 13315240703, 13315371799, 13315502891, 13315633973, 13315765063, + 13315896203, 13316027281, 13316158423, 13316289577, 13316420659, 13316551733, 13316682809, + 13316813911, 13316944999, 13317076081, 13317207181, 13317338273, 13317469387, 13317600511, + 13317731593, 13317862687, 13317993763, 13318124839, 13318255919, 13318387009, 13318518121, + 13318649207, 13318780291, 13318911367, 13319042459, 13319173541, 13319304671, 13319435743, + 13319566853, 13319697943, 13319829041, 13319960113, 13320091201, 13320222287, 13320353363, + 13320484439, 13320615563, 13320746657, 13320877747, 13321008839, 13321139917, 13321270997, + 13321402069, 13321533221, 13321664299, 13321795373, 13321926473, 13322057579, 13322188667, + 13322319743, 13322450819, 13322581891, 13322712967, 13322844071, 13322975203, 13323106361, + 13323237457, 13323368533, 13323499613, 13323630703, 13323761779, 13323892859, 13324023967, + 13324155049, 13324286141, 13324417213, 13324548311, 13324679437, 13324810519, 13324941593, + 13325072669, 13325203751, 13325334823, 13325465981, 13325597057, 13325728153, 13325859293, + 13325990369, 13326121463, 13326252571, 13326383663, 13326514771, 13326645881, 13326776971, + 13326908051, 13327039123, 13327170217, 13327301291, 13327432369, 13327563449, 13327694531, + 13327825649, 13327956749, 13328087849, 13328218949, 13328350043, 13328481119, 13328612191, + 13328743303, 13328874379, 13329005461, 13329136627, 13329267737, 13329398809, 13329529897, + 13329660973, 13329792101, 13329923177, 13330054261, 13330185353, 13330316459, 13330447531, + 13330578631, 13330709729, 13330840837, 13330971911, 13331102999, 13331234093, 13331365189, + 13331496287, 13331627369, 13331758457, 13331889551, 13332020629, 13332151717, 13332282823, + 13332413957, 13332545029, 13332676109, 13332807199, 13332938317, 13333069397, 13333200493, + 13333331573, 13333462657, 13333593739, 13333724881, 13333855963, 13333987049, 13334118137, + 13334249209, 13334380313, 13334511397, 13334642479, 13334773607, 13334904679, 13335035761, + 13335166841, 13335297919, 13335429031, 13335560111, 13335691183, 13335822259, 13335953381, + 13336084471, 13336215547, 13336346623, 13336477703, 13336608809, 13336739893, 13336870993, + 13337002079, 13337133197, 13337264287, 13337395403, 13337526487, 13337657591, 13337788669, + 13337919773, 13338050897, 13338181991, 13338313073, 13338444169, 13338575249, 13338706327, + 13338837427, 13338968501, 13339099583, 13339230677, 13339361771, 13339492853, 13339623931, + 13339755017, 13339886089, 13340017169, 13340148259, 13340279339, 13340410411, 13340541499, + 13340672573, 13340803661, 13340934767, 13341065873, 13341196949, 13341328067, 13341459161, + 13341590279, 13341721361, 13341852439, 13341983519, 13342114637, 13342245727, 13342376807, + 13342507901, 13342638977, 13342770061, 13342901137, 13343032231, 13343163341, 13343294413, + 13343425489, 13343556571, 13343687657, 13343818729, 13343949811, 13344080899, 13344212003, + 13344343081, 13344474263, 13344605377, 13344736477, 13344867583, 13344998677, 13345129751, + 13345260827, 13345391909, 13345523027, 13345654099, 13345785197, 13345916279, 13346047357, + 13346178487, 13346309609, 13346440687, 13346571761, 13346702833, 13346833933, 13346965031, + 13347096131, 13347227213, 13347358307, 13347489383, 13347620471, 13347751577, 13347882649, + 13348013737, 13348144811, 13348275887, 13348406977, 13348538051, 13348669129, 13348800203, + 13348931293, 13349062381, 13349193461, 13349324537, 13349455643, 13349586739, 13349717837, + 13349848931, 13349980003, 13350111079, 13350242167, 13350373243, 13350504367, 13350635479, + 13350766567, 13350897641, 13351028749, 13351159859, 13351290961, 13351422047, 13351553123, + 13351684249, 13351815329, 13351946411, 13352077493, 13352208577, 13352339657, 13352470751, + 13352601841, 13352732927, 13352864017, 13352995091, 13353126173, 13353257273, 13353388379, + 13353519467, 13353650567, 13353781663, 13353912739, 13354043839, 13354174921, 13354305997, + 13354437097, 13354568189, 13354699273, 13354830347, 13354961437, 13355092537, 13355223619, + 13355354699, 13355485771, 13355616847, 13355747941, 13355879023, 13356010099, 13356141173, + 13356272353, 13356403427, 13356534511, 13356665743, 13356796819, 13356927893, 13357058969, + 13357190047, 13357321127, 13357452263, 13357583341, 13357714423, 13357845517, 13357976641, + 13358107727, 13358238811, 13358369887, 13358500973, 13358632051, 13358763169, 13358894251, + 13359025333, 13359156407, 13359287533, 13359418619, 13359549719, 13359680813, 13359811891, + 13359943013, 13360074103, 13360205197, 13360336271, 13360467371, 13360598443, 13360729531, + 13360860647, 13360991731, 13361122837, 13361253911, 13361384987, 13361516083, 13361647157, + 13361778233, 13361909377, 13362040469, 13362171541, 13362302623, 13362433729, 13362564823, + 13362695897, 13362826979, 13362958099, 13363089211, 13363220287, 13363351363, 13363482469, + 13363613551, 13363744627, 13363875727, 13364006827, 13364137907, 13364268991, 13364400089, + 13364531161, 13364662237, 13364793317, 13364924393, 13365055477, 13365186553, 13365317657, + 13365448763, 13365579863, 13365710951, 13365842029, 13365973133, 13366104223, 13366235297, + 13366366427, 13366497533, 13366628683, 13366759781, 13366890869, 13367021947, 13367153021, + 13367284193, 13367415311, 13367546383, 13367677457, 13367808533, 13367939617, 13368070699, + 13368201817, 13368332893, 13368464003, 13368595081, 13368726157, 13368857339, 13368988427, + 13369119523, 13369250597, 13369381681, 13369512847, 13369643993, 13369775113, 13369906211, + 13370037293, 13370168369, 13370299447, 13370430527, 13370561639, 13370692723, 13370823853, + 13370955001, 13371086107, 13371217199, 13371348281, 13371479369, 13371610451, 13371741557, + 13371872639, 13372003727, 13372134799, 13372265887, 13372396967, 13372528069, 13372659163, + 13372790237, 13372921369, 13373052479, 13373183561, 13373314693, 13373445793, 13373576893, + 13373707981, 13373839067, 13373970151, 13374101227, 13374232327, 13374363427, 13374494501, + 13374625591, 13374756667, 13374887741, 13375018841, 13375149917, 13375281013, 13375412119, + 13375543193, 13375674271, 13375805351, 13375936517, 13376067589, 13376198677, 13376329751, + 13376460833, 13376591927, 13376723011, 13376854087, 13376985161, 13377116237, 13377247309, + 13377378403, 13377509521, 13377640643, 13377771739, 13377902821, 13378033897, 13378164997, + 13378296121, 13378427201, 13378558301, 13378689383, 13378820459, 13378951541, 13379082643, + 13379213761, 13379344843, 13379475937, 13379607013, 13379738101, 13379869177, 13380000281, + 13380131353, 13380262429, 13380393517, 13380524653, 13380655733, 13380786833, 13380917909, + 13381048981, 13381180069, 13381311149, 13381442231, 13381573349, 13381704421, 13381835501, + 13381966621, 13382097713, 13382228791, 13382359871, 13382490943, 13382622023, 13382753101, + 13382884181, 13383015293, 13383146389, 13383277469, 13383408583, 13383539669, 13383670759, + 13383801853, 13383932959, 13384064063, 13384195177, 13384326271, 13384457347, 13384588453, + 13384719529, 13384850639, 13384981733, 13385112817, 13385243903, 13385375027, 13385506109, + 13385637193, 13385768317, 13385899447, 13386030557, 13386161629, 13386292723, 13386423797, + 13386554869, 13386685957, 13386817039, 13386948139, 13387079219, 13387210321, 13387341419, + 13387472491, 13387603573, 13387734671, 13387865767, 13387996873, 13388127971, 13388259061, + 13388390149, 13388521243, 13388652317, 13388783411, 13388914499, 13389045581, 13389176677, + 13389307759, 13389438859, 13389569939, 13389701029, 13389832109, 13389963221, 13390094293, + 13390225367, 13390356443, 13390487533, 13390618649, 13390749733, 13390880813, 13391011891, + 13391142997, 13391274079, 13391405249, 13391536339, 13391667451, 13391798627, 13391929751, + 13392060859, 13392191977, 13392323057, 13392454129, 13392585203, 13392716327, 13392847411, + 13392978491, 13393109591, 13393240669, 13393371773, 13393502861, 13393633933, 13393765031, + 13393896121, 13394027221, 13394158301, 13394289383, 13394420477, 13394551553, 13394682641, + 13394813717, 13394944789, 13395075877, 13395206953, 13395338041, 13395469133, 13395600217, + 13395731309, 13395862409, 13395993493, 13396124633, 13396255709, 13396386803, 13396517903, + 13396648981, 13396780121, 13396911193, 13397042293, 13397173409, 13397304497, 13397435609, + 13397566697, 13397697779, 13397828861, 13397959963, 13398091037, 13398222119, 13398353203, + 13398484291, 13398615389, 13398746467, 13398877553, 13399008661, 13399139749, 13399270831, + 13399401919, 13399533023, 13399664123, 13399795237, 13399926313, 13400057389, 13400188469, + 13400319553, 13400450737, 13400581837, 13400712917, 13400844113, 13400975201, 13401106283, + 13401237361, 13401368441, 13401499519, 13401630617, 13401761699, 13401892781, 13402023889, + 13402155007, 13402286083, 13402417157, 13402548253, 13402679333, 13402810411, 13402941493, + 13403072567, 13403203657, 13403334733, 13403465837, 13403596933, 13403728027, 13403859163, + 13403990317, 13404121391, 13404252503, 13404383581, 13404514729, 13404645803, 13404776881, + 13404908089, 13405039169, 13405170241, 13405301333, 13405432423, 13405563511, 13405694597, + 13405825669, 13405956757, 13406087837, 13406218993, 13406350079, 13406481211, 13406612291, + 13406743393, 13406874479, 13407005627, 13407136723, 13407267827, 13407398957, 13407530051, + 13407661123, 13407792217, 13407923293, 13408054369, 13408185451, 13408316527, 13408447651, + 13408578731, 13408709813, 13408840897, 13408971971, 13409103083, 13409234159, 13409365253, + 13409496329, 13409627411, 13409758499, 13409889599, 13410020681, 13410151753, 13410282841, + 13410413957, 13410545033, 13410676109, 13410807199, 13410938293, 13411069391, 13411200527, + 13411331599, 13411462697, 13411593781, 13411724873, 13411855949, 13411987031, 13412118103, + 13412249197, 13412380291, 13412511377, 13412642449, 13412773529, 13412904607, 13413035687, + 13413166813, 13413297901, 13413428999, 13413560081, 13413691153, 13413822241, 13413953351, + 13414084427, 13414215557, 13414346639, 13414477721, 13414608799, 13414739893, 13414871009, + 13415002109, 13415133187, 13415264263, 13415395337, 13415526413, 13415657501, 13415788583, + 13415919659, 13416050743, 13416181853, 13416312941, 13416444023, 13416575113, 13416706231, + 13416837311, 13416968413, 13417099573, 13417230679, 13417361753, 13417492871, 13417623971, + 13417755083, 13417886173, 13418017247, 13418148343, 13418279443, 13418410517, 13418541629, + 13418672711, 13418803787, 13418934871, 13419065963, 13419197047, 13419328121, 13419459197, + 13419590287, 13419721373, 13419852469, 13419983569, 13420114649, 13420245731, 13420376831, + 13420507907, 13420639013, 13420770113, 13420901261, 13421032367, 13421163449, 13421294533, + 13421425613, 13421556691, 13421687779, 13421818859, 13421949971, 13422081097, 13422212173, + 13422343279, 13422474419, 13422605501, 13422736573, 13422867673, 13422998747, 13423129877, + 13423260953, 13423392053, 13423523147, 13423654267, 13423785341, 13423916417, 13424047489, + 13424178577, 13424309653, 13424440769, 13424571857, 13424702957, 13424834069, 13424965181, + 13425096253, 13425227357, 13425358433, 13425489529, 13425620627, 13425751721, 13425882793, + 13426013903, 13426144987, 13426276117, 13426407199, 13426538287, 13426669363, 13426800437, + 13426931509, 13427062679, 13427193751, 13427324849, 13427455949, 13427587067, 13427718149, + 13427849251, 13427980327, 13428111409, 13428242497, 13428373583, 13428504659, 13428635761, + 13428766849, 13428897931, 13429029091, 13429160189, 13429291327, 13429422427, 13429553539, + 13429684649, 13429815739, 13429946863, 13430077943, 13430209061, 13430340173, 13430471267, + 13430602343, 13430733419, 13430864549, 13430995631, 13431126703, 13431257837, 13431388909, + 13431519991, 13431651073, 13431782149, 13431913249, 13432044349, 13432175429, 13432306501, + 13432437593, 13432568713, 13432699789, 13432830883, 13432961957, 13433093033, 13433224139, + 13433355223, 13433486303, 13433617381, 13433748473, 13433879561, 13434010643, 13434141731, + 13434272821, 13434403909, 13434535003, 13434666107, 13434797183, 13434928267, 13435059359, + 13435190437, 13435321567, 13435452707, 13435583809, 13435714933, 13435846013, 13435977089, + 13436108167, 13436239247, 13436370361, 13436501437, 13436632513, 13436763611, 13436894693, + 13437025781, 13437156883, 13437288001, 13437419101, 13437550183, 13437681289, 13437812371, + 13437943483, 13438074571, 13438205647, 13438336729, 13438467803, 13438598897, 13438729973, + 13438861049, 13438992137, 13439123209, 13439254321, 13439385403, 13439516477, 13439647561, + 13439778697, 13439909789, 13440040883, 13440171991, 13440303103, 13440434197, 13440565273, + 13440696359, 13440827447, 13440958519, 13441089601, 13441220699, 13441351771, 13441482853, + 13441613953, 13441745039, 13441876127, 13442007209, 13442138287, 13442269361, 13442400437, + 13442531537, 13442662619, 13442793691, 13442924773, 13443055859, 13443186971, 13443318067, + 13443449167, 13443580253, 13443711331, 13443842473, 13443973561, 13444104637, 13444235711, + 13444366787, 13444497883, 13444628963, 13444760071, 13444891151, 13445022229, 13445153327, + 13445284399, 13445415491, 13445546599, 13445677681, 13445808773, 13445939977, 13446071057, + 13446202141, 13446333223, 13446464327, 13446595411, 13446726533, 13446857653, 13446988747, + 13447119859, 13447250963, 13447382051, 13447513127, 13447644229, 13447775303, 13447906379, + 13448037481, 13448168651, 13448299759, 13448430833, 13448561923, 13448693033, 13448824111, + 13448955217, 13449086297, 13449217373, 13449348511, 13449479599, 13449610711, 13449741827, + 13449872903, 13450003991, 13450135073, 13450266169, 13450397249, 13450528321, 13450659401, + 13450790519, 13450921637, 13451052733, 13451183807, 13451314939, 13451446069, 13451577157, + 13451708239, 13451839321, 13451970397, 13452101473, 13452232601, 13452363677, 13452494749, + 13452625831, 13452756907, 13452888017, 13453019093, 13453150169, 13453281263, 13453412339, + 13453543421, 13453674499, 13453805591, 13453936681, 13454067763, 13454198867, 13454329957, + 13454461037, 13454592121, 13454723197, 13454854271, 13454985343, 13455116417, 13455247493, + 13455378631, 13455509719, 13455640829, 13455771977, 13455903067, 13456034143, 13456165297, + 13456296377, 13456427459, 13456558541, 13456689619, 13456820693, 13456951777, 13457082851, + 13457213929, 13457345003, 13457476103, 13457607179, 13457738257, 13457869333, 13458000421, + 13458131539, 13458262621, 13458393713, 13458524813, 13458655943, 13458787129, 13458918217, + 13459049309, 13459180403, 13459311583, 13459442719, 13459573871, 13459704971, 13459836043, + 13459967123, 13460098207, 13460229329, 13460360429, 13460491501, 13460622587, 13460753671, + 13460884747, 13461015829, 13461146903, 13461277997, 13461409127, 13461540199, 13461671273, + 13461802391, 13461933473, 13462064573, 13462195657, 13462326739, 13462457839, 13462588957, + 13462720049, 13462851131, 13462982231, 13463113303, 13463244407, 13463375567, 13463506663, + 13463637751, 13463768831, 13463899907, 13464030989, 13464162097, 13464293203, 13464424301, + 13464555463, 13464686551, 13464817627, 13464948773, 13465079861, 13465210949, 13465342067, + 13465473157, 13465604263, 13465735373, 13465866493, 13465997569, 13466128649, 13466259743, + 13466390843, 13466521927, 13466653033, 13466784127, 13466915201, 13467046301, 13467177377, + 13467308527, 13467439613, 13467570707, 13467701803, 13467832943, 13467964031, 13468095103, + 13468226227, 13468357303, 13468488379, 13468619453, 13468750541, 13468881617, 13469012693, + 13469143801, 13469274883, 13469405969, 13469537099, 13469668187, 13469799263, 13469930351, + 13470061477, 13470192553, 13470323627, 13470454703, 13470585803, 13470716893, 13470847993, + 13470979079, 13471110161, 13471241233, 13471372357, 13471503431, 13471634503, 13471765577, + 13471896649, 13472027731, 13472158807, 13472289947, 13472421071, 13472552143, 13472683219, + 13472814293, 13472945389, 13473076483, 13473207563, 13473338647, 13473469727, 13473600823, + 13473731923, 13473863003, 13473994081, 13474125163, 13474256273, 13474387387, 13474518469, + 13474649579, 13474780663, 13474911757, 13475042837, 13475173931, 13475305009, 13475436089, + 13475567167, 13475698241, 13475829379, 13475960471, 13476091571, 13476222649, 13476353783, + 13476484859, 13476615949, 13476747023, 13476878099, 13477009207, 13477140293, 13477271477, + 13477402577, 13477533757, 13477664891, 13477796011, 13477927091, 13478058197, 13478189279, + 13478320379, 13478451451, 13478582599, 13478713681, 13478844761, 13478975833, 13479106913, + 13479237991, 13479369091, 13479500171, 13479631261, 13479762341, 13479893437, 13480024511, + 13480155631, 13480286707, 13480417781, 13480548859, 13480679969, 13480811041, 13480942121, + 13481073209, 13481204281, 13481335403, 13481466487, 13481597579, 13481728651, 13481859737, + 13481990813, 13482121903, 13482253013, 13482384109, 13482515209, 13482646283, 13482777377, + 13482908513, 13483039639, 13483170739, 13483301827, 13483432903, 13483563979, 13483695077, + 13483826203, 13483957283, 13484088361, 13484219449, 13484350541, 13484481623, 13484612699, + 13484743777, 13484874877, 13485006023, 13485137111, 13485268273, 13485399391, 13485530501, + 13485661589, 13485792737, 13485923833, 13486054913, 13486185989, 13486317121, 13486448203, + 13486579307, 13486710383, 13486841479, 13486972613, 13487103703, 13487234777, 13487365867, + 13487496943, 13487628041, 13487759141, 13487890237, 13488021331, 13488152411, 13488283513, + 13488414593, 13488545689, 13488676801, 13488807881, 13488939011, 13489070093, 13489201171, + 13489332247, 13489463321, 13489594427, 13489725499, 13489856579, 13489987673, 13490118757, + 13490249833, 13490380909, 13490511997, 13490643107, 13490774183, 13490905279, 13491036367, + 13491167467, 13491298607, 13491429683, 13491560801, 13491691891, 13491822983, 13491954061, + 13492085137, 13492216223, 13492347299, 13492478371, 13492609447, 13492740551, 13492871629, + 13493002709, 13493133799, 13493264881, 13493395963, 13493527037, 13493658151, 13493789263, + 13493920337, 13494051409, 13494182491, 13494313607, 13494444697, 13494575777, 13494706867, + 13494837991, 13494969091, 13495100183, 13495231291, 13495362371, 13495493497, 13495624577, + 13495755649, 13495886749, 13496017841, 13496148929, 13496280037, 13496411143, 13496542219, + 13496673293, 13496804369, 13496935447, 13497066521, 13497197639, 13497328727, 13497459823, + 13497590903, 13497721987, 13497853073, 13497984151, 13498115233, 13498246319, 13498377443, + 13498508537, 13498639631, 13498770707, 13498901789, 13499032861, 13499163961, 13499295053, + 13499426189, 13499557261, 13499688359, 13499819483, 13499950559, 13500081643, 13500212741, + 13500343837, 13500474913, 13500606011, 13500737101, 13500868181, 13500999257, 13501130399, + 13501261493, 13501392581, 13501523669, 13501654763, 13501785863, 13501916951, 13502048051, + 13502179151, 13502310251, 13502441353, 13502572429, 13502703503, 13502834621, 13502965727, + 13503096829, 13503227909, 13503358987, 13503490103, 13503621199, 13503752309, 13503883381, + 13504014493, 13504145581, 13504276661, 13504407733, 13504538813, 13504669939, 13504801039, + 13504932121, 13505063213, 13505194289, 13505325371, 13505456473, 13505587549, 13505718631, + 13505849741, 13505980819, 13506111893, 13506242999, 13506374071, 13506505249, 13506636331, + 13506767419, 13506898499, 13507029607, 13507160699, 13507291799, 13507422881, 13507553963, + 13507685039, 13507816111, 13507947197, 13508078323, 13508209439, 13508340583, 13508471659, + 13508602733, 13508733827, 13508864899, 13508995999, 13509127081, 13509258197, 13509389293, + 13509520369, 13509651457, 13509782537, 13509913631, 13510044739, 13510175831, 13510306913, + 13510437991, 13510569071, 13510700149, 13510831231, 13510962307, 13511093443, 13511224537, + 13511355631, 13511486713, 13511617787, 13511748881, 13511879993, 13512011087, 13512142159, + 13512273283, 13512404387, 13512535499, 13512666571, 13512797647, 13512928721, 13513059793, + 13513190881, 13513321957, 13513453081, 13513584173, 13513715263, 13513846447, 13513977551, + 13514108627, 13514239699, 13514370773, 13514501879, 13514633009, 13514764111, 13514895257, + 13515026351, 13515157429, 13515288511, 13515419609, 13515550703, 13515681791, 13515812879, + 13515943963, 13516075039, 13516206169, 13516337273, 13516468367, 13516599461, 13516730533, + 13516861609, 13516992707, 13517123783, 13517254901, 13517385989, 13517517061, 13517648149, + 13517779271, 13517910401, 13518041491, 13518172597, 13518303671, 13518434747, 13518565849, + 13518696929, 13518828067, 13518959149, 13519090223, 13519221301, 13519352383, 13519483477, + 13519614571, 13519745689, 13519876793, 13520007869, 13520138953, 13520270053, 13520401151, + 13520532241, 13520663339, 13520794453, 13520925533, 13521056623, 13521187699, 13521318791, + 13521449863, 13521580967, 13521712129, 13521843227, 13521974303, 13522105379, 13522236451, + 13522367539, 13522498631, 13522629737, 13522760831, 13522891903, 13523023013, 13523154109, + 13523285263, 13523416351, 13523547437, 13523678521, 13523809597, 13523940701, 13524071791, + 13524202919, 13524334039, 13524465113, 13524596191, 13524727273, 13524858353, 13524989447, + 13525120577, 13525251661, 13525382771, 13525513909, 13525644989, 13525776109, 13525907221, + 13526038319, 13526169409, 13526300497, 13526431571, 13526562659, 13526693749, 13526824823, + 13526955919, 13527087001, 13527218077, 13527349151, 13527480229, 13527611309, 13527742381, + 13527873521, 13528004597, 13528135697, 13528266809, 13528397881, 13528529023, 13528660097, + 13528791169, 13528922243, 13529053319, 13529184391, 13529315467, 13529446573, 13529577679, + 13529708771, 13529839847, 13529970929, 13530102023, 13530233159, 13530364241, 13530495337, + 13530626429, 13530757511, 13530888599, 13531019683, 13531150777, 13531281857, 13531412953, + 13531544029, 13531675103, 13531806193, 13531937269, 13532068393, 13532199469, 13532330549, + 13532461627, 13532592751, 13532723839, 13532854943, 13532986043, 13533117127, 13533248213, + 13533379289, 13533510377, 13533641489, 13533772597, 13533903671, 13534034743, 13534165829, + 13534296943, 13534428031, 13534559119, 13534690207, 13534821281, 13534952381, 13535083483, + 13535214557, 13535345657, 13535476741, 13535607817, 13535738903, 13535869987, 13536001067, + 13536132149, 13536263267, 13536394357, 13536525461, 13536656537, 13536787613, 13536918701, + 13537049777, 13537180859, 13537311943, 13537443071, 13537574143, 13537705231, 13537836379, + 13537967491, 13538098583, 13538229689, 13538360807, 13538491991, 13538623093, 13538754199, + 13538885287, 13539016391, 13539147473, 13539278561, 13539409649, 13539540737, 13539671819, + 13539802907, 13539934003, 13540065127, 13540196221, 13540327303, 13540458413, 13540589527, + 13540720657, 13540851749, 13540982827, 13541113919, 13541245001, 13541376083, 13541507201, + 13541638273, 13541769347, 13541900467, 13542031541, 13542162629, 13542293707, 13542424787, + 13542555877, 13542686977, 13542818059, 13542949151, 13543080253, 13543211333, 13543342409, + 13543473481, 13543604587, 13543735687, 13543866797, 13543997891, 13544129029, 13544260151, + 13544391229, 13544522311, 13544653387, 13544784481, 13544915561, 13545046637, 13545177757, + 13545308831, 13545439931, 13545571019, 13545702097, 13545833183, 13545964261, 13546095337, + 13546226413, 13546357519, 13546488611, 13546619759, 13546750871, 13546881961, 13547013083, + 13547144179, 13547275289, 13547406371, 13547537449, 13547668531, 13547799611, 13547930699, + 13548061799, 13548192871, 13548323947, 13548455069, 13548586141, 13548717223, 13548848297, + 13548979373, 13549110467, 13549241549, 13549372631, 13549503731, 13549634803, 13549765909, + 13549897003, 13550028169, 13550159297, 13550290379, 13550421473, 13550552579, 13550683661, + 13550814749, 13550945827, 13551076919, 13551207997, 13551339077, 13551470203, 13551601277, + 13551732373, 13551863467, 13551994543, 13552125623, 13552256699, 13552387799, 13552518907, + 13552649983, 13552781057, 13552912133, 13553043239, 13553174357, 13553305433, 13553436509, + 13553567593, 13553698723, 13553829799, 13553960887, 13554091987, 13554223141, 13554354217, + 13554485299, 13554616403, 13554747517, 13554878599, 13555009691, 13555140773, 13555271857, + 13555402967, 13555534049, 13555665163, 13555796299, 13555927387, 13556058469, 13556189579, + 13556320667, 13556451749, 13556582849, 13556713939, 13556845051, 13556976193, 13557107309, + 13557238411, 13557369487, 13557500587, 13557631679, 13557762761, 13557893857, 13558024939, + 13558156039, 13558287187, 13558418267, 13558549357, 13558680431, 13558811503, 13558942601, + 13559073677, 13559204753, 13559335837, 13559466913, 13559598011, 13559729083, 13559860217, + 13559991293, 13560122371, 13560253493, 13560384619, 13560515693, 13560646787, 13560777863, + 13560908939, 13561040011, 13561171087, 13561302163, 13561433309, 13561564427, 13561695527, + 13561826599, 13561957679, 13562088763, 13562219861, 13562350951, 13562482039, 13562613143, + 13562744303, 13562875397, 13563006481, 13563137561, 13563268633, 13563399719, 13563530791, + 13563661873, 13563792947, 13563924029, 13564055143, 13564186217, 13564317293, 13564448411, + 13564579487, 13564710571, 13564841651, 13564972739, 13565103847, 13565234959, 13565366041, + 13565497117, 13565628281, 13565759353, 13565890453, 13566021533, 13566152617, 13566283697, + 13566414769, 13566545849, 13566676931, 13566808063, 13566939163, 13567070291, 13567201369, + 13567332461, 13567463543, 13567594619, 13567725709, 13567856803, 13567987889, 13568118973, + 13568250053, 13568381131, 13568512207, 13568643281, 13568774357, 13568905429, 13569036517, + 13569167609, 13569298709, 13569429787, 13569560887, 13569691973, 13569823049, 13569954127, + 13570085201, 13570216307, 13570347391, 13570478539, 13570609627, 13570740721, 13570871807, + 13571002883, 13571133959, 13571265031, 13571396119, 13571527199, 13571658283, 13571789369, + 13571920469, 13572051547, 13572182623, 13572313759, 13572444841, 13572575927, 13572707009, + 13572838217, 13572969379, 13573100477, 13573231559, 13573362661, 13573493831, 13573624903, + 13573755977, 13573887073, 13574018149, 13574149229, 13574280301, 13574411419, 13574542543, + 13574673643, 13574804797, 13574935889, 13575067003, 13575198079, 13575329153, 13575460243, + 13575591317, 13575722389, 13575853463, 13575984551, 13576115627, 13576246703, 13576377791, + 13576508867, 13576639957, 13576771049, 13576902121, 13577033251, 13577164331, 13577295419, + 13577426497, 13577557577, 13577688653, 13577819753, 13577950831, 13578081911, 13578212993, + 13578344077, 13578475151, 13578606227, 13578737317, 13578868397, 13578999503, 13579130629, + 13579261711, 13579392793, 13579523873, 13579654969, 13579786043, 13579917121, 13580048203, + 13580179381, 13580310521, 13580441593, 13580572669, 13580703761, 13580834843, 13580965927, + 13581097009, 13581228083, 13581359161, 13581490243, 13581621331, 13581752447, 13581883597, + 13582014751, 13582145827, 13582276919, 13582408019, 13582539107, 13582670219, 13582801291, + 13582932409, 13583063503, 13583194613, 13583325697, 13583456791, 13583587873, 13583718949, + 13583850031, 13583981107, 13584112183, 13584243259, 13584374339, 13584505447, 13584636529, + 13584767629, 13584898703, 13585029793, 13585160879, 13585291997, 13585423091, 13585554179, + 13585685263, 13585816357, 13585947467, 13586078551, 13586209631, 13586340739, 13586471813, + 13586602891, 13586733973, 13586865079, 13586996201, 13587127273, 13587258403, 13587389503, + 13587520591, 13587651683, 13587782773, 13587913847, 13588044979, 13588176073, 13588307147, + 13588438247, 13588569331, 13588700417, 13588831489, 13588962571, 13589093659, 13589224813, + 13589355907, 13589487007, 13589618111, 13589749231, 13589880329, 13590011417, 13590142507, + 13590273607, 13590404699, 13590535817, 13590666907, 13590797981, 13590929071, 13591060201, + 13591191307, 13591322387, 13591453487, 13591584571, 13591715659, 13591846771, 13591977871, + 13592108947, 13592240021, 13592371103, 13592502191, 13592633267, 13592764417, 13592895497, + 13593026593, 13593157679, 13593288763, 13593419867, 13593550961, 13593682043, 13593813137, + 13593944249, 13594075321, 13594206427, 13594337503, 13594468583, 13594599677, 13594730761, + 13594861853, 13594992941, 13595124041, 13595255137, 13595386229, 13595517311, 13595648383, + 13595779489, 13595910569, 13596041651, 13596172771, 13596303883, 13596434963, 13596566047, + 13596697139, 13596828247, 13596959323, 13597090411, 13597221493, 13597352581, 13597483687, + 13597614763, 13597745933, 13597877011, 13598008129, 13598139229, 13598270321, 13598401409, + 13598532499, 13598663581, 13598794663, 13598925793, 13599056869, 13599187969, 13599319057, + 13599450131, 13599581221, 13599712331, 13599843419, 13599974503, 13600105601, 13600236673, + 13600367747, 13600498823, 13600629943, 13600761023, 13600892147, 13601023223, 13601154337, + 13601285437, 13601416511, 13601547667, 13601678747, 13601809831, 13601940971, 13602072061, + 13602203141, 13602334223, 13602465299, 13602596377, 13602727469, 13602858551, 13602989639, + 13603120711, 13603251791, 13603382869, 13603513969, 13603645103, 13603776181, 13603907281, + 13604038387, 13604169463, 13604300539, 13604431639, 13604562773, 13604693891, 13604824969, + 13604956051, 13605087127, 13605218203, 13605349357, 13605480431, 13605611519, 13605742597, + 13605873679, 13606004767, 13606135841, 13606266913, 13606397993, 13606529113, 13606660187, + 13606791277, 13606922387, 13607053501, 13607184587, 13607315713, 13607446789, 13607577881, + 13607709001, 13607840173, 13607971261, 13608102359, 13608233449, 13608364559, 13608495683, + 13608626777, 13608757849, 13608888941, 13609020043, 13609151159, 13609282279, 13609413379, + 13609544471, 13609675561, 13609806643, 13609937717, 13610068837, 13610199923, 13610331071, + 13610462153, 13610593273, 13610724389, 13610855473, 13610986559, 13611117679, 13611248753, + 13611379843, 13611510917, 13611641999, 13611773093, 13611904169, 13612035263, 13612166341, + 13612297441, 13612428527, 13612559677, 13612690759, 13612821853, 13612952989, 13613084113, + 13613215207, 13613346301, 13613477393, 13613608469, 13613739541, 13613870629, 13614001703, + 13614132793, 13614263879, 13614394987, 13614526073, 13614657167, 13614788273, 13614919403, + 13615050511, 13615181599, 13615312679, 13615443799, 13615574881, 13615705963, 13615837051, + 13615968169, 13616099251, 13616230343, 13616361431, 13616492503, 13616623597, 13616754677, + 13616885801, 13617016913, 13617148031, 13617279103, 13617410197, 13617541279, 13617672389, + 13617803477, 13617934549, 13618065631, 13618196717, 13618327823, 13618458911, 13618590001, + 13618721101, 13618852189, 13618983289, 13619114363, 13619245447, 13619376553, 13619507639, + 13619638717, 13619769859, 13619900951, 13620032053, 13620163127, 13620294203, 13620425293, + 13620556381, 13620687463, 13620818539, 13620949613, 13621080689, 13621211819, 13621342901, + 13621474001, 13621605073, 13621736159, 13621867247, 13621998359, 13622129453, 13622260541, + 13622391637, 13622522737, 13622653813, 13622784919, 13622916011, 13623047111, 13623178183, + 13623309269, 13623440359, 13623571433, 13623702509, 13623833659, 13623964741, 13624095847, + 13624226933, 13624358117, 13624489211, 13624620287, 13624751359, 13624882451, 13625013559, + 13625144633, 13625275723, 13625406803, 13625537903, 13625668981, 13625800057, 13625931131, + 13626062227, 13626193303, 13626324391, 13626455467, 13626586541, 13626717631, 13626848759, + 13626979843, 13627110941, 13627242017, 13627373101, 13627504183, 13627635331, 13627766437, + 13627897513, 13628028593, 13628159711, 13628290789, 13628421871, 13628552981, 13628684123, + 13628815237, 13628946311, 13629077383, 13629208477, 13629339551, 13629470629, 13629601747, + 13629732827, 13629863941, 13629995051, 13630126127, 13630257203, 13630388279, 13630519351, + 13630650437, 13630781513, 13630912621, 13631043709, 13631174783, 13631305861, 13631436937, + 13631568023, 13631699119, 13631830207, 13631961323, 13632092429, 13632223511, 13632354607, + 13632485719, 13632616807, 13632747881, 13632878983, 13633010057, 13633141133, 13633272209, + 13633403339, 13633534427, 13633665499, 13633796581, 13633927771, 13634058847, 13634189927, + 13634321009, 13634452123, 13634583223, 13634714299, 13634845373, 13634976469, 13635107557, + 13635238691, 13635369799, 13635500881, 13635631973, 13635763073, 13635894193, 13636025297, + 13636156447, 13636287521, 13636418597, 13636549697, 13636680769, 13636811843, 13636942927, + 13637074007, 13637205083, 13637336171, 13637467271, 13637598361, 13637729437, 13637860517, + 13637991623, 13638122741, 13638253819, 13638384913, 13638515993, 13638647093, 13638778169, + 13638909257, 13639040329, 13639171409, 13639302577, 13639433657, 13639564733, 13639695809, + 13639826881, 13639957957, 13640089033, 13640220109, 13640351189, 13640482279, 13640613359, + 13640744437, 13640875511, 13641006629, 13641137701, 13641268783, 13641399917, 13641531011, + 13641662101, 13641793199, 13641924287, 13642055377, 13642186477, 13642317583, 13642448657, + 13642579733, 13642710827, 13642841911, 13642973033, 13643104151, 13643235227, 13643366299, + 13643497403, 13643628491, 13643759603, 13643890723, 13644021799, 13644152887, 13644283973, + 13644415049, 13644546131, 13644677203, 13644808327, 13644939409, 13645070513, 13645201613, + 13645332697, 13645463771, 13645594873, 13645725949, 13645857037, 13645988149, 13646119229, + 13646250323, 13646381447, 13646512541, 13646643617, 13646774689, 13646905799, 13647036961, + 13647168071, 13647299147, 13647430231, 13647561337, 13647692447, 13647823531, 13647954641, + 13648085747, 13648216823, 13648347931, 13648479011, 13648610093, 13648741177, 13648872287, + 13649003383, 13649134459, 13649265563, 13649396653, 13649527769, 13649658851, 13649789939, + 13649921029, 13650052123, 13650183247, 13650314333, 13650445427, 13650576503, 13650707579, + 13650838681, 13650969763, 13651100851, 13651231927, 13651363013, 13651494119, 13651625219, + 13651756309, 13651887397, 13652018473, 13652149559, 13652280667, 13652411771, 13652542861, + 13652673943, 13652805119, 13652936233, 13653067343, 13653198421, 13653329563, 13653460643, + 13653591773, 13653722891, 13653854009, 13653985127, 13654116227, 13654247303, 13654378411, + 13654509487, 13654640599, 13654771681, 13654902761, 13655033839, 13655164927, 13655296001, + 13655427073, 13655558171, 13655689337, 13655820427, 13655951501, 13656082579, 13656213661, + 13656344777, 13656475907, 13656606989, 13656738077, 13656869159, 13657000241, 13657131329, + 13657262413, 13657393493, 13657524581, 13657655681, 13657786771, 13657917857, 13658048933, + 13658180009, 13658311123, 13658442197, 13658573281, 13658704361, 13658835439, 13658966527, + 13659097649, 13659228721, 13659359809, 13659490891, 13659621979, 13659753053, 13659884131, + 13660015207, 13660146293, 13660277387, 13660408583, 13660539671, 13660670747, 13660801841, + 13660932931, 13661064007, 13661195083, 13661326201, 13661457289, 13661588483, 13661719559, + 13661850689, 13661981783, 13662112859, 13662243937, 13662375017, 13662506089, 13662637181, + 13662768263, 13662899353, 13663030529, 13663161623, 13663292723, 13663423831, 13663554929, + 13663686067, 13663817147, 13663948231, 13664079323, 13664210419, 13664341501, 13664472583, + 13664603663, 13664734757, 13664865847, 13664996957, 13665128053, 13665259151, 13665390253, + 13665521327, 13665652439, 13665783539, 13665914611, 13666045741, 13666176889, 13666307983, + 13666439057, 13666570171, 13666701271, 13666832351, 13666963433, 13667094547, 13667225639, + 13667356831, 13667487913, 13667618989, 13667750101, 13667881223, 13668012329, 13668143407, + 13668274531, 13668405613, 13668536689, 13668667763, 13668798851, 13668929927, 13669061009, + 13669192081, 13669323163, 13669454257, 13669585367, 13669716443, 13669847579, 13669978657, + 13670109737, 13670240833, 13670371927, 13670503013, 13670634127, 13670765249, 13670896333, + 13671027449, 13671158537, 13671289627, 13671420713, 13671551833, 13671682907, 13671814007, + 13671945113, 13672076237, 13672207309, 13672338389, 13672469471, 13672600553, 13672731643, + 13672862717, 13672993799, 13673124877, 13673256001, 13673387083, 13673518171, 13673649289, + 13673780383, 13673911457, 13674042539, 13674173621, 13674304703, 13674435791, 13674566897, + 13674697969, 13674829139, 13674960217, 13675091299, 13675222381, 13675353463, 13675484551, + 13675615627, 13675746727, 13675877827, 13676008901, 13676140013, 13676271101, 13676402183, + 13676533267, 13676664359, 13676795437, 13676926559, 13677057649, 13677188761, 13677319837, + 13677450911, 13677581993, 13677713083, 13677844177, 13677975253, 13678106329, 13678237423, + 13678368497, 13678499587, 13678630697, 13678761773, 13678892849, 13679023921, 13679155037, + 13679286121, 13679417203, 13679548291, 13679679367, 13679810467, 13679941571, 13680072649, + 13680203729, 13680334817, 13680465889, 13680596971, 13680728051, 13680859139, 13680990229, + 13681121317, 13681252391, 13681383467, 13681514573, 13681645711, 13681776791, 13681907867, + 13682038939, 13682170037, 13682301121, 13682432321, 13682563397, 13682694481, 13682825579, + 13682956711, 13683087787, 13683218863, 13683349961, 13683481051, 13683612149, 13683743221, + 13683874301, 13684005403, 13684136483, 13684267577, 13684398667, 13684529743, 13684660817, + 13684791893, 13684923023, 13685054147, 13685185313, 13685316397, 13685447473, 13685578549, + 13685709623, 13685840717, 13685971807, 13686102883, 13686233963, 13686365107, 13686496183, + 13686627271, 13686758353, 13686889429, 13687020511, 13687151591, 13687282669, 13687413749, + 13687544851, 13687675927, 13687807013, 13687938091, 13688069173, 13688200247, 13688331323, + 13688462401, 13688593489, 13688724563, 13688855647, 13688986763, 13689117847, 13689248921, + 13689380011, 13689511091, 13689642179, 13689773287, 13689904409, 13690035487, 13690166563, + 13690297657, 13690428761, 13690559837, 13690690961, 13690822087, 13690953161, 13691084233, + 13691215337, 13691346433, 13691477531, 13691608603, 13691739727, 13691870807, 13692001889, + 13692132989, 13692264133, 13692395237, 13692526321, 13692657397, 13692788479, 13692919627, + 13693050731, 13693181863, 13693312937, 13693444021, 13693575097, 13693706189, 13693837273, + 13693968349, 13694099453, 13694230531, 13694361649, 13694492729, 13694623801, 13694754917, + 13694885999, 13695017081, 13695148177, 13695279253, 13695410381, 13695541459, 13695672533, + 13695803633, 13695934751, 13696065853, 13696196933, 13696328033, 13696459141, 13696590241, + 13696721317, 13696852397, 13696983539, 13697114621, 13697245739, 13697376851, 13697507927, + 13697639027, 13697770157, 13697901253, 13698032357, 13698163447, 13698294581, 13698425681, + 13698556763, 13698687841, 13698818921, 13698949993, 13699081069, 13699212157, 13699343239, + 13699474333, 13699605407, 13699736521, 13699867627, 13699998707, 13700129809, 13700260927, + 13700392001, 13700523139, 13700654213, 13700785309, 13700916433, 13701047527, 13701178607, + 13701309689, 13701440773, 13701571867, 13701702961, 13701834049, 13701965213, 13702096301, + 13702227373, 13702358489, 13702489561, 13702620641, 13702751729, 13702882811, 13703013893, + 13703145011, 13703276129, 13703407231, 13703538311, 13703669389, 13703800463, 13703931539, + 13704062621, 13704193703, 13704324779, 13704455881, 13704586963, 13704718037, 13704849121, + 13704980203, 13705111283, 13705242361, 13705373443, 13705504529, 13705635607, 13705766681, + 13705897781, 13706028859, 13706159947, 13706291029, 13706422133, 13706553221, 13706684347, + 13706815481, 13706946569, 13707077689, 13707208799, 13707339931, 13707471013, 13707602087, + 13707733181, 13707864341, 13707995429, 13708126507, 13708257593, 13708388747, 13708519829, + 13708650919, 13708782007, 13708913111, 13709044187, 13709175269, 13709306353, 13709437429, + 13709568511, 13709699593, 13709830679, 13709961773, 13710092909, 13710223997, 13710355091, + 13710486173, 13710617309, 13710748399, 13710879499, 13711010581, 13711141667, 13711272793, + 13711403879, 13711534951, 13711666049, 13711797131, 13711928207, 13712059279, 13712190383, + 13712321473, 13712452631, 13712583713, 13712714801, 13712845879, 13712976971, 13713108049, + 13713239149, 13713370259, 13713501331, 13713632417, 13713763489, 13713894581, 13714025683, + 13714156777, 13714287857, 13714418947, 13714550033, 13714681199, 13714812281, 13714943371, + 13715074453, 13715205533, 13715336617, 13715467693, 13715598779, 13715729879, 13715860979, + 13715992057, 13716123131, 13716254213, 13716385301, 13716516389, 13716647501, 13716778631, + 13716909707, 13717040783, 13717171877, 13717302967, 13717434041, 13717565129, 13717696207, + 13717827301, 13717958377, 13718089459, 13718220541, 13718351623, 13718482709, 13718613803, + 13718744899, 13718876011, 13719007091, 13719138163, 13719269251, 13719400337, 13719531409, + 13719662497, 13719793573, 13719924653, 13720055747, 13720186819, 13720317913, 13720448993, + 13720580089, 13720711183, 13720842277, 13720973351, 13721104451, 13721235523, 13721366627, + 13721497709, 13721628839, 13721759923, 13721891009, 13722022109, 13722153197, 13722284297, + 13722415379, 13722546457, 13722677539, 13722808637, 13722939739, 13723070861, 13723201939, + 13723333027, 13723464113, 13723595191, 13723726267, 13723857341, 13723988419, 13724119579, + 13724250689, 13724381761, 13724512847, 13724643937, 13724775013, 13724906147, 13725037219, + 13725168311, 13725299417, 13725430489, 13725561571, 13725692689, 13725823819, 13725954911, + 13726085987, 13726217077, 13726348189, 13726479289, 13726610369, 13726741499, 13726872583, + 13727003747, 13727134819, 13727265991, 13727397097, 13727528179, 13727659259, 13727790347, + 13727921423, 13728052519, 13728183643, 13728314737, 13728445831, 13728576913, 13728707987, + 13728839077, 13728970153, 13729101227, 13729232357, 13729363457, 13729494529, 13729625627, + 13729756721, 13729887823, 13730018899, 13730149991, 13730281063, 13730412139, 13730543213, + 13730674367, 13730805467, 13730936539, 13731067621, 13731198731, 13731329839, 13731460927, + 13731592001, 13731723107, 13731854183, 13731985261, 13732116403, 13732247479, 13732378559, + 13732509631, 13732640731, 13732771807, 13732902893, 13733033983, 13733165081, 13733296153, + 13733427251, 13733558323, 13733689427, 13733820571, 13733951657, 13734082729, 13734213811, + 13734344891, 13734475973, 13734607087, 13734738161, 13734869243, 13735000379, 13735131451, + 13735262537, 13735393613, 13735524713, 13735655797, 13735786891, 13735918037, 13736049139, + 13736180233, 13736311331, 13736442413, 13736573489, 13736704589, 13736835677, 13736966753, + 13737097867, 13737228941, 13737360023, 13737491107, 13737622189, 13737753277, 13737884351, + 13738015439, 13738146547, 13738277653, 13738408819, 13738539907, 13738670987, 13738802087, + 13738933177, 13739064263, 13739195341, 13739326427, 13739457527, 13739588623, 13739719723, + 13739850809, 13739981881, 13740113027, 13740244099, 13740375197, 13740506293, 13740637367, + 13740768443, 13740899527, 13741030607, 13741161683, 13741292783, 13741423907, 13741555007, + 13741686097, 13741817233, 13741948321, 13742079397, 13742210497, 13742341619, 13742472691, + 13742603827, 13742734921, 13742866009, 13742997101, 13743128173, 13743259273, 13743390373, + 13743521483, 13743652577, 13743783659, 13743914747, 13744045831, 13744176937, 13744308029, + 13744439119, 13744570201, 13744701329, 13744832417, 13744963513, 13745094599, 13745225731, + 13745356811, 13745487911, 13745619001, 13745750087, 13745881169, 13746012271, 13746143357, + 13746274441, 13746405527, 13746536603, 13746667691, 13746798797, 13746929873, 13747060997, + 13747192073, 13747323199, 13747454297, 13747585403, 13747716503, 13747847591, 13747978679, + 13748109751, 13748240881, 13748371961, 13748503057, 13748634131, 13748765279, 13748896351, + 13749027427, 13749158519, 13749289591, 13749420689, 13749551773, 13749682847, 13749813929, + 13749945019, 13750076099, 13750207193, 13750338271, 13750469353, 13750600469, 13750731559, + 13750862689, 13750993777, 13751124853, 13751255929, 13751387059, 13751518133, 13751649217, + 13751780321, 13751911423, 13752042523, 13752173623, 13752304721, 13752435803, 13752566911, + 13752697999, 13752829117, 13752960191, 13753091267, 13753222387, 13753353463, 13753484543, + 13753615619, 13753746737, 13753877923, 13754009011, 13754140087, 13754271169, 13754402243, + 13754533321, 13754664397, 13754795471, 13754926561, 13755057637, 13755188729, 13755319807, + 13755450911, 13755582007, 13755713087, 13755844231, 13755975349, 13756106423, 13756237499, + 13756368583, 13756499677, 13756630787, 13756761899, 13756892977, 13757024051, 13757155171, + 13757286253, 13757417341, 13757548447, 13757679521, 13757810597, 13757941669, 13758072751, + 13758203857, 13758334943, 13758466079, 13758597157, 13758728231, 13758859333, 13758990449, + 13759121521, 13759252657, 13759383773, 13759514849, 13759645937, 13759777019, 13759908157, + 13760039231, 13760170321, 13760301403, 13760432503, 13760563577, 13760694719, 13760825801, + 13760956883, 13761087959, 13761219061, 13761350137, 13761481229, 13761612313, 13761743393, + 13761874481, 13762005557, 13762136653, 13762267781, 13762398863, 13762529947, 13762661027, + 13762792129, 13762923221, 13763054297, 13763185393, 13763316503, 13763447603, 13763578687, + 13763709767, 13763840851, 13763971931, 13764103009, 13764234083, 13764365161, 13764496237, + 13764627343, 13764758431, 13764889513, 13765020587, 13765151669, 13765282747, 13765413821, + 13765544917, 13765675993, 13765807079, 13765938157, 13766069231, 13766200307, 13766331379, + 13766462459, 13766593531, 13766724619, 13766855741, 13766986823, 13767117937, 13767249011, + 13767380087, 13767511159, 13767642263, 13767773339, 13767904421, 13768035499, 13768166611, + 13768297709, 13768428827, 13768559921, 13768691003, 13768822117, 13768953217, 13769084311, + 13769215387, 13769346499, 13769477609, 13769608681, 13769739761, 13769870837, 13770001909, + 13770132997, 13770264071, 13770395143, 13770526229, 13770657349, 13770788467, 13770919553, + 13771050647, 13771181719, 13771312799, 13771443883, 13771574977, 13771706051, 13771837153, + 13771968239, 13772099311, 13772230387, 13772361467, 13772492593, 13772623681, 13772754767, + 13772885843, 13773016927, 13773148057, 13773279167, 13773410239, 13773541343, 13773672421, + 13773803501, 13773934579, 13774065653, 13774196749, 13774327823, 13774458911, 13774589989, + 13774721123, 13774852207, 13774983301, 13775114377, 13775245453, 13775376529, 13775507621, + 13775638703, 13775769793, 13775900881, 13776031963, 13776163081, 13776294163, 13776425239, + 13776556319, 13776687391, 13776818477, 13776949591, 13777080673, 13777211803, 13777342877, + 13777473977, 13777605059, 13777736153, 13777867241, 13777998317, 13778129401, 13778260549, + 13778391629, 13778522701, 13778653829, 13778784947, 13778916101, 13779047189, 13779178289, + 13779309367, 13779440447, 13779571541, 13779702619, 13779833729, 13779964813, 13780095907, + 13780226983, 13780358101, 13780489183, 13780620283, 13780751359, 13780882439, 13781013529, + 13781144609, 13781275699, 13781406799, 13781537899, 13781668973, 13781800051, 13781931139, + 13782062213, 13782193291, 13782324397, 13782455471, 13782586591, 13782717673, 13782848759, + 13782979907, 13783110983, 13783242073, 13783373147, 13783504261, 13783635347, 13783766449, + 13783897553, 13784028647, 13784159723, 13784290799, 13784421883, 13784552963, 13784684101, + 13784815181, 13784946269, 13785077363, 13785208441, 13785339517, 13785470597, 13785601681, + 13785732757, 13785863851, 13785994949, 13786126021, 13786257097, 13786388171, 13786519277, + 13786650403, 13786781507, 13786912589, 13787043661, 13787174747, 13787305841, 13787436913, + 13787567993, 13787699069, 13787830141, 13787961241, 13788092317, 13788223409, 13788354487, + 13788485561, 13788616637, 13788747727, 13788878809, 13789009919, 13789141043, 13789272127, + 13789403429, 13789534511, 13789665623, 13789796723, 13789927807, 13790058881, 13790189957, + 13790321033, 13790452141, 13790583221, 13790714297, 13790845381, 13790976481, 13791107593, + 13791238687, 13791369803, 13791500881, 13791631967, 13791763057, 13791894143, 13792025231, + 13792156309, 13792287403, 13792418527, 13792549637, 13792680719, 13792811801, 13792942903, + 13793073979, 13793205067, 13793336177, 13793467273, 13793598353, 13793729429, 13793860519, + 13793991613, 13794122717, 13794253819, 13794384911, 13794515993, 13794647077, 13794778159, + 13794909251, 13795040323, 13795171433, 13795302571, 13795433681, 13795564793, 13795695869, + 13795826953, 13795958027, 13796089129, 13796220209, 13796351291, 13796482409, 13796613499, + 13796744581, 13796875663, 13797006763, 13797137839, 13797268913, 13797400003, 13797531103, + 13797662189, 13797793279, 13797924379, 13798055477, 13798186559, 13798317661, 13798448801, + 13798579877, 13798710949, 13798842059, 13798973171, 13799104309, 13799235407, 13799366501, + 13799497577, 13799628653, 13799759731, 13799890837, 13800021931, 13800153047, 13800284189, + 13800415273, 13800546349, 13800677447, 13800808547, 13800939637, 13801070737, 13801201811, + 13801332929, 13801464073, 13801595153, 13801726243, 13801857341, 13801988479, 13802119559, + 13802250641, 13802381729, 13802512807, 13802643889, 13802774969, 13802906077, 13803037181, + 13803168263, 13803299359, 13803430439, 13803561523, 13803692681, 13803823753, 13803954863, + 13804085947, 13804217023, 13804348121, 13804479253, 13804610371, 13804741469, 13804872551, + 13805003713, 13805134789, 13805265869, 13805396947, 13805528021, 13805659093, 13805790191, + 13805921287, 13806052363, 13806183451, 13806314551, 13806445649, 13806576757, 13806707851, + 13806838937, 13806970013, 13807101101, 13807232177, 13807363277, 13807494359, 13807625431, + 13807756511, 13807887601, 13808018689, 13808149777, 13808280869, 13808411941, 13808543017, + 13808674111, 13808805193, 13808936269, 13809067379, 13809198457, 13809329531, 13809460603, + 13809591707, 13809722779, 13809853859, 13809984943, 13810116041, 13810247117, 13810378189, + 13810509263, 13810640339, 13810771451, 13810902563, 13811033641, 13811164721, 13811295857, + 13811426939, 13811558011, 13811689103, 13811820181, 13811951311, 13812082423, 13812213497, + 13812344597, 13812475687, 13812606763, 13812737839, 13812868987, 13813000169, 13813131257, + 13813262347, 13813393423, 13813524509, 13813655599, 13813786691, 13813917791, 13814048881, + 13814179963, 13814311099, 13814442179, 13814573291, 13814704411, 13814835539, 13814966621, + 13815097693, 13815228767, 13815359863, 13815490943, 13815622061, 13815753139, 13815884213, + 13816015333, 13816146413, 13816277507, 13816408633, 13816539743, 13816670827, 13816801903, + 13816933007, 13817064113, 13817195207, 13817326321, 13817457427, 13817588531, 13817719603, + 13817850679, 13817981767, 13818112927, 13818244003, 13818375113, 13818506189, 13818637279, + 13818768373, 13818899449, 13819030553, 13819161667, 13819292771, 13819423861, 13819554967, + 13819686103, 13819817177, 13819948267, 13820079349, 13820210441, 13820341523, 13820472629, + 13820603701, 13820734819, 13820865917, 13820996993, 13821128077, 13821259157, 13821390257, + 13821521359, 13821652447, 13821783527, 13821914627, 13822045717, 13822176793, 13822307897, + 13822438979, 13822570057, 13822701149, 13822832251, 13822963331, 13823094407, 13823225483, + 13823356571, 13823487647, 13823618737, 13823749829, 13823880947, 13824012029, 13824143129, + 13824274213, 13824405293, 13824536389, 13824667471, 13824798571, 13824929647, 13825060787, + 13825191899, 13825322971, 13825454047, 13825585133, 13825716211, 13825847297, 13825978373, + 13826109529, 13826240609, 13826371703, 13826502779, 13826633897, 13826765039, 13826896243, + 13827027341, 13827158453, 13827289543, 13827420617, 13827551693, 13827682787, 13827813859, + 13827944941, 13828076021, 13828207097, 13828338193, 13828469311, 13828600399, 13828731517, + 13828862627, 13828993699, 13829124781, 13829255857, 13829386931, 13829518007, 13829649101, + 13829780179, 13829911259, 13830042337, 13830173431, 13830304517, 13830435607, 13830566689, + 13830697787, 13830828863, 13830959941, 13831091039, 13831222169, 13831353247, 13831484333, + 13831615411, 13831746493, 13831877593, 13832008667, 13832139833, 13832270927, 13832402033, + 13832533111, 13832664187, 13832795287, 13832926403, 13833057479, 13833188581, 13833319657, + 13833450737, 13833581831, 13833712913, 13833844001, 13833975073, 13834106191, 13834237273, + 13834368347, 13834499473, 13834630559, 13834761683, 13834892759, 13835023849, 13835154941, + 13835286029, 13835417153, 13835548241, 13835679317, 13835810389, 13835941501, 13836072577, + 13836203663, 13836334751, 13836465899, 13836596981, 13836728083, 13836859159, 13836990269, + 13837121351, 13837252423, 13837383499, 13837514573, 13837645667, 13837776803, 13837907891, + 13838038993, 13838170069, 13838301149, 13838432227, 13838563309, 13838694383, 13838825477, + 13838956553, 13839087697, 13839218777, 13839349889, 13839480971, 13839612089, 13839743171, + 13839874253, 13840005331, 13840136411, 13840267543, 13840398617, 13840529693, 13840660783, + 13840791869, 13840922959, 13841054053, 13841185139, 13841316221, 13841447309, 13841578433, + 13841709517, 13841840599, 13841971679, 13842102761, 13842233869, 13842364961, 13842496033, + 13842627121, 13842758207, 13842889297, 13843020371, 13843151471, 13843282543, 13843413629, + 13843544779, 13843675877, 13843806959, 13843938071, 13844069149, 13844200229, 13844331301, + 13844462377, 13844593463, 13844724539, 13844855611, 13844986699, 13845117791, 13845248887, + 13845379967, 13845511039, 13845642119, 13845773203, 13845904313, 13846035391, 13846166471, + 13846297561, 13846428689, 13846559761, 13846690841, 13846821917, 13846953023, 13847084131, + 13847215259, 13847346347, 13847477431, 13847608507, 13847739593, 13847870669, 13848001777, + 13848132863, 13848263951, 13848395063, 13848526157, 13848657239, 13848788321, 13848919393, + 13849050473, 13849181551, 13849312649, 13849443731, 13849574813, 13849705999, 13849837073, + 13849968163, 13850099273, 13850230363, 13850361461, 13850492533, 13850623607, 13850754683, + 13850885801, 13851016901, 13851147977, 13851279059, 13851410189, 13851541271, 13851672343, + 13851803423, 13851934519, 13852065593, 13852196749, 13852327831, 13852459001, 13852590083, + 13852721171, 13852852243, 13852983323, 13853114417, 13853245493, 13853376599, 13853507687, + 13853638769, 13853769869, 13853900959, 13854032041, 13854163121, 13854294193, 13854425293, + 13854556399, 13854687499, 13854818573, 13854949649, 13855080721, 13855211807, 13855342883, + 13855473971, 13855605059, 13855736131, 13855867219, 13855998301, 13856129401, 13856260501, + 13856391583, 13856522663, 13856653747, 13856784841, 13856915929, 13857047033, 13857178109, + 13857309209, 13857440291, 13857571367, 13857702479, 13857833603, 13857964727, 13858095803, + 13858226891, 13858357999, 13858489079, 13858620157, 13858751279, 13858882363, 13859013461, + 13859144567, 13859275663, 13859406779, 13859537863, 13859668957, 13859800037, 13859931187, + 13860062287, 13860193363, 13860324449, 13860455561, 13860586657, 13860717743, 13860848831, + 13860979927, 13861111013, 13861242103, 13861373191, 13861504297, 13861635391, 13861766491, + 13861897571, 13862028689, 13862159767, 13862290859, 13862421949, 13862553119, 13862684219, + 13862815301, 13862946379, 13863077461, 13863208543, 13863339641, 13863470713, 13863601799, + 13863732881, 13863863957, 13863995059, 13864126183, 13864257257, 13864388341, 13864519423, + 13864650497, 13864781569, 13864912651, 13865043743, 13865174839, 13865305931, 13865437009, + 13865568083, 13865699173, 13865830247, 13865961397, 13866092473, 13866223549, 13866354631, + 13866485753, 13866616837, 13866747913, 13866879011, 13867010083, 13867141181, 13867272281, + 13867403359, 13867534459, 13867665611, 13867796693, 13867927793, 13868058877, 13868189957, + 13868321041, 13868452153, 13868583259, 13868714351, 13868845423, 13868976497, 13869107579, + 13869238667, 13869369841, 13869500923, 13869632033, 13869763177, 13869894271, 13870025359, + 13870156471, 13870287589, 13870418699, 13870549783, 13870680893, 13870811993, 13870943101, + 13871074183, 13871205287, 13871336359, 13871467447, 13871598523, 13871729603, 13871860729, + 13871991803, 13872122881, 13872253987, 13872385073, 13872516179, 13872647273, 13872778391, + 13872909469, 13873040549, 13873171633, 13873302719, 13873433809, 13873564883, 13873695967, + 13873827059, 13873958177, 13874089297, 13874220383, 13874351459, 13874482541, 13874613629, + 13874744729, 13874875801, 13875006889, 13875137977, 13875269053, 13875400151, 13875531233, + 13875662329, 13875793411, 13875924487, 13876055563, 13876186637, 13876317727, 13876448801, + 13876579891, 13876710973, 13876842047, 13876973141, 13877104223, 13877235331, 13877366413, + 13877497489, 13877628577, 13877759683, 13877890771, 13878021847, 13878152921, 13878283997, + 13878415087, 13878546163, 13878677249, 13878808367, 13878939439, 13879070533, 13879201613, + 13879332721, 13879463797, 13879594871, 13879725947, 13879857037, 13879988119, 13880119199, + 13880250277, 13880381363, 13880512441, 13880643529, 13880774681, 13880905763, 13881036899, + 13881167977, 13881299057, 13881430133, 13881561277, 13881692351, 13881823447, 13881954607, + 13882085681, 13882216781, 13882347859, 13882478969, 13882610041, 13882741139, 13882872217, + 13883003293, 13883134381, 13883265457, 13883396533, 13883527607, 13883658683, 13883789761, + 13883920847, 13884051941, 13884183023, 13884314099, 13884445171, 13884576247, 13884707323, + 13884838397, 13884969499, 13885100639, 13885231739, 13885362817, 13885493891, 13885624967, + 13885756039, 13885887151, 13886018239, 13886149349, 13886280427, 13886411507, 13886542589, + 13886673667, 13886804747, 13886935823, 13887066901, 13887197981, 13887329059, 13887460133, + 13887591229, 13887722311, 13887853387, 13887984527, 13888115603, 13888246709, 13888377803, + 13888508891, 13888640023, 13888771109, 13888902187, 13889033321, 13889164427, 13889295517, + 13889426591, 13889557663, 13889688739, 13889819819, 13889950901, 13890081979, 13890213079, + 13890344179, 13890475253, 13890606343, 13890737423, 13890868559, 13890999631, 13891130711, + 13891261793, 13891392899, 13891523983, 13891655123, 13891786201, 13891917287, 13892048419, + 13892179501, 13892310589, 13892441687, 13892572777, 13892703857, 13892834939, 13892966011, + 13893097129, 13893228221, 13893359309, 13893490381, 13893621457, 13893752539, 13893883613, + 13894014709, 13894145873, 13894276967, 13894408039, 13894539119, 13894670191, 13894801279, + 13894932377, 13895063461, 13895194559, 13895325637, 13895456711, 13895587831, 13895718911, + 13895850053, 13895981137, 13896112253, 13896243341, 13896374449, 13896505523, 13896636641, + 13896767737, 13896898817, 13897029901, 13897160987, 13897292089, 13897423219, 13897554329, + 13897685401, 13897816487, 13897947577, 13898078671, 13898209751, 13898340829, 13898471929, + 13898603039, 13898734159, 13898865251, 13898996329, 13899127439, 13899258511, 13899389587, + 13899520673, 13899651811, 13899782887, 13899914069, 13900045151, 13900176233, 13900307327, + 13900438441, 13900569563, 13900700711, 13900831787, 13900962871, 13901093981, 13901225069, + 13901356151, 13901487251, 13901618327, 13901749453, 13901880563, 13902011657, 13902142741, + 13902273817, 13902404941, 13902536017, 13902667169, 13902798251, 13902929323, 13903060421, + 13903191503, 13903322591, 13903453721, 13903584803, 13903715879, 13903846987, 13903978063, + 13904109179, 13904240257, 13904371331, 13904502427, 13904633513, 13904764591, 13904895673, + 13905026783, 13905157867, 13905288973, 13905420103, 13905551197, 13905682283, 13905813377, + 13905944471, 13906075543, 13906206623, 13906337707, 13906468789, 13906599893, 13906730977, + 13906862107, 13906993189, 13907124293, 13907255377, 13907386477, 13907517557, 13907648647, + 13907779727, 13907910803, 13908041881, 13908173003, 13908304087, 13908435187, 13908566267, + 13908697351, 13908828491, 13908959563, 13909090667, 13909221743, 13909352843, 13909483927, + 13909615003, 13909746077, 13909877159, 13910008237, 13910139319, 13910270411, 13910401537, + 13910532611, 13910663761, 13910794853, 13910925947, 13911057029, 13911188107, 13911319199, + 13911450271, 13911581347, 13911712469, 13911843551, 13911974669, 13912105763, 13912236839, + 13912367939, 13912499011, 13912630087, 13912761263, 13912892353, 13913023427, 13913154509, + 13913285621, 13913416717, 13913547811, 13913678921, 13913810047, 13913941133, 13914072253, + 13914203357, 13914334453, 13914465571, 13914596681, 13914727753, 13914858827, 13914989917, + 13915121023, 13915252111, 13915383217, 13915514299, 13915645441, 13915776533, 13915907611, + 13916038709, 13916169781, 13916300873, 13916431961, 13916563049, 13916694131, 13916825231, + 13916956307, 13917087397, 13917218587, 13917349709, 13917480809, 13917611887, 13917742967, + 13917874043, 13918005139, 13918136227, 13918267313, 13918398397, 13918529473, 13918660571, + 13918791671, 13918922747, 13919053843, 13919184941, 13919316017, 13919447099, 13919578177, + 13919709289, 13919840381, 13919971453, 13920102533, 13920233623, 13920364697, 13920495769, + 13920626843, 13920757931, 13920889007, 13921020107, 13921151191, 13921282279, 13921413379, + 13921544491, 13921675567, 13921806649, 13921937747, 13922068819, 13922199931, 13922331061, + 13922462149, 13922593297, 13922724391, 13922855497, 13922986591, 13923117667, 13923248747, + 13923379837, 13923510917, 13923641989, 13923773093, 13923904171, 13924035277, 13924166363, + 13924297463, 13924428541, 13924559639, 13924690739, 13924821817, 13924952891, 13925083993, + 13925215069, 13925346163, 13925477273, 13925608349, 13925739427, 13925870527, 13926001601, + 13926132683, 13926263783, 13926394871, 13926525979, 13926657061, 13926788137, 13926919241, + 13927050349, 13927181479, 13927312559, 13927443637, 13927574723, 13927705807, 13927836883, + 13927967957, 13928099063, 13928230201, 13928361281, 13928492353, 13928623433, 13928754523, + 13928885611, 13929016721, 13929147839, 13929278947, 13929410059, 13929541163, 13929672241, + 13929803333, 13929934433, 13930065511, 13930196587, 13930327667, 13930458743, 13930589833, + 13930720919, 13930852009, 13930983097, 13931114179, 13931245313, 13931376401, 13931507507, + 13931638597, 13931769689, 13931900767, 13932031859, 13932162961, 13932294041, 13932425113, + 13932556213, 13932687323, 13932818411, 13932949501, 13933080613, 13933211701, 13933342777, + 13933473859, 13933604963, 13933736041, 13933867117, 13933998191, 13934129263, 13934260357, + 13934391463, 13934522573, 13934653709, 13934784781, 13934915887, 13935047003, 13935178121, + 13935309209, 13935440329, 13935571409, 13935702481, 13935833573, 13935964733, 13936095809, + 13936226911, 13936357999, 13936489093, 13936620223, 13936751303, 13936882391, 13937013463, + 13937144593, 13937275721, 13937406793, 13937537893, 13937668967, 13937800067, 13937931143, + 13938062219, 13938193343, 13938324419, 13938455497, 13938586573, 13938717659, 13938848741, + 13938979843, 13939110919, 13939242007, 13939373089, 13939504181, 13939635253, 13939766329, + 13939897421, 13940028493, 13940159591, 13940290669, 13940421751, 13940552827, 13940683907, + 13940815001, 13940946077, 13941077173, 13941208249, 13941339343, 13941470429, 13941601523, + 13941732653, 13941863731, 13941994837, 13942125949, 13942257041, 13942388197, 13942519291, + 13942650367, 13942781449, 13942912597, 13943043677, 13943174779, 13943305907, 13943437049, + 13943568127, 13943699201, 13943830309, 13943961389, 13944092467, 13944223543, 13944354623, + 13944485743, 13944616849, 13944747953, 13944879029, 13945010113, 13945141211, 13945272323, + 13945403441, 13945534523, 13945665599, 13945796687, 13945927799, 13946058913, 13946190017, + 13946321117, 13946452189, 13946583269, 13946714413, 13946845511, 13946976607, 13947107743, + 13947238843, 13947369937, 13947501031, 13947632117, 13947763213, 13947894299, 13948025387, + 13948156471, 13948287553, 13948418633, 13948549729, 13948680817, 13948811911, 13948942999, + 13949074099, 13949205187, 13949336299, 13949467387, 13949598461, 13949729533, 13949860627, + 13949991707, 13950122783, 13950253903, 13950384979, 13950516089, 13950647177, 13950778249, + 13950909383, 13951040479, 13951171561, 13951302709, 13951433803, 13951564901, 13951695997, + 13951827073, 13951958159, 13952089243, 13952220361, 13952351437, 13952482529, 13952613613, + 13952744693, 13952875789, 13953006863, 13953137953, 13953269089, 13953400171, 13953531259, + 13953662369, 13953793499, 13953924587, 13954055663, 13954186751, 13954317841, 13954448927, + 13954580009, 13954711189, 13954842269, 13954973359, 13955104463, 13955235557, 13955366651, + 13955497723, 13955628821, 13955759903, 13955890999, 13956022081, 13956153181, 13956284273, + 13956415349, 13956546431, 13956677507, 13956808603, 13956939697, 13957070807, 13957201891, + 13957332967, 13957464047, 13957595147, 13957726243, 13957857337, 13957988413, 13958119517, + 13958250589, 13958381693, 13958512781, 13958643859, 13958774941, 13958906033, 13959037121, + 13959168239, 13959299323, 13959430399, 13959561479, 13959692573, 13959823667, 13959954793, + 13960085921, 13960217017, 13960348117, 13960479217, 13960610309, 13960741441, 13960872529, + 13961003621, 13961134709, 13961265781, 13961396857, 13961527949, 13961659031, 13961790103, + 13961921209, 13962052289, 13962183397, 13962314491, 13962445631, 13962576709, 13962707851, + 13962838937, 13962970027, 13963101143, 13963232237, 13963363333, 13963494407, 13963625509, + 13963756613, 13963887689, 13964018767, 13964149891, 13964280991, 13964412089, 13964543161, + 13964674279, 13964805353, 13964936437, 13965067511, 13965198613, 13965329699, 13965460793, + 13965591889, 13965722963, 13965854143, 13965985219, 13966116319, 13966247419, 13966378501, + 13966509629, 13966640711, 13966771813, 13966902913, 13967033989, 13967165077, 13967296193, + 13967427289, 13967558459, 13967689531, 13967820637, 13967951713, 13968082801, 13968213877, + 13968344953, 13968476057, 13968607153, 13968738257, 13968869351, 13969000457, 13969131571, + 13969262647, 13969393733, 13969524809, 13969655897, 13969786969, 13969918063, 13970049151, + 13970180281, 13970311363, 13970442511, 13970573587, 13970704663, 13970835737, 13970966837, + 13971097909, 13971228991, 13971360077, 13971491207, 13971622321, 13971753401, 13971884477, + 13972015637, 13972146763, 13972277863, 13972408963, 13972540079, 13972671173, 13972802273, + 13972933349, 13973064449, 13973195549, 13973326729, 13973457803, 13973588879, 13973719967, + 13973851039, 13973982157, 13974113249, 13974244331, 13974375403, 13974506501, 13974637609, + 13974768719, 13974899833, 13975030921, 13975162009, 13975293109, 13975424213, 13975555291, + 13975686401, 13975817501, 13975948631, 13976079737, 13976210821, 13976341913, 13976473009, + 13976604091, 13976735173, 13976866261, 13976997337, 13977128461, 13977259559, 13977390631, + 13977521711, 13977652811, 13977783887, 13977914963, 13978046039, 13978177117, 13978308193, + 13978439353, 13978570429, 13978701557, 13978832663, 13978963741, 13979094821, 13979225893, + 13979356981, 13979488057, 13979619139, 13979750231, 13979881361, 13980012437, 13980143509, + 13980274601, 13980405701, 13980536803, 13980667889, 13980798967, 13980930071, 13981061177, + 13981192259, 13981323353, 13981454441, 13981585517, 13981716601, 13981847723, 13981978841, + 13982109913, 13982241001, 13982372081, 13982503187, 13982634269, 13982765351, 13982896427, + 13983027503, 13983158599, 13983289673, 13983420779, 13983551863, 13983682939, 13983814027, + 13983945103, 13984076177, 13984207249, 13984338323, 13984469413, 13984600489, 13984731577, + 13984862659, 13984993739, 13985124841, 13985255917, 13985386993, 13985518067, 13985649173, + 13985780267, 13985911367, 13986042509, 13986173603, 13986304687, 13986435767, 13986566851, + 13986697927, 13986829001, 13986960083, 13987091171, 13987222253, 13987353337, 13987484419, + 13987615517, 13987746593, 13987877711, 13988008787, 13988139887, 13988270969, 13988402047, + 13988533121, 13988664197, 13988795269, 13988926349, 13989057473, 13989188579, 13989319681, + 13989450763, 13989581861, 13989712943, 13989844019, 13989975161, 13990106261, 13990237357, + 13990368437, 13990499513, 13990630597, 13990761691, 13990892771, 13991023843, 13991154917, + 13991285989, 13991417071, 13991548147, 13991679259, 13991810341, 13991941421, 13992072499, + 13992203609, 13992334751, 13992465847, 13992596953, 13992728051, 13992859151, 13992990223, + 13993121299, 13993252391, 13993383463, 13993514551, 13993645639, 13993776739, 13993907819, + 13994038909, 13994169989, 13994301067, 13994432161, 13994563291, 13994694367, 13994825461, + 13994956543, 13995087647, 13995218803, 13995349883, 13995481001, 13995612073, 13995743171, + 13995874261, 13996005337, 13996136411, 13996267513, 13996398607, 13996529711, 13996660789, + 13996791869, 13996922963, 13997054047, 13997185129, 13997316247, 13997447323, 13997578411, + 13997709487, 13997840567, 13997971643, 13998102733, 13998233813, 13998364967, 13998496067, + 13998627143, 13998758299, 13998889397, 13999020473, 13999151567, 13999282651, 13999413761, + 13999544837, 13999675909, 13999807021, 13999938157, 14000069273, 14000200351, 14000331437, + 14000462527, 14000593609, 14000724713, 14000855789, 14000986873, 14001117947, 14001249019, + 14001380189, 14001511267, 14001642359, 14001773447, 14001904523, 14002035629, 14002166729, + 14002297807, 14002428899, 14002559993, 14002691069, 14002822151, 14002953229, 14003084311, + 14003215459, 14003346557, 14003477633, 14003608709, 14003739809, 14003870899, 14004001981, + 14004133057, 14004264143, 14004395233, 14004526351, 14004657431, 14004788561, 14004919633, + 14005050767, 14005181851, 14005312939, 14005444031, 14005575121, 14005706249, 14005837331, + 14005968409, 14006099501, 14006230577, 14006361683, 14006492767, 14006623847, 14006754947, + 14006886031, 14007017159, 14007148231, 14007279383, 14007410467, 14007541543, 14007672619, + 14007803707, 14007934781, 14008065871, 14008196947, 14008328029, 14008459103, 14008590179, + 14008721273, 14008852349, 14008983449, 14009114527, 14009245609, 14009376701, 14009507773, + 14009638849, 14009769937, 14009901029, 14010032123, 14010163229, 14010294317, 14010425431, + 14010556523, 14010687599, 14010818693, 14010949769, 14011080847, 14011211953, 14011343077, + 14011474151, 14011605227, 14011736317, 14011867393, 14011998467, 14012129543, 14012260621, + 14012391703, 14012522807, 14012653909, 14012785009, 14012916109, 14013047189, 14013178303, + 14013309397, 14013440489, 14013571571, 14013702649, 14013833753, 14013964879, 14014095967, + 14014227079, 14014358159, 14014489249, 14014620331, 14014751407, 14014882493, 14015013589, + 14015144669, 14015275751, 14015406851, 14015537941, 14015669047, 14015800147, 14015931257, + 14016062341, 14016193417, 14016324503, 14016455587, 14016586663, 14016717751, 14016848887, + 14016980009, 14017111081, 14017242179, 14017373311, 14017504433, 14017635551, 14017766641, + 14017897739, 14018028859, 14018160001, 14018291087, 14018422163, 14018553259, 14018684333, + 14018815423, 14018946497, 14019077573, 14019208757, 14019339863, 14019470947, 14019602057, + 14019733141, 14019864223, 14019995309, 14020126381, 14020257463, 14020388573, 14020519651, + 14020650751, 14020781903, 14020912981, 14021044061, 14021175149, 14021306267, 14021437349, + 14021568437, 14021699509, 14021830609, 14021961683, 14022092803, 14022223879, 14022354959, + 14022486031, 14022617107, 14022748219, 14022879313, 14023010399, 14023141471, 14023272559, + 14023403657, 14023534771, 14023665847, 14023796939, 14023928011, 14024059099, 14024190209, + 14024321281, 14024452357, 14024583439, 14024714537, 14024845609, 14024976703, 14025107777, + 14025238849, 14025369923, 14025501001, 14025632087, 14025763237, 14025894313, 14026025407, + 14026156481, 14026287599, 14026418671, 14026549751, 14026680839, 14026811917, 14026942991, + 14027074079, 14027205187, 14027336299, 14027467381, 14027598461, 14027729543, 14027860697, + 14027991833, 14028122929, 14028254029, 14028385103, 14028516179, 14028647263, 14028778397, + 14028909481, 14029040563, 14029171643, 14029302731, 14029433843, 14029564937, 14029696013, + 14029827103, 14029958191, 14030089267, 14030220349, 14030351429, 14030482523, 14030613613, + 14030744699, 14030875811, 14031006883, 14031137983, 14031269081, 14031400213, 14031531289, + 14031662377, 14031793483, 14031924587, 14032055659, 14032186807, 14032317913, 14032448987, + 14032580099, 14032711201, 14032842281, 14032973359, 14033104433, 14033235509, 14033366591, + 14033497693, 14033628781, 14033759863, 14033890957, 14034022039, 14034153113, 14034284191, + 14034415309, 14034546413, 14034677491, 14034808573, 14034939649, 14035070729, 14035201801, + 14035332887, 14035463963, 14035595047, 14035726121, 14035857263, 14035988347, 14036119429, + 14036250511, 14036381591, 14036512681, 14036643763, 14036774849, 14036905921, 14037037043, + 14037168193, 14037299299, 14037430387, 14037561491, 14037692579, 14037823699, 14037954793, + 14038085909, 14038216993, 14038348091, 14038479163, 14038610239, 14038741319, 14038872401, + 14039003507, 14039134601, 14039265679, 14039396779, 14039527867, 14039658949, 14039790029, + 14039921107, 14040052189, 14040183271, 14040314381, 14040445453, 14040576533, 14040707617, + 14040838729, 14040969823, 14041100903, 14041232011, 14041363103, 14041494179, 14041625261, + 14041756343, 14041887437, 14042018569, 14042149669, 14042280743, 14042411821, 14042542957, + 14042674069, 14042805143, 14042936231, 14043067307, 14043198401, 14043329477, 14043460553, + 14043591629, 14043722711, 14043853823, 14043984907, 14044115989, 14044247117, 14044378189, + 14044509307, 14044640383, 14044771457, 14044902577, 14045033669, 14045164747, 14045295821, + 14045426893, 14045557987, 14045689111, 14045820259, 14045951341, 14046082417, 14046213497, + 14046344579, 14046475657, 14046606751, 14046737839, 14046868937, 14047000043, 14047131139, + 14047262233, 14047393331, 14047524437, 14047655537, 14047786631, 14047917707, 14048048783, + 14048179877, 14048310949, 14048442029, 14048573107, 14048704211, 14048835299, 14048966383, + 14049097459, 14049228533, 14049359627, 14049490711, 14049621799, 14049752909, 14049883997, + 14050015093, 14050146191, 14050277279, 14050408357, 14050539431, 14050670503, 14050801577, + 14050932713, 14051063801, 14051194903, 14051325983, 14051457073, 14051588219, 14051719313, + 14051850403, 14051981477, 14052112577, 14052243701, 14052374783, 14052505861, 14052636967, + 14052768047, 14052899131, 14053030219, 14053161293, 14053292401, 14053423493, 14053554589, + 14053685671, 14053816747, 14053947823, 14054078923, 14054210033, 14054341123, 14054472199, + 14054603281, 14054734417, 14054865511, 14054996587, 14055127699, 14055258779, 14055389857, + 14055520957, 14055652031, 14055783103, 14055914209, 14056045319, 14056176427, 14056307501, + 14056438573, 14056569733, 14056700813, 14056831891, 14056963033, 14057094137, 14057225243, + 14057356349, 14057487443, 14057618537, 14057749613, 14057880689, 14058011789, 14058142871, + 14058273953, 14058405073, 14058536171, 14058667253, 14058798331, 14058929413, 14059060501, + 14059191589, 14059322663, 14059453739, 14059584821, 14059715897, 14059846987, 14059978069, + 14060109149, 14060240221, 14060371307, 14060502433, 14060633549, 14060764631, 14060895713, + 14061026803, 14061157883, 14061288991, 14061420077, 14061551159, 14061682253, 14061813383, + 14061944489, 14062075607, 14062206703, 14062337791, 14062468873, 14062599973, 14062731049, + 14062862129, 14062993261, 14063124349, 14063255429, 14063386523, 14063517599, 14063648771, + 14063779859, 14063910953, 14064042049, 14064173129, 14064304207, 14064435299, 14064566407, + 14064697487, 14064828587, 14064959681, 14065090757, 14065221883, 14065352957, 14065484047, + 14065615141, 14065746217, 14065877291, 14066008379, 14066139457, 14066270557, 14066401649, + 14066532721, 14066663797, 14066794873, 14066925947, 14067057019, 14067188117, 14067319207, + 14067450281, 14067581369, 14067712459, 14067843539, 14067974651, 14068105729, 14068236811, + 14068367891, 14068498963, 14068630039, 14068761131, 14068892203, 14069023279, 14069154377, + 14069285497, 14069416573, 14069547689, 14069678783, 14069809891, 14069940977, 14070072053, + 14070203131, 14070334207, 14070465307, 14070596387, 14070727477, 14070858559, 14070989651, + 14071120733, 14071251809, 14071382903, 14071514029, 14071645117, 14071776203, 14071907321, + 14072038397, 14072169469, 14072300551, 14072431691, 14072562793, 14072693867, 14072824939, + 14072956057, 14073087137, 14073218233, 14073349331, 14073480403, 14073611507, 14073742583, + 14073873689, 14074004771, 14074135847, 14074266953, 14074398031, 14074529107, 14074660199, + 14074791293, 14074922377, 14075053463, 14075184551, 14075315623, 14075446711, 14075577787, + 14075708873, 14075839951, 14075971061, 14076102137, 14076233219, 14076364321, 14076495403, + 14076626479, 14076757577, 14076888689, 14077019777, 14077150891, 14077281973, 14077413059, + 14077544149, 14077675279, 14077806367, 14077937459, 14078068541, 14078199623, 14078330711, + 14078461801, 14078592877, 14078723969, 14078855093, 14078986171, 14079117329, 14079248413, + 14079379493, 14079510569, 14079641663, 14079772739, 14079903841, 14080034929, 14080166017, + 14080297109, 14080428199, 14080559279, 14080690381, 14080821527, 14080952617, 14081083703, + 14081214821, 14081345897, 14081476979, 14081608081, 14081739157, 14081870239, 14082001313, + 14082132437, 14082263509, 14082394637, 14082525733, 14082656827, 14082787907, 14082918991, + 14083050067, 14083181149, 14083312241, 14083443323, 14083574399, 14083705549, 14083836661, + 14083967743, 14084098867, 14084229953, 14084361047, 14084492141, 14084623237, 14084754317, + 14084885413, 14085016493, 14085147617, 14085278689, 14085409771, 14085540853, 14085671927, + 14085803027, 14085934099, 14086065209, 14086196297, 14086327373, 14086458467, 14086589557, + 14086720651, 14086851733, 14086982809, 14087113927, 14087245009, 14087376089, 14087507173, + 14087638247, 14087769323, 14087900399, 14088031513, 14088162631, 14088293729, 14088424811, + 14088555883, 14088686957, 14088818039, 14088949117, 14089080197, 14089211281, 14089342357, + 14089473443, 14089604537, 14089735619, 14089866709, 14089997809, 14090128883, 14090259961, + 14090391041, 14090522129, 14090653243, 14090784317, 14090915407, 14091046481, 14091177559, + 14091308641, 14091439721, 14091570821, 14091701909, 14091832981, 14091964087, 14092095163, + 14092226257, 14092357333, 14092488407, 14092619503, 14092750577, 14092881679, 14093012809, + 14093143907, 14093274991, 14093406071, 14093537179, 14093668273, 14093799353, 14093930449, + 14094061523, 14094192641, 14094323723, 14094454819, 14094585907, 14094717019, 14094848113, + 14094979187, 14095110311, 14095241393, 14095372549, 14095503637, 14095634723, 14095765819, + 14095896901, 14096028007, 14096159089, 14096290181, 14096421299, 14096552383, 14096683459, + 14096814541, 14096945623, 14097076703, 14097207781, 14097338867, 14097469949, 14097601081, + 14097732179, 14097863267, 14097994343, 14098125467, 14098256581, 14098387663, 14098518743, + 14098649863, 14098780967, 14098912043, 14099043131, 14099174273, 14099305349, 14099436431, + 14099567551, 14099698633, 14099829713, 14099960807, 14100091897, 14100222971, 14100354083, + 14100485177, 14100616291, 14100747403, 14100878489, 14101009577, 14101140749, 14101271827, + 14101402969, 14101534043, 14101665133, 14101796237, 14101927331, 14102058407, 14102189489, + 14102320567, 14102451647, 14102582723, 14102713811, 14102844901, 14102976031, 14103107111, + 14103238213, 14103369299, 14103500377, 14103631457, 14103762577, 14103893659, 14104024757, + 14104155869, 14104286971, 14104418059, 14104549139, 14104680257, 14104811339, 14104942421, + 14105073559, 14105204669, 14105335753, 14105466847, 14105597927, 14105729009, 14105860099, + 14105991173, 14106122257, 14106253333, 14106384407, 14106515519, 14106646637, 14106777743, + 14106908903, 14107039981, 14107171069, 14107302179, 14107433269, 14107564363, 14107695461, + 14107826563, 14107957639, 14108088713, 14108219809, 14108350909, 14108482027, 14108613107, + 14108744179, 14108875259, 14109006337, 14109137417, 14109268519, 14109399607, 14109530723, + 14109661823, 14109792937, 14109924047, 14110055149, 14110186231, 14110317313, 14110448399, + 14110579471, 14110710553, 14110841651, 14110972741, 14111103821, 14111234941, 14111366021, + 14111497097, 14111628199, 14111759297, 14111890393, 14112021479, 14112152603, 14112283727, + 14112414853, 14112545969, 14112677077, 14112808159, 14112939259, 14113070341, 14113201447, + 14113332557, 14113463633, 14113594717, 14113725817, 14113856947, 14113988029, 14114119121, + 14114250193, 14114381329, 14114512459, 14114643551, 14114774623, 14114905711, 14115036809, + 14115167903, 14115298993, 14115430079, 14115561151, 14115692233, 14115823313, 14115954407, + 14116085479, 14116216553, 14116347631, 14116478749, 14116609883, 14116740997, 14116872103, + 14117003207, 14117134403, 14117265493, 14117396567, 14117527661, 14117658761, 14117789897, + 14117921071, 14118052153, 14118183241, 14118314321, 14118445433, 14118576533, 14118707653, + 14118838739, 14118969827, 14119100917, 14119231991, 14119363091, 14119494163, 14119625239, + 14119756319, 14119887391, 14120018467, 14120149591, 14120280701, 14120411777, 14120542903, + 14120673979, 14120805053, 14120936131, 14121067217, 14121198331, 14121329407, 14121460481, + 14121591563, 14121722647, 14121853747, 14121984853, 14122115941, 14122247033, 14122378111, + 14122509211, 14122640293, 14122771367, 14122902491, 14123033581, 14123164669, 14123295749, + 14123426833, 14123557909, 14123688983, 14123820071, 14123951173, 14124082249, 14124213371, + 14124344453, 14124475529, 14124606607, 14124737687, 14124868783, 14124999857, 14125130953, + 14125262051, 14125393147, 14125524227, 14125655309, 14125786429, 14125917503, 14126048591, + 14126179747, 14126310827, 14126441911, 14126572997, 14126704087, 14126835161, 14126966233, + 14127097307, 14127228389, 14127359461, 14127490579, 14127621667, 14127752761, 14127883841, + 14128014913, 14128146001, 14128277083, 14128408169, 14128539263, 14128670357, 14128801447, + 14128932523, 14129063603, 14129194679, 14129325757, 14129456849, 14129587921, 14129719001, + 14129850103, 14129981189, 14130112273, 14130243349, 14130374431, 14130505559, 14130636631, + 14130767767, 14130898871, 14131029949, 14131161049, 14131292137, 14131423237, 14131554331, + 14131685429, 14131816529, 14131947601, 14132078677, 14132209759, 14132340851, 14132471933, + 14132603027, 14132734127, 14132865217, 14132996299, 14133127381, 14133258463, 14133389561, + 14133520657, 14133651767, 14133782857, 14133913943, 14134045039, 14134176143, 14134307237, + 14134438319, 14134569391, 14134700467, 14134831541, 14134962631, 14135093711, 14135224801, + 14135355911, 14135486987, 14135618059, 14135749141, 14135880217, 14136011311, 14136142399, + 14136273479, 14136404551, 14136535639, 14136666749, 14136797821, 14136928907, 14137060013, + 14137191119, 14137322219, 14137453301, 14137584401, 14137715477, 14137846589, 14137977761, + 14138108839, 14138239943, 14138371019, 14138502097, 14138633221, 14138764361, 14138895457, + 14139026557, 14139157649, 14139288727, 14139419803, 14139550921, 14139682019, 14139813113, + 14139944197, 14140075273, 14140206383, 14140337467, 14140468543, 14140599619, 14140730749, + 14140861831, 14140992907, 14141123981, 14141255053, 14141386213, 14141517311, 14141648383, + 14141779469, 14141910593, 14142041699, 14142172841, 14142303913, 14142434987, 14142566059, + 14142697133, 14142828209, 14142959297, 14143090393, 14143221493, 14143352569, 14143483649, + 14143614743, 14143745831, 14143876927, 14144008003, 14144139083, 14144270167, 14144401261, + 14144532343, 14144663417, 14144794493, 14144925577, 14145056659, 14145187733, 14145318821, + 14145449959, 14145581033, 14145712151, 14145843223, 14145974317, 14146105423, 14146236499, + 14146367593, 14146498679, 14146629769, 14146760891, 14146891963, 14147023067, 14147154139, + 14147285287, 14147416411, 14147547487, 14147678569, 14147809661, 14147940743, 14148071849, + 14148202973, 14148334049, 14148465167, 14148596243, 14148727339, 14148858433, 14148989513, + 14149120627, 14149251703, 14149382789, 14149513867, 14149644941, 14149776013, 14149907159, + 14150038241, 14150169347, 14150300431, 14150431513, 14150562617, 14150693701, 14150824799, + 14150955883, 14151087017, 14151218089, 14151349181, 14151480257, 14151611377, 14151742453, + 14151873563, 14152004683, 14152135793, 14152266889, 14152397989, 14152529077, 14152660183, + 14152791281, 14152922383, 14153053457, 14153184553, 14153315641, 14153446717, 14153577853, + 14153708971, 14153840047, 14153971123, 14154102197, 14154233333, 14154364409, 14154495497, + 14154626573, 14154757691, 14154888763, 14155019843, 14155150969, 14155282049, 14155413131, + 14155544213, 14155675291, 14155806373, 14155937491, 14156068583, 14156199661, 14156330753, + 14156461861, 14156593043, 14156724119, 14156855197, 14156986271, 14157117371, 14157248453, + 14157379531, 14157510629, 14157641713, 14157772877, 14157904003, 14158035091, 14158166177, + 14158297253, 14158428391, 14158559491, 14158690571, 14158821659, 14158952737, 14159083819, + 14159214907, 14159345989, 14159477063, 14159608147, 14159739241, 14159870317, 14160001393, + 14160132529, 14160263639, 14160394733, 14160525811, 14160656893, 14160787973, 14160919079, + 14161050157, 14161181231, 14161312303, 14161443403, 14161574477, 14161705559, 14161836679, + 14161967783, 14162098859, 14162229941, 14162361013, 14162492147, 14162623243, 14162754379, + 14162885479, 14163016561, 14163147671, 14163278771, 14163409873, 14163540947, 14163672031, + 14163803107, 14163934247, 14164065319, 14164196411, 14164327501, 14164458593, 14164589687, + 14164720789, 14164851863, 14164982939, 14165114057, 14165245139, 14165376227, 14165507303, + 14165638493, 14165769587, 14165900663, 14166031771, 14166162851, 14166293927, 14166425027, + 14166556177, 14166687251, 14166818353, 14166949427, 14167080541, 14167211621, 14167342699, + 14167473799, 14167604879, 14167735957, 14167867057, 14167998157, 14168129267, 14168260357, + 14168391449, 14168522527, 14168653601, 14168784683, 14168915759, 14169046841, 14169177923, + 14169309001, 14169440093, 14169571201, 14169702289, 14169833441, 14169964577, 14170095713, + 14170226831, 14170357913, 14170489007, 14170620083, 14170751213, 14170882331, 14171013407, + 14171144513, 14171275603, 14171406679, 14171537753, 14171668831, 14171799907, 14171930987, + 14172062071, 14172193181, 14172324277, 14172455383, 14172586489, 14172717563, 14172848663, + 14172979739, 14173110821, 14173241893, 14173373009, 14173504087, 14173635163, 14173766263, + 14173897337, 14174028457, 14174159557, 14174290631, 14174421719, 14174552921, 14174684021, + 14174815097, 14174946179, 14175077251, 14175208331, 14175339433, 14175470509, 14175601607, + 14175732691, 14175863777, 14175994883, 14176125989, 14176257083, 14176388173, 14176519261, + 14176650337, 14176781417, 14176912499, 14177043571, 14177174663, 14177305739, 14177436811, + 14177567983, 14177699057, 14177830133, 14177961211, 14178092303, 14178223387, 14178354461, + 14178485551, 14178616631, 14178747749, 14178878827, 14179009903, 14179141007, 14179272113, + 14179403221, 14179534331, 14179665503, 14179796581, 14179927679, 14180058769, 14180189867, + 14180320943, 14180452021, 14180583127, 14180714213, 14180845297, 14180976379, 14181107467, + 14181238543, 14181369619, 14181500771, 14181631843, 14181762923, 14181894017, 14182025153, + 14182156237, 14182287311, 14182418389, 14182549541, 14182680643, 14182811729, 14182942831, + 14183073913, 14183205007, 14183336099, 14183467211, 14183598283, 14183729363, 14183860441, + 14183991541, 14184122647, 14184253723, 14184384803, 14184515897, 14184646991, 14184778067, + 14184909139, 14185040239, 14185171327, 14185302421, 14185433501, 14185564573, 14185695647, + 14185826723, 14185957823, 14186088907, 14186219981, 14186351059, 14186482139, 14186613229, + 14186744309, 14186875399, 14187006521, 14187137593, 14187268703, 14187399791, 14187530879, + 14187661963, 14187793063, 14187924139, 14188055221, 14188186297, 14188317401, 14188448473, + 14188579547, 14188710623, 14188841729, 14188972801, 14189103911, 14189235007, 14189366101, + 14189497187, 14189628301, 14189759401, 14189890487, 14190021607, 14190152689, 14190283763, + 14190414859, 14190545933, 14190677009, 14190808091, 14190939197, 14191070287, 14191201363, + 14191332443, 14191463543, 14191594633, 14191725733, 14191856807, 14191987937, 14192119009, + 14192250101, 14192381197, 14192512337, 14192643431, 14192774503, 14192905579, 14193036667, + 14193167761, 14193298841, 14193429917, 14193561037, 14193692129, 14193823207, 14193954293, + 14194085377, 14194216471, 14194347553, 14194478647, 14194609763, 14194740899, 14194871983, + 14195003063, 14195134139, 14195265239, 14195396311, 14195527427, 14195658523, 14195789627, + 14195920709, 14196051781, 14196182933, 14196314021, 14196445093, 14196576187, 14196707281, + 14196838367, 14196969439, 14197100521, 14197231613, 14197362703, 14197493789, 14197624873, + 14197755977, 14197887061, 14198018143, 14198149219, 14198280307, 14198411411, 14198542493, + 14198673607, 14198804687, 14198935769, 14199066841, 14199197923, 14199329009, 14199460111, + 14199591191, 14199722279, 14199853351, 14199984433, 14200115509, 14200246589, 14200377671, + 14200508771, 14200639879, 14200770959, 14200902073, 14201033153, 14201164259, 14201295347, + 14201426419, 14201557499, 14201688601, 14201819677, 14201950769, 14202081841, 14202212951, + 14202344071, 14202475169, 14202606269, 14202737359, 14202868453, 14202999581, 14203130653, + 14203261747, 14203392851, 14203523947, 14203655021, 14203786117, 14203917199, 14204048281, + 14204179357, 14204310451, 14204441551, 14204572639, 14204703713, 14204834807, 14204965969, + 14205097069, 14205228181, 14205359279, 14205490367, 14205621457, 14205752557, 14205883633, + 14206014731, 14206145803, 14206276937, 14206408009, 14206539101, 14206670207, 14206801307, + 14206932401, 14207063483, 14207194567, 14207325647, 14207456737, 14207587819, 14207718923, + 14207850017, 14207981131, 14208112229, 14208243317, 14208374399, 14208505483, 14208636569, + 14208767659, 14208898751, 14209029827, 14209160921, 14209292021, 14209423117, 14209554209, + 14209685291, 14209816403, 14209947491, 14210078563, 14210209661, 14210340751, 14210471837, + 14210602921, 14210734007, 14210865079, 14210996231, 14211127417, 14211258493, 14211389579, + 14211520667, 14211651781, 14211782903, 14211913979, 14212045073, 14212176161, 14212307243, + 14212438321, 14212569443, 14212700527, 14212831601, 14212962691, 14213093767, 14213224841, + 14213355913, 14213486993, 14213618087, 14213749223, 14213880323, 14214011419, 14214142499, + 14214273587, 14214404671, 14214535793, 14214666929, 14214798029, 14214929137, 14215060333, + 14215191433, 14215322533, 14215453607, 14215584689, 14215715771, 14215846861, 14215977991, + 14216109079, 14216240167, 14216371259, 14216502337, 14216633413, 14216764487, 14216895571, + 14217026683, 14217157781, 14217288901, 14217419989, 14217551071, 14217682163, 14217813257, + 14217944357, 14218075451, 14218206557, 14218337629, 14218468729, 14218599809, 14218730881, + 14218861991, 14218993099, 14219124181, 14219255261, 14219386333, 14219517413, 14219648491, + 14219779571, 14219910643, 14220041783, 14220172873, 14220303947, 14220435029, 14220566111, + 14220697199, 14220828277, 14220959377, 14221090451, 14221221529, 14221352603, 14221483711, + 14221614787, 14221745873, 14221876957, 14222008051, 14222139131, 14222270233, 14222401307, + 14222532397, 14222663549, 14222794657, 14222925809, 14223056909, 14223187981, 14223319063, + 14223450203, 14223581299, 14223712381, 14223843463, 14223974551, 14224105657, 14224236739, + 14224367821, 14224498907, 14224630019, 14224761127, 14224892237, 14225023381, 14225154487, + 14225285573, 14225416657, 14225547751, 14225678827, 14225809921, 14225941007, 14226072121, + 14226203207, 14226334289, 14226465367, 14226596509, 14226727583, 14226858689, 14226989773, + 14227120877, 14227251953, 14227383029, 14227514129, 14227645247, 14227776341, 14227907417, + 14228038499, 14228169577, 14228300663, 14228431747, 14228562823, 14228694001, 14228825113, + 14228956207, 14229087281, 14229218383, 14229349457, 14229480563, 14229611647, 14229742727, + 14229873803, 14230004891, 14230135993, 14230267097, 14230398173, 14230529267, 14230660343, + 14230791427, 14230922501, 14231053589, 14231184689, 14231315773, 14231446847, 14231577949, + 14231709031, 14231840107, 14231971181, 14232102257, 14232233333, 14232364451, 14232495533, + 14232626657, 14232757733, 14232888823, 14233019929, 14233151011, 14233282103, 14233413193, + 14233544293, 14233675367, 14233806439, 14233937513, 14234068613, 14234199691, 14234330767, + 14234461897, 14234592971, 14234724073, 14234855147, 14234986223, 14235117301, 14235248383, + 14235379469, 14235510547, 14235641677, 14235772757, 14235903841, 14236034951, 14236166023, + 14236297109, 14236428181, 14236559261, 14236690333, 14236821461, 14236952581, 14237083657, + 14237214769, 14237345953, 14237477027, 14237608127, 14237739211, 14237870293, 14238001423, + 14238132539, 14238263621, 14238394717, 14238525809, 14238656893, 14238787987, 14238919091, + 14239050181, 14239181273, 14239312379, 14239443473, 14239574593, 14239705673, 14239836757, + 14239967857, 14240098933, 14240230007, 14240361137, 14240492209, 14240623363, 14240754439, + 14240885513, 14241016597, 14241147703, 14241278801, 14241409873, 14241540967, 14241672041, + 14241803117, 14241934211, 14242065293, 14242196383, 14242327457, 14242458631, 14242589719, + 14242720861, 14242851937, 14242983011, 14243114087, 14243245169, 14243376289, 14243507363, + 14243638447, 14243769571, 14243900659, 14244031733, 14244162809, 14244293911, 14244425033, + 14244556153, 14244687287, 14244818383, 14244949463, 14245080541, 14245211647, 14245342747, + 14245473829, 14245604911, 14245735993, 14245867117, 14245998203, 14246129299, 14246260393, + 14246391499, 14246522593, 14246653691, 14246784791, 14246915867, 14247047051, 14247178129, + 14247309211, 14247440297, 14247571379, 14247702451, 14247833549, 14247964649, 14248095733, + 14248226819, 14248357909, 14248489037, 14248620203, 14248751291, 14248882369, 14249013469, + 14249144557, 14249275639, 14249406719, 14249537849, 14249668933, 14249800021, 14249931119, + 14250062191, 14250193267, 14250324391, 14250455537, 14250586619, 14250717697, 14250848771, + 14250979843, 14251110917, 14251242023, 14251373107, 14251504199, 14251635283, 14251766363, + 14251897523, 14252028599, 14252159683, 14252290757, 14252421847, 14252552953, 14252684063, + 14252815169, 14252946241, 14253077351, 14253208447, 14253339539, 14253470617, 14253601709, + 14253732833, 14253863909, 14253995011, 14254126111, 14254257191, 14254388311, 14254519403, + 14254650481, 14254781561, 14254912663, 14255043743, 14255174833, 14255305931, 14255437033, + 14255568133, 14255699209, 14255830327, 14255961427, 14256092527, 14256223649, 14256354757, + 14256485839, 14256616919, 14256747991, 14256879067, 14257010153, 14257141231, 14257272313, + 14257403389, 14257534481, 14257665557, 14257796629, 14257927709, 14258058847, 14258189927, + 14258321029, 14258452121, 14258583203, 14258714333, 14258845409, 14258976503, 14259107587, + 14259238663, 14259369737, 14259500809, 14259631913, 14259763051, 14259894163, 14260025243, + 14260156321, 14260287407, 14260418503, 14260549577, 14260680689, 14260811783, 14260942873, + 14261073949, 14261205037, 14261336123, 14261467201, 14261598317, 14261729401, 14261860489, + 14261991571, 14262122683, 14262253763, 14262384841, 14262515921, 14262647083, 14262778157, + 14262909229, 14263040369, 14263171501, 14263302631, 14263433753, 14263564829, 14263695911, + 14263826989, 14263958077, 14264089153, 14264220233, 14264351359, 14264482481, 14264613563, + 14264744713, 14264875799, 14265006871, 14265137951, 14265269063, 14265400141, 14265531223, + 14265662297, 14265793369, 14265924461, 14266055549, 14266186621, 14266317701, 14266448821, + 14266579903, 14266710977, 14266842067, 14266973143, 14267104297, 14267235373, 14267366471, + 14267497561, 14267628643, 14267759719, 14267890801, 14268021907, 14268152993, 14268284077, + 14268415153, 14268546247, 14268677341, 14268808459, 14268939533, 14269070611, 14269201691, + 14269332769, 14269463843, 14269594939, 14269726013, 14269857089, 14269988189, 14270119289, + 14270250383, 14270381467, 14270512547, 14270643677, 14270774759, 14270905837, 14271036947, + 14271168049, 14271299143, 14271430237, 14271561323, 14271692401, 14271823583, 14271954667, + 14272085743, 14272216877, 14272347949, 14272479029, 14272610137, 14272741237, 14272872323, + 14273003449, 14273134529, 14273265607, 14273396689, 14273527769, 14273658853, 14273789927, + 14273921029, 14274052123, 14274183199, 14274314273, 14274445351, 14274576427, 14274707519, + 14274838597, 14274969671, 14275100761, 14275231847, 14275362953, 14275494041, 14275625113, + 14275756193, 14275887281, 14276018357, 14276149469, 14276280541, 14276411651, 14276542729, + 14276673811, 14276804887, 14276936017, 14277067099, 14277198193, 14277329267, 14277460349, + 14277591437, 14277722519, 14277853633, 14277984727, 14278115827, 14278246903, 14278378057, + 14278509137, 14278640219, 14278771319, 14278902403, 14279033491, 14279164577, 14279295661, + 14279426779, 14279557879, 14279688953, 14279820053, 14279951233, 14280082343, 14280213419, + 14280344497, 14280475613, 14280606751, 14280737833, 14280868907, 14280999979, 14281131127, + 14281262231, 14281393333, 14281524409, 14281655483, 14281786567, 14281917647, 14282048741, + 14282179829, 14282310967, 14282442073, 14282573147, 14282704231, 14282835337, 14282966419, + 14283097513, 14283228599, 14283359683, 14283490757, 14283621841, 14283752953, 14283884029, + 14284015121, 14284146203, 14284277291, 14284408363, 14284539439, 14284670527, 14284801607, + 14284932719, 14285063839, 14285194919, 14285325991, 14285457077, 14285588171, 14285719271, + 14285850353, 14285981443, 14286112531, 14286243637, 14286374717, 14286505817, 14286636899, + 14286767977, 14286899051, 14287030133, 14287161221, 14287292297, 14287423379, 14287554451, + 14287685539, 14287816643, 14287947733, 14288078821, 14288209927, 14288341003, 14288472109, + 14288603233, 14288734307, 14288865379, 14288996459, 14289127543, 14289258629, 14289389701, + 14289520781, 14289651881, 14289782963, 14289914059, 14290045151, 14290176233, 14290307309, + 14290438381, 14290569473, 14290700569, 14290831663, 14290962737, 14291093821, 14291224907, + 14291355997, 14291487083, 14291618219, 14291749379, 14291880469, 14292011543, 14292142619, + 14292273713, 14292404803, 14292535897, 14292667001, 14292798077, 14292929173, 14293060253, + 14293191329, 14293322429, 14293453501, 14293584593, 14293715671, 14293846757, 14293977839, + 14294108981, 14294240063, 14294371249, 14294502329, 14294633401, 14294764487, 14294895649, + 14295026743, 14295157853, 14295288937, 14295420017, 14295551089, 14295682169, 14295813251, + 14295944339, 14296075411, 14296206497, 14296337569, 14296468651, 14296599749, 14296730843, + 14296861921, 14296993021, 14297124103, 14297255177, 14297386253, 14297517341, 14297648423, + 14297779499, 14297910611, 14298041707, 14298172783, 14298303893, 14298434977, 14298566063, + 14298697157, 14298828251, 14298959341, 14299090417, 14299221589, 14299352677, 14299483753, + 14299614841, 14299745927, 14299877017, 14300008091, 14300139187, 14300270291, 14300401403, + 14300532487, 14300663579, 14300794687, 14300925811, 14301056941, 14301188017, 14301319129, + 14301450203, 14301581339, 14301712423, 14301843499, 14301974579, 14302105667, 14302236749, + 14302367873, 14302498961, 14302630033, 14302761133, 14302892213, 14303023331, 14303154433, + 14303285509, 14303416597, 14303547689, 14303678789, 14303809879, 14303940953, 14304072031, + 14304203153, 14304334279, 14304465389, 14304596461, 14304727559, 14304858679, 14304989789, + 14305120861, 14305251949, 14305383077, 14305514159, 14305645241, 14305776341, 14305907419, + 14306038499, 14306169629, 14306300711, 14306431879, 14306562967, 14306694053, 14306825129, + 14306956219, 14307087299, 14307218461, 14307349559, 14307480641, 14307611761, 14307742837, + 14307873917, 14308005073, 14308136147, 14308267241, 14308398319, 14308529429, 14308660511, + 14308791587, 14308922671, 14309053757, 14309184847, 14309315989, 14309447071, 14309578159, + 14309709241, 14309840357, 14309971469, 14310102557, 14310233687, 14310364759, 14310495889, + 14310626963, 14310758053, 14310889163, 14311020259, 14311151353, 14311282451, 14311413539, + 14311544659, 14311675751, 14311806841, 14311937953, 14312069069, 14312200157, 14312331239, + 14312462371, 14312593457, 14312724539, 14312855639, 14312986711, 14313117799, 14313248893, + 14313379967, 14313511039, 14313642127, 14313773207, 14313904279, 14314035361, 14314166437, + 14314297511, 14314428629, 14314559711, 14314690787, 14314821881, 14314952959, 14315084051, + 14315215127, 14315346217, 14315477329, 14315608403, 14315739499, 14315870603, 14316001681, + 14316132757, 14316263831, 14316394903, 14316525991, 14316657079, 14316788159, 14316919237, + 14317050311, 14317181387, 14317312487, 14317443607, 14317574683, 14317705771, 14317836847, + 14317967941, 14318099041, 14318230163, 14318361247, 14318492327, 14318623409, 14318754523, + 14318885611, 14319016693, 14319147767, 14319278849, 14319409931, 14319541003, 14319672079, + 14319803153, 14319934271, 14320065349, 14320196467, 14320327543, 14320458617, 14320589711, + 14320720837, 14320851917, 14320982989, 14321114063, 14321245151, 14321376227, 14321507303, + 14321638381, 14321769463, 14321900557, 14322031631, 14322162793, 14322293873, 14322424951, + 14322556051, 14322687149, 14322818227, 14322949337, 14323080419, 14323211491, 14323342609, + 14323473683, 14323604833, 14323735913, 14323866989, 14323998079, 14324129177, 14324260309, + 14324391391, 14324522467, 14324653573, 14324784653, 14324915783, 14325046871, 14325177943, + 14325309041, 14325440117, 14325571207, 14325702301, 14325833381, 14325964453, 14326095529, + 14326226617, 14326357733, 14326488811, 14326619927, 14326751009, 14326882081, 14327013157, + 14327144239, 14327275327, 14327406449, 14327537531, 14327668603, 14327799677, 14327930779, + 14328061879, 14328192979, 14328324071, 14328455143, 14328586241, 14328717341, 14328848431, + 14328979519, 14329110629, 14329241713, 14329372793, 14329503869, 14329634941, 14329766051, + 14329897123, 14330028259, 14330159339, 14330290433, 14330421571, 14330552659, 14330683739, + 14330814917, 14330945989, 14331077063, 14331208159, 14331339289, 14331470383, 14331601469, + 14331732553, 14331863633, 14331994739, 14332125827, 14332256899, 14332387981, 14332519057, + 14332650179, 14332781261, 14332912357, 14333043503, 14333174591, 14333305667, 14333436781, + 14333567879, 14333698957, 14333830031, 14333961137, 14334092209, 14334223289, 14334354373, + 14334485471, 14334616559, 14334747641, 14334878713, 14335009849, 14335140949, 14335272071, + 14335403143, 14335534253, 14335665347, 14335796443, 14335927579, 14336058689, 14336189771, + 14336320891, 14336451967, 14336583049, 14336714141, 14336845241, 14336976323, 14337107399, + 14337238477, 14337369559, 14337500633, 14337631741, 14337762863, 14337893951, 14338025057, + 14338156141, 14338287241, 14338418317, 14338549403, 14338680527, 14338811623, 14338942721, + 14339073817, 14339204911, 14339336017, 14339467147, 14339598271, 14339729351, 14339860427, + 14339991499, 14340122617, 14340253717, 14340384809, 14340515911, 14340647029, 14340778169, + 14340909241, 14341040317, 14341171417, 14341302499, 14341433591, 14341564663, 14341695779, + 14341826869, 14341957961, 14342089037, 14342220121, 14342351203, 14342482277, 14342613361, + 14342744489, 14342875567, 14343006659, 14343137741, 14343268829, 14343399947, 14343531043, + 14343662129, 14343793213, 14343924307, 14344055387, 14344186459, 14344317587, 14344448771, + 14344579849, 14344710923, 14344842019, 14344973119, 14345104229, 14345235313, 14345366417, + 14345497489, 14345628581, 14345759653, 14345890751, 14346021853, 14346152981, 14346284101, + 14346415189, 14346546299, 14346677467, 14346808543, 14346939643, 14347070719, 14347201793, + 14347332887, 14347463981, 14347595083, 14347726201, 14347857281, 14347988357, 14348119433, + 14348250557, 14348381659, 14348512751, 14348643823, 14348774897, 14348905973, 14349037057, + 14349168133, 14349299207, 14349430307, 14349561409, 14349692543, 14349823619, 14349954691, + 14350085819, 14350216921, 14350348039, 14350479149, 14350610221, 14350741303, 14350872409, + 14351003521, 14351134607, 14351265701, 14351396783, 14351527867, 14351658941, 14351790041, + 14351921117, 14352052217, 14352183289, 14352314399, 14352445531, 14352576607, 14352707683, + 14352838763, 14352969847, 14353100947, 14353232057, 14353363181, 14353494289, 14353625383, + 14353756481, 14353887557, 14354018647, 14354149721, 14354280817, 14354411891, 14354543009, + 14354674109, 14354805181, 14354936257, 14355067351, 14355198433, 14355329543, 14355460643, + 14355591739, 14355722827, 14355853927, 14355985013, 14356116091, 14356247173, 14356378249, + 14356509329, 14356640429, 14356771529, 14356902601, 14357033693, 14357164781, 14357295857, + 14357426939, 14357558011, 14357689147, 14357820233, 14357951317, 14358082433, 14358213511, + 14358344597, 14358475697, 14358606791, 14358737903, 14358868991, 14359000067, 14359131139, + 14359262231, 14359393313, 14359524391, 14359655473, 14359786561, 14359917653, 14360048761, + 14360179877, 14360310949, 14360442029, 14360573111, 14360704187, 14360835263, 14360966351, + 14361097441, 14361228517, 14361359609, 14361490687, 14361621779, 14361752869, 14361884003, + 14362015111, 14362146187, 14362277273, 14362408349, 14362539427, 14362670521, 14362801597, + 14362932673, 14363063753, 14363194831, 14363325917, 14363456993, 14363588069, 14363719187, + 14363850269, 14363981383, 14364112493, 14364243581, 14364374653, 14364505787, 14364636887, + 14364767981, 14364899057, 14365030157, 14365161277, 14365292363, 14365423477, 14365554563, + 14365685639, 14365816711, 14365947809, 14366078897, 14366209973, 14366341063, 14366472151, + 14366603233, 14366734313, 14366865433, 14366996533, 14367127613, 14367258707, 14367389819, + 14367520897, 14367651997, 14367783139, 14367914233, 14368045339, 14368176437, 14368307539, + 14368438619, 14368569707, 14368700803, 14368831879, 14368962967, 14369094043, 14369225119, + 14369356193, 14369487281, 14369618363, 14369749439, 14369880589, 14370011671, 14370142751, + 14370273847, 14370404933, 14370536021, 14370667109, 14370798203, 14370929297, 14371060409, + 14371191487, 14371322573, 14371453651, 14371584727, 14371715851, 14371846961, 14371978073, + 14372109151, 14372240263, 14372371339, 14372502421, 14372633501, 14372764579, 14372895673, + 14373026749, 14373157837, 14373288913, 14373420043, 14373551141, 14373682237, 14373813343, + 14373944419, 14374075511, 14374206593, 14374337671, 14374468799, 14374599893, 14374730989, + 14374862077, 14374993183, 14375124259, 14375255333, 14375386427, 14375517511, 14375648593, + 14375779673, 14375910763, 14376041899, 14376172973, 14376304069, 14376435167, 14376566249, + 14376697417, 14376828497, 14376959593, 14377090687, 14377221767, 14377352867, 14377483943, + 14377615051, 14377746133, 14377877209, 14378008291, 14378139371, 14378270461, 14378401537, + 14378532613, 14378663729, 14378794853, 14378925937, 14379057023, 14379188101, 14379319243, + 14379450317, 14379581399, 14379712471, 14379843553, 14379974663, 14380105757, 14380236839, + 14380367917, 14380498991, 14380630129, 14380761203, 14380892291, 14381023369, 14381154449, + 14381285533, 14381416613, 14381547707, 14381678783, 14381809873, 14381940953, 14382072071, + 14382203153, 14382334247, 14382465371, 14382596447, 14382727531, 14382858613, 14382989693, + 14383120769, 14383251889, 14383382963, 14383514039, 14383645117, 14383776193, 14383907267, + 14384038349, 14384169427, 14384300507, 14384431583, 14384562691, 14384693773, 14384824897, + 14384955997, 14385087127, 14385218209, 14385349343, 14385480419, 14385611503, 14385742597, + 14385873673, 14386004753, 14386135831, 14386266913, 14386397989, 14386529063, 14386660147, + 14386791247, 14386922323, 14387053399, 14387184481, 14387315563, 14387446637, 14387577739, + 14387708813, 14387839903, 14387970983, 14388102067, 14388233173, 14388364283, 14388495383, + 14388626479, 14388757553, 14388888641, 14389019783, 14389150871, 14389281943, 14389413047, + 14389544137, 14389675229, 14389806307, 14389937381, 14390068457, 14390199541, 14390330659, + 14390461769, 14390592847, 14390723939, 14390855041, 14390986153, 14391117233, 14391248329, + 14391379403, 14391510493, 14391641597, 14391772691, 14391903767, 14392034863, 14392165951, + 14392297133, 14392428221, 14392559309, 14392690393, 14392821511, 14392952621, 14393083703, + 14393214809, 14393345887, 14393476991, 14393608087, 14393739193, 14393870269, 14394001351, + 14394132469, 14394263551, 14394394687, 14394525779, 14394656869, 14394787943, 14394919039, + 14395050113, 14395181233, 14395312331, 14395443421, 14395574533, 14395705609, 14395836683, + 14395967771, 14396098859, 14396229931, 14396361011, 14396492107, 14396623181, 14396754313, + 14396885411, 14397016489, 14397147587, 14397278663, 14397409757, 14397540877, 14397671957, + 14397803053, 14397934139, 14398065229, 14398196311, 14398327393, 14398458509, 14398589587, + 14398720717, 14398851823, 14398982909, 14399113987, 14399245061, 14399376137, 14399507281, + 14399638369, 14399769463, 14399900579, 14400031661, 14400162809, 14400293903, 14400424981, + 14400556067, 14400687167, 14400818273, 14400949361, 14401080461, 14401211537, 14401342621, + 14401473731, 14401604803, 14401735879, 14401866961, 14401998059, 14402129227, 14402260309, + 14402391391, 14402522483, 14402653571, 14402784647, 14402915719, 14403046817, 14403177907, + 14403308981, 14403440057, 14403571177, 14403702259, 14403833351, 14403964439, 14404095527, + 14404226611, 14404357697, 14404488781, 14404619869, 14404750957, 14404882039, 14405013149, + 14405144231, 14405275307, 14405406397, 14405537479, 14405668579, 14405799659, 14405930731, + 14406061819, 14406192893, 14406324029, 14406455113, 14406586189, 14406717287, 14406848359, + 14406979471, 14407110589, 14407241669, 14407372741, 14407503823, 14407634947, 14407766047, + 14407897121, 14408028209, 14408159303, 14408290399, 14408421493, 14408552579, 14408683673, + 14408814767, 14408945893, 14409076993, 14409208091, 14409339209, 14409470293, 14409601391, + 14409732583, 14409863669, 14409994769, 14410125889, 14410257041, 14410388119, 14410519213, + 14410650323, 14410781501, 14410912679, 14411043809, 14411174923, 14411305999, 14411437133, + 14411568221, 14411699311, 14411830397, 14411961469, 14412092543, 14412223619, 14412354701, + 14412485783, 14412616859, 14412747959, 14412879031, 14413010107, 14413141181, 14413272259, + 14413403413, 14413534517, 14413665593, 14413796669, 14413927747, 14414058829, 14414189981, + 14414321083, 14414452181, 14414583259, 14414714333, 14414845439, 14414976607, 14415107711, + 14415238811, 14415369887, 14415500971, 14415632089, 14415763169, 14415894271, 14416025383, + 14416156457, 14416287533, 14416418629, 14416549727, 14416680823, 14416811917, 14416943003, + 14417074103, 14417205193, 14417336273, 14417467357, 14417598439, 14417729569, 14417860651, + 14417991733, 14418122827, 14418253903, 14418384989, 14418516067, 14418647143, 14418778261, + 14418909347, 14419040431, 14419171517, 14419302613, 14419433719, 14419564801, 14419695937, + 14419827013, 14419958117, 14420089193, 14420220313, 14420351401, 14420482579, 14420613659, + 14420744731, 14420875829, 14421006917, 14421137999, 14421269113, 14421400199, 14421531317, + 14421662389, 14421793487, 14421924593, 14422055671, 14422186769, 14422317853, 14422448939, + 14422580033, 14422711133, 14422842229, 14422973333, 14423104411, 14423235503, 14423366591, + 14423497667, 14423628763, 14423759843, 14423890927, 14424022009, 14424153113, 14424284197, + 14424415273, 14424546349, 14424677467, 14424808543, 14424939653, 14425070761, 14425201841, + 14425332991, 14425464073, 14425595153, 14425726351, 14425857431, 14425988543, 14426119627, + 14426250701, 14426381773, 14426512883, 14426643961, 14426775053, 14426906213, 14427037291, + 14427168389, 14427299461, 14427430543, 14427561623, 14427692711, 14427823783, 14427954887, + 14428086007, 14428217099, 14428348189, 14428479277, 14428610359, 14428741447, 14428872527, + 14429003651, 14429134763, 14429265857, 14429396941, 14429528023, 14429659103, 14429790181, + 14429921257, 14430052339, 14430183431, 14430314519, 14430445607, 14430576707, 14430707779, + 14430838859, 14430969953, 14431101077, 14431232159, 14431363241, 14431494313, 14431625399, + 14431756481, 14431887557, 14432018639, 14432149723, 14432280823, 14432411921, 14432543009, + 14432674097, 14432805193, 14432936339, 14433067417, 14433198503, 14433329597, 14433460703, + 14433591779, 14433722869, 14433853963, 14433985081, 14434116161, 14434247263, 14434378363, + 14434509457, 14434640543, 14434771627, 14434902701, 14435033773, 14435164847, 14435295977, + 14435427053, 14435558129, 14435689237, 14435820331, 14435951417, 14436082489, 14436213593, + 14436344683, 14436475771, 14436606851, 14436737941, 14436869021, 14437000121, 14437131227, + 14437262303, 14437393381, 14437524461, 14437655579, 14437786661, 14437917751, 14438048839, + 14438179913, 14438310989, 14438442121, 14438573197, 14438704277, 14438835353, 14438966447, + 14439097579, 14439228653, 14439359729, 14439490829, 14439621901, 14439753007, 14439884087, + 14440015193, 14440146269, 14440277351, 14440408459, 14440539541, 14440670623, 14440801723, + 14440932799, 14441063881, 14441194987, 14441326087, 14441457169, 14441588257, 14441719373, + 14441850457, 14441981549, 14442112669, 14442243763, 14442374839, 14442505927, 14442637037, + 14442768113, 14442899227, 14443030321, 14443161401, 14443292483, 14443423583, 14443554667, + 14443685759, 14443816843, 14443947937, 14444079011, 14444210083, 14444341157, 14444472233, + 14444603309, 14444734387, 14444865517, 14444996597, 14445127673, 14445258749, 14445389831, + 14445520907, 14445651991, 14445783109, 14445914201, 14446045279, 14446176379, 14446307461, + 14446438547, 14446569679, 14446700753, 14446831879, 14446962979, 14447094061, 14447225147, + 14447356243, 14447487319, 14447618443, 14447749517, 14447880637, 14448011797, 14448142873, + 14448273977, 14448405071, 14448536171, 14448667253, 14448798341, 14448929447, 14449060519, + 14449191593, 14449322689, 14449453769, 14449584841, 14449715927, 14449847003, 14449978079, + 14450109151, 14450240243, 14450371319, 14450502419, 14450633507, 14450764579, 14450895661, + 14451026761, 14451157837, 14451288919, 14451420013, 14451551143, 14451682237, 14451813317, + 14451944399, 14452075471, 14452206589, 14452337663, 14452468741, 14452599817, 14452730921, + 14452861999, 14452993097, 14453124247, 14453255339, 14453386447, 14453517527, 14453648617, + 14453779709, 14453910829, 14454041933, 14454173033, 14454304127, 14454435199, 14454566279, + 14454697351, 14454828433, 14454959543, 14455090651, 14455221727, 14455352803, 14455483943, + 14455615021, 14455746101, 14455877209, 14456008289, 14456139367, 14456270459, 14456401549, + 14456532659, 14456663747, 14456794871, 14456925947, 14457057029, 14457188101, 14457319183, + 14457450269, 14457581443, 14457712517, 14457843611, 14457974693, 14458105771, 14458236893, + 14458367969, 14458499059, 14458630177, 14458761257, 14458892333, 14459023451, 14459154533, + 14459285671, 14459416757, 14459547847, 14459678923, 14459810009, 14459941117, 14460072197, + 14460203299, 14460334379, 14460465469, 14460596561, 14460727637, 14460858749, 14460989897, + 14461120979, 14461252063, 14461383253, 14461514329, 14461645433, 14461776517, 14461907591, + 14462038667, 14462169829, 14462300987, 14462432069, 14462563147, 14462694251, 14462825323, + 14462956441, 14463087517, 14463218617, 14463349699, 14463480799, 14463611909, 14463742991, + 14463874063, 14464005163, 14464136273, 14464267379, 14464398467, 14464529561, 14464660649, + 14464791787, 14464922861, 14465053943, 14465185019, 14465316109, 14465447197, 14465578279, + 14465709353, 14465840449, 14465971571, 14466102661, 14466233773, 14466364873, 14466495961, + 14466627047, 14466758161, 14466889247, 14467020329, 14467151417, 14467282507, 14467413589, + 14467544681, 14467675771, 14467806883, 14467937959, 14468069051, 14468200133, 14468331239, + 14468462311, 14468593387, 14468724461, 14468855561, 14468986669, 14469117749, 14469248831, + 14469379927, 14469511031, 14469642113, 14469773189, 14469904261, 14470035341, 14470166413, + 14470297511, 14470428619, 14470559723, 14470690823, 14470821899, 14470952981, 14471084059, + 14471215139, 14471346269, 14471477359, 14471608447, 14471739521, 14471870593, 14472001673, + 14472132799, 14472263873, 14472394957, 14472526063, 14472657151, 14472788251, 14472919327, + 14473050437, 14473181519, 14473312613, 14473443779, 14473574867, 14473705957, 14473837031, + 14473968139, 14474099239, 14474230313, 14474361397, 14474492491, 14474623613, 14474754691, + 14474885851, 14475016957, 14475148033, 14475279107, 14475410179, 14475541319, 14475672437, + 14475803509, 14475934589, 14476065661, 14476196741, 14476327813, 14476458947, 14476590101, + 14476721219, 14476852297, 14476983371, 14477114453, 14477245553, 14477376653, 14477507753, + 14477638891, 14477769979, 14477901073, 14478032159, 14478163289, 14478294373, 14478425477, + 14478556571, 14478687659, 14478818743, 14478949817, 14479080947, 14479212061, 14479343143, + 14479474249, 14479605331, 14479736419, 14479867543, 14479998641, 14480129717, 14480260807, + 14480391881, 14480522977, 14480654057, 14480785157, 14480916259, 14481047393, 14481178471, + 14481309551, 14481440681, 14481571781, 14481702857, 14481833959, 14481965039, 14482096117, + 14482227191, 14482358281, 14482489361, 14482620491, 14482751581, 14482882679, 14483013829, + 14483144903, 14483275979, 14483407061, 14483538143, 14483669219, 14483800333, 14483931421, + 14484062531, 14484193687, 14484324817, 14484455893, 14484586999, 14484718081, 14484849157, + 14484980267, 14485111349, 14485242449, 14485373543, 14485504637, 14485635709, 14485766837, + 14485897981, 14486029087, 14486160163, 14486291249, 14486422337, 14486553457, 14486684533, + 14486815613, 14486946689, 14487077771, 14487208843, 14487339917, 14487470993, 14487602069, + 14487733159, 14487864241, 14487995329, 14488126421, 14488257517, 14488388599, 14488519679, + 14488650769, 14488781849, 14488912957, 14489044039, 14489175137, 14489306263, 14489437349, + 14489568421, 14489699503, 14489830577, 14489961653, 14490092731, 14490223823, 14490354943, + 14490486019, 14490617093, 14490748169, 14490879287, 14491010371, 14491141447, 14491272527, + 14491403603, 14491534703, 14491665779, 14491796867, 14491927949, 14492059039, 14492190143, + 14492321227, 14492452309, 14492583401, 14492714477, 14492845553, 14492976643, 14493107729, + 14493238807, 14493369893, 14493500969, 14493632057, 14493763129, 14493894209, 14494025309, + 14494156477, 14494287607, 14494418761, 14494549847, 14494680971, 14494812047, 14494943119, + 14495074193, 14495205299, 14495336393, 14495467471, 14495598563, 14495729659, 14495860759, + 14495991833, 14496122911, 14496253997, 14496385073, 14496516187, 14496647293, 14496778379, + 14496909451, 14497040543, 14497171621, 14497302767, 14497433891, 14497564967, 14497696043, + 14497827139, 14497958213, 14498089303, 14498220379, 14498351501, 14498482577, 14498613677, + 14498744791, 14498875883, 14499006983, 14499138067, 14499269149, 14499400229, 14499531337, + 14499662417, 14499793489, 14499924587, 14500055683, 14500186759, 14500317877, 14500448957, + 14500580041, 14500711117, 14500842217, 14500973303, 14501104381, 14501235473, 14501366549, + 14501497643, 14501628751, 14501759827, 14501890903, 14502021977, 14502153139, 14502284219, + 14502415303, 14502546427, 14502677507, 14502808597, 14502939707, 14503070789, 14503201883, + 14503332973, 14503464067, 14503595153, 14503726231, 14503857307, 14503988437, 14504119519, + 14504250623, 14504381719, 14504512811, 14504643913, 14504774987, 14504906063, 14505037163, + 14505168319, 14505299399, 14505430477, 14505561589, 14505692683, 14505823789, 14505954877, + 14506085953, 14506217039, 14506348123, 14506479217, 14506610291, 14506741373, 14506872451, + 14507003531, 14507134651, 14507265727, 14507396831, 14507527921, 14507659003, 14507790083, + 14507921177, 14508052283, 14508183373, 14508314453, 14508445577, 14508576653, 14508707747, + 14508838831, 14508969929, 14509101011, 14509232099, 14509363177, 14509494269, 14509625353, + 14509756427, 14509887499, 14510018573, 14510149763, 14510280881, 14510411953, 14510543039, + 14510674127, 14510805217, 14510936411, 14511067489, 14511198577, 14511329681, 14511460753, + 14511591839, 14511722921, 14511853999, 14511985093, 14512116233, 14512247333, 14512378417, + 14512509509, 14512640587, 14512771661, 14512902739, 14513033813, 14513164889, 14513295961, + 14513427043, 14513558159, 14513689291, 14513820407, 14513951479, 14514082553, 14514213647, + 14514344729, 14514475817, 14514606889, 14514738047, 14514869119, 14515000193, 14515131277, + 14515262353, 14515393429, 14515524521, 14515655593, 14515786667, 14515917791, 14516048879, + 14516180027, 14516311109, 14516442233, 14516573333, 14516704409, 14516835497, 14516966593, + 14517097669, 14517228743, 14517359863, 14517490943, 14517622019, 14517753119, 14517884197, + 14518015271, 14518146367, 14518277443, 14518408537, 14518539689, 14518670779, 14518801877, + 14518932971, 14519064071, 14519195179, 14519326259, 14519457331, 14519588441, 14519719531, + 14519850641, 14519981747, 14520112843, 14520243961, 14520375041, 14520506129, 14520637217, + 14520768347, 14520899431, 14521030507, 14521161623, 14521292701, 14521423811, 14521554889, + 14521685977, 14521817069, 14521948153, 14522079251, 14522210333, 14522341411, 14522472511, + 14522603591, 14522734669, 14522865743, 14522996843, 14523127919, 14523258991, 14523390103, + 14523521179, 14523652259, 14523783367, 14523914441, 14524045513, 14524176599, 14524307689, + 14524438771, 14524569859, 14524700947, 14524832059, 14524963153, 14525094263, 14525225339, + 14525356487, 14525487563, 14525618641, 14525749753, 14525880827, 14526011939, 14526143039, + 14526274153, 14526405241, 14526536407, 14526667489, 14526798577, 14526929657, 14527060729, + 14527191829, 14527322903, 14527453991, 14527585067, 14527716167, 14527847287, 14527978363, + 14528109443, 14528240549, 14528371621, 14528502697, 14528633771, 14528764849, 14528895923, + 14529027011, 14529158087, 14529289169, 14529420259, 14529551431, 14529682561, 14529813689, + 14529944773, 14530075853, 14530206941, 14530338023, 14530469117, 14530600199, 14530731287, + 14530862369, 14530993441, 14531124557, 14531255639, 14531386711, 14531517821, 14531648897, + 14531779973, 14531911193, 14532042277, 14532173353, 14532304447, 14532435557, 14532566641, + 14532697769, 14532828853, 14532959933, 14533091039, 14533222111, 14533353199, 14533484291, + 14533615363, 14533746481, 14533877557, 14534008639, 14534139721, 14534270801, 14534401913, + 14534533031, 14534664127, 14534795221, 14534926319, 14535057419, 14535188497, 14535319577, + 14535450649, 14535581741, 14535712813, 14535843911, 14535975029, 14536106107, 14536237189, + 14536368277, 14536499407, 14536630501, 14536761593, 14536892693, 14537023769, 14537154857, + 14537285933, 14537417017, 14537548099, 14537679179, 14537810293, 14537941387, 14538072467, + 14538203573, 14538334651, 14538465743, 14538596819, 14538727909, 14538859019, 14538990091, + 14539121167, 14539252249, 14539383349, 14539514453, 14539645529, 14539776607, 14539907687, + 14540038789, 14540169913, 14540300987, 14540432113, 14540563189, 14540694331, 14540825413, + 14540956489, 14541087601, 14541218689, 14541349783, 14541480883, 14541611957, 14541743089, + 14541874229, 14542005301, 14542136437, 14542267511, 14542398589, 14542529693, 14542660771, + 14542791859, 14542922959, 14543054069, 14543185169, 14543316257, 14543447329, 14543578447, + 14543709541, 14543840617, 14543971693, 14544102791, 14544233863, 14544364937, 14544496027, + 14544627133, 14544758243, 14544889319, 14545020437, 14545151531, 14545282621, 14545413703, + 14545544789, 14545675867, 14545806941, 14545938037, 14546069129, 14546200213, 14546331323, + 14546462423, 14546593499, 14546724571, 14546855651, 14546986771, 14547117853, 14547248941, + 14547380051, 14547511151, 14547642233, 14547773321, 14547904403, 14548035493, 14548166579, + 14548297711, 14548428841, 14548559953, 14548691051, 14548822163, 14548953271, 14549084369, + 14549215441, 14549346583, 14549477713, 14549608817, 14549739913, 14549870989, 14550002069, + 14550133151, 14550264251, 14550395323, 14550526421, 14550657503, 14550788719, 14550919819, + 14551050893, 14551181971, 14551313057, 14551444133, 14551575281, 14551706353, 14551837427, + 14551968527, 14552099599, 14552230681, 14552361757, 14552492833, 14552623907, 14552755081, + 14552886157, 14553017287, 14553148411, 14553279493, 14553410569, 14553541643, 14553672719, + 14553803837, 14553934919, 14554066073, 14554197227, 14554328359, 14554459463, 14554590541, + 14554721653, 14554852757, 14554983847, 14555114921, 14555245993, 14555377069, 14555508223, + 14555639297, 14555770429, 14555901527, 14556032629, 14556163711, 14556294811, 14556425903, + 14556556991, 14556688079, 14556819169, 14556950351, 14557081481, 14557212611, 14557343693, + 14557474783, 14557605857, 14557736951, 14557868023, 14557999097, 14558130221, 14558261293, + 14558392369, 14558523449, 14558654521, 14558785603, 14558916677, 14559047761, 14559178873, + 14559309967, 14559441047, 14559572141, 14559703217, 14559834301, 14559965389, 14560096469, + 14560227553, 14560358639, 14560489717, 14560620803, 14560751879, 14560882981, 14561014073, + 14561145199, 14561276273, 14561407381, 14561538463, 14561669539, 14561800663, 14561931739, + 14562062831, 14562193903, 14562325013, 14562456101, 14562587177, 14562718253, 14562849337, + 14562980423, 14563111499, 14563242581, 14563373677, 14563504771, 14563635847, 14563766929, + 14563898051, 14564029201, 14564160311, 14564291383, 14564422459, 14564553587, 14564684677, + 14564815751, 14564946901, 14565077977, 14565209111, 14565340201, 14565471331, 14565602419, + 14565733519, 14565864617, 14565995693, 14566126787, 14566257863, 14566388981, 14566520081, + 14566651153, 14566782233, 14566913359, 14567044441, 14567175517, 14567306599, 14567437691, + 14567568773, 14567699851, 14567830933, 14567962037, 14568093151, 14568224249, 14568355327, + 14568486403, 14568617491, 14568748609, 14568879701, 14569010789, 14569141877, 14569272953, + 14569404037, 14569535111, 14569666219, 14569797293, 14569928383, 14570059477, 14570190589, + 14570321663, 14570452823, 14570583901, 14570714987, 14570846071, 14570977193, 14571108301, + 14571239377, 14571370469, 14571501551, 14571632623, 14571763699, 14571894791, 14572025873, + 14572156967, 14572288063, 14572419149, 14572550261, 14572681363, 14572812461, 14572943533, + 14573074609, 14573205707, 14573336803, 14573467879, 14573598971, 14573730077, 14573861171, + 14573992247, 14574123331, 14574254447, 14574385559, 14574516643, 14574647729, 14574778811, + 14574909883, 14575040981, 14575172057, 14575303153, 14575434233, 14575565309, 14575696381, + 14575827479, 14575958581, 14576089673, 14576220803, 14576351887, 14576482969, 14576614051, + 14576745181, 14576876257, 14577007331, 14577138419, 14577269503, 14577400603, 14577531701, + 14577662789, 14577793861, 14577924941, 14578056013, 14578187093, 14578318177, 14578449251, + 14578580327, 14578711451, 14578842539, 14578973623, 14579104697, 14579235793, 14579366899, + 14579497973, 14579629087, 14579760199, 14579891273, 14580022361, 14580153451, 14580284527, + 14580415621, 14580546697, 14580677779, 14580808859, 14580939937, 14581071031, 14581202179, + 14581333297, 14581464371, 14581595477, 14581726559, 14581857643, 14581988719, 14582119817, + 14582250899, 14582381981, 14582513081, 14582644163, 14582775247, 14582906383, 14583037459, + 14583168563, 14583299639, 14583430721, 14583561823, 14583692939, 14583824069, 14583955151, + 14584086247, 14584217321, 14584348393, 14584479479, 14584610563, 14584741693, 14584872773, + 14585003861, 14585135017, 14585266099, 14585397193, 14585528297, 14585659409, 14585790487, + 14585921591, 14586052667, 14586183757, 14586314843, 14586445921, 14586577043, 14586708121, + 14586839227, 14586970379, 14587101461, 14587232533, 14587363673, 14587494773, 14587625861, + 14587756943, 14587888019, 14588019109, 14588150243, 14588281319, 14588412413, 14588543507, + 14588674591, 14588805683, 14588936771, 14589067849, 14589198959, 14589330037, 14589461123, + 14589592247, 14589723329, 14589854423, 14589985507, 14590116589, 14590247677, 14590378763, + 14590509851, 14590640957, 14590772029, 14590903153, 14591034251, 14591165327, 14591296403, + 14591427481, 14591558563, 14591689709, 14591820781, 14591951863, 14592082937, 14592214079, + 14592345161, 14592476237, 14592607313, 14592738421, 14592869519, 14593000607, 14593131703, + 14593262777, 14593393849, 14593524929, 14593656013, 14593787099, 14593918181, 14594049257, + 14594180333, 14594311429, 14594442509, 14594573603, 14594704739, 14594835811, 14594966899, + 14595097973, 14595229049, 14595360133, 14595491221, 14595622319, 14595753391, 14595884467, + 14596015543, 14596146619, 14596277713, 14596408819, 14596539911, 14596670989, 14596802069, + 14596933171, 14597064283, 14597195357, 14597326561, 14597457647, 14597588749, 14597719823, + 14597850941, 14597982031, 14598113137, 14598244253, 14598375331, 14598506423, 14598637499, + 14598768599, 14598899701, 14599030793, 14599161869, 14599292947, 14599424023, 14599555099, + 14599686191, 14599817263, 14599948397, 14600079499, 14600210587, 14600341663, 14600472737, + 14600603837, 14600734913, 14600866039, 14600997143, 14601128221, 14601259301, 14601390469, + 14601521569, 14601652669, 14601783751, 14601914837, 14602045919, 14602177001, 14602308079, + 14602439177, 14602570273, 14602701349, 14602832437, 14602963519, 14603094607, 14603225687, + 14603356763, 14603487841, 14603618923, 14603750003, 14603881091, 14604012169, 14604143293, + 14604274367, 14604405449, 14604536521, 14604667607, 14604798707, 14604929813, 14605060889, + 14605192013, 14605323143, 14605454251, 14605585363, 14605716443, 14605847521, 14605978609, + 14606109689, 14606240783, 14606371867, 14606502959, 14606634061, 14606765161, 14606896253, + 14607027329, 14607158407, 14607289493, 14607420593, 14607551687, 14607682801, 14607813901, + 14607944983, 14608076059, 14608207153, 14608338259, 14608469347, 14608600427, 14608731541, + 14608862629, 14608993703, 14609124779, 14609255867, 14609387047, 14609518129, 14609649239, + 14609780323, 14609911409, 14610042631, 14610173707, 14610304801, 14610435883, 14610566987, + 14610698087, 14610829199, 14610960281, 14611091359, 14611222447, 14611353529, 14611484609, + 14611615699, 14611746781, 14611877899, 14612008979, 14612140087, 14612271181, 14612402263, + 14612533337, 14612664421, 14612795501, 14612926639, 14613057773, 14613188867, 14613319949, + 14613451037, 14613582133, 14613713239, 14613844337, 14613975413, 14614106489, 14614237577, + 14614368653, 14614499729, 14614630819, 14614761899, 14614892993, 14615024093, 14615155169, + 14615286247, 14615417351, 14615548439, 14615679517, 14615810593, 14615941673, 14616072763, + 14616203837, 14616334963, 14616466037, 14616597113, 14616728207, 14616859297, 14616990397, + 14617121501, 14617252589, 14617383719, 14617514801, 14617645919, 14617777007, 14617908119, + 14618039197, 14618170291, 14618301407, 14618432503, 14618563579, 14618694697, 14618825821, + 14618956951, 14619088031, 14619219113, 14619350191, 14619481267, 14619612353, 14619743431, + 14619874513, 14620005641, 14620136719, 14620267807, 14620398917, 14620530011, 14620661129, + 14620792211, 14620923283, 14621054359, 14621185441, 14621316517, 14621447597, 14621578669, + 14621709763, 14621840837, 14621971909, 14622103039, 14622234181, 14622365267, 14622496351, + 14622627463, 14622758543, 14622889637, 14623020721, 14623151801, 14623282909, 14623413983, + 14623545121, 14623676227, 14623807313, 14623938391, 14624069483, 14624200559, 14624331647, + 14624462737, 14624593813, 14624724893, 14624855981, 14624987089, 14625118171, 14625249251, + 14625380327, 14625511403, 14625642481, 14625773597, 14625904679, 14626035757, 14626166837, + 14626297921, 14626429033, 14626560121, 14626691279, 14626822387, 14626953491, 14627084603, + 14627215679, 14627346751, 14627477869, 14627608967, 14627740087, 14627871173, 14628002269, + 14628133343, 14628264439, 14628395521, 14628526603, 14628657697, 14628788789, 14628919867, + 14629050959, 14629182041, 14629313129, 14629444223, 14629575307, 14629706411, 14629837483, + 14629968583, 14630099657, 14630230733, 14630361841, 14630492971, 14630624059, 14630755151, + 14630886229, 14631017341, 14631148421, 14631279571, 14631410657, 14631541781, 14631672877, + 14631803951, 14631935023, 14632066109, 14632197187, 14632328297, 14632459397, 14632590521, + 14632721671, 14632852763, 14632983851, 14633114933, 14633246083, 14633377159, 14633508259, + 14633639333, 14633770511, 14633901587, 14634032681, 14634163757, 14634294929, 14634426011, + 14634557089, 14634688177, 14634819299, 14634950371, 14635081451, 14635212533, 14635343621, + 14635474703, 14635605791, 14635736867, 14635867993, 14635999099, 14636130241, 14636261359, + 14636392487, 14636523563, 14636654701, 14636785777, 14636916851, 14637047927, 14637179023, + 14637310111, 14637441197, 14637572273, 14637703361, 14637834457, 14637965539, 14638096631, + 14638227713, 14638358837, 14638489937, 14638621013, 14638752091, 14638883177, 14639014261, + 14639145341, 14639276423, 14639407499, 14639538601, 14639669683, 14639800787, 14639931893, + 14640062981, 14640194059, 14640325153, 14640456227, 14640587317, 14640718423, 14640849527, + 14640980647, 14641111729, 14641242821, 14641373897, 14641504973, 14641636067, 14641767233, + 14641898321, 14642029393, 14642160509, 14642291591, 14642422681, 14642553767, 14642684893, + 14642815987, 14642947069, 14643078169, 14643209291, 14643340367, 14643471473, 14643602551, + 14643733631, 14643864707, 14643995801, 14644126877, 14644257949, 14644389049, 14644520129, + 14644651201, 14644782281, 14644913363, 14645044471, 14645175557, 14645306639, 14645437711, + 14645568797, 14645699891, 14645830981, 14645962061, 14646093139, 14646224273, 14646355351, + 14646486467, 14646617549, 14646748631, 14646879707, 14647010779, 14647141871, 14647272977, + 14647404053, 14647535131, 14647666213, 14647797293, 14647928423, 14648059499, 14648190611, + 14648321683, 14648452813, 14648583889, 14648715007, 14648846099, 14648977199, 14649108317, + 14649239399, 14649370487, 14649501563, 14649632651, 14649763811, 14649894907, 14650025989, + 14650157077, 14650288151, 14650419247, 14650550323, 14650681459, 14650812541, 14650943633, + 14651074721, 14651205847, 14651336929, 14651468063, 14651599147, 14651730251, 14651861351, + 14651992423, 14652123503, 14652254621, 14652385703, 14652516797, 14652647917, 14652778991, + 14652910121, 14653041253, 14653172329, 14653303409, 14653434517, 14653565593, 14653696691, + 14653827779, 14653958861, 14654089937, 14654221013, 14654352101, 14654483177, 14654614259, + 14654745373, 14654876471, 14655007579, 14655138713, 14655269803, 14655400943, 14655532033, + 14655663119, 14655794203, 14655925307, 14656056407, 14656187521, 14656318597, 14656449671, + 14656580777, 14656711871, 14656843031, 14656974121, 14657105201, 14657236309, 14657367397, + 14657498509, 14657629603, 14657760679, 14657891767, 14658022859, 14658153947, 14658285023, + 14658416137, 14658547213, 14658678301, 14658809387, 14658940459, 14659071547, 14659202671, + 14659333747, 14659464889, 14659595969, 14659727053, 14659858127, 14659989221, 14660120303, + 14660251391, 14660382469, 14660513551, 14660644627, 14660775721, 14660906801, 14661037967, + 14661169079, 14661300197, 14661431269, 14661562361, 14661693437, 14661824531, 14661955619, + 14662086727, 14662217821, 14662348903, 14662480033, 14662611107, 14662742179, 14662873307, + 14663004397, 14663135497, 14663266589, 14663397673, 14663528797, 14663659877, 14663790959, + 14663922043, 14664053119, 14664184237, 14664315313, 14664446387, 14664577481, 14664708563, + 14664839647, 14664970721, 14665101853, 14665232957, 14665364089, 14665495171, 14665626253, + 14665757341, 14665888417, 14666019541, 14666150647, 14666281723, 14666412823, 14666543921, + 14666674993, 14666806073, 14666937151, 14667068267, 14667199343, 14667330427, 14667461509, + 14667592607, 14667723689, 14667854801, 14667985901, 14668116979, 14668248059, 14668379149, + 14668510223, 14668641313, 14668772387, 14668903477, 14669034559, 14669165633, 14669296739, + 14669427811, 14669558921, 14669690011, 14669821121, 14669952223, 14670083371, 14670214457, + 14670345539, 14670476629, 14670607709, 14670738791, 14670869911, 14671000987, 14671132079, + 14671263179, 14671394279, 14671525373, 14671656463, 14671787549, 14671918711, 14672049797, + 14672180903, 14672311981, 14672443057, 14672574151, 14672705227, 14672836301, 14672967409, + 14673098483, 14673229559, 14673360643, 14673491719, 14673622807, 14673753911, 14673884983, + 14674016069, 14674147151, 14674278257, 14674409357, 14674540459, 14674671551, 14674802641, + 14674933717, 14675064823, 14675195933, 14675327033, 14675458117, 14675589209, 14675720287, + 14675851361, 14675982443, 14676113521, 14676244603, 14676375683, 14676506791, 14676637873, + 14676768959, 14676900061, 14677031143, 14677162223, 14677293307, 14677424381, 14677555469, + 14677686563, 14677817639, 14677948717, 14678079797, 14678210891, 14678341969, 14678473049, + 14678604131, 14678735231, 14678866303, 14678997379, 14679128459, 14679259559, 14679390647, + 14679521807, 14679652879, 14679783973, 14679915053, 14680046131, 14680177207, 14680308337, + 14680439443, 14680570523, 14680701617, 14680832701, 14680963807, 14681094941, 14681226013, + 14681357107, 14681488181, 14681619283, 14681750387, 14681881477, 14682012563, 14682143639, + 14682274721, 14682405809, 14682536893, 14682667969, 14682799063, 14682930139, 14683061213, + 14683192291, 14683323379, 14683454473, 14683585589, 14683716737, 14683847813, 14683978889, + 14684109971, 14684241071, 14684372147, 14684503241, 14684634317, 14684765423, 14684896511, + 14685027583, 14685158659, 14685289771, 14685420859, 14685551987, 14685683069, 14685814159, + 14685945247, 14686076329, 14686207441, 14686338523, 14686469627, 14686600699, 14686731779, + 14686862873, 14686993961, 14687125087, 14687256197, 14687387287, 14687518393, 14687649469, + 14687780551, 14687911661, 14688042769, 14688173867, 14688304949, 14688436057, 14688567149, + 14688698257, 14688829361, 14688960437, 14689091537, 14689222627, 14689353733, 14689484807, + 14689615879, 14689746959, 14689878079, 14690009161, 14690140253, 14690271347, 14690402431, + 14690533511, 14690664601, 14690795711, 14690926793, 14691057877, 14691188999, 14691320129, + 14691451207, 14691582313, 14691713423, 14691844543, 14691975631, 14692106713, 14692237823, + 14692368931, 14692500007, 14692631099, 14692762199, 14692893277, 14693024351, 14693155429, + 14693286533, 14693417623, 14693548703, 14693679799, 14693810917, 14693942041, 14694073169, + 14694204241, 14694335333, 14694466421, 14694597503, 14694728597, 14694859691, 14694990787, + 14695121869, 14695252961, 14695384037, 14695515137, 14695646221, 14695777303, 14695908377, + 14696039483, 14696170571, 14696301689, 14696432767, 14696563879, 14696694953, 14696826031, + 14696957117, 14697088193, 14697219289, 14697350377, 14697481471, 14697612571, 14697743677, + 14697874799, 14698005893, 14698137007, 14698268141, 14698399213, 14698530307, 14698661423, + 14698792517, 14698923607, 14699054687, 14699185763, 14699316847, 14699447921, 14699579017, + 14699710097, 14699841193, 14699972311, 14700103417, 14700234499, 14700365597, 14700496673, + 14700627757, 14700758879, 14700889963, 14701021037, 14701152119, 14701283209, 14701414297, + 14701545371, 14701676447, 14701807531, 14701938611, 14702069689, 14702200781, 14702331857, + 14702462947, 14702594033, 14702725123, 14702856199, 14702987297, 14703118379, 14703249461, + 14703380533, 14703511609, 14703642731, 14703773849, 14703904921, 14704036007, 14704167097, + 14704298183, 14704429277, 14704560349, 14704691447, 14704822523, 14704953619, 14705084761, + 14705215901, 14705346979, 14705478097, 14705609183, 14705740307, 14705871421, 14706002513, + 14706133591, 14706264667, 14706395771, 14706526843, 14706657937, 14706789017, 14706920093, + 14707051171, 14707182299, 14707313393, 14707444471, 14707575559, 14707706641, 14707837747, + 14707968851, 14708099941, 14708231023, 14708362111, 14708493193, 14708624267, 14708755367, + 14708886497, 14709017641, 14709148721, 14709279797, 14709410887, 14709541963, 14709673037, + 14709804113, 14709935237, 14710066331, 14710197451, 14710328533, 14710459609, 14710590683, + 14710721759, 14710852861, 14710983941, 14711115043, 14711246167, 14711377271, 14711508349, + 14711639429, 14711770523, 14711901661, 14712032767, 14712163883, 14712294973, 14712426067, + 14712557143, 14712688241, 14712819349, 14712950423, 14713081549, 14713212629, 14713343761, + 14713474837, 14713605913, 14713737089, 14713868173, 14713999259, 14714130371, 14714261459, + 14714392549, 14714523749, 14714654821, 14714785933, 14714917013, 14715048143, 14715179233, + 14715310307, 14715441401, 14715572491, 14715703567, 14715834671, 14715965783, 14716096861, + 14716227959, 14716359079, 14716490153, 14716621253, 14716752341, 14716883497, 14717014583, + 14717145671, 14717276767, 14717407843, 14717538923, 14717669999, 14717801117, 14717932193, + 14718063281, 14718194357, 14718325441, 14718456521, 14718587599, 14718718681, 14718849811, + 14718980897, 14719111987, 14719243109, 14719374191, 14719505291, 14719636363, 14719767451, + 14719898527, 14720029613, 14720160727, 14720291821, 14720422903, 14720553979, 14720685053, + 14720816141, 14720947247, 14721078347, 14721209429, 14721340559, 14721471649, 14721602723, + 14721733801, 14721864919, 14721996001, 14722127089, 14722258181, 14722389257, 14722520333, + 14722651421, 14722782509, 14722913587, 14723044669, 14723175767, 14723306911, 14723437987, + 14723569079, 14723700161, 14723831237, 14723962333, 14724093407, 14724224483, 14724355601, + 14724486683, 14724617767, 14724748847, 14724879929, 14725011011, 14725142099, 14725273219, + 14725404293, 14725535411, 14725666513, 14725797589, 14725928669, 14726059771, 14726190847, + 14726321921, 14726452999, 14726584079, 14726715197, 14726846297, 14726977393, 14727108497, + 14727239591, 14727370729, 14727501869, 14727632993, 14727764113, 14727895199, 14728026323, + 14728157407, 14728288481, 14728419553, 14728550689, 14728681811, 14728812883, 14728943969, + 14729075059, 14729206133, 14729337211, 14729468291, 14729599363, 14729730467, 14729861551, + 14729992709, 14730123799, 14730254899, 14730385973, 14730517073, 14730648151, 14730779227, + 14730910319, 14731041397, 14731172497, 14731303589, 14731434667, 14731565767, 14731696867, + 14731827953, 14731959041, 14732090119, 14732221213, 14732352293, 14732483417, 14732614493, + 14732745569, 14732876647, 14733007771, 14733138853, 14733269933, 14733401017, 14733532109, + 14733663299, 14733794381, 14733925469, 14734056613, 14734187701, 14734318777, 14734449871, + 14734580951, 14734712029, 14734843139, 14734974227, 14735105323, 14735236403, 14735367497, + 14735498597, 14735629687, 14735760761, 14735891851, 14736022963, 14736154063, 14736285163, + 14736416269, 14736547361, 14736678433, 14736809509, 14736940591, 14737071691, 14737202773, + 14737333867, 14737464941, 14737596019, 14737727117, 14737858199, 14737989271, 14738120417, + 14738251511, 14738382583, 14738513677, 14738644757, 14738775851, 14738906927, 14739038051, + 14739169129, 14739300223, 14739431303, 14739562399, 14739693499, 14739824611, 14739955687, + 14740086799, 14740217909, 14740348981, 14740480063, 14740611139, 14740742221, 14740873319, + 14741004433, 14741135561, 14741266669, 14741397743, 14741528899, 14741660033, 14741791109, + 14741922191, 14742053269, 14742184343, 14742315421, 14742446501, 14742577601, 14742708707, + 14742839791, 14742970883, 14743102001, 14743233073, 14743364149, 14743495243, 14743626367, + 14743757461, 14743888561, 14744019671, 14744150747, 14744281829, 14744412937, 14744544011, + 14744675087, 14744806169, 14744937253, 14745068329, 14745199423, 14745330497, 14745461587, + 14745592681, 14745723763, 14745854839, 14745985927, 14746117007, 14746248089, 14746379171, + 14746510349, 14746641439, 14746772527, 14746903601, 14747034677, 14747165759, 14747296841, + 14747427941, 14747559017, 14747690099, 14747821171, 14747952269, 14748083411, 14748214487, + 14748345569, 14748476683, 14748607763, 14748738859, 14748869957, 14749001063, 14749132159, + 14749263239, 14749394351, 14749525481, 14749656577, 14749787651, 14749918759, 14750049857, + 14750180969, 14750312041, 14750443117, 14750574217, 14750705297, 14750836417, 14750967521, + 14751098657, 14751229763, 14751360851, 14751491941, 14751623039, 14751754111, 14751885229, + 14752016303, 14752147379, 14752278557, 14752409671, 14752540769, 14752671877, 14752802993, + 14752934099, 14753065183, 14753196277, 14753327363, 14753458453, 14753589577, 14753720671, + 14753851751, 14753982829, 14754113903, 14754245021, 14754376097, 14754507169, 14754638257, + 14754769339, 14754900427, 14755031549, 14755162637, 14755293719, 14755424819, 14755555897, + 14755686971, 14755818047, 14755949141, 14756080319, 14756211443, 14756342527, 14756473601, + 14756604701, 14756735801, 14756866889, 14756997977, 14757129073, 14757260183, 14757391283, + 14757522389, 14757653473, 14757784553, 14757915643, 14758046747, 14758177823, 14758308899, + 14758440007, 14758571083, 14758702159, 14758833251, 14758964359, 14759095433, 14759226509, + 14759357597, 14759488673, 14759619779, 14759750881, 14759882003, 14760013087, 14760144233, + 14760275353, 14760406429, 14760537509, 14760668581, 14760799733, 14760930809, 14761061899, + 14761192981, 14761324079, 14761455151, 14761586227, 14761717301, 14761848377, 14761979459, + 14762110537, 14762241619, 14762372731, 14762503807, 14762634881, 14762765957, 14762897069, + 14763028211, 14763159289, 14763290389, 14763421481, 14763552553, 14763683687, 14763814823, + 14763945913, 14764077001, 14764208101, 14764339199, 14764470289, 14764601399, 14764732471, + 14764863557, 14764994653, 14765125729, 14765256811, 14765387909, 14765518991, 14765650091, + 14765781167, 14765912257, 14766043337, 14766174443, 14766305531, 14766436603, 14766567733, + 14766698833, 14766829921, 14766961043, 14767092127, 14767223203, 14767354307, 14767485379, + 14767616459, 14767747541, 14767878623, 14768009699, 14768140799, 14768272033, 14768403157, + 14768534237, 14768665313, 14768796391, 14768927483, 14769058571, 14769189727, 14769320831, + 14769451937, 14769583021, 14769714101, 14769845177, 14769976267, 14770107353, 14770238447, + 14770369531, 14770500607, 14770631819, 14770762901, 14770893997, 14771025083, 14771156173, + 14771287261, 14771418419, 14771549519, 14771680631, 14771811707, 14771942803, 14772073889, + 14772204973, 14772336067, 14772467189, 14772598277, 14772729383, 14772860471, 14772991553, + 14773122629, 14773253713, 14773384793, 14773515877, 14773646963, 14773778057, 14773909151, + 14774040257, 14774171339, 14774302441, 14774433547, 14774564621, 14774695711, 14774826793, + 14774957881, 14775089033, 14775220111, 14775351193, 14775482299, 14775613373, 14775744461, + 14775875539, 14776006613, 14776137713, 14776268797, 14776399873, 14776530947, 14776662023, + 14776793131, 14776924213, 14777055289, 14777186401, 14777317481, 14777448589, 14777579671, + 14777710763, 14777841877, 14777972999, 14778104071, 14778235159, 14778366257, 14778497333, + 14778628421, 14778759539, 14778890641, 14779021717, 14779152809, 14779283881, 14779414987, + 14779546073, 14779677151, 14779808237, 14779939313, 14780070407, 14780201521, 14780332601, + 14780463673, 14780594753, 14780725831, 14780856913, 14780988007, 14781119107, 14781250181, + 14781381253, 14781512357, 14781643433, 14781774523, 14781905597, 14782036679, 14782167761, + 14782298837, 14782429933, 14782561037, 14782692121, 14782823197, 14782954297, 14783085397, + 14783216479, 14783347609, 14783478701, 14783609803, 14783740879, 14783872001, 14784003083, + 14784134159, 14784265283, 14784396371, 14784527453, 14784658529, 14784789601, 14784920677, + 14785051763, 14785182887, 14785313969, 14785445053, 14785576129, 14785707221, 14785838329, + 14785969411, 14786100493, 14786231573, 14786362673, 14786493769, 14786624843, 14786755927, + 14786887033, 14787018107, 14787149183, 14787280273, 14787411347, 14787542423, 14787673507, + 14787804623, 14787935711, 14788066807, 14788197887, 14788329011, 14788460083, 14788591171, + 14788722251, 14788853341, 14788984433, 14789115559, 14789246677, 14789377753, 14789508859, + 14789639933, 14789771011, 14789902087, 14790033169, 14790164261, 14790295367, 14790426439, + 14790557531, 14790688609, 14790819707, 14790950819, 14791081909, 14791213049, 14791344133, + 14791475213, 14791606301, 14791737377, 14791868459, 14791999549, 14792130637, 14792261713, + 14792392847, 14792523937, 14792655013, 14792786087, 14792917163, 14793048241, 14793179347, + 14793310423, 14793441499, 14793572581, 14793703679, 14793834751, 14793965827, 14794096913, + 14794228049, 14794359131, 14794490209, 14794621291, 14794752403, 14794883507, 14795014613, + 14795145689, 14795276761, 14795407843, 14795538917, 14795670013, 14795801089, 14795932163, + 14796063239, 14796194333, 14796325409, 14796456517, 14796587599, 14796718733, 14796849839, + 14796980921, 14797111993, 14797243067, 14797374143, 14797505237, 14797636327, 14797767409, + 14797898491, 14798029573, 14798160649, 14798291723, 14798422817, 14798553919, 14798685019, + 14798816099, 14798947187, 14799078269, 14799209377, 14799340469, 14799471541, 14799602621, + 14799733703, 14799864791, 14799995989, 14800127071, 14800258153, 14800389239, 14800520323, + 14800651427, 14800782517, 14800913591, 14801044667, 14801175761, 14801306857, 14801437933, + 14801569067, 14801700217, 14801831293, 14801962423, 14802093521, 14802224597, 14802355691, + 14802486773, 14802617849, 14802748957, 14802880073, 14803011149, 14803142239, 14803273313, + 14803404437, 14803535533, 14803666639, 14803797733, 14803928807, 14804059883, 14804190959, + 14804322053, 14804453137, 14804584231, 14804715313, 14804846443, 14804977549, 14805108629, + 14805239711, 14805370793, 14805501869, 14805632971, 14805764047, 14805895127, 14806026259, + 14806157339, 14806288423, 14806419553, 14806550659, 14806681751, 14806812827, 14806943923, + 14807074999, 14807206111, 14807337221, 14807468317, 14807599421, 14807730499, 14807861581, + 14807992691, 14808123763, 14808254861, 14808385973, 14808517079, 14808648163, 14808779243, + 14808910321, 14809041397, 14809172473, 14809303547, 14809434641, 14809565717, 14809696793, + 14809827881, 14809958971, 14810090047, 14810221133, 14810352299, 14810483381, 14810614487, + 14810745571, 14810876653, 14811007727, 14811138817, 14811269929, 14811401027, 14811532139, + 14811663221, 14811794297, 14811925369, 14812056449, 14812187521, 14812318607, 14812449679, + 14812580753, 14812711841, 14812842949, 14812974031, 14813105113, 14813236189, 14813367277, + 14813498351, 14813629427, 14813760499, 14813891591, 14814022693, 14814153793, 14814284887, + 14814415981, 14814547067, 14814678149, 14814809231, 14814940307, 14815071407, 14815202527, + 14815333601, 14815464679, 14815595789, 14815726879, 14815858009, 14815989101, 14816120183, + 14816251291, 14816382367, 14816513441, 14816644519, 14816775599, 14816906683, 14817037757, + 14817168833, 14817299921, 14817430993, 14817562127, 14817693199, 14817824303, 14817955423, + 14818086497, 14818217587, 14818348681, 14818479763, 14818610879, 14818741961, 14818873057, + 14819004133, 14819135213, 14819266339, 14819397413, 14819528533, 14819659609, 14819790691, + 14819921797, 14820052901, 14820183991, 14820315067, 14820446159, 14820577283, 14820708367, + 14820839443, 14820970537, 14821101623, 14821232801, 14821363889, 14821494967, 14821626107, + 14821757183, 14821888259, 14822019343, 14822150437, 14822281519, 14822412617, 14822543707, + 14822674787, 14822805859, 14822936941, 14823068027, 14823199099, 14823330173, 14823461269, + 14823592379, 14823723469, 14823854543, 14823985637, 14824116709, 14824247813, 14824378889, + 14824509961, 14824641059, 14824772161, 14824903243, 14825034317, 14825165389, 14825296463, + 14825427557, 14825558641, 14825689733, 14825820817, 14825951891, 14826082963, 14826214049, + 14826345139, 14826476219, 14826607297, 14826738391, 14826869501, 14827000583, 14827131721, + 14827262839, 14827393921, 14827525081, 14827656163, 14827787267, 14827918349, 14828049443, + 14828180533, 14828311609, 14828442697, 14828573789, 14828704897, 14828836039, 14828967151, + 14829098227, 14829229301, 14829360391, 14829491489, 14829622567, 14829753683, 14829884827, + 14830015901, 14830146973, 14830278053, 14830409159, 14830540243, 14830671341, 14830802423, + 14830933499, 14831064613, 14831195713, 14831326787, 14831457871, 14831589011, 14831720129, + 14831851207, 14831982301, 14832113381, 14832244481, 14832375557, 14832506641, 14832637733, + 14832768829, 14832899941, 14833031021, 14833162111, 14833293187, 14833424297, 14833555381, + 14833686473, 14833817567, 14833948643, 14834079727, 14834210813, 14834341909, 14834473033, + 14834604131, 14834735207, 14834866373, 14834997451, 14835128549, 14835259639, 14835390733, + 14835521819, 14835652891, 14835783967, 14835915089, 14836046213, 14836177333, 14836308457, + 14836439531, 14836570709, 14836701791, 14836832873, 14836963969, 14837095057, 14837226137, + 14837357219, 14837488307, 14837619413, 14837750489, 14837881567, 14838012647, 14838143743, + 14838274817, 14838405961, 14838537047, 14838668129, 14838799207, 14838930343, 14839061437, + 14839192553, 14839323641, 14839454719, 14839585807, 14839716883, 14839847959, 14839979059, + 14840110157, 14840241259, 14840372399, 14840503477, 14840634559, 14840765633, 14840896723, + 14841027797, 14841158887, 14841289961, 14841421033, 14841552119, 14841683203, 14841814277, + 14841945373, 14842076449, 14842207573, 14842338653, 14842469743, 14842600819, 14842731901, + 14842862981, 14842994069, 14843125177, 14843256251, 14843387369, 14843518457, 14843649571, + 14843780669, 14843911757, 14844042959, 14844174049, 14844305129, 14844436241, 14844567329, + 14844698441, 14844829537, 14844960619, 14845091693, 14845222771, 14845353851, 14845484933, + 14845616033, 14845747117, 14845878239, 14846009363, 14846140457, 14846271569, 14846402693, + 14846533769, 14846664941, 14846796017, 14846927107, 14847058201, 14847189289, 14847320381, + 14847451453, 14847582559, 14847713633, 14847844717, 14847975827, 14848106939, 14848238063, + 14848369163, 14848500319, 14848631429, 14848762541, 14848893643, 14849024797, 14849155873, + 14849287021, 14849418107, 14849549189, 14849680301, 14849811401, 14849942477, 14850073549, + 14850204643, 14850335729, 14850466837, 14850597919, 14850729011, 14850860099, 14850991171, + 14851122331, 14851253411, 14851384507, 14851515589, 14851646713, 14851777807, 14851908889, + 14852039963, 14852171039, 14852302181, 14852433283, 14852564371, 14852695457, 14852826529, + 14852957621, 14853088739, 14853219817, 14853350933, 14853482069, 14853613199, 14853744293, + 14853875369, 14854006459, 14854137533, 14854268617, 14854399699, 14854530797, 14854661873, + 14854792961, 14854924039, 14855055113, 14855186189, 14855317261, 14855448359, 14855579441, + 14855710547, 14855841653, 14855972753, 14856103861, 14856234947, 14856366071, 14856497143, + 14856628247, 14856759329, 14856890407, 14857021483, 14857152571, 14857283663, 14857414769, + 14857545851, 14857676987, 14857808059, 14857939139, 14858070217, 14858201299, 14858332393, + 14858463493, 14858594581, 14858725709, 14858856799, 14858987881, 14859118979, 14859250093, + 14859381217, 14859512341, 14859643433, 14859774509, 14859905611, 14860036687, 14860167761, + 14860298851, 14860429933, 14860561057, 14860692131, 14860823231, 14860954321, 14861085401, + 14861216473, 14861347547, 14861478629, 14861609701, 14861740807, 14861871887, 14862002993, + 14862134081, 14862265153, 14862396253, 14862527327, 14862658411, 14862789541, 14862920621, + 14863051733, 14863182853, 14863313999, 14863445071, 14863576157, 14863707233, 14863838309, + 14863969391, 14864100521, 14864231621, 14864362717, 14864493811, 14864624933, 14864756033, + 14864887133, 14865018247, 14865149393, 14865280481, 14865411553, 14865542633, 14865673717, + 14865804803, 14865935911, 14866067011, 14866198129, 14866329211, 14866460299, 14866591373, + 14866722457, 14866853539, 14866984667, 14867115761, 14867246833, 14867377949, 14867509037, + 14867640157, 14867771249, 14867902337, 14868033419, 14868164497, 14868295573, 14868426667, + 14868557819, 14868688897, 14868820013, 14868951089, 14869082167, 14869213253, 14869344379, + 14869475471, 14869606547, 14869737643, 14869868729, 14869999831, 14870130907, 14870262019, + 14870393093, 14870524177, 14870655257, 14870786351, 14870917463, 14871048551, 14871179623, + 14871310703, 14871441787, 14871572861, 14871703963, 14871835051, 14871966139, 14872097213, + 14872228297, 14872359377, 14872490461, 14872621549, 14872752647, 14872883723, 14873014811, + 14873145887, 14873276987, 14873408063, 14873539193, 14873670289, 14873801399, 14873932477, + 14874063551, 14874194639, 14874325723, 14874456823, 14874587909, 14874719017, 14874850127, + 14874981217, 14875112309, 14875243381, 14875374461, 14875505539, 14875636649, 14875767721, + 14875898797, 14876029891, 14876160977, 14876292077, 14876423183, 14876554271, 14876685377, + 14876816453, 14876947601, 14877078673, 14877209771, 14877340921, 14877472013, 14877603089, + 14877734167, 14877865243, 14877996373, 14878127471, 14878258547, 14878389619, 14878520719, + 14878651793, 14878782871, 14878913963, 14879045039, 14879176129, 14879307217, 14879438317, + 14879569391, 14879700487, 14879831569, 14879962673, 14880093763, 14880224839, 14880355961, + 14880487049, 14880618133, 14880749269, 14880880363, 14881011443, 14881142587, 14881273661, + 14881404737, 14881535843, 14881666927, 14881798027, 14881929119, 14882060209, 14882191309, + 14882322437, 14882453519, 14882584603, 14882715691, 14882846789, 14882977861, 14883108979, + 14883240059, 14883371141, 14883502243, 14883633353, 14883764431, 14883895517, 14884026589, + 14884157707, 14884288787, 14884419917, 14884551023, 14884682117, 14884813189, 14884944467, + 14885075549, 14885206627, 14885337707, 14885468827, 14885599901, 14885731019, 14885862091, + 14885993179, 14886124259, 14886255331, 14886386467, 14886517573, 14886648649, 14886779729, + 14886910823, 14887041901, 14887172977, 14887304063, 14887435151, 14887566233, 14887697339, + 14887828471, 14887959557, 14888090719, 14888221879, 14888352959, 14888484031, 14888615129, + 14888746219, 14888877317, 14889008417, 14889139511, 14889270607, 14889401783, 14889532877, + 14889663953, 14889795047, 14889926123, 14890057201, 14890188283, 14890319369, 14890450451, + 14890581527, 14890712611, 14890843691, 14890974767, 14891105881, 14891237003, 14891368087, + 14891499191, 14891630263, 14891761349, 14891892439, 14892023519, 14892154631, 14892285763, + 14892416837, 14892547919, 14892679007, 14892810083, 14892941159, 14893072267, 14893203343, + 14893334429, 14893465507, 14893596593, 14893727669, 14893858747, 14893989823, 14894120929, + 14894252003, 14894383109, 14894514191, 14894645267, 14894776357, 14894907437, 14895038527, + 14895169607, 14895300691, 14895431819, 14895562901, 14895693991, 14895825071, 14895956143, + 14896087223, 14896218299, 14896349381, 14896480481, 14896611559, 14896742669, 14896873741, + 14897004823, 14897135899, 14897267041, 14897398141, 14897529217, 14897660291, 14897791367, + 14897922449, 14898053531, 14898184603, 14898315683, 14898446803, 14898577907, 14898708983, + 14898840071, 14898971159, 14899102237, 14899233367, 14899364489, 14899495579, 14899626661, + 14899757749, 14899888823, 14900019899, 14900150989, 14900282123, 14900413201, 14900544283, + 14900675359, 14900806433, 14900937509, 14901068617, 14901199693, 14901330779, 14901461857, + 14901592933, 14901724039, 14901855113, 14901986219, 14902117331, 14902248409, 14902379507, + 14902510591, 14902641679, 14902772777, 14902903849, 14903034929, 14903166119, 14903297191, + 14903428273, 14903559379, 14903690453, 14903821531, 14903952617, 14904083699, 14904214811, + 14904345887, 14904476971, 14904608063, 14904739141, 14904870259, 14905001339, 14905132427, + 14905263509, 14905394593, 14905525667, 14905656739, 14905787837, 14905918927, 14906050001, + 14906181079, 14906312177, 14906443259, 14906574341, 14906705449, 14906836523, 14906967619, + 14907098707, 14907229781, 14907360869, 14907491959, 14907623039, 14907754117, 14907885197, + 14908016309, 14908147393, 14908278491, 14908409683, 14908540769, 14908671887, 14908802971, + 14908934083, 14909065231, 14909196319, 14909327399, 14909458471, 14909589553, 14909720633, + 14909851711, 14909982793, 14910113893, 14910244967, 14910376073, 14910507181, 14910638257, + 14910769339, 14910900419, 14911031497, 14911162579, 14911293659, 14911424741, 14911555873, + 14911686947, 14911818023, 14911949131, 14912080217, 14912211337, 14912342437, 14912473517, + 14912604593, 14912735681, 14912866763, 14912997871, 14913128947, 14913260077, 14913391159, + 14913522251, 14913653341, 14913784423, 14913915503, 14914046579, 14914177667, 14914308749, + 14914439831, 14914570927, 14914702013, 14914833107, 14914964179, 14915095253, 14915226341, + 14915357417, 14915488499, 14915619581, 14915750687, 14915881759, 14916012847, 14916143929, + 14916275029, 14916406129, 14916537269, 14916668353, 14916799427, 14916930503, 14917061639, + 14917192721, 14917323821, 14917454957, 14917586041, 14917717123, 14917848203, 14917979327, + 14918110399, 14918241473, 14918372569, 14918503667, 14918634769, 14918765881, 14918896973, + 14919028067, 14919159179, 14919290251, 14919421327, 14919552421, 14919683551, 14919814681, + 14919945811, 14920076917, 14920208011, 14920339097, 14920470203, 14920601299, 14920732417, + 14920863493, 14920994603, 14921125693, 14921256767, 14921387863, 14921518993, 14921650087, + 14921781167, 14921912249, 14922043349, 14922174427, 14922305527, 14922436609, 14922567701, + 14922698789, 14922829877, 14922960959, 14923092053, 14923223131, 14923354217, 14923485299, + 14923616417, 14923747511, 14923878611, 14924009689, 14924140771, 14924271883, 14924402963, + 14924534063, 14924665157, 14924796241, 14924927323, 14925058417, 14925189511, 14925320587, + 14925451763, 14925582851, 14925713953, 14925845059, 14925976141, 14926107233, 14926238347, + 14926369457, 14926500551, 14926631633, 14926762727, 14926893803, 14927024897, 14927155973, + 14927287057, 14927418131, 14927549213, 14927680289, 14927811373, 14927942483, 14928073579, + 14928204653, 14928335743, 14928466823, 14928597911, 14928729073, 14928860147, 14928991237, + 14929122311, 14929253407, 14929384487, 14929515611, 14929646689, 14929777771, 14929908857, + 14930039989, 14930171077, 14930302157, 14930433241, 14930564321, 14930695411, 14930826497, + 14930957599, 14931088691, 14931219773, 14931350879, 14931481969, 14931613057, 14931744133, + 14931875207, 14932006279, 14932137379, 14932268453, 14932399543, 14932530637, 14932661767, + 14932792867, 14932923953, 14933055047, 14933186119, 14933317193, 14933448269, 14933579383, + 14933710471, 14933841553, 14933972629, 14934103729, 14934234823, 14934365933, 14934497113, + 14934628187, 14934759311, 14934890413, 14935021487, 14935152571, 14935283677, 14935414789, + 14935545869, 14935676941, 14935808023, 14935939099, 14936070179, 14936201261, 14936332343, + 14936463461, 14936594573, 14936725649, 14936856721, 14936987803, 14937118877, 14937249949, + 14937381049, 14937512143, 14937643223, 14937774307, 14937905387, 14938036483, 14938167571, + 14938298651, 14938429729, 14938560803, 14938691921, 14938823021, 14938954103, 14939085181, + 14939216269, 14939347349, 14939478431, 14939609513, 14939740589, 14939871671, 14940002743, + 14940133843, 14940264931, 14940396011, 14940527087, 14940658217, 14940789341, 14940920417, + 14941051501, 14941182583, 14941313657, 14941444741, 14941575821, 14941706893, 14941837973, + 14941969109, 14942100209, 14942231281, 14942362399, 14942493479, 14942624573, 14942755691, + 14942886769, 14943017857, 14943148939, 14943280013, 14943411101, 14943542189, 14943673267, + 14943804341, 14943935417, 14944066573, 14944197649, 14944328731, 14944459837, 14944590937, + 14944722041, 14944853137, 14944984231, 14945115313, 14945246389, 14945377519, 14945508601, + 14945639689, 14945770769, 14945901851, 14946032929, 14946164021, 14946295097, 14946426169, + 14946557251, 14946688331, 14946819451, 14946950527, 14947081621, 14947212737, 14947343809, + 14947474939, 14947606021, 14947737107, 14947868179, 14947999267, 14948130361, 14948261467, + 14948392601, 14948523713, 14948654843, 14948785937, 14948917021, 14949048097, 14949179239, + 14949310339, 14949441413, 14949572497, 14949703583, 14949834671, 14949965749, 14950096883, + 14950227967, 14950359131, 14950490207, 14950621297, 14950752373, 14950883477, 14951014601, + 14951145683, 14951276783, 14951407871, 14951538949, 14951670043, 14951801129, 14951932211, + 14952063283, 14952194417, 14952325489, 14952456577, 14952587669, 14952718741, 14952849829, + 14952980923, 14953112063, 14953243147, 14953374257, 14953505351, 14953636429, 14953767503, + 14953898579, 14954029661, 14954160761, 14954291843, 14954422921, 14954553997, 14954685071, + 14954816147, 14954947219, 14955078301, 14955209389, 14955340481, 14955471607, 14955602681, + 14955733787, 14955864863, 14955995953, 14956127029, 14956258153, 14956389229, 14956520309, + 14956651387, 14956782469, 14956913551, 14957044667, 14957175767, 14957306849, 14957437931, + 14957569009, 14957700137, 14957831257, 14957962333, 14958093407, 14958224483, 14958355637, + 14958486733, 14958617833, 14958748927, 14958880009, 14959011083, 14959142183, 14959273279, + 14959404359, 14959535431, 14959666517, 14959797613, 14959928701, 14960059819, 14960190907, + 14960321983, 14960453083, 14960584183, 14960715269, 14960846347, 14960977441, 14961108529, + 14961239627, 14961370733, 14961501859, 14961633007, 14961764087, 14961895159, 14962026319, + 14962157417, 14962288567, 14962419713, 14962550789, 14962681861, 14962812947, 14962944067, + 14963075213, 14963206303, 14963337383, 14963468489, 14963599579, 14963730679, 14963861761, + 14963992853, 14964123973, 14964255067, 14964386167, 14964517259, 14964648371, 14964779497, + 14964910577, 14965041667, 14965172843, 14965303937, 14965435027, 14965566113, 14965697191, + 14965828303, 14965959397, 14966090473, 14966221553, 14966352691, 14966483827, 14966614907, + 14966745979, 14966877059, 14967008143, 14967139219, 14967270341, 14967401437, 14967532571, + 14967663661, 14967794747, 14967925853, 14968056967, 14968188041, 14968319117, 14968450201, + 14968581301, 14968712417, 14968843499, 14968974607, 14969105681, 14969236771, 14969367887, + 14969498959, 14969630057, 14969761139, 14969892221, 14970023293, 14970154369, 14970285469, + 14970416543, 14970547619, 14970678691, 14970809803, 14970940903, 14971071989, 14971203061, + 14971334141, 14971465213, 14971596293, 14971727417, 14971858501, 14971989601, 14972120689, + 14972251771, 14972382853, 14972513981, 14972645057, 14972776151, 14972907227, 14973038317, + 14973169403, 14973300557, 14973431633, 14973562711, 14973693797, 14973824869, 14973955951, + 14974087027, 14974218139, 14974349227, 14974480327, 14974611409, 14974742509, 14974873597, + 14975004691, 14975135789, 14975266871, 14975397961, 14975529067, 14975660159, 14975791273, + 14975922371, 14976053467, 14976184543, 14976315623, 14976446729, 14976577813, 14976708899, + 14976839981, 14976971063, 14977102169, 14977233247, 14977364323, 14977495439, 14977626523, + 14977757603, 14977888687, 14978019787, 14978150879, 14978281957, 14978413031, 14978544107, + 14978675203, 14978806363, 14978937481, 14979068569, 14979199661, 14979330761, 14979461837, + 14979592933, 14979724007, 14979855103, 14979986207, 14980117279, 14980248359, 14980379441, + 14980510547, 14980641619, 14980772693, 14980903787, 14981034863, 14981165951, 14981297029, + 14981428151, 14981559233, 14981690309, 14981821381, 14981952473, 14982083569, 14982214649, + 14982345739, 14982476813, 14982607889, 14982738961, 14982870037, 14983001147, 14983132247, + 14983263341, 14983394423, 14983525507, 14983656601, 14983787723, 14983918799, 14984049881, + 14984180963, 14984312051, 14984443169, 14984574317, 14984705389, 14984836469, 14984967541, + 14985098627, 14985229703, 14985360779, 14985491863, 14985622963, 14985754037, 14985885121, + 14986016207, 14986147291, 14986278397, 14986409497, 14986540571, 14986671643, 14986802731, + 14986933807, 14987064923, 14987196013, 14987327149, 14987458261, 14987589361, 14987720441, + 14987851513, 14987982587, 14988113677, 14988244757, 14988375833, 14988506987, 14988638101, + 14988769177, 14988900257, 14989031329, 14989162421, 14989293509, 14989424581, 14989555657, + 14989686757, 14989817923, 14989949003, 14990080093, 14990211167, 14990342281, 14990473361, + 14990604479, 14990735567, 14990866663, 14990997751, 14991128827, 14991259951, 14991391067, + 14991522191, 14991653291, 14991784397, 14991915509, 14992046591, 14992177687, 14992308761, + 14992439843, 14992570919, 14992701991, 14992833071, 14992964167, 14993095241, 14993226319, + 14993357411, 14993488483, 14993619593, 14993750689, 14993881789, 14994012863, 14994143977, + 14994275057, 14994406129, 14994537247, 14994668333, 14994799409, 14994930491, 14995061579, + 14995192717, 14995323839, 14995454917, 14995585993, 14995717069, 14995848157, 14995979233, + 14996110309, 14996241391, 14996372467, 14996503553, 14996634629, 14996765717, 14996896819, + 14997027901, 14997158989, 14997290111, 14997421189, 14997552281, 14997683353, 14997814451, + 14997945539, 14998076669, 14998207771, 14998338869, 14998469953, 14998601077, 14998732157, + 14998863233, 14998994321, 14999125397, 14999256487, 14999387587, 14999518687, 14999649773, + 14999780857, 14999911933, 15000043033, 15000174121, 15000305197, 15000436273, 15000567349, + 15000698437, 15000829541, 15000960613, 15001091689, 15001222763, 15001353931, 15001485007, + 15001616159, 15001747259, 15001878343, 15002009497, 15002140627, 15002271727, 15002402819, + 15002533991, 15002665063, 15002796173, 15002927297, 15003058387, 15003189497, 15003320597, + 15003451681, 15003582779, 15003713861, 15003844943, 15003976021, 15004107113, 15004238191, + 15004369283, 15004500419, 15004631549, 15004762673, 15004893749, 15005024833, 15005155951, + 15005287111, 15005418217, 15005549303, 15005680409, 15005811511, 15005942591, 15006073699, + 15006204781, 15006335867, 15006466961, 15006598049, 15006729139, 15006860213, 15006991291, + 15007122379, 15007253473, 15007384571, 15007515659, 15007646761, 15007777847, 15007908931, + 15008040031, 15008171107, 15008302207, 15008433287, 15008564369, 15008695451, 15008826529, + 15008957609, 15009088747, 15009219821, 15009350957, 15009482029, 15009613111, 15009744221, + 15009875299, 15010006391, 15010137487, 15010268563, 15010399673, 15010530763, 15010661849, + 15010792939, 15010924039, 15011055119, 15011186243, 15011317337, 15011448467, 15011579551, + 15011710631, 15011841703, 15011972809, 15012103913, 15012235009, 15012366091, 15012497167, + 15012628249, 15012759323, 15012890407, 15013021493, 15013152587, 15013283683, 15013414789, + 15013545871, 15013676957, 15013808071, 15013939151, 15014070223, 15014201317, 15014332397, + 15014463469, 15014594593, 15014725697, 15014856793, 15014987873, 15015118969, 15015250049, + 15015381131, 15015512219, 15015643337, 15015774413, 15015905491, 15016036591, 15016167679, + 15016298797, 15016429891, 15016561003, 15016692077, 15016823149, 15016954223, 15017085299, + 15017216519, 15017347591, 15017478719, 15017609791, 15017740873, 15017871949, 15018003029, + 15018134107, 15018265181, 15018396269, 15018527341, 15018658429, 15018789529, 15018920611, + 15019051721, 15019182799, 15019313873, 15019444961, 15019576037, 15019707137, 15019838227, + 15019969331, 15020100427, 15020231537, 15020362691, 15020493773, 15020624867, 15020755969, + 15020887051, 15021018127, 15021149201, 15021280277, 15021411373, 15021542449, 15021673531, + 15021804641, 15021935717, 15022066789, 15022197863, 15022328939, 15022460069, 15022591159, + 15022722263, 15022853359, 15022984481, 15023115593, 15023246669, 15023377753, 15023508833, + 15023639909, 15023770997, 15023902109, 15024033197, 15024164279, 15024295387, 15024426499, + 15024557627, 15024688733, 15024819853, 15024950939, 15025082011, 15025213121, 15025344197, + 15025475359, 15025606433, 15025737539, 15025868617, 15025999697, 15026130787, 15026261881, + 15026392963, 15026524039, 15026655139, 15026786233, 15026917307, 15027048409, 15027179501, + 15027310621, 15027441719, 15027572809, 15027703891, 15027834979, 15027966059, 15028097131, + 15028228219, 15028359319, 15028490459, 15028621579, 15028752653, 15028883741, 15029014843, + 15029145931, 15029277061, 15029408153, 15029539243, 15029670323, 15029801489, 15029932591, + 15030063701, 15030194779, 15030325853, 15030456929, 15030588073, 15030719147, 15030850259, + 15030981331, 15031112407, 15031243483, 15031374583, 15031505681, 15031636771, 15031767853, + 15031898927, 15032030011, 15032161099, 15032292173, 15032423269, 15032554367, 15032685439, + 15032816521, 15032947607, 15033078727, 15033209809, 15033340967, 15033472039, 15033603131, + 15033734251, 15033865339, 15033996413, 15034127489, 15034258571, 15034389661, 15034520749, + 15034651861, 15034782941, 15034914023, 15035045101, 15035176187, 15035307269, 15035438347, + 15035569429, 15035700527, 15035831677, 15035962751, 15036093823, 15036224897, 15036355987, + 15036487069, 15036618197, 15036749279, 15036880363, 15037011449, 15037142539, 15037273621, + 15037404737, 15037535857, 15037666933, 15037798037, 15037929191, 15038060309, 15038191403, + 15038322499, 15038453579, 15038584663, 15038715817, 15038846891, 15038977973, 15039109049, + 15039240131, 15039371227, 15039502337, 15039633437, 15039764521, 15039895601, 15040026697, + 15040157777, 15040288871, 15040419997, 15040551073, 15040682149, 15040813259, 15040944419, + 15041075503, 15041206591, 15041337691, 15041468789, 15041599901, 15041730973, 15041862047, + 15041993119, 15042124247, 15042255329, 15042386537, 15042517619, 15042648727, 15042779803, + 15042910877, 15043041961, 15043173037, 15043304113, 15043435237, 15043566311, 15043697411, + 15043828487, 15043959559, 15044090701, 15044221811, 15044352887, 15044483963, 15044615039, + 15044746111, 15044877193, 15045008267, 15045139391, 15045270463, 15045401593, 15045532669, + 15045663749, 15045794833, 15045925933, 15046057021, 15046188133, 15046319209, 15046450337, + 15046581427, 15046712507, 15046843597, 15046974751, 15047105831, 15047236921, 15047368019, + 15047499133, 15047630207, 15047761279, 15047892473, 15048023581, 15048154687, 15048285793, + 15048416897, 15048548029, 15048679189, 15048810269, 15048941363, 15049072483, 15049203557, + 15049334633, 15049465741, 15049596833, 15049727923, 15049859023, 15049990121, 15050121193, + 15050252297, 15050383393, 15050514469, 15050645543, 15050776621, 15050907719, 15051038797, + 15051169871, 15051300959, 15051432079, 15051563167, 15051694253, 15051825377, 15051956501, + 15052087577, 15052218661, 15052349749, 15052480823, 15052611941, 15052743037, 15052874119, + 15053005211, 15053136283, 15053267357, 15053398433, 15053529539, 15053660621, 15053791699, + 15053922839, 15054053921, 15054184993, 15054316073, 15054447151, 15054578269, 15054709349, + 15054840421, 15054971497, 15055102577, 15055233679, 15055364767, 15055495843, 15055626947, + 15055758031, 15055889113, 15056020229, 15056151317, 15056282389, 15056413483, 15056544571, + 15056675657, 15056806901, 15056937977, 15057069059, 15057200153, 15057331241, 15057462337, + 15057593429, 15057724501, 15057855577, 15057986659, 15058117759, 15058248851, 15058379923, + 15058511011, 15058642103, 15058773239, 15058904407, 15059035487, 15059166641, 15059297719, + 15059428819, 15059559913, 15059690993, 15059822081, 15059953159, 15060084251, 15060215327, + 15060346403, 15060477557, 15060608639, 15060739711, 15060870887, 15061002001, 15061133099, + 15061264201, 15061395281, 15061526357, 15061657439, 15061788527, 15061919629, 15062050727, + 15062181817, 15062312893, 15062443969, 15062575043, 15062706137, 15062837213, 15062968351, + 15063099427, 15063230521, 15063361603, 15063492677, 15063623753, 15063754829, 15063885923, + 15064017029, 15064148123, 15064279201, 15064410329, 15064541407, 15064672489, 15064803577, + 15064934683, 15065065759, 15065196859, 15065327939, 15065459021, 15065590121, 15065721197, + 15065852279, 15065983351, 15066114439, 15066245521, 15066376627, 15066507763, 15066638837, + 15066769937, 15066901033, 15067032131, 15067163261, 15067294337, 15067425413, 15067556489, + 15067687627, 15067818707, 15067949789, 15068080877, 15068211959, 15068343061, 15068474189, + 15068605261, 15068736341, 15068867441, 15068998603, 15069129679, 15069260771, 15069391903, + 15069522997, 15069654077, 15069785179, 15069916297, 15070047379, 15070178471, 15070309547, + 15070440629, 15070571729, 15070702807, 15070833901, 15070964983, 15071096107, 15071227201, + 15071358307, 15071489437, 15071620511, 15071751599, 15071882671, 15072013769, 15072144863, + 15072275969, 15072407069, 15072538141, 15072669223, 15072800317, 15072931399, 15073062503, + 15073193591, 15073324723, 15073455797, 15073586893, 15073717987, 15073849069, 15073980161, + 15074111251, 15074242357, 15074373437, 15074504531, 15074635613, 15074766709, 15074897813, + 15075028889, 15075159961, 15075291073, 15075422203, 15075553279, 15075684367, 15075815477, + 15075946553, 15076077631, 15076208723, 15076339813, 15076470907, 15076601989, 15076733069, + 15076864163, 15076995247, 15077126341, 15077257427, 15077388541, 15077519651, 15077650793, + 15077781893, 15077912987, 15078044081, 15078175187, 15078306263, 15078437357, 15078568481, + 15078699569, 15078830647, 15078961727, 15079092857, 15079223977, 15079355077, 15079486187, + 15079617323, 15079748419, 15079879517, 15080010601, 15080141683, 15080272777, 15080403869, + 15080534941, 15080666021, 15080797169, 15080928271, 15081059351, 15081190427, 15081321499, + 15081452623, 15081583757, 15081714833, 15081845981, 15081977077, 15082108163, 15082239239, + 15082370333, 15082501409, 15082632493, 15082763611, 15082894741, 15083025817, 15083156927, + 15083288009, 15083419121, 15083550221, 15083681311, 15083812423, 15083943503, 15084074591, + 15084205663, 15084336739, 15084467813, 15084598897, 15084730013, 15084861101, 15084992189, + 15085123267, 15085254347, 15085385437, 15085516519, 15085647623, 15085778711, 15085909793, + 15086040877, 15086171957, 15086303041, 15086434127, 15086565211, 15086696321, 15086827403, + 15086958487, 15087089573, 15087220649, 15087351737, 15087482827, 15087613901, 15087745007, + 15087876107, 15088007189, 15088138319, 15088269401, 15088400491, 15088531573, 15088662691, + 15088793771, 15088924843, 15089055929, 15089187011, 15089318119, 15089449201, 15089580281, + 15089711353, 15089842457, 15089973539, 15090104611, 15090235697, 15090366793, 15090497879, + 15090628979, 15090760067, 15090891149, 15091022231, 15091153327, 15091284433, 15091415519, + 15091546597, 15091677701, 15091808773, 15091939853, 15092070979, 15092202121, 15092333203, + 15092464307, 15092595421, 15092726501, 15092857573, 15092988649, 15093119759, 15093250897, + 15093381973, 15093513079, 15093644179, 15093775259, 15093906353, 15094037443, 15094168541, + 15094299659, 15094430761, 15094561841, 15094692947, 15094824061, 15094955153, 15095086229, + 15095217311, 15095348459, 15095479549, 15095610697, 15095741789, 15095872879, 15096003953, + 15096135029, 15096266111, 15096397229, 15096528319, 15096659401, 15096790519, 15096921617, + 15097052701, 15097183781, 15097314853, 15097445927, 15097576999, 15097708111, 15097839199, + 15097970273, 15098101373, 15098232449, 15098363537, 15098494613, 15098625721, 15098756831, + 15098887939, 15099019027, 15099150103, 15099281203, 15099412313, 15099543413, 15099674489, + 15099805597, 15099936697, 15100067819, 15100198937, 15100330031, 15100461107, 15100592183, + 15100723289, 15100854383, 15100985483, 15101116559, 15101247649, 15101378729, 15101509807, + 15101640881, 15101771981, 15101903077, 15102034151, 15102165227, 15102296309, 15102427429, + 15102558503, 15102689611, 15102820687, 15102951761, 15103082909, 15103213997, 15103345099, + 15103476187, 15103607261, 15103738367, 15103869439, 15104000521, 15104131607, 15104262739, + 15104393819, 15104524931, 15104656097, 15104787209, 15104918291, 15105049369, 15105180473, + 15105311561, 15105442637, 15105573731, 15105704863, 15105835937, 15105967039, 15106098113, + 15106229191, 15106360309, 15106491409, 15106622483, 15106753621, 15106884703, 15107015809, + 15107146891, 15107277989, 15107409071, 15107540197, 15107671289, 15107802389, 15107933527, + 15108064603, 15108195677, 15108326759, 15108457873, 15108588977, 15108720083, 15108851189, + 15108982277, 15109113373, 15109244471, 15109375559, 15109506637, 15109637731, 15109768813, + 15109899911, 15110031043, 15110162131, 15110293241, 15110424317, 15110555437, 15110686511, + 15110817583, 15110948659, 15111079733, 15111210809, 15111341891, 15111472979, 15111604073, + 15111735157, 15111866251, 15111997337, 15112128413, 15112259489, 15112390589, 15112521689, + 15112652761, 15112783853, 15112914931, 15113046023, 15113177099, 15113308181, 15113439283, + 15113570363, 15113701439, 15113832523, 15113963597, 15114094669, 15114225767, 15114356857, + 15114487957, 15114619057, 15114750137, 15114881209, 15115012303, 15115143413, 15115274491, + 15115405567, 15115536647, 15115667719, 15115798849, 15115929929, 15116061041, 15116192129, + 15116323213, 15116454293, 15116585381, 15116716457, 15116847541, 15116978647, 15117109723, + 15117240823, 15117371921, 15117503017, 15117634093, 15117765203, 15117896279, 15118027363, + 15118158479, 15118289581, 15118420673, 15118551793, 15118682881, 15118813961, 15118945063, + 15119076199, 15119207281, 15119338363, 15119469439, 15119600513, 15119731591, 15119862673, + 15119993747, 15120124823, 15120255901, 15120386977, 15120518081, 15120649169, 15120780253, + 15120911359, 15121042471, 15121173569, 15121304663, 15121435753, 15121566869, 15121697959, + 15121829111, 15121960193, 15122091287, 15122222369, 15122353457, 15122484529, 15122615611, + 15122746699, 15122877773, 15123008863, 15123139937, 15123271013, 15123402097, 15123533177, + 15123664279, 15123795371, 15123926497, 15124057591, 15124188701, 15124319797, 15124450879, + 15124582001, 15124713139, 15124844219, 15124975297, 15125106371, 15125237447, 15125368543, + 15125499647, 15125630719, 15125761799, 15125892883, 15126023981, 15126155053, 15126286159, + 15126417239, 15126548321, 15126679439, 15126810577, 15126941651, 15127072733, 15127203829, + 15127334921, 15127465993, 15127597087, 15127728181, 15127859269, 15127990343, 15128121431, + 15128252521, 15128383597, 15128514673, 15128645771, 15128776849, 15128907923, 15129038999, + 15129170087, 15129301183, 15129432287, 15129563363, 15129694453, 15129825637, 15129956717, + 15130087829, 15130218911, 15130350071, 15130481143, 15130612219, 15130743317, 15130874411, + 15131005511, 15131136679, 15131267759, 15131398837, 15131529929, 15131661011, 15131792113, + 15131923199, 15132054283, 15132185389, 15132316487, 15132447559, 15132578651, 15132709727, + 15132840817, 15132971911, 15133103017, 15133234093, 15133365173, 15133496249, 15133627339, + 15133758413, 15133889497, 15134020613, 15134151701, 15134282783, 15134413873, 15134544959, + 15134676041, 15134807153, 15134938253, 15135069337, 15135200441, 15135331517, 15135462613, + 15135593687, 15135724837, 15135855923, 15135987017, 15136118099, 15136249253, 15136380331, + 15136511407, 15136642487, 15136773571, 15136904659, 15137035733, 15137166827, 15137297899, + 15137428973, 15137560051, 15137691181, 15137822303, 15137953393, 15138084497, 15138215581, + 15138346679, 15138477773, 15138608857, 15138739933, 15138871021, 15139002113, 15139133189, + 15139264267, 15139395347, 15139526431, 15139657567, 15139788641, 15139919761, 15140050843, + 15140182021, 15140313121, 15140444213, 15140575319, 15140706407, 15140837489, 15140968561, + 15141099683, 15141230827, 15141361943, 15141493027, 15141624103, 15141755191, 15141886283, + 15142017379, 15142148459, 15142279571, 15142410683, 15142541773, 15142672847, 15142803931, + 15142935007, 15143066153, 15143197241, 15143328367, 15143459467, 15143590541, 15143721623, + 15143852723, 15143983823, 15144114929, 15144246011, 15144377119, 15144508199, 15144639287, + 15144770359, 15144901483, 15145032613, 15145163689, 15145294783, 15145425857, 15145556929, + 15145688023, 15145819097, 15145950191, 15146081263, 15146212351, 15146343427, 15146474503, + 15146605601, 15146736701, 15146867797, 15146998871, 15147129953, 15147261029, 15147392101, + 15147523213, 15147654289, 15147785381, 15147916507, 15148047587, 15148178671, 15148309747, + 15148440907, 15148571981, 15148703131, 15148834213, 15148965287, 15149096383, 15149227463, + 15149358541, 15149489657, 15149620769, 15149751847, 15149882933, 15150014027, 15150145099, + 15150276181, 15150407263, 15150538369, 15150669451, 15150800579, 15150931673, 15151062767, + 15151193851, 15151324931, 15151456009, 15151587119, 15151718191, 15151849289, 15151980401, + 15152111477, 15152242549, 15152373629, 15152504711, 15152635783, 15152766883, 15152897959, + 15153029039, 15153160151, 15153291233, 15153422321, 15153553397, 15153684509, 15153815587, + 15153946669, 15154077749, 15154208827, 15154339901, 15154471009, 15154602107, 15154733207, + 15154864327, 15154995439, 15155126513, 15155257613, 15155388691, 15155519777, 15155650859, + 15155781937, 15155913037, 15156044173, 15156175259, 15156306349, 15156437441, 15156568541, + 15156699617, 15156830707, 15156961801, 15157092877, 15157223957, 15157355029, 15157486109, + 15157617191, 15157748329, 15157879411, 15158010541, 15158141623, 15158272697, 15158403773, + 15158534849, 15158665957, 15158797039, 15158928119, 15159059203, 15159190279, 15159321371, + 15159452443, 15159583529, 15159714601, 15159845681, 15159976753, 15160107827, 15160238921, + 15160370039, 15160501117, 15160632199, 15160763273, 15160894363, 15161025479, 15161156557, + 15161287663, 15161418743, 15161549867, 15161680939, 15161812021, 15161943101, 15162074183, + 15162205297, 15162336383, 15162467483, 15162598567, 15162729671, 15162860747, 15162991859, + 15163122943, 15163254031, 15163385123, 15163516223, 15163647311, 15163778389, 15163909463, + 15164040547, 15164171623, 15164302801, 15164433887, 15164564971, 15164696047, 15164827127, + 15164958257, 15165089341, 15165220423, 15165351527, 15165482639, 15165613747, 15165744821, + 15165875897, 15166006987, 15166138069, 15166269149, 15166400231, 15166531309, 15166662389, + 15166793471, 15166924543, 15167055637, 15167186813, 15167317901, 15167448973, 15167580049, + 15167711171, 15167842273, 15167973349, 15168104431, 15168235513, 15168366593, 15168497681, + 15168628753, 15168759829, 15168890911, 15169021993, 15169153079, 15169284173, 15169415249, + 15169546333, 15169677431, 15169808527, 15169939633, 15170070719, 15170201791, 15170332907, + 15170463989, 15170595103, 15170726177, 15170857313, 15170988401, 15171119477, 15171250553, + 15171381653, 15171512729, 15171643831, 15171774907, 15171905993, 15172037071, 15172168153, + 15172299229, 15172430323, 15172561403, 15172692503, 15172823587, 15172954669, 15173085751, + 15173216827, 15173347961, 15173479033, 15173610107, 15173741227, 15173872319, 15174003407, + 15174134531, 15174265607, 15174396701, 15174527773, 15174658853, 15174789947, 15174921019, + 15175052117, 15175183201, 15175314311, 15175445419, 15175576501, 15175707643, 15175838731, + 15175969817, 15176100899, 15176231981, 15176363089, 15176494187, 15176625301, 15176756377, + 15176887471, 15177018547, 15177149639, 15177280717, 15177411791, 15177542869, 15177673957, + 15177805051, 15177936127, 15178067249, 15178198327, 15178329409, 15178460503, 15178591607, + 15178722703, 15178853821, 15178984901, 15179115989, 15179247071, 15179378143, 15179509223, + 15179640353, 15179771447, 15179902523, 15180033599, 15180164683, 15180295777, 15180426853, + 15180557929, 15180689039, 15180820117, 15180951209, 15181082303, 15181213379, 15181344481, + 15181475557, 15181606631, 15181737707, 15181868789, 15181999883, 15182131007, 15182262079, + 15182393153, 15182524321, 15182655487, 15182786561, 15182917657, 15183048743, 15183179821, + 15183310903, 15183441983, 15183573061, 15183704183, 15183835259, 15183966331, 15184097431, + 15184228547, 15184359667, 15184490771, 15184621853, 15184752931, 15184884019, 15185015159, + 15185146231, 15185277313, 15185408453, 15185539541, 15185670649, 15185801723, 15185932813, + 15186063889, 15186194971, 15186326059, 15186457141, 15186588227, 15186719341, 15186850439, + 15186981527, 15187112609, 15187243727, 15187374859, 15187505933, 15187637033, 15187768109, + 15187899191, 15188030267, 15188161349, 15188292451, 15188423671, 15188554747, 15188685821, + 15188816927, 15188948017, 15189079109, 15189210193, 15189341267, 15189472351, 15189603427, + 15189734513, 15189865679, 15189996803, 15190127879, 15190259009, 15190390081, 15190521161, + 15190652237, 15190783319, 15190914457, 15191045561, 15191176657, 15191307767, 15191438861, + 15191569963, 15191701051, 15191832151, 15191963257, 15192094361, 15192225481, 15192356573, + 15192487663, 15192618739, 15192749827, 15192880919, 15193012001, 15193143079, 15193274227, + 15193405313, 15193536427, 15193667539, 15193798619, 15193929739, 15194060867, 15194191939, + 15194323013, 15194454091, 15194585201, 15194716283, 15194847359, 15194978453, 15195109543, + 15195240637, 15195371713, 15195502831, 15195633907, 15195764981, 15195896069, 15196027141, + 15196158217, 15196289293, 15196420387, 15196551473, 15196682671, 15196813799, 15196944881, + 15197075969, 15197207041, 15197338127, 15197469211, 15197600303, 15197731391, 15197862469, + 15197993563, 15198124691, 15198255829, 15198386909, 15198517993, 15198649069, 15198780173, + 15198911293, 15199042399, 15199173491, 15199304587, 15199435733, 15199566827, 15199697917, + 15199828991, 15199960099, 15200091191, 15200222287, 15200353373, 15200484463, 15200615587, + 15200746697, 15200877793, 15201008869, 15201139963, 15201271037, 15201402131, 15201533227, + 15201664307, 15201795379, 15201926459, 15202057547, 15202188637, 15202319749, 15202450843, + 15202581991, 15202713083, 15202844179, 15202975253, 15203106337, 15203237431, 15203368519, + 15203499593, 15203630671, 15203761747, 15203892827, 15204023941, 15204155017, 15204286099, + 15204417181, 15204548263, 15204679361, 15204810437, 15204941509, 15205072627, 15205203721, + 15205334819, 15205465903, 15205597007, 15205728103, 15205859177, 15205990273, 15206121397, + 15206252473, 15206383547, 15206514619, 15206645693, 15206776769, 15206907841, 15207038929, + 15207170047, 15207301121, 15207432203, 15207563297, 15207694399, 15207825487, 15207956597, + 15208087679, 15208218757, 15208349831, 15208480909, 15208612019, 15208743091, 15208874183, + 15209005267, 15209136367, 15209267443, 15209398543, 15209529637, 15209660723, 15209791801, + 15209922911, 15210054019, 15210185119, 15210316223, 15210447299, 15210578401, 15210709477, + 15210840571, 15210971719, 15211102813, 15211233893, 15211365007, 15211496087, 15211627229, + 15211758313, 15211889401, 15212020513, 15212151589, 15212282689, 15212413781, 15212544881, + 15212675953, 15212807047, 15212938127, 15213069211, 15213200287, 15213331379, 15213462463, + 15213593557, 15213724649, 15213855733, 15213986819, 15214117903, 15214248977, 15214380067, + 15214511159, 15214642243, 15214773347, 15214904423, 15215035543, 15215166619, 15215297723, + 15215428843, 15215559923, 15215691013, 15215822107, 15215953187, 15216084283, 15216215393, + 15216346477, 15216477571, 15216608651, 15216739751, 15216870827, 15217001909, 15217132991, + 15217264169, 15217395251, 15217526333, 15217657439, 15217788533, 15217919677, 15218050807, + 15218181899, 15218312981, 15218444089, 15218575181, 15218706277, 15218837353, 15218968439, + 15219099551, 15219230639, 15219361723, 15219492797, 15219623873, 15219754969, 15219886051, + 15220017161, 15220148233, 15220279309, 15220410449, 15220541533, 15220672613, 15220803713, + 15220934801, 15221065877, 15221196967, 15221328041, 15221459131, 15221590211, 15221721293, + 15221852383, 15221983459, 15222114539, 15222245657, 15222376733, 15222507821, 15222638909, + 15222769997, 15222901103, 15223032179, 15223163287, 15223294379, 15223425457, 15223556563, + 15223687729, 15223818811, 15223949887, 15224080979, 15224212063, 15224343187, 15224474267, + 15224605387, 15224736463, 15224867551, 15224998631, 15225129721, 15225260807, 15225391889, + 15225522967, 15225654043, 15225785119, 15225916219, 15226047323, 15226178419, 15226309499, + 15226440583, 15226571663, 15226702747, 15226833821, 15226964939, 15227096039, 15227227117, + 15227358191, 15227489287, 15227620379, 15227751467, 15227882539, 15228013631, 15228144707, + 15228275779, 15228406873, 15228537977, 15228669061, 15228800177, 15228931297, 15229062377, + 15229193459, 15229324549, 15229455739, 15229586837, 15229717933, 15229849009, 15229980107, + 15230111189, 15230242267, 15230373341, 15230504417, 15230635501, 15230766613, 15230897687, + 15231028801, 15231159893, 15231290983, 15231422071, 15231553147, 15231684253, 15231815341, + 15231946487, 15232077577, 15232208773, 15232339853, 15232470949, 15232602059, 15232733177, + 15232864267, 15232995373, 15233126449, 15233257549, 15233388629, 15233519723, 15233650799, + 15233781911, 15233912983, 15234044057, 15234175141, 15234306221, 15234437299, 15234568379, + 15234699457, 15234830537, 15234961613, 15235092689, 15235223771, 15235354903, 15235486031, + 15235617143, 15235748233, 15235879319, 15236010409, 15236141483, 15236272589, 15236403671, + 15236534771, 15236665853, 15236796989, 15236928097, 15237059171, 15237190289, 15237321361, + 15237452453, 15237583547, 15237714649, 15237845731, 15237976823, 15238107991, 15238239083, + 15238370171, 15238501279, 15238632389, 15238763489, 15238894603, 15239025691, 15239156783, + 15239287873, 15239418967, 15239550041, 15239681117, 15239812193, 15239943281, 15240074359, + 15240205481, 15240336577, 15240467653, 15240598729, 15240729841, 15240860953, 15240992051, + 15241123127, 15241254199, 15241385279, 15241516391, 15241647467, 15241778593, 15241909667, + 15242040743, 15242171869, 15242302979, 15242434057, 15242565139, 15242696291, 15242827363, + 15242958461, 15243089551, 15243220627, 15243351707, 15243482789, 15243613909, 15243745001, + 15243876107, 15244007221, 15244138313, 15244269413, 15244400513, 15244531591, 15244662679, + 15244793777, 15244924897, 15245055979, 15245187079, 15245318197, 15245449333, 15245580409, + 15245711561, 15245842639, 15245973751, 15246104873, 15246235957, 15246367063, 15246498139, + 15246629221, 15246760327, 15246891419, 15247022491, 15247153567, 15247284659, 15247415759, + 15247546841, 15247677979, 15247809067, 15247940159, 15248071247, 15248202331, 15248333407, + 15248464489, 15248595569, 15248726641, 15248857717, 15248988791, 15249119887, 15249251023, + 15249382097, 15249513173, 15249644251, 15249775361, 15249906481, 15250037573, 15250168649, + 15250299773, 15250430851, 15250561939, 15250693033, 15250824109, 15250955227, 15251086309, + 15251217427, 15251348513, 15251479631, 15251610713, 15251741809, 15251872969, 15252004043, + 15252135169, 15252266257, 15252397379, 15252528451, 15252659557, 15252790633, 15252921731, + 15253052813, 15253183909, 15253314997, 15253446083, 15253577219, 15253708291, 15253839421, + 15253970521, 15254101601, 15254232689, 15254363771, 15254494867, 15254625941, 15254757017, + 15254888111, 15255019187, 15255150319, 15255281401, 15255412483, 15255543559, 15255674639, + 15255805711, 15255936793, 15256067887, 15256198967, 15256330081, 15256461163, 15256592237, + 15256723319, 15256854401, 15256985501, 15257116577, 15257247727, 15257378821, 15257509901, + 15257640997, 15257772073, 15257903147, 15258034223, 15258165317, 15258296489, 15258427567, + 15258558661, 15258689737, 15258820823, 15258951901, 15259082987, 15259214083, 15259345183, + 15259476257, 15259607329, 15259738409, 15259869487, 15260000579, 15260131681, 15260262769, + 15260393867, 15260524999, 15260656079, 15260787173, 15260918249, 15261049333, 15261180419, + 15261311497, 15261442601, 15261573721, 15261704803, 15261835907, 15261966989, 15262098097, + 15262229173, 15262360313, 15262491389, 15262622467, 15262753549, 15262884653, 15263015773, + 15263146849, 15263277929, 15263409037, 15263540111, 15263671193, 15263802269, 15263933351, + 15264064441, 15264195563, 15264326677, 15264457763, 15264588869, 15264719993, 15264851099, + 15264982177, 15265113319, 15265244441, 15265375549, 15265506637, 15265637719, 15265768801, + 15265899877, 15266030959, 15266162039, 15266293121, 15266424221, 15266555299, 15266686403, + 15266817499, 15266948581, 15267079673, 15267210823, 15267341897, 15267472981, 15267604061, + 15267735157, 15267866281, 15267997399, 15268128521, 15268259603, 15268390783, 15268521881, + 15268652963, 15268784081, 15268915163, 15269046307, 15269177381, 15269308499, 15269439613, + 15269570713, 15269701807, 15269832913, 15269964001, 15270095077, 15270226189, 15270357269, + 15270488377, 15270619451, 15270750529, 15270881611, 15271012697, 15271143781, 15271274857, + 15271405973, 15271537081, 15271668227, 15271799311, 15271930391, 15272061463, 15272192561, + 15272323639, 15272454727, 15272585807, 15272716913, 15272848001, 15272979097, 15273110179, + 15273241253, 15273372379, 15273503471, 15273634577, 15273765667, 15273896783, 15274027861, + 15274158937, 15274290011, 15274421083, 15274552187, 15274683287, 15274814371, 15274945459, + 15275076547, 15275207653, 15275338739, 15275469817, 15275600947, 15275732023, 15275863147, + 15275994229, 15276125309, 15276256381, 15276387481, 15276518627, 15276649777, 15276780859, + 15276911933, 15277043017, 15277174093, 15277305283, 15277436371, 15277567451, 15277698547, + 15277829621, 15277960697, 15278091769, 15278222879, 15278353973, 15278485063, 15278616151, + 15278747243, 15278878423, 15279009509, 15279140621, 15279271697, 15279402769, 15279533861, + 15279664951, 15279796033, 15279927119, 15280058197, 15280189279, 15280320359, 15280451443, + 15280582517, 15280713601, 15280844707, 15280975813, 15281106899, 15281238017, 15281369093, + 15281500181, 15281631259, 15281762347, 15281893441, 15282024521, 15282155599, 15282286673, + 15282417809, 15282548893, 15282679969, 15282811043, 15282942119, 15283073209, 15283204283, + 15283335409, 15283466507, 15283597579, 15283728653, 15283859761, 15283990861, 15284121947, + 15284253029, 15284384201, 15284515307, 15284646383, 15284777477, 15284908559, 15285039647, + 15285170777, 15285301873, 15285432961, 15285564053, 15285695147, 15285826219, 15285957301, + 15286088417, 15286219537, 15286350619, 15286481701, 15286612787, 15286743887, 15286874987, + 15287006069, 15287137141, 15287268253, 15287399383, 15287530481, 15287661581, 15287792671, + 15287923759, 15288054853, 15288185929, 15288317047, 15288448127, 15288579209, 15288710299, + 15288841391, 15288972499, 15289103581, 15289234657, 15289365731, 15289496843, 15289627937, + 15289759019, 15289890137, 15290021233, 15290152307, 15290283391, 15290414479, 15290545561, + 15290676671, 15290807789, 15290938907, 15291069979, 15291201097, 15291332233, 15291463309, + 15291594403, 15291725543, 15291856631, 15291987749, 15292118837, 15292249919, 15292381009, + 15292512089, 15292643173, 15292774253, 15292905359, 15293036441, 15293167517, 15293298599, + 15293429717, 15293560811, 15293691887, 15293822959, 15293954089, 15294085171, 15294216253, + 15294347389, 15294478481, 15294609601, 15294740677, 15294871751, 15295002917, 15295133993, + 15295265093, 15295396189, 15295527287, 15295658431, 15295789519, 15295920691, 15296051773, + 15296182861, 15296313943, 15296445029, 15296576101, 15296707193, 15296838281, 15296969371, + 15297100447, 15297231527, 15297362659, 15297493793, 15297624871, 15297755971, 15297887051, + 15298018171, 15298149271, 15298280377, 15298411451, 15298542527, 15298673603, 15298804753, + 15298935889, 15299066971, 15299198077, 15299329183, 15299460271, 15299591357, 15299722433, + 15299853557, 15299984647, 15300115759, 15300246839, 15300377923, 15300509033, 15300640139, + 15300771253, 15300902333, 15301033421, 15301164503, 15301295579, 15301426703, 15301557833, + 15301688923, 15301820057, 15301951151, 15302082223, 15302213299, 15302344439, 15302475511, + 15302606591, 15302737699, 15302868781, 15302999857, 15303130933, 15303262019, 15303393113, + 15303524239, 15303655313, 15303786397, 15303917471, 15304048553, 15304179629, 15304310713, + 15304441813, 15304572911, 15304704011, 15304835093, 15304966181, 15305097271, 15305228347, + 15305359423, 15305490503, 15305621587, 15305752663, 15305883743, 15306014833, 15306145919, + 15306277073, 15306408157, 15306539233, 15306670321, 15306801401, 15306932477, 15307063559, + 15307194677, 15307325771, 15307456847, 15307587947, 15307719029, 15307850111, 15307981189, + 15308112293, 15308243381, 15308374453, 15308505557, 15308636633, 15308767709, 15308898863, + 15309029959, 15309161051, 15309292127, 15309423203, 15309554303, 15309685441, 15309816517, + 15309947591, 15310078697, 15310209787, 15310340873, 15310471963, 15310603037, 15310734143, + 15310865233, 15310996333, 15311127437, 15311258527, 15311389603, 15311520677, 15311651767, + 15311782859, 15311913973, 15312045079, 15312176189, 15312307301, 15312438391, 15312569483, + 15312700561, 15312831643, 15312962767, 15313093879, 15313224991, 15313356083, 15313487173, + 15313618249, 15313749323, 15313880399, 15314011487, 15314142559, 15314273641, 15314404769, + 15314535851, 15314666947, 15314798071, 15314929183, 15315060269, 15315191347, 15315322447, + 15315453521, 15315584629, 15315715729, 15315846811, 15315977891, 15316109077, 15316240187, + 15316371281, 15316502381, 15316633471, 15316764553, 15316895641, 15317026723, 15317157799, + 15317288891, 15317420021, 15317551097, 15317682179, 15317813299, 15317944379, 15318075457, + 15318206531, 15318337603, 15318468709, 15318599837, 15318730961, 15318862033, 15318993119, + 15319124291, 15319255403, 15319386487, 15319517573, 15319648649, 15319779731, 15319910821, + 15320041901, 15320172979, 15320304053, 15320435131, 15320566249, 15320697473, 15320828569, + 15320959679, 15321090751, 15321221837, 15321352927, 15321484033, 15321615139, 15321746257, + 15321877357, 15322008491, 15322139603, 15322270703, 15322401817, 15322532917, 15322664003, + 15322795091, 15322926169, 15323057257, 15323188337, 15323319413, 15323450509, 15323581607, + 15323712707, 15323843783, 15323974859, 15324105947, 15324237031, 15324368153, 15324499241, + 15324630359, 15324761483, 15324892577, 15325023689, 15325154773, 15325285907, 15325416979, + 15325548097, 15325679177, 15325810261, 15325941349, 15326072479, 15326203561, 15326334677, + 15326465761, 15326596837, 15326727917, 15326859019, 15326990093, 15327121211, 15327252287, + 15327383363, 15327514441, 15327645517, 15327776663, 15327907783, 15328038863, 15328169947, + 15328301029, 15328432117, 15328563197, 15328694299, 15328825399, 15328956481, 15329087591, + 15329218679, 15329349751, 15329480827, 15329611949, 15329743031, 15329874113, 15330005189, + 15330136279, 15330267353, 15330398443, 15330529517, 15330660593, 15330791669, 15330922753, + 15331053869, 15331184951, 15331316027, 15331447121, 15331578221, 15331709359, 15331840441, + 15331971521, 15332102593, 15332233667, 15332364743, 15332495821, 15332626901, 15332757977, + 15332889071, 15333020161, 15333151243, 15333282331, 15333413461, 15333544609, 15333675701, + 15333806791, 15333937877, 15334068949, 15334200041, 15334331123, 15334462237, 15334593367, + 15334724467, 15334855561, 15334986637, 15335117711, 15335248813, 15335379901, 15335510987, + 15335642059, 15335773139, 15335904217, 15336035333, 15336166421, 15336297523, 15336428609, + 15336559717, 15336690793, 15336821953, 15336953057, 15337084129, 15337215203, 15337346279, + 15337477361, 15337608449, 15337739587, 15337870699, 15338001823, 15338132933, 15338264023, + 15338395123, 15338526227, 15338657357, 15338788429, 15338919503, 15339050593, 15339181681, + 15339312767, 15339443881, 15339574961, 15339706091, 15339837251, 15339968339, 15340099417, + 15340230491, 15340361567, 15340492639, 15340623757, 15340754857, 15340885999, 15341017123, + 15341148209, 15341279329, 15341410423, 15341541497, 15341672603, 15341803717, 15341934809, + 15342065911, 15342197063, 15342328151, 15342459227, 15342590309, 15342721399, 15342852487, + 15342983563, 15343114663, 15343245751, 15343376837, 15343507909, 15343638991, 15343770083, + 15343901159, 15344032247, 15344163337, 15344294419, 15344425507, 15344556593, 15344687671, + 15344818763, 15344949869, 15345080951, 15345212063, 15345343193, 15345474341, 15345605423, + 15345736513, 15345867599, 15345998671, 15346129787, 15346260887, 15346391969, 15346523069, + 15346654163, 15346785247, 15346916329, 15347047433, 15347178521, 15347309597, 15347440711, + 15347571809, 15347702891, 15347833987, 15347965069, 15348096151, 15348227291, 15348358379, + 15348489469, 15348620569, 15348751643, 15348882739, 15349013819, 15349144891, 15349275983, + 15349407067, 15349538143, 15349669219, 15349800317, 15349931393, 15350062477, 15350193559, + 15350324657, 15350455739, 15350586827, 15350717903, 15350849021, 15350980123, 15351111233, + 15351242323, 15351373403, 15351504481, 15351635569, 15351766657, 15351897749, 15352028833, + 15352159909, 15352291109, 15352422187, 15352553287, 15352684363, 15352815451, 15352946527, + 15353077609, 15353208697, 15353339789, 15353470861, 15353601941, 15353733023, 15353864111, + 15353995187, 15354126289, 15354257363, 15354388447, 15354519529, 15354650603, 15354781691, + 15354912763, 15355043863, 15355174987, 15355306061, 15355437193, 15355568279, 15355699391, + 15355830463, 15355961549, 15356092627, 15356223703, 15356354803, 15356485889, 15356616973, + 15356748047, 15356879129, 15357010211, 15357141323, 15357272459, 15357403547, 15357534629, + 15357665707, 15357796781, 15357927877, 15358058951, 15358190059, 15358321151, 15358452227, + 15358583299, 15358714373, 15358845487, 15358976569, 15359107649, 15359238731, 15359369807, + 15359500879, 15359631983, 15359763059, 15359894141, 15360025223, 15360156313, 15360287399, + 15360418477, 15360549553, 15360680653, 15360811733, 15360942823, 15361073909, 15361205047, + 15361336121, 15361467197, 15361598347, 15361729441, 15361860551, 15361991651, 15362122739, + 15362253871, 15362384953, 15362516051, 15362647129, 15362778239, 15362909321, 15363040487, + 15363171569, 15363302651, 15363433741, 15363564829, 15363695911, 15363827033, 15363958109, + 15364089197, 15364220269, 15364351363, 15364482439, 15364613519, 15364744597, 15364875697, + 15365006819, 15365137891, 15365269043, 15365400121, 15365531213, 15365662289, 15365793367, + 15365924447, 15366055519, 15366186607, 15366317683, 15366448813, 15366579919, 15366711001, + 15366842077, 15366973151, 15367104223, 15367235309, 15367366381, 15367497461, 15367628623, + 15367759703, 15367890793, 15368021869, 15368152957, 15368284031, 15368415109, 15368546197, + 15368677283, 15368808359, 15368939479, 15369070553, 15369201643, 15369332729, 15369463801, + 15369594887, 15369725971, 15369857081, 15369988157, 15370119239, 15370250351, 15370381459, + 15370512533, 15370643609, 15370774681, 15370905761, 15371036911, 15371167993, 15371299081, + 15371430163, 15371561243, 15371692321, 15371823421, 15371954509, 15372085591, 15372216679, + 15372347759, 15372478841, 15372609953, 15372741067, 15372872159, 15373003231, 15373134311, + 15373265417, 15373396513, 15373527599, 15373658711, 15373789813, 15373920901, 15374052007, + 15374183119, 15374314217, 15374445301, 15374576383, 15374707459, 15374838547, 15374969647, + 15375100729, 15375231811, 15375362929, 15375494039, 15375625123, 15375756217, 15375887309, + 15376018381, 15376149473, 15376280567, 15376411663, 15376542743, 15376673821, 15376804903, + 15376936013, 15377067109, 15377198189, 15377329321, 15377460401, 15377591473, 15377722553, + 15377853637, 15377984711, 15378115789, 15378246901, 15378378019, 15378509101, 15378640187, + 15378771259, 15378902377, 15379033477, 15379164583, 15379295719, 15379426807, 15379557881, + 15379688963, 15379820059, 15379951133, 15380082239, 15380213351, 15380344423, 15380475497, + 15380606581, 15380737657, 15380868731, 15380999819, 15381130913, 15381261997, 15381393169, + 15381524251, 15381655327, 15381786401, 15381917531, 15382048603, 15382179677, 15382310767, + 15382441853, 15382572967, 15382704049, 15382835161, 15382966253, 15383097349, 15383228459, + 15383359559, 15383490643, 15383621717, 15383752801, 15383883883, 15384014959, 15384146051, + 15384277133, 15384408227, 15384539309, 15384670381, 15384801493, 15384932587, 15385063711, + 15385194793, 15385325909, 15385457033, 15385588121, 15385719203, 15385850297, 15385981379, + 15386112457, 15386243563, 15386374639, 15386505751, 15386636843, 15386767919, 15386899009, + 15387030103, 15387161197, 15387292289, 15387423377, 15387554473, 15387685559, 15387816677, + 15387947767, 15388078843, 15388209931, 15388341019, 15388472093, 15388603193, 15388734301, + 15388865381, 15388996453, 15389127529, 15389258627, 15389389703, 15389520781, 15389651857, + 15389782979, 15389914079, 15390045169, 15390176287, 15390307433, 15390438527, 15390569611, + 15390700757, 15390831853, 15390962941, 15391094027, 15391225103, 15391356179, 15391487257, + 15391618337, 15391749419, 15391880503, 15392011619, 15392142721, 15392273797, 15392404871, + 15392535967, 15392667041, 15392798119, 15392929199, 15393060301, 15393191381, 15393322471, + 15393453557, 15393584683, 15393715807, 15393846883, 15393977959, 15394109033, 15394240123, + 15394371203, 15394502281, 15394633357, 15394764431, 15394895519, 15395026627, 15395157719, + 15395288813, 15395419889, 15395550971, 15395682067, 15395813141, 15395944219, 15396075329, + 15396206411, 15396337501, 15396468599, 15396599677, 15396730757, 15396861881, 15396992957, + 15397124053, 15397255129, 15397386229, 15397517461, 15397648597, 15397779707, 15397910797, + 15398041933, 15398173019, 15398304101, 15398435177, 15398566259, 15398697337, 15398828411, + 15398959489, 15399090583, 15399221683, 15399352873, 15399483971, 15399615059, 15399746137, + 15399877211, 15400008311, 15400139389, 15400270477, 15400401587, 15400532663, 15400663739, + 15400794847, 15400925927, 15401057029, 15401188123, 15401319203, 15401450299, 15401581397, + 15401712511, 15401843599, 15401974717, 15402105809, 15402236887, 15402367961, 15402499039, + 15402630119, 15402761203, 15402892321, 15403023403, 15403154489, 15403285561, 15403416667, + 15403547749, 15403678837, 15403809929, 15403941037, 15404072119, 15404203223, 15404334307, + 15404465399, 15404596489, 15404727571, 15404858663, 15404989741, 15405120833, 15405251921, + 15405383039, 15405514169, 15405645271, 15405776383, 15405907459, 15406038551, 15406169629, + 15406300717, 15406431793, 15406562879, 15406693963, 15406825043, 15406956143, 15407087219, + 15407218297, 15407349371, 15407480449, 15407611529, 15407742673, 15407873773, 15408004873, + 15408135971, 15408267053, 15408398179, 15408529271, 15408660353, 15408791443, 15408922523, + 15409053601, 15409184683, 15409315759, 15409446883, 15409577987, 15409709093, 15409840169, + 15409971253, 15410102341, 15410233459, 15410364551, 15410495641, 15410626729, 15410757821, + 15410888929, 15411020003, 15411151099, 15411282203, 15411413279, 15411544391, 15411675473, + 15411806549, 15411937621, 15412068703, 15412199791, 15412330877, 15412462033, 15412593107, + 15412724203, 15412855313, 15412986427, 15413117501, 15413248621, 15413379727, 15413510851, + 15413641937, 15413773013, 15413904211, 15414035407, 15414166541, 15414297631, 15414428713, + 15414559801, 15414690881, 15414821953, 15414953051, 15415084151, 15415215289, 15415346389, + 15415477463, 15415608547, 15415739629, 15415870711, 15416001791, 15416132863, 15416263987, + 15416395067, 15416526161, 15416657237, 15416788363, 15416919449, 15417050531, 15417181673, + 15417312769, 15417443849, 15417574927, 15417706027, 15417837119, 15417968213, 15418099297, + 15418230383, 15418361459, 15418492547, 15418623641, 15418754773, 15418885849, 15419016923, + 15419148023, 15419279129, 15419410219, 15419541301, 15419672381, 15419803453, 15419934539, + 15420065659, 15420196763, 15420327841, 15420458939, 15420590041, 15420721163, 15420852241, + 15420983371, 15421114459, 15421245533, 15421376639, 15421507727, 15421638823, 15421769903, + 15421901059, 15422032169, 15422163259, 15422294341, 15422425423, 15422556503, 15422687627, + 15422818717, 15422949799, 15423080873, 15423211957, 15423343031, 15423474107, 15423605189, + 15423736297, 15423867373, 15423998449, 15424129547, 15424260637, 15424391711, 15424522801, + 15424653889, 15424785037, 15424916131, 15425047441, 15425178541, 15425309629, 15425440733, + 15425571827, 15425702909, 15425833987, 15425965067, 15426096139, 15426227237, 15426358351, + 15426489431, 15426620507, 15426751601, 15426882697, 15427013773, 15427144861, 15427275959, + 15427407089, 15427538207, 15427669319, 15427800403, 15427931483, 15428062571, 15428193673, + 15428324759, 15428455837, 15428586913, 15428717987, 15428849063, 15428980157, 15429111293, + 15429242371, 15429373457, 15429504533, 15429635621, 15429766721, 15429897817, 15430028897, + 15430160017, 15430291091, 15430422191, 15430553263, 15430684433, 15430815511, 15430946593, + 15431077679, 15431208781, 15431339879, 15431470961, 15431602103, 15431733193, 15431864267, + 15431995343, 15432126421, 15432257497, 15432388577, 15432519653, 15432650729, 15432781879, + 15432912967, 15433044049, 15433175189, 15433306271, 15433437353, 15433568431, 15433699507, + 15433830611, 15433961701, 15434092829, 15434223901, 15434354977, 15434486059, 15434617139, + 15434748221, 15434879297, 15435010399, 15435141481, 15435272579, 15435403717, 15435534791, + 15435665863, 15435796939, 15435928019, 15436059091, 15436190167, 15436321253, 15436452329, + 15436583411, 15436714499, 15436845607, 15436976699, 15437107811, 15437238893, 15437370019, + 15437501143, 15437632241, 15437763317, 15437894389, 15438025517, 15438156593, 15438287713, + 15438418837, 15438549911, 15438680987, 15438812071, 15438943147, 15439074239, 15439205351, + 15439336427, 15439467551, 15439598689, 15439729763, 15439860841, 15439991921, 15440123029, + 15440254117, 15440385197, 15440516297, 15440647373, 15440778467, 15440909573, 15441040661, + 15441171737, 15441302879, 15441433957, 15441565033, 15441696157, 15441827237, 15441958319, + 15442089401, 15442220533, 15442351619, 15442482691, 15442613827, 15442744907, 15442875989, + 15443007079, 15443138153, 15443269249, 15443400367, 15443531473, 15443662579, 15443793689, + 15443924777, 15444055919, 15444187021, 15444318103, 15444449179, 15444580259, 15444711341, + 15444842419, 15444973513, 15445104637, 15445235759, 15445366873, 15445497953, 15445629037, + 15445760153, 15445891249, 15446022377, 15446153467, 15446284549, 15446415643, 15446546729, + 15446677811, 15446808913, 15446939999, 15447071077, 15447202153, 15447333247, 15447464371, + 15447595451, 15447726611, 15447857683, 15447988763, 15448119889, 15448251041, 15448382161, + 15448513261, 15448644349, 15448775423, 15448906601, 15449037689, 15449168771, 15449299843, + 15449430929, 15449562019, 15449693093, 15449824199, 15449955271, 15450086357, 15450217429, + 15450348577, 15450479651, 15450610751, 15450741827, 15450872923, 15451003999, 15451135079, + 15451266167, 15451397243, 15451528331, 15451659403, 15451790491, 15451921567, 15452052661, + 15452183737, 15452314831, 15452445947, 15452577067, 15452708153, 15452839247, 15452970319, + 15453101401, 15453232489, 15453363599, 15453494677, 15453625751, 15453756887, 15453888061, + 15454019137, 15454150247, 15454281319, 15454412401, 15454543483, 15454674569, 15454805669, + 15454936753, 15455067839, 15455198917, 15455330017, 15455461093, 15455592197, 15455723273, + 15455854367, 15455985439, 15456116549, 15456247739, 15456378811, 15456509921, 15456641027, + 15456772103, 15456903181, 15457034273, 15457165351, 15457296433, 15457427519, 15457558591, + 15457689677, 15457820753, 15457951843, 15458082917, 15458214001, 15458345093, 15458476169, + 15458607253, 15458738327, 15458869487, 15459000559, 15459131641, 15459262717, 15459393793, + 15459524869, 15459655973, 15459787073, 15459918151, 15460049251, 15460180327, 15460311401, + 15460442479, 15460573559, 15460704659, 15460835737, 15460966813, 15461097887, 15461228963, + 15461360087, 15461491223, 15461622307, 15461753383, 15461884469, 15462015553, 15462146633, + 15462277771, 15462408887, 15462539971, 15462671057, 15462802133, 15462933209, 15463064293, + 15463195367, 15463326539, 15463457617, 15463588697, 15463719769, 15463850851, 15463981933, + 15464113009, 15464244083, 15464375161, 15464506259, 15464637343, 15464768447, 15464899531, + 15465030613, 15465161687, 15465292789, 15465423877, 15465554953, 15465686039, 15465817117, + 15465948191, 15466079297, 15466210391, 15466341463, 15466472573, 15466603673, 15466734763, + 15466865857, 15466996931, 15467128009, 15467259089, 15467390209, 15467521291, 15467652379, + 15467783491, 15467914591, 15468045757, 15468176897, 15468308017, 15468439093, 15468570191, + 15468701273, 15468832361, 15468963443, 15469094533, 15469225663, 15469356829, 15469487911, + 15469618991, 15469750063, 15469881157, 15470012237, 15470143313, 15470274401, 15470405477, + 15470536559, 15470667631, 15470798741, 15470929819, 15471060937, 15471192013, 15471323143, + 15471454237, 15471585331, 15471716419, 15471847493, 15471978569, 15472109647, 15472240739, + 15472371829, 15472502951, 15472634029, 15472765103, 15472896181, 15473027261, 15473158343, + 15473289427, 15473420513, 15473551631, 15473682709, 15473813791, 15473944877, 15474075961, + 15474207037, 15474338167, 15474469243, 15474600341, 15474731449, 15474862547, 15474993623, + 15475124699, 15475255799, 15475386881, 15475517969, 15475649047, 15475780121, 15475911197, + 15476042273, 15476173373, 15476304521, 15476435603, 15476566753, 15476697839, 15476828959, + 15476960039, 15477091141, 15477222221, 15477353323, 15477484453, 15477615641, 15477746719, + 15477877819, 15478008943, 15478140023, 15478271111, 15478402183, 15478533271, 15478664387, + 15478795469, 15478926557, 15479057641, 15479188733, 15479319809, 15479450887, 15479581967, + 15479713063, 15479844151, 15479975227, 15480106309, 15480237427, 15480368509, 15480499607, + 15480630743, 15480761843, 15480892939, 15481024033, 15481155119, 15481286201, 15481417291, + 15481548371, 15481679443, 15481810517, 15481941613, 15482072693, 15482203783, 15482334863, + 15482465993, 15482597107, 15482728253, 15482859349, 15482990429, 15483121519, 15483252607, + 15483383711, 15483514841, 15483645937, 15483777013, 15483908093, 15484039183, 15484170281, + 15484301363, 15484432487, 15484563583, 15484694669, 15484825799, 15484956887, 15485087971, + 15485219047, 15485350121, 15485481217, 15485612297, 15485743373, 15485874473, 15486005611, + 15486136703, 15486267799, 15486398881, 15486529969, 15486661061, 15486792133, 15486923227, + 15487054309, 15487185383, 15487316479, 15487447571, 15487578643, 15487709729, 15487840811, + 15487971911, 15488102983, 15488234089, 15488365187, 15488496269, 15488627377, 15488758471, + 15488889583, 15489020707, 15489151813, 15489282889, 15489413993, 15489545069, 15489676159, + 15489807241, 15489938333, 15490069421, 15490200511, 15490331611, 15490462699, 15490593779, + 15490724857, 15490855949, 15490987037, 15491118119, 15491249197, 15491380291, 15491511367, + 15491642459, 15491773589, 15491904677, 15492035803, 15492166883, 15492297971, 15492429059, + 15492560131, 15492691213, 15492822343, 15492953431, 15493084511, 15493215611, 15493346707, + 15493477789, 15493608901, 15493739983, 15493871117, 15494002189, 15494133271, 15494264413, + 15494395513, 15494526611, 15494657723, 15494788847, 15494919929, 15495051001, 15495182089, + 15495313189, 15495444277, 15495575353, 15495706433, 15495837509, 15495968581, 15496099679, + 15496230751, 15496361827, 15496492943, 15496624027, 15496755101, 15496886177, 15497017297, + 15497148379, 15497279459, 15497410531, 15497541617, 15497672731, 15497803843, 15497934919, + 15498066047, 15498197129, 15498328217, 15498459313, 15498590449, 15498721523, 15498852601, + 15498983719, 15499114819, 15499245893, 15499376987, 15499508069, 15499639147, 15499770263, + 15499901341, 15500032417, 15500163499, 15500294609, 15500425687, 15500556781, 15500687879, + 15500818951, 15500950043, 15501081149, 15501212239, 15501343339, 15501474433, 15501605531, + 15501736609, 15501867683, 15501998761, 15502129931, 15502261051, 15502392133, 15502523221, + 15502654333, 15502785421, 15502916509, 15503047583, 15503178667, 15503309747, 15503440831, + 15503571907, 15503702999, 15503834081, 15503965171, 15504096253, 15504227339, 15504358423, + 15504489527, 15504620609, 15504751721, 15504882821, 15505013929, 15505145077, 15505276159, + 15505407283, 15505538369, 15505669441, 15505800523, 15505931603, 15506062681, 15506193757, + 15506324833, 15506455919, 15506587049, 15506718191, 15506849269, 15506980343, 15507111443, + 15507242519, 15507373613, 15507504707, 15507635789, 15507766861, 15507897967, 15508029071, + 15508160177, 15508291273, 15508422367, 15508553477, 15508684553, 15508815643, 15508946723, + 15509077861, 15509208971, 15509340043, 15509471129, 15509602211, 15509733289, 15509864399, + 15509995471, 15510126557, 15510257641, 15510388727, 15510519841, 15510650999, 15510782071, + 15510913177, 15511044253, 15511175327, 15511306409, 15511437497, 15511568603, 15511699681, + 15511830781, 15511961879, 15512092991, 15512224067, 15512355151, 15512486261, 15512617333, + 15512748431, 15512879509, 15513010637, 15513141719, 15513272813, 15513403897, 15513535039, + 15513666127, 15513797203, 15513928301, 15514059403, 15514190491, 15514321573, 15514452659, + 15514583731, 15514714823, 15514845901, 15514976977, 15515108087, 15515239169, 15515370251, + 15515501347, 15515632441, 15515763547, 15515894623, 15516025703, 15516156779, 15516287881, + 15516418969, 15516550069, 15516681143, 15516812303, 15516943397, 15517074491, 15517205579, + 15517336663, 15517467739, 15517598849, 15517729943, 15517861063, 15517992167, 15518123279, + 15518254403, 15518385517, 15518516591, 15518647663, 15518778809, 15518909881, 15519040993, + 15519172073, 15519303193, 15519434297, 15519565403, 15519696481, 15519827593, 15519958669, + 15520089757, 15520220843, 15520351919, 15520482997, 15520614073, 15520745147, 15520876219, + 15521007329, 15521138417, 15521269493, 15521400577, 15521531653, 15521662777, 15521793863, + 15521924963, 15522056051, 15522187139, 15522318211, 15522449311, 15522580393, 15522711563, + 15522842659, 15522973733, 15523104811, 15523235899, 15523366981, 15523498061, 15523629157, + 15523760267, 15523891387, 15524022461, 15524153537, 15524284661, 15524415733, 15524546833, + 15524677907, 15524808991, 15524940143, 15525071239, 15525202367, 15525333451, 15525464543, + 15525595619, 15525726707, 15525857779, 15525988853, 15526119937, 15526251019, 15526382101, + 15526513231, 15526644307, 15526775387, 15526906459, 15527037587, 15527168669, 15527299751, + 15527430827, 15527561921, 15527693017, 15527824111, 15527955217, 15528086293, 15528217379, + 15528348457, 15528479537, 15528610639, 15528741719, 15528872791, 15529003873, 15529134953, + 15529266031, 15529397197, 15529528307, 15529659389, 15529790461, 15529921543, 15530052673, + 15530183761, 15530314837, 15530445911, 15530576983, 15530708093, 15530839183, 15530970277, + 15531101363, 15531232477, 15531363563, 15531494659, 15531625789, 15531756893, 15531887993, + 15532019089, 15532150169, 15532281257, 15532412377, 15532543451, 15532674523, 15532805611, + 15532936693, 15533067821, 15533198897, 15533330009, 15533461091, 15533592163, 15533723251, + 15533854367, 15533985457, 15534116551, 15534247667, 15534378763, 15534509867, 15534640943, + 15534772037, 15534903119, 15535034213, 15535165297, 15535296377, 15535427461, 15535558567, + 15535689647, 15535820723, 15535951811, 15536083021, 15536214103, 15536345219, 15536476331, + 15536607451, 15536738531, 15536869609, 15537000683, 15537131783, 15537262891, 15537393973, + 15537525079, 15537656159, 15537787247, 15537918359, 15538049477, 15538180577, 15538311673, + 15538442747, 15538573819, 15538704899, 15538836059, 15538967153, 15539098231, 15539229311, + 15539360407, 15539491493, 15539622569, 15539753653, 15539884729, 15540015833, 15540146917, + 15540277993, 15540409067, 15540540161, 15540671327, 15540802423, 15540933509, 15541064593, + 15541195669, 15541326743, 15541457849, 15541588981, 15541720091, 15541851167, 15541982249, + 15542113339, 15542244433, 15542375521, 15542506601, 15542637703, 15542768783, 15542899909, + 15543031019, 15543162127, 15543293203, 15543424279, 15543555353, 15543686437, 15543817517, + 15543948601, 15544079687, 15544210771, 15544341847, 15544472947, 15544604057, 15544735147, + 15544866223, 15544997297, 15545128387, 15545259467, 15545390543, 15545521619, 15545652713, + 15545783801, 15545914883, 15546046013, 15546177109, 15546308207, 15546439291, 15546570373, + 15546701453, 15546832529, 15546963631, 15547094767, 15547225847, 15547356941, 15547488013, + 15547619099, 15547750171, 15547881269, 15548012407, 15548143487, 15548274587, 15548405671, + 15548536781, 15548667853, 15548798953, 15548930027, 15549061123, 15549192199, 15549323287, + 15549454363, 15549585473, 15549716557, 15549847639, 15549978749, 15550109821, 15550240907, + 15550371983, 15550503103, 15550634219, 15550765301, 15550896373, 15551027477, 15551158559, + 15551289659, 15551420743, 15551551909, 15551683051, 15551814133, 15551945249, 15552076321, + 15552207439, 15552338519, 15552469591, 15552600691, 15552731819, 15552862909, 15552994007, + 15553125083, 15553256203, 15553387309, 15553518391, 15553649477, 15553780553, 15553911629, + 15554042701, 15554173793, 15554304877, 15554435971, 15554567059, 15554698153, 15554829233, + 15554960359, 15555091441, 15555222521, 15555353623, 15555484709, 15555615797, 15555746881, + 15555877963, 15556009057, 15556140133, 15556271219, 15556402297, 15556533389, 15556664471, + 15556795571, 15556926659, 15557057767, 15557188859, 15557319931, 15557451023, 15557582129, + 15557713231, 15557844329, 15557975453, 15558106537, 15558237619, 15558368711, 15558499783, + 15558630859, 15558761987, 15558893093, 15559024211, 15559155377, 15559286467, 15559417541, + 15559548619, 15559679713, 15559810787, 15559941863, 15560072951, 15560204027, 15560335099, + 15560466193, 15560597303, 15560728387, 15560859487, 15560990603, 15561121679, 15561252827, + 15561383911, 15561514999, 15561646127, 15561777241, 15561908317, 15562039403, 15562170493, + 15562301567, 15562432651, 15562563733, 15562694813, 15562825921, 15562957147, 15563088227, + 15563219311, 15563350403, 15563481481, 15563612573, 15563743669, 15563874743, 15564005833, + 15564136981, 15564268079, 15564399173, 15564530269, 15564661349, 15564792433, 15564923567, + 15565054651, 15565185767, 15565316867, 15565447939, 15565579013, 15565710103, 15565841251, + 15565972349, 15566103451, 15566234531, 15566365621, 15566496697, 15566627849, 15566758937, + 15566890013, 15567021089, 15567152177, 15567283253, 15567414329, 15567545417, 15567676519, + 15567807599, 15567938681, 15568069763, 15568200841, 15568331917, 15568463011, 15568594123, + 15568725217, 15568856293, 15568987381, 15569118469, 15569249551, 15569380637, 15569511709, + 15569642821, 15569773943, 15569905037, 15570036127, 15570167231, 15570298307, 15570429419, + 15570560501, 15570691573, 15570822689, 15570953767, 15571084871, 15571215953, 15571347031, + 15571478129, 15571609231, 15571740311, 15571871387, 15572002471, 15572133557, 15572264671, + 15572395753, 15572526877, 15572657953, 15572789027, 15572920117, 15573051203, 15573182291, + 15573313367, 15573444451, 15573575569, 15573706657, 15573837731, 15573968873, 15574099969, + 15574231069, 15574362143, 15574493219, 15574624313, 15574755451, 15574886581, 15575017673, + 15575148767, 15575279843, 15575410957, 15575542127, 15575673221, 15575804317, 15575935423, + 15576066557, 15576197633, 15576328717, 15576459791, 15576590879, 15576722023, 15576853139, + 15576984229, 15577115311, 15577246411, 15577377503, 15577508593, 15577639667, 15577770781, + 15577901861, 15578032937, 15578164027, 15578295127, 15578426203, 15578557277, 15578688409, + 15578819489, 15578950627, 15579081703, 15579212821, 15579343919, 15579474997, 15579606079, + 15579737207, 15579868289, 15579999419, 15580130507, 15580261583, 15580392677, 15580523753, + 15580654849, 15580785953, 15580917041, 15581048123, 15581179213, 15581310307, 15581441389, + 15581572477, 15581703611, 15581834683, 15581965783, 15582096857, 15582227963, 15582359047, + 15582490123, 15582621199, 15582752363, 15582883439, 15583014511, 15583145593, 15583276703, + 15583407803, 15583538941, 15583670029, 15583801193, 15583932271, 15584063347, 15584194447, + 15584325529, 15584456687, 15584587787, 15584718869, 15584849963, 15584981053, 15585112129, + 15585243217, 15585374293, 15585505379, 15585636523, 15585767597, 15585898709, 15586029799, + 15586160879, 15586291957, 15586423033, 15586554119, 15586685203, 15586816277, 15586947359, + 15587078447, 15587209567, 15587340677, 15587471759, 15587602841, 15587733919, 15587865001, + 15587996087, 15588127189, 15588258269, 15588389347, 15588520421, 15588651509, 15588782581, + 15588913709, 15589044791, 15589175863, 15589307009, 15589438097, 15589569181, 15589700261, + 15589831357, 15589962431, 15590093509, 15590224591, 15590355679, 15590486753, 15590617837, + 15590748911, 15590880007, 15591011087, 15591142183, 15591273263, 15591404341, 15591535417, + 15591666533, 15591797621, 15591928739, 15592059817, 15592190891, 15592321991, 15592453133, + 15592584209, 15592715287, 15592846363, 15592977461, 15593108581, 15593239663, 15593370763, + 15593501851, 15593632931, 15593764007, 15593895091, 15594026191, 15594157291, 15594288371, + 15594419471, 15594550553, 15594681637, 15594812713, 15594943813, 15595074893, 15595206013, + 15595337117, 15595468219, 15595599293, 15595730377, 15595861451, 15595992527, 15596123633, + 15596254717, 15596385793, 15596516917, 15596648003, 15596779141, 15596910221, 15597041303, + 15597172391, 15597303473, 15597434557, 15597565663, 15597696743, 15597827851, 15597958979, + 15598090069, 15598221181, 15598352279, 15598483393, 15598614481, 15598745557, 15598876673, + 15599007757, 15599138857, 15599269937, 15599401031, 15599532107, 15599663251, 15599794339, + 15599925437, 15600056519, 15600187627, 15600318703, 15600449779, 15600580867, 15600711941, + 15600843017, 15600974107, 15601105217, 15601236289, 15601367363, 15601498439, 15601629517, + 15601760653, 15601891733, 15602022809, 15602153951, 15602285029, 15602416163, 15602547263, + 15602678363, 15602809441, 15602940517, 15603071639, 15603202711, 15603333787, 15603464917, + 15603595999, 15603727103, 15603858181, 15603989311, 15604120387, 15604251463, 15604382543, + 15604513621, 15604644697, 15604775773, 15604906861, 15605037949, 15605169029, 15605300101, + 15605431183, 15605562293, 15605693381, 15605824453, 15605955553, 15606086641, 15606217747, + 15606348829, 15606479921, 15606610993, 15606742087, 15606873199, 15607004291, 15607135493, + 15607266583, 15607397669, 15607528751, 15607659857, 15607790941, 15607922041, 15608053121, + 15608184197, 15608315287, 15608446361, 15608577437, 15608708509, 15608839583, 15608970709, + 15609101789, 15609232879, 15609363967, 15609495071, 15609626143, 15609757253, 15609888373, + 15610019489, 15610150573, 15610281653, 15610412743, 15610543853, 15610674967, 15610806073, + 15610937161, 15611068247, 15611199367, 15611330491, 15611461571, 15611592671, 15611723759, + 15611854859, 15611985941, 15612117013, 15612248137, 15612379219, 15612510293, 15612641389, + 15612772471, 15612903557, 15613034629, 15613165709, 15613296799, 15613427873, 15613558957, + 15613690031, 15613821103, 15613952213, 15614083291, 15614214389, 15614345477, 15614476561, + 15614607677, 15614738753, 15614869847, 15615000949, 15615132053, 15615263129, 15615394231, + 15615525361, 15615656473, 15615787549, 15615918631, 15616049711, 15616180787, 15616311859, + 15616442983, 15616574081, 15616705171, 15616836253, 15616967383, 15617098499, 15617229587, + 15617360677, 15617491781, 15617622859, 15617753947, 15617885021, 15618016129, 15618147241, + 15618278323, 15618409399, 15618540523, 15618671633, 15618802729, 15618933823, 15619064927, + 15619196003, 15619327081, 15619458181, 15619589261, 15619720367, 15619851449, 15619982531, + 15620113609, 15620244779, 15620375851, 15620507027, 15620638147, 15620769221, 15620900299, + 15621031381, 15621162463, 15621293537, 15621424619, 15621555701, 15621686783, 15621817873, + 15621948949, 15622080037, 15622211167, 15622342243, 15622473329, 15622604401, 15622735477, + 15622866557, 15622997629, 15623128709, 15623259787, 15623390863, 15623521939, 15623653091, + 15623784223, 15623915309, 15624046391, 15624177473, 15624308591, 15624439669, 15624570743, + 15624701893, 15624833053, 15624964151, 15625095229, 15625226333, 15625357417, 15625488491, + 15625619563, 15625750639, 15625881763, 15626012869, 15626143957, 15626275057, 15626406161, + 15626537263, 15626668339, 15626799481, 15626930623, 15627061699, 15627192799, 15627323903, + 15627454979, 15627586063, 15627717139, 15627848219, 15627979321, 15628110397, 15628241479, + 15628372559, 15628503641, 15628634759, 15628765937, 15628897019, 15629028101, 15629159179, + 15629290331, 15629421419, 15629552527, 15629683631, 15629814719, 15629945869, 15630076967, + 15630208057, 15630339143, 15630470279, 15630601361, 15630732463, 15630863543, 15630994619, + 15631125781, 15631256857, 15631387931, 15631519021, 15631650109, 15631781227, 15631912333, + 15632043431, 15632174561, 15632305643, 15632436769, 15632567911, 15632698987, 15632830139, + 15632961271, 15633092357, 15633223429, 15633354511, 15633485587, 15633616667, 15633747797, + 15633878893, 15634009967, 15634141093, 15634272167, 15634403261, 15634534361, 15634665433, + 15634796537, 15634927619, 15635058701, 15635189809, 15635320891, 15635451983, 15635583059, + 15635714161, 15635845241, 15635976353, 15636107441, 15636238619, 15636369691, 15636500777, + 15636631853, 15636762991, 15636894089, 15637025171, 15637156243, 15637287401, 15637418477, + 15637549579, 15637680659, 15637811747, 15637942823, 15638073923, 15638205007, 15638336081, + 15638467153, 15638598259, 15638729363, 15638860451, 15638991629, 15639122731, 15639253859, + 15639384931, 15639516029, 15639647147, 15639778223, 15639909319, 15640040393, 15640171493, + 15640302569, 15640433647, 15640564721, 15640695797, 15640826881, 15640957957, 15641089039, + 15641220113, 15641351189, 15641482267, 15641613347, 15641744423, 15641875511, 15642006607, + 15642137717, 15642268813, 15642399937, 15642531029, 15642662173, 15642793249, 15642924329, + 15643055419, 15643186513, 15643317623, 15643448701, 15643579813, 15643710893, 15643841981, + 15643973113, 15644104219, 15644235301, 15644366377, 15644497481, 15644628569, 15644759651, + 15644890777, 15645021881, 15645152993, 15645284099, 15645415199, 15645546283, 15645677387, + 15645808471, 15645939577, 15646070653, 15646201793, 15646332869, 15646463941, 15646595017, + 15646726103, 15646857209, 15646988323, 15647119409, 15647250523, 15647381599, 15647512679, + 15647643757, 15647774837, 15647905909, 15648037021, 15648168097, 15648299231, 15648430309, + 15648561391, 15648692473, 15648823573, 15648954689, 15649085773, 15649216871, 15649347947, + 15649479031, 15649610153, 15649741249, 15649872347, 15650003419, 15650134517, 15650265607, + 15650396683, 15650527757, 15650658857, 15650789939, 15650921029, 15651052103, 15651183193, + 15651314281, 15651445357, 15651576467, 15651707549, 15651838661, 15651969743, 15652100833, + 15652231909, 15652362989, 15652494061, 15652625143, 15652756261, 15652887359, 15653018441, + 15653149513, 15653280607, 15653411773, 15653542871, 15653674019, 15653805109, 15653936219, + 15654067309, 15654198389, 15654329473, 15654460609, 15654591707, 15654722779, 15654853871, + 15654984953, 15655116047, 15655247131, 15655378243, 15655509341, 15655640447, 15655771531, + 15655902673, 15656033753, 15656164831, 15656295943, 15656427097, 15656558179, 15656689253, + 15656820331, 15656951447, 15657082561, 15657213641, 15657344719, 15657475819, 15657606929, + 15657738059, 15657869179, 15658000261, 15658131407, 15658262479, 15658393571, 15658524649, + 15658655731, 15658786811, 15658917913, 15659049013, 15659180099, 15659311177, 15659442329, + 15659573417, 15659704493, 15659835571, 15659966659, 15660097741, 15660228821, 15660359933, + 15660491029, 15660622127, 15660753221, 15660884329, 15661015427, 15661146509, 15661277633, + 15661408717, 15661539827, 15661670909, 15661802027, 15661933121, 15662064259, 15662195359, + 15662326469, 15662457563, 15662588639, 15662719741, 15662850851, 15662981927, 15663113003, + 15663244147, 15663375227, 15663506377, 15663637453, 15663768563, 15663899639, 15664030717, + 15664161809, 15664292921, 15664424003, 15664555091, 15664686179, 15664817269, 15664948379, + 15665079467, 15665210579, 15665341661, 15665472737, 15665603893, 15665734969, 15665866043, + 15665997121, 15666128213, 15666259313, 15666390427, 15666521501, 15666652613, 15666783733, + 15666914821, 15667045903, 15667177003, 15667308079, 15667439231, 15667570309, 15667701391, + 15667832501, 15667963583, 15668094667, 15668225773, 15668356871, 15668488009, 15668619089, + 15668750173, 15668881253, 15669012427, 15669143537, 15669274627, 15669405757, 15669536843, + 15669667957, 15669799031, 15669930119, 15670061191, 15670192271, 15670323343, 15670454431, + 15670585507, 15670716587, 15670847671, 15670978753, 15671109859, 15671240939, 15671372113, + 15671503189, 15671634281, 15671765353, 15671896447, 15672027559, 15672158639, 15672289741, + 15672420833, 15672551929, 15672683003, 15672814093, 15672945173, 15673076261, 15673207349, + 15673338437, 15673469561, 15673600633, 15673731707, 15673862779, 15673993861, 15674124937, + 15674256043, 15674387119, 15674518219, 15674649311, 15674780399, 15674911477, 15675042587, + 15675173659, 15675304823, 15675435901, 15675566987, 15675698083, 15675829187, 15675960259, + 15676091359, 15676222453, 15676353527, 15676484599, 15676615681, 15676746769, 15676877861, + 15677008933, 15677140007, 15677271091, 15677402171, 15677533243, 15677664319, 15677795423, + 15677926499, 15678057641, 15678188759, 15678319837, 15678450943, 15678582043, 15678713119, + 15678844211, 15678975331, 15679106467, 15679237573, 15679368673, 15679499761, 15679630867, + 15679761941, 15679893059, 15680024159, 15680155243, 15680286353, 15680417471, 15680548547, + 15680679631, 15680810723, 15680941849, 15681072931, 15681204037, 15681335123, 15681466253, + 15681597341, 15681728429, 15681859537, 15681990619, 15682121701, 15682252783, 15682383869, + 15682514951, 15682646027, 15682777109, 15682908181, 15683039263, 15683170337, 15683301421, + 15683432503, 15683563583, 15683694671, 15683825743, 15683956817, 15684087901, 15684219011, + 15684350153, 15684481229, 15684612323, 15684743411, 15684874493, 15685005601, 15685136737, + 15685267817, 15685398889, 15685529963, 15685661039, 15685792123, 15685923217, 15686054311, + 15686185399, 15686316493, 15686447597, 15686578681, 15686709763, 15686840861, 15686971933, + 15687103021, 15687234113, 15687365189, 15687496261, 15687627377, 15687758467, 15687889549, + 15688020661, 15688151767, 15688282853, 15688413929, 15688545017, 15688676147, 15688807259, + 15688938347, 15689069437, 15689200517, 15689331599, 15689462681, 15689593757, 15689724859, + 15689855941, 15689987099, 15690118229, 15690249313, 15690380441, 15690511517, 15690642599, + 15690773671, 15690904799, 15691035883, 15691166969, 15691298059, 15691429133, 15691560217, + 15691691297, 15691822373, 15691953461, 15692084537, 15692215633, 15692346713, 15692477803, + 15692608907, 15692740009, 15692871083, 15693002179, 15693133259, 15693264337, 15693395413, + 15693526507, 15693657607, 15693788681, 15693919781, 15694050857, 15694181953, 15694313029, + 15694444123, 15694575223, 15694706303, 15694837391, 15694968467, 15695099543, 15695230633, + 15695361709, 15695492801, 15695623883, 15695754989, 15695886091, 15696017243, 15696148339, + 15696279421, 15696410497, 15696541571, 15696672647, 15696803719, 15696934807, 15697065883, + 15697197023, 15697328099, 15697459177, 15697590253, 15697721381, 15697852481, 15697983607, + 15698114681, 15698245789, 15698376887, 15698507987, 15698639087, 15698770181, 15698901289, + 15699032383, 15699163457, 15699294551, 15699425627, 15699556709, 15699687823, 15699818899, + 15699950003, 15700081093, 15700212191, 15700343287, 15700474369, 15700605457, 15700736533, + 15700867621, 15700998713, 15701129797, 15701260879, 15701391971, 15701523043, 15701654159, + 15701785243, 15701916379, 15702047453, 15702178567, 15702309647, 15702440753, 15702571847, + 15702702929, 15702834053, 15702965129, 15703096237, 15703227311, 15703358443, 15703489519, + 15703620629, 15703751711, 15703882783, 15704013917, 15704145001, 15704276111, 15704407183, + 15704538257, 15704669329, 15704800409, 15704931497, 15705062591, 15705193697, 15705324781, + 15705455893, 15705586991, 15705718099, 15705849193, 15705980293, 15706111387, 15706242463, + 15706373621, 15706504763, 15706635859, 15706766941, 15706898021, 15707029099, 15707160173, + 15707291267, 15707422351, 15707553443, 15707684539, 15707815631, 15707946719, 15708077867, + 15708208951, 15708340157, 15708471269, 15708602341, 15708733423, 15708864499, 15708995591, + 15709126669, 15709257749, 15709388833, 15709519909, 15709651007, 15709782083, 15709913159, + 15710044309, 15710175389, 15710306473, 15710437571, 15710568661, 15710699791, 15710830909, + 15710961983, 15711093059, 15711224147, 15711355277, 15711486353, 15711617429, 15711748513, + 15711879593, 15712010711, 15712141801, 15712272893, 15712403981, 15712535053, 15712666127, + 15712797209, 15712928293, 15713059367, 15713190461, 15713321543, 15713452621, 15713583731, + 15713714803, 15713845877, 15713976989, 15714108079, 15714239173, 15714370283, 15714501373, + 15714632449, 15714763549, 15714894641, 15715025713, 15715156789, 15715287871, 15715418963, + 15715550041, 15715681153, 15715812263, 15715943357, 15716074463, 15716205541, 15716336641, + 15716467729, 15716598803, 15716729929, 15716861011, 15716992117, 15717123223, 15717254297, + 15717385391, 15717516469, 15717647549, 15717778631, 15717909707, 15718040837, 15718171919, + 15718302991, 15718434089, 15718565173, 15718696267, 15718827347, 15718958429, 15719089523, + 15719220599, 15719351671, 15719482777, 15719613857, 15719744951, 15719876027, 15720007153, + 15720138229, 15720269303, 15720400393, 15720531469, 15720662549, 15720793643, 15720924721, + 15721055809, 15721186907, 15721318013, 15721449097, 15721580239, 15721711321, 15721842407, + 15721973503, 15722104609, 15722235719, 15722366833, 15722497927, 15722629001, 15722760077, + 15722891159, 15723022247, 15723153337, 15723284431, 15723415507, 15723546583, 15723677659, + 15723808733, 15723939821, 15724070909, 15724201981, 15724333069, 15724464167, 15724595239, + 15724726327, 15724857403, 15724988533, 15725119607, 15725250727, 15725381813, 15725512897, + 15725643971, 15725775067, 15725906153, 15726037231, 15726168317, 15726299389, 15726430477, + 15726561553, 15726692633, 15726823711, 15726954787, 15727085867, 15727216951, 15727348031, + 15727479113, 15727610191, 15727741291, 15727872451, 15728003539, 15728134637, 15728265719, + 15728396807, 15728527907, 15728659027, 15728790113, 15728921207, 15729052279, 15729183433, + 15729314537, 15729445609, 15729576703, 15729707779, 15729838853, 15729969943, 15730101043, + 15730232123, 15730363199, 15730494271, 15730625389, 15730756477, 15730887577, 15731018657, + 15731149747, 15731280833, 15731411909, 15731542987, 15731674111, 15731805211, 15731936299, + 15732067381, 15732198479, 15732329609, 15732460687, 15732591779, 15732722861, 15732853957, + 15732985031, 15733116137, 15733247249, 15733378337, 15733509431, 15733640557, 15733771631, + 15733902707, 15734033789, 15734164867, 15734295959, 15734427083, 15734558219, 15734689331, + 15734820427, 15734951501, 15735082591, 15735213671, 15735344783, 15735475909, 15735607009, + 15735738127, 15735869203, 15736000337, 15736131457, 15736262561, 15736393633, 15736524709, + 15736655791, 15736786907, 15736917983, 15737049061, 15737180159, 15737311273, 15737442377, + 15737573473, 15737704553, 15737835653, 15737966747, 15738097831, 15738228923, 15738360049, + 15738491147, 15738622223, 15738753311, 15738884387, 15739015469, 15739146569, 15739277681, + 15739408787, 15739539863, 15739670971, 15739802047, 15739933159, 15740064233, 15740195333, + 15740326451, 15740457589, 15740588671, 15740719837, 15740850949, 15740982067, 15741113173, + 15741244249, 15741375323, 15741506413, 15741637501, 15741768587, 15741899659, 15742030739, + 15742161817, 15742292911, 15742423987, 15742555117, 15742686199, 15742817297, 15742948411, + 15743079553, 15743210629, 15743341729, 15743472839, 15743603917, 15743734997, 15743866079, + 15743997229, 15744128303, 15744259379, 15744390481, 15744521557, 15744652633, 15744783709, + 15744914791, 15745045871, 15745176961, 15745308041, 15745439119, 15745570219, 15745701313, + 15745832423, 15745963549, 15746094643, 15746225731, 15746356891, 15746487971, 15746619059, + 15746750141, 15746881247, 15747012349, 15747143443, 15747274591, 15747405673, 15747536759, + 15747667847, 15747798931, 15747930013, 15748061093, 15748192181, 15748323259, 15748454341, + 15748585429, 15748716509, 15748847689, 15748978769, 15749109851, 15749240981, 15749372057, + 15749503151, 15749634233, 15749765309, 15749896387, 15750027463, 15750158537, 15750289619, + 15750420701, 15750551783, 15750682861, 15750813941, 15750945017, 15751076093, 15751207169, + 15751338271, 15751469347, 15751600451, 15751731547, 15751862627, 15751993703, 15752124797, + 15752255887, 15752387029, 15752518109, 15752649271, 15752780353, 15752911429, 15753042511, + 15753173609, 15753304703, 15753435779, 15753566897, 15753697969, 15753829087, 15753960191, + 15754091273, 15754222397, 15754353479, 15754484563, 15754615663, 15754746739, 15754877867, + 15755008939, 15755140019, 15755271109, 15755402189, 15755533303, 15755664389, 15755795521, + 15755926597, 15756057677, 15756188759, 15756319847, 15756450937, 15756582013, 15756713087, + 15756844183, 15756975277, 15757106389, 15757237499, 15757368577, 15757499657, 15757630729, + 15757761809, 15757892933, 15758024011, 15758155087, 15758286227, 15758417347, 15758548423, + 15758679523, 15758810611, 15758941687, 15759072767, 15759203893, 15759335021, 15759466109, + 15759597181, 15759728273, 15759859393, 15759990481, 15760121561, 15760252637, 15760383719, + 15760514831, 15760645919, 15760777031, 15760908103, 15761039191, 15761170277, 15761301383, + 15761432461, 15761563541, 15761694643, 15761825731, 15761956817, 15762087907, 15762218981, + 15762350059, 15762481153, 15762612251, 15762743357, 15762874433, 15763005521, 15763136617, + 15763267691, 15763398769, 15763529867, 15763660963, 15763792039, 15763923113, 15764054221, + 15764185319, 15764316391, 15764447467, 15764578541, 15764709707, 15764840789, 15764971889, + 15765103001, 15765234193, 15765365303, 15765496379, 15765627481, 15765758557, 15765889631, + 15766020709, 15766151789, 15766282867, 15766413947, 15766545029, 15766676119, 15766807207, + 15766938293, 15767069393, 15767200481, 15767331563, 15767462657, 15767593729, 15767724809, + 15767855951, 15767987029, 15768118117, 15768249191, 15768380293, 15768511379, 15768642467, + 15768773561, 15768904637, 15769035719, 15769166801, 15769297967, 15769429057, 15769560137, + 15769691209, 15769822303, 15769953443, 15770084521, 15770215619, 15770346733, 15770477851, + 15770608939, 15770740087, 15770871161, 15771002239, 15771133319, 15771264401, 15771395473, + 15771526553, 15771657631, 15771788723, 15771919799, 15772050893, 15772182007, 15772313093, + 15772444169, 15772575277, 15772706351, 15772837429, 15772968511, 15773099611, 15773230699, + 15773361823, 15773492923, 15773624021, 15773755147, 15773886229, 15774017309, 15774148381, + 15774279461, 15774410563, 15774541691, 15774672799, 15774803881, 15774934969, 15775066061, + 15775197133, 15775328237, 15775459313, 15775590401, 15775721473, 15775852621, 15775983739, + 15776114833, 15776245913, 15776377021, 15776508103, 15776639191, 15776770267, 15776901383, + 15777032473, 15777163579, 15777294691, 15777425767, 15777556867, 15777687943, 15777819023, + 15777950137, 15778081211, 15778212337, 15778343431, 15778474507, 15778605581, 15778736653, + 15778867771, 15778998847, 15779129929, 15779261011, 15779392103, 15779523197, 15779654273, + 15779785349, 15779916437, 15780047519, 15780178591, 15780309697, 15780440771, 15780571843, + 15780702929, 15780834029, 15780965111, 15781096193, 15781227269, 15781358377, 15781489459, + 15781620587, 15781751659, 15781882751, 15782013827, 15782144941, 15782276047, 15782407129, + 15782538203, 15782669317, 15782800403, 15782931523, 15783062611, 15783193687, 15783324797, + 15783455881, 15783586963, 15783718087, 15783849167, 15783980341, 15784111417, 15784242493, + 15784373587, 15784504661, 15784635743, 15784766821, 15784897901, 15785028991, 15785160071, + 15785291149, 15785422229, 15785553319, 15785684417, 15785815489, 15785946593, 15786077683, + 15786208787, 15786339887, 15786470983, 15786602063, 15786733141, 15786864227, 15786995317, + 15787126393, 15787257467, 15787388557, 15787519639, 15787650727, 15787781819, 15787912891, + 15788043979, 15788175071, 15788306153, 15788437267, 15788568361, 15788699441, 15788830517, + 15788961589, 15789092747, 15789223837, 15789354913, 15789486047, 15789617141, 15789748237, + 15789879311, 15790010407, 15790141481, 15790272557, 15790403639, 15790534751, 15790665833, + 15790796909, 15790927993, 15791059073, 15791190179, 15791321281, 15791452381, 15791583491, + 15791714573, 15791845661, 15791976751, 15792107827, 15792238921, 15792370019, 15792501091, + 15792632179, 15792763253, 15792894329, 15793025401, 15793156493, 15793287569, 15793418651, + 15793549753, 15793680853, 15793811939, 15793943057, 15794074151, 15794205247, 15794336333, + 15794467411, 15794598539, 15794729641, 15794860727, 15794991803, 15795122951, 15795254029, + 15795385103, 15795516239, 15795647323, 15795778417, 15795909517, 15796040591, 15796171691, + 15796302787, 15796433897, 15796564999, 15796696103, 15796827199, 15796958323, 15797089493, + 15797220581, 15797351663, 15797482769, 15797613847, 15797744929, 15797876027, 15798007111, + 15798138217, 15798269299, 15798400391, 15798531467, 15798662563, 15798793657, 15798924767, + 15799055843, 15799186919, 15799318019, 15799449101, 15799580177, 15799711253, 15799842427, + 15799973521, 15800104637, 15800235751, 15800366839, 15800497919, 15800628997, 15800760139, + 15800891221, 15801022301, 15801153449, 15801284539, 15801415639, 15801546713, 15801677819, + 15801808903, 15801939991, 15802071079, 15802202153, 15802333237, 15802464313, 15802595399, + 15802726477, 15802857557, 15802988629, 15803119711, 15803250821, 15803381897, 15803512969, + 15803644049, 15803775227, 15803906351, 15804037423, 15804168521, 15804299633, 15804430709, + 15804561793, 15804692887, 15804824029, 15804955109, 15805086181, 15805217287, 15805348367, + 15805479463, 15805610539, 15805741639, 15805872721, 15806003797, 15806134871, 15806265947, + 15806397029, 15806528113, 15806659201, 15806790277, 15806921363, 15807052463, 15807183547, + 15807314639, 15807445739, 15807576821, 15807707899, 15807838999, 15807970097, 15808101187, + 15808232333, 15808363447, 15808494521, 15808625593, 15808756669, 15808887749, 15809018821, + 15809149897, 15809280973, 15809412053, 15809543149, 15809674277, 15809805383, 15809936533, + 15810067619, 15810198697, 15810329863, 15810460949, 15810592033, 15810723109, 15810854197, + 15810985277, 15811116367, 15811247497, 15811378577, 15811509677, 15811640777, 15811771853, + 15811902937, 15812034011, 15812165087, 15812296189, 15812427271, 15812558369, 15812689441, + 15812820533, 15812951617, 15813082693, 15813213769, 15813344849, 15813475961, 15813607037, + 15813738137, 15813869209, 15814000291, 15814131419, 15814262539, 15814393649, 15814524743, + 15814655821, 15814786903, 15814917983, 15815049091, 15815180177, 15815311249, 15815442341, + 15815573437, 15815704511, 15815835593, 15815966671, 15816097757, 15816228847, 15816359939, + 15816491051, 15816622123, 15816753209, 15816884297, 15817015387, 15817146473, 15817277551, + 15817408639, 15817539713, 15817670821, 15817801907, 15817932979, 15818064107, 15818195209, + 15818326289, 15818457371, 15818588459, 15818719541, 15818850617, 15818981707, 15819112783, + 15819243919, 15819374993, 15819506071, 15819637151, 15819768247, 15819899357, 15820030451, + 15820161523, 15820292603, 15820423687, 15820554793, 15820685879, 15820816951, 15820948049, + 15821079149, 15821210227, 15821341309, 15821472389, 15821603593, 15821734667, 15821865749, + 15821996831, 15822127907, 15822258997, 15822390079, 15822521161, 15822652259, 15822783343, + 15822914417, 15823045519, 15823176601, 15823307761, 15823438837, 15823569941, 15823701053, + 15823832131, 15823963219, 15824094331, 15824225437, 15824356519, 15824487593, 15824618671, + 15824749771, 15824880857, 15825011933, 15825143057, 15825274147, 15825405313, 15825536399, + 15825667541, 15825798629, 15825929737, 15826060841, 15826191917, 15826323041, 15826454117, + 15826585199, 15826716281, 15826847363, 15826978451, 15827109523, 15827240599, 15827371699, + 15827502791, 15827633911, 15827764987, 15827896061, 15828027133, 15828158237, 15828289417, + 15828420547, 15828551663, 15828682747, 15828813821, 15828944893, 15829075967, 15829207049, + 15829338157, 15829469237, 15829600327, 15829731419, 15829862501, 15829993573, 15830124649, + 15830255731, 15830386837, 15830517919, 15830649017, 15830780093, 15830911171, 15831042257, + 15831173333, 15831304487, 15831435563, 15831566677, 15831697757, 15831828841, 15831959939, + 15832091029, 15832222117, 15832353203, 15832484281, 15832615361, 15832746473, 15832877549, + 15833008637, 15833139719, 15833270813, 15833401889, 15833532961, 15833664053, 15833795143, + 15833926223, 15834057301, 15834188527, 15834319603, 15834450691, 15834581773, 15834712969, + 15834844049, 15834975157, 15835106281, 15835237357, 15835368431, 15835499521, 15835630619, + 15835761703, 15835892789, 15836023873, 15836154947, 15836286049, 15836417147, 15836548243, + 15836679317, 15836810393, 15836941517, 15837072607, 15837203693, 15837334783, 15837465871, + 15837596947, 15837728041, 15837859129, 15837990229, 15838121303, 15838252421, 15838383497, + 15838514597, 15838645673, 15838776761, 15838907863, 15839038967, 15839170043, 15839301143, + 15839432233, 15839563319, 15839694407, 15839825489, 15839956589, 15840087691, 15840218791, + 15840349867, 15840480941, 15840612017, 15840743111, 15840874201, 15841005277, 15841136359, + 15841267433, 15841398553, 15841529629, 15841660721, 15841791793, 15841922869, 15842053949, + 15842185127, 15842316199, 15842447281, 15842578363, 15842709499, 15842840581, 15842971679, + 15843102763, 15843233851, 15843364949, 15843496051, 15843627167, 15843758251, 15843889331, + 15844020427, 15844151501, 15844282579, 15844413667, 15844544753, 15844675831, 15844806907, + 15844937987, 15845069083, 15845200199, 15845331277, 15845462351, 15845593429, 15845724511, + 15845855651, 15845986777, 15846117863, 15846248989, 15846380063, 15846511141, 15846642221, + 15846773321, 15846904393, 15847035467, 15847166549, 15847297633, 15847428719, 15847559807, + 15847690879, 15847821961, 15847953073, 15848084173, 15848215277, 15848346413, 15848477501, + 15848608591, 15848739671, 15848870761, 15849001849, 15849132953, 15849264031, 15849395117, + 15849526243, 15849657319, 15849788399, 15849919471, 15850050563, 15850181651, 15850312727, + 15850443803, 15850574881, 15850705957, 15850837049, 15850968131, 15851099269, 15851230393, + 15851361499, 15851492617, 15851623757, 15851754833, 15851885957, 15852017029, 15852148111, + 15852279197, 15852410279, 15852541363, 15852672463, 15852803537, 15852934693, 15853065779, + 15853196861, 15853327969, 15853459043, 15853590127, 15853721203, 15853852283, 15853983359, + 15854114443, 15854245523, 15854376623, 15854507719, 15854638843, 15854769947, 15854901037, + 15855032131, 15855163267, 15855294361, 15855425441, 15855556517, 15855687599, 15855818731, + 15855949853, 15856080943, 15856212037, 15856343131, 15856474211, 15856605293, 15856736381, + 15856867459, 15856998569, 15857129669, 15857260759, 15857391857, 15857522953, 15857654041, + 15857785117, 15857916203, 15858047339, 15858178417, 15858309497, 15858440579, 15858571657, + 15858702749, 15858833867, 15858964949, 15859096021, 15859227103, 15859358183, 15859489267, + 15859620347, 15859751419, 15859882513, 15860013623, 15860144749, 15860275829, 15860406941, + 15860538017, 15860669089, 15860800169, 15860931257, 15861062341, 15861193417, 15861324491, + 15861455579, 15861586681, 15861717761, 15861848881, 15861979967, 15862111039, 15862242127, + 15862373203, 15862504291, 15862635401, 15862766473, 15862897549, 15863028667, 15863159743, + 15863290823, 15863421901, 15863552987, 15863684077, 15863815153, 15863946247, 15864077347, + 15864208421, 15864339499, 15864470591, 15864601663, 15864732743, 15864863851, 15864994979, + 15865126061, 15865257151, 15865388239, 15865519333, 15865650407, 15865781479, 15865912553, + 15866043643, 15866174747, 15866305831, 15866436917, 15866568001, 15866699087, 15866830211, + 15866961289, 15867092369, 15867223447, 15867354539, 15867485639, 15867616729, 15867747821, + 15867878893, 15868009987, 15868141067, 15868272187, 15868403263, 15868534379, 15868665493, + 15868796609, 15868927691, 15869058769, 15869189873, 15869320993, 15869452069, 15869583269, + 15869714351, 15869845447, 15869976523, 15870107609, 15870238693, 15870369769, 15870500873, + 15870631949, 15870763037, 15870894113, 15871025207, 15871156339, 15871287413, 15871418543, + 15871549621, 15871680697, 15871811777, 15871942871, 15872073949, 15872205029, 15872336111, + 15872467207, 15872598281, 15872729357, 15872860439, 15872991521, 15873122593, 15873253673, + 15873384811, 15873515897, 15873646979, 15873778051, 15873909131, 15874040227, 15874171301, + 15874302391, 15874433473, 15874564547, 15874695623, 15874826701, 15874957783, 15875088863, + 15875219951, 15875351039, 15875482141, 15875613227, 15875744317, 15875875417, 15876006499, + 15876137603, 15876268687, 15876399863, 15876530941, 15876662017, 15876793133, 15876924227, + 15877055303, 15877186379, 15877317479, 15877448551, 15877579631, 15877710703, 15877841779, + 15877972853, 15878103937, 15878235049, 15878366149, 15878497231, 15878628307, 15878759399, + 15878890481, 15879021577, 15879152669, 15879283741, 15879414821, 15879545911, 15879677041, + 15879808127, 15879939199, 15880070279, 15880201361, 15880332499, 15880463611, 15880594699, + 15880725799, 15880856881, 15880987973, 15881119061, 15881250139, 15881381233, 15881512337, + 15881643509, 15881774603, 15881905681, 15882036773, 15882167879, 15882298963, 15882430061, + 15882561137, 15882692209, 15882823337, 15882954427, 15883085579, 15883216681, 15883347757, + 15883478869, 15883609967, 15883741057, 15883872143, 15884003243, 15884134363, 15884265457, + 15884396531, 15884527619, 15884658709, 15884789803, 15884920963, 15885052091, 15885183169, + 15885314257, 15885445403, 15885576479, 15885707573, 15885838691, 15885969773, 15886100941, + 15886232053, 15886363127, 15886494241, 15886625393, 15886756537, 15886887647, 15887018723, + 15887149823, 15887280943, 15887412029, 15887543141, 15887674217, 15887805293, 15887936369, + 15888067453, 15888198539, 15888329627, 15888460699, 15888591779, 15888722873, 15888854011, + 15888985103, 15889116209, 15889247317, 15889378391, 15889509469, 15889640561, 15889771661, + 15889902757, 15890033891, 15890164963, 15890296039, 15890427121, 15890558213, 15890689291, + 15890820389, 15890951507, 15891082601, 15891213683, 15891344761, 15891475879, 15891606971, + 15891738061, 15891869137, 15892000247, 15892131329, 15892262401, 15892393483, 15892524577, + 15892655651, 15892786727, 15892917829, 15893048903, 15893179987, 15893311097, 15893442181, + 15893573261, 15893704357, 15893835437, 15893966513, 15894097619, 15894228719, 15894359837, + 15894490921, 15894622019, 15894753113, 15894884219, 15895015291, 15895146373, 15895277467, + 15895408549, 15895539629, 15895670711, 15895801841, 15895932919, 15896064017, 15896195089, + 15896326177, 15896457253, 15896588329, 15896719453, 15896850601, 15896981687, 15897112799, + 15897243919, 15897375001, 15897506077, 15897637163, 15897768251, 15897899323, 15898030409, + 15898161509, 15898292581, 15898423661, 15898554757, 15898685861, 15898816933, 15898948031, + 15899079127, 15899210231, 15899341309, 15899472437, 15899603521, 15899734597, 15899865673, + 15899996771, 15900127849, 15900258929, 15900390001, 15900521113, 15900652193, 15900783271, + 15900914377, 15901045453, 15901176527, 15901307599, 15901438727, 15901569811, 15901700939, + 15901832033, 15901963313, 15902094419, 15902225491, 15902356571, 15902487649, 15902618723, + 15902749817, 15902880899, 15903012007, 15903143117, 15903274253, 15903405341, 15903536423, + 15903667499, 15903798611, 15903929683, 15904060793, 15904191881, 15904322963, 15904454039, + 15904585121, 15904716271, 15904847347, 15904978493, 15905109587, 15905240753, 15905371843, + 15905502917, 15905634001, 15905765077, 15905896187, 15906027259, 15906158357, 15906289429, + 15906420521, 15906551599, 15906682697, 15906813877, 15906944957, 15907076041, 15907207157, + 15907338259, 15907469339, 15907600411, 15907731503, 15907862657, 15907993811, 15908124917, + 15908256017, 15908387093, 15908518201, 15908649307, 15908780411, 15908911511, 15909042593, + 15909173701, 15909304777, 15909435877, 15909566983, 15909698059, 15909829163, 15909960239, + 15910091311, 15910222399, 15910353493, 15910484591, 15910615681, 15910746767, 15910877849, + 15911008921, 15911140013, 15911271097, 15911402219, 15911533307, 15911664413, 15911795519, + 15911926619, 15912057697, 15912188783, 15912319873, 15912450947, 15912582053, 15912713147, + 15912844219, 15912975347, 15913106459, 15913237531, 15913368613, 15913499713, 15913630807, + 15913761881, 15913892959, 15914024059, 15914155139, 15914286217, 15914417317, 15914548423, + 15914679497, 15914810573, 15914941699, 15915072773, 15915203869, 15915334949, 15915466037, + 15915597119, 15915728203, 15915859291, 15915990379, 15916121503, 15916252591, 15916383673, + 15916514753, 15916645831, 15916776907, 15916907989, 15917039077, 15917170151, 15917301223, + 15917432341, 15917563423, 15917694503, 15917825603, 15917956697, 15918087769, 15918218843, + 15918349943, 15918481021, 15918612097, 15918743171, 15918874247, 15919005337, 15919136459, + 15919267537, 15919398701, 15919529777, 15919660871, 15919791971, 15919923073, 15920054159, + 15920185271, 15920316343, 15920447437, 15920578549, 15920709647, 15920840723, 15920971921, + 15921103027, 15921234127, 15921365219, 15921496309, 15921627443, 15921758521, 15921889609, + 15922020703, 15922151779, 15922282897, 15922413977, 15922545077, 15922676179, 15922807259, + 15922938359, 15923069467, 15923200543, 15923331617, 15923462689, 15923593783, 15923724893, + 15923856029, 15923987129, 15924118219, 15924249311, 15924380393, 15924511483, 15924642563, + 15924773653, 15924904729, 15925035881, 15925166969, 15925298069, 15925429153, 15925560227, + 15925691311, 15925822391, 15925953493, 15926084597, 15926215673, 15926346749, 15926477849, + 15926608939, 15926740019, 15926871091, 15927002171, 15927133253, 15927264389, 15927395527, + 15927526621, 15927657701, 15927788777, 15927919907, 15928051001, 15928182097, 15928313201, + 15928444309, 15928575413, 15928706491, 15928837609, 15928968689, 15929099803, 15929230879, + 15929361977, 15929493067, 15929624201, 15929755277, 15929886377, 15930017513, 15930148603, + 15930279679, 15930410773, 15930541871, 15930672943, 15930804061, 15930935143, 15931066223, + 15931197307, 15931328423, 15931459513, 15931590589, 15931721681, 15931852759, 15931983839, + 15932114911, 15932246009, 15932377103, 15932508191, 15932639263, 15932770339, 15932901437, + 15933032551, 15933163661, 15933294739, 15933425819, 15933556907, 15933688003, 15933819103, + 15933950203, 15934081277, 15934212367, 15934343459, 15934474541, 15934605613, 15934736689, + 15934867763, 15934998853, 15935129927, 15935261009, 15935392103, 15935523187, 15935654263, + 15935785343, 15935916421, 15936047531, 15936178627, 15936309731, 15936440809, 15936571891, + 15936702997, 15936834073, 15936965153, 15937096277, 15937227349, 15937358443, 15937489543, + 15937620637, 15937751789, 15937882871, 15938013997, 15938145073, 15938276183, 15938407321, + 15938538409, 15938669503, 15938800589, 15938931677, 15939062773, 15939193849, 15939324923, + 15939456007, 15939587101, 15939718187, 15939849259, 15939980339, 15940111417, 15940242517, + 15940373591, 15940504663, 15940635743, 15940766819, 15940897901, 15941028997, 15941160071, + 15941291161, 15941422247, 15941553349, 15941684441, 15941815531, 15941946611, 15942077731, + 15942208819, 15942339901, 15942470983, 15942602063, 15942733159, 15942864271, 15942995347, + 15943126427, 15943257503, 15943388581, 15943519679, 15943650757, 15943781837, 15943912937, + 15944044037, 15944175113, 15944306207, 15944437279, 15944568359, 15944699443, 15944830543, + 15944961629, 15945092717, 15945223793, 15945354941, 15945486017, 15945617101, 15945748183, + 15945879281, 15946010359, 15946141433, 15946272509, 15946403587, 15946534697, 15946665803, + 15946796891, 15946927987, 15947059061, 15947190151, 15947321233, 15947452307, 15947583383, + 15947714459, 15947845531, 15947976617, 15948107689, 15948238799, 15948369971, 15948501059, + 15948632201, 15948763297, 15948894371, 15949025453, 15949156549, 15949287649, 15949418743, + 15949549831, 15949680917, 15949811989, 15949943089, 15950074171, 15950205251, 15950336323, + 15950467397, 15950598557, 15950729671, 15950860763, 15950991851, 15951122923, 15951254083, + 15951385181, 15951516263, 15951647347, 15951778459, 15951909539, 15952040633, 15952171717, + 15952302833, 15952433911, 15952564993, 15952696073, 15952827169, 15952958279, 15953089393, + 15953220473, 15953351581, 15953482661, 15953613737, 15953744827, 15953875933, 15954007007, + 15954138133, 15954269269, 15954400361, 15954531451, 15954662587, 15954793661, 15954924757, + 15955055833, 15955186921, 15955318033, 15955449113, 15955580191, 15955711349, 15955842421, + 15955973497, 15956104573, 15956235679, 15956366759, 15956497861, 15956628943, 15956760047, + 15956891123, 15957022201, 15957153299, 15957284381, 15957415457, 15957546559, 15957677651, + 15957808729, 15957939821, 15958070917, 15958201991, 15958333081, 15958464163, 15958595269, + 15958726349, 15958857461, 15958988569, 15959119651, 15959250731, 15959381803, 15959512913, + 15959644031, 15959775103, 15959906213, 15960037307, 15960168403, 15960299479, 15960430553, + 15960561709, 15960692801, 15960823883, 15960954973, 15961086077, 15961217161, 15961348241, + 15961479319, 15961610407, 15961741511, 15961872671, 15962003753, 15962134831, 15962265953, + 15962397053, 15962528171, 15962659243, 15962790331, 15962921411, 15963052493, 15963183589, + 15963314677, 15963445759, 15963576887, 15963708011, 15963839147, 15963970219, 15964101347, + 15964232447, 15964363543, 15964494617, 15964625723, 15964756811, 15964887893, 15965018977, + 15965150107, 15965281207, 15965412313, 15965543389, 15965674463, 15965805587, 15965936663, + 15966067753, 15966198841, 15966329917, 15966461029, 15966592163, 15966723263, 15966854339, + 15966985417, 15967116491, 15967247599, 15967378681, 15967509889, 15967640993, 15967772069, + 15967903141, 15968034239, 15968165329, 15968296441, 15968427521, 15968558621, 15968689697, + 15968820779, 15968951857, 15969082933, 15969214021, 15969345109, 15969476209, 15969607327, + 15969738401, 15969869477, 15970000559, 15970131631, 15970262719, 15970393807, 15970524887, + 15970655963, 15970787047, 15970918121, 15971049197, 15971180273, 15971311357, 15971442433, + 15971573507, 15971704607, 15971835679, 15971966753, 15972097837, 15972228917, 15972359993, + 15972491081, 15972622157, 15972753233, 15972884309, 15973015393, 15973146493, 15973277597, + 15973408669, 15973539773, 15973670863, 15973801937, 15973933009, 15974064143, 15974195239, + 15974326339, 15974457437, 15974588519, 15974719591, 15974850691, 15974981779, 15975112871, + 15975243979, 15975375079, 15975506177, 15975637253, 15975768331, 15975899417, 15976030501, + 15976161611, 15976292699, 15976423789, 15976554887, 15976685981, 15976817053, 15976948139, + 15977079289, 15977210399, 15977341477, 15977472587, 15977603687, 15977734793, 15977865889, + 15977996999, 15978128077, 15978259169, 15978390289, 15978521381, 15978652511, 15978783637, + 15978914713, 15979045813, 15979176893, 15979307969, 15979439117, 15979570193, 15979701277, + 15979832359, 15979963477, 15980094553, 15980225629, 15980356703, 15980487811, 15980618887, + 15980749969, 15980881061, 15981012149, 15981143231, 15981274327, 15981405421, 15981536513, + 15981667591, 15981798709, 15981929833, 15982060973, 15982192081, 15982323173, 15982454263, + 15982585369, 15982716523, 15982847611, 15982978699, 15983109803, 15983240879, 15983372003, + 15983503079, 15983634167, 15983765249, 15983896333, 15984027439, 15984158537, 15984289613, + 15984420707, 15984551837, 15984682937, 15984814031, 15984945103, 15985076179, 15985207267, + 15985338349, 15985469449, 15985600541, 15985731617, 15985862693, 15985993781, 15986124877, + 15986256019, 15986387099, 15986518189, 15986649269, 15986780353, 15986911433, 15987042553, + 15987173641, 15987304721, 15987435803, 15987566879, 15987697981, 15987829063, 15987960187, + 15988091267, 15988222343, 15988353461, 15988484539, 15988615613, 15988746689, 15988877797, + 15989008873, 15989139997, 15989271101, 15989402183, 15989533279, 15989664391, 15989795491, + 15989926583, 15990057661, 15990188741, 15990319817, 15990450919, 15990582011, 15990713083, + 15990844157, 15990975271, 15991106347, 15991237441, 15991368517, 15991499611, 15991630729, + 15991761817, 15991892909, 15992023997, 15992155073, 15992286161, 15992417239, 15992548331, + 15992679407, 15992810521, 15992941603, 15993072713, 15993203789, 15993334891, 15993465979, + 15993597091, 15993728213, 15993859307, 15993990391, 15994121471, 15994252591, 15994383677, + 15994514843, 15994645963, 15994777061, 15994908179, 15995039297, 15995170391, 15995301463, + 15995432581, 15995563657, 15995694731, 15995825831, 15995956903, 15996087979, 15996219091, + 15996350179, 15996481309, 15996612389, 15996743491, 15996874609, 15997005683, 15997136759, + 15997267837, 15997398929, 15997530011, 15997661083, 15997792169, 15997923251, 15998054329, + 15998185499, 15998316571, 15998447653, 15998578733, 15998709827, 15998840903, 15998971997, + 15999103139, 15999234241, 15999365341, 15999496507, 15999627583, 15999758669, 15999889747, + 16000020857, 16000151957, 16000283051, 16000414169, 16000545283, 16000676357, 16000807429, + 16000938511, 16001069603, 16001200681, 16001331757, 16001462899, 16001593991, 16001725093, + 16001856251, 16001987327, 16002118403, 16002249493, 16002380593, 16002511667, 16002642757, + 16002773879, 16002904979, 16003036061, 16003167211, 16003298287, 16003429363, 16003560439, + 16003691533, 16003822669, 16003953751, 16004084849, 16004215933, 16004347033, 16004478109, + 16004609191, 16004740273, 16004871353, 16005002459, 16005133567, 16005264641, 16005395729, + 16005526847, 16005657919, 16005789043, 16005920123, 16006051219, 16006182299, 16006313371, + 16006444477, 16006575577, 16006706663, 16006837739, 16006968833, 16007099959, 16007231047, + 16007362177, 16007493289, 16007624377, 16007755471, 16007886553, 16008017629, 16008148711, + 16008279839, 16008410939, 16008542023, 16008673111, 16008804187, 16008935263, 16009066343, + 16009197433, 16009328521, 16009459619, 16009590731, 16009721837, 16009852909, 16009984009, + 16010115119, 16010246227, 16010377307, 16010508379, 16010639453, 16010770537, 16010901637, + 16011032717, 16011163793, 16011294869, 16011425971, 16011557047, 16011688127, 16011819199, + 16011950299, 16012081381, 16012212481, 16012343617, 16012474711, 16012605787, 16012736893, + 16012867967, 16012999069, 16013130223, 16013261311, 16013392477, 16013523563, 16013654687, + 16013785769, 16013916859, 16014047999, 16014179123, 16014310219, 16014441293, 16014572383, + 16014703457, 16014834533, 16014965611, 16015096717, 16015227797, 16015358897, 16015489991, + 16015621081, 16015752161, 16015883249, 16016014349, 16016145503, 16016276579, 16016407669, + 16016538751, 16016669831, 16016800909, 16016931991, 16017063071, 16017194159, 16017325243, + 16017456337, 16017587413, 16017718511, 16017849583, 16017980663, 16018111741, 16018242839, + 16018373951, 16018505029, 16018636187, 16018767263, 16018898383, 16019029459, 16019160559, + 16019291677, 16019422759, 16019553833, 16019684911, 16019816017, 16019947103, 16020078187, + 16020209263, 16020340339, 16020471427, 16020602513, 16020733667, 16020864749, 16020995863, + 16021126939, 16021258013, 16021389119, 16021520197, 16021651277, 16021782349, 16021913461, + 16022044561, 16022175643, 16022306743, 16022437829, 16022568907, 16022699983, 16022831057, + 16022962129, 16023093211, 16023224323, 16023355399, 16023486473, 16023617549, 16023748639, + 16023879721, 16024010837, 16024141937, 16024273037, 16024404113, 16024535227, 16024666303, + 16024797379, 16024928503, 16025059577, 16025190661, 16025321749, 16025452841, 16025583913, + 16025714987, 16025846231, 16025977349, 16026108493, 16026239573, 16026370673, 16026501791, + 16026632893, 16026763981, 16026895081, 16027026163, 16027157243, 16027288363, 16027419449, + 16027550531, 16027681603, 16027812679, 16027943761, 16028074847, 16028205923, 16028337007, + 16028468107, 16028599231, 16028730329, 16028861489, 16028992571, 16029123673, 16029254749, + 16029385831, 16029516911, 16029648043, 16029779201, 16029910307, 16030041439, 16030172539, + 16030303631, 16030434731, 16030565839, 16030696939, 16030828019, 16030959101, 16031090197, + 16031221273, 16031352347, 16031483423, 16031614519, 16031745593, 16031876671, 16032007763, + 16032138869, 16032269947, 16032401029, 16032532111, 16032663209, 16032794317, 16032925397, + 16033056511, 16033187591, 16033318667, 16033449739, 16033580819, 16033711933, 16033843043, + 16033974127, 16034105233, 16034236319, 16034367403, 16034498477, 16034629577, 16034760653, + 16034891771, 16035022909, 16035154027, 16035285109, 16035416227, 16035547331, 16035678413, + 16035809519, 16035940619, 16036071731, 16036202813, 16036333891, 16036464967, 16036596047, + 16036727123, 16036858199, 16036989313, 16037120389, 16037251471, 16037382553, 16037513633, + 16037644717, 16037775811, 16037906933, 16038038041, 16038169139, 16038300211, 16038431303, + 16038562403, 16038693491, 16038824569, 16038955649, 16039086727, 16039217809, 16039348981, + 16039480063, 16039611149, 16039742237, 16039873313, 16040004389, 16040135479, 16040266553, + 16040397641, 16040528719, 16040659799, 16040790889, 16040922061, 16041053153, 16041184231, + 16041315337, 16041446411, 16041577543, 16041708619, 16041839701, 16041970783, 16042101863, + 16042232959, 16042364033, 16042495109, 16042626287, 16042757371, 16042888453, 16043019533, + 16043150633, 16043281741, 16043412877, 16043543951, 16043675033, 16043806109, 16043937211, + 16044068309, 16044199387, 16044330503, 16044461591, 16044592679, 16044723767, 16044854863, + 16044985939, 16045117061, 16045248137, 16045379213, 16045510291, 16045641377, 16045772459, + 16045903589, 16046034661, 16046165783, 16046296873, 16046427961, 16046559059, 16046690171, + 16046821253, 16046952347, 16047083431, 16047214571, 16047345659, 16047476737, 16047607819, + 16047738911, 16047870019, 16048001111, 16048132189, 16048263299, 16048394423, 16048525523, + 16048656619, 16048787693, 16048918777, 16049049853, 16049180929, 16049312063, 16049443139, + 16049574223, 16049705311, 16049836393, 16049967467, 16050098557, 16050229639, 16050360727, + 16050491867, 16050622967, 16050754081, 16050885163, 16051016281, 16051147381, 16051278497, + 16051409603, 16051540711, 16051671803, 16051802881, 16051934009, 16052065097, 16052196197, + 16052327303, 16052458381, 16052589463, 16052720539, 16052851627, 16052982721, 16053113809, + 16053244931, 16053376057, 16053507137, 16053638221, 16053769301, 16053900389, 16054031479, + 16054162559, 16054293643, 16054424717, 16054555793, 16054686881, 16054818001, 16054949077, + 16055080157, 16055211241, 16055342357, 16055473549, 16055604659, 16055735789, 16055866861, + 16055997949, 16056129107, 16056260261, 16056391349, 16056522473, 16056653549, 16056784663, + 16056915737, 16057046869, 16057178041, 16057309123, 16057440197, 16057571377, 16057702477, + 16057833581, 16057964701, 16058095777, 16058226851, 16058357923, 16058489011, 16058620091, + 16058751169, 16058882267, 16059013343, 16059144449, 16059275543, 16059406661, 16059537743, + 16059668827, 16059799901, 16059930989, 16060062079, 16060193159, 16060324243, 16060455329, + 16060586401, 16060717483, 16060848563, 16060979659, 16061110759, 16061241851, 16061372939, + 16061504027, 16061635129, 16061766251, 16061897333, 16062028427, 16062159511, 16062290633, + 16062421717, 16062552809, 16062683881, 16062814981, 16062946073, 16063077179, 16063208261, + 16063339343, 16063470421, 16063601501, 16063732579, 16063863659, 16063994741, 16064125813, + 16064256893, 16064387987, 16064519071, 16064650153, 16064781251, 16064912323, 16065043409, + 16065174493, 16065305587, 16065436663, 16065567769, 16065698903, 16065829987, 16065961097, + 16066092179, 16066223263, 16066354363, 16066485439, 16066616521, 16066747597, 16066878673, + 16067009801, 16067140907, 16067272009, 16067403083, 16067534177, 16067665253, 16067796337, + 16067927431, 16068058519, 16068189593, 16068320677, 16068451757, 16068582833, 16068713909, + 16068844997, 16068976081, 16069107167, 16069238249, 16069369361, 16069500443, 16069631527, + 16069762627, 16069893709, 16070024783, 16070155859, 16070286931, 16070418029, 16070549129, + 16070680231, 16070811307, 16070942389, 16071073477, 16071204557, 16071335633, 16071466709, + 16071597791, 16071728903, 16071859981, 16071991093, 16072122179, 16072253261, 16072384333, + 16072515421, 16072646543, 16072777631, 16072908703, 16073039783, 16073170877, 16073301953, + 16073433029, 16073564113, 16073695217, 16073826313, 16073957387, 16074088463, 16074219619, + 16074350693, 16074481769, 16074612857, 16074743947, 16074875027, 16075006109, 16075137229, + 16075268327, 16075399409, 16075530481, 16075661629, 16075792703, 16075923803, 16076054881, + 16076185991, 16076317067, 16076448139, 16076579243, 16076710333, 16076841413, 16076972491, + 16077103573, 16077234689, 16077365797, 16077496871, 16077627989, 16077759091, 16077890209, + 16078021327, 16078152413, 16078283489, 16078414577, 16078545673, 16078676767, 16078807841, + 16078938913, 16079069989, 16079201063, 16079332147, 16079463287, 16079594387, 16079725471, + 16079856571, 16079987681, 16080118757, 16080249851, 16080380959, 16080512033, 16080643151, + 16080774223, 16080905363, 16081036451, 16081167593, 16081298693, 16081429799, 16081560871, + 16081691947, 16081823057, 16081954157, 16082085251, 16082216323, 16082347409, 16082478481, + 16082609617, 16082740691, 16082871769, 16083002851, 16083133931, 16083265019, 16083396151, + 16083527237, 16083658319, 16083789391, 16083920477, 16084051559, 16084182649, 16084313743, + 16084444879, 16084576003, 16084707091, 16084838233, 16084969321, 16085100397, 16085231521, + 16085362621, 16085493703, 16085624837, 16085755909, 16085887001, 16086018107, 16086149179, + 16086280253, 16086411361, 16086542443, 16086673529, 16086804641, 16086935723, 16087066823, + 16087197967, 16087329061, 16087460153, 16087591237, 16087722317, 16087853407, 16087984483, + 16088115559, 16088246659, 16088377759, 16088508859, 16088639939, 16088771033, 16088902169, + 16089033241, 16089164317, 16089295433, 16089426523, 16089557623, 16089688697, 16089819769, + 16089950843, 16090081921, 16090213003, 16090344119, 16090475207, 16090606289, 16090737389, + 16090868477, 16090999577, 16091130689, 16091261777, 16091392883, 16091523967, 16091655077, + 16091786159, 16091917277, 16092048353, 16092179449, 16092310523, 16092441613, 16092572701, + 16092703789, 16092834887, 16092965981, 16093097077, 16093228157, 16093359241, 16093490327, + 16093621457, 16093752569, 16093883693, 16094014793, 16094145869, 16094276951, 16094408027, + 16094539127, 16094670209, 16094801399, 16094932537, 16095063617, 16095194741, 16095325849, + 16095456931, 16095588029, 16095719149, 16095850237, 16095981313, 16096112453, 16096243589, + 16096374677, 16096505819, 16096636901, 16096767979, 16096899059, 16097030137, 16097161231, + 16097292311, 16097423393, 16097554483, 16097685559, 16097816641, 16097947783, 16098078883, + 16098209957, 16098341059, 16098472211, 16098603299, 16098734383, 16098865459, 16098996547, + 16099127621, 16099258709, 16099389781, 16099520867, 16099651949, 16099783033, 16099914113, + 16100045201, 16100176289, 16100307371, 16100438477, 16100569561, 16100700667, 16100831753, + 16100962841, 16101093913, 16101225001, 16101356099, 16101487183, 16101618317, 16101749399, + 16101880481, 16102011559, 16102142633, 16102273763, 16102404859, 16102535963, 16102667051, + 16102798139, 16102929217, 16103060293, 16103191381, 16103322457, 16103453549, 16103584639, + 16103715743, 16103846821, 16103977913, 16104109001, 16104240079, 16104371189, 16104502289, + 16104633383, 16104764491, 16104895567, 16105026647, 16105157729, 16105288811, 16105419899, + 16105550977, 16105682053, 16105813147, 16105944221, 16106075299, 16106206381, 16106337473, + 16106468597, 16106599669, 16106730797, 16106861873, 16106992963, 16107124037, 16107255119, + 16107386203, 16107517291, 16107648383, 16107779461, 16107910603, 16108041683, 16108172771, + 16108303847, 16108434931, 16108566017, 16108697153, 16108828237, 16108959313, 16109090407, + 16109221523, 16109352613, 16109483693, 16109614769, 16109745881, 16109876987, 16110008071, + 16110139153, 16110270227, 16110401327, 16110532423, 16110663523, 16110794603, 16110925697, + 16111056823, 16111187933, 16111319009, 16111450087, 16111581193, 16111712297, 16111843387, + 16111974481, 16112105573, 16112236661, 16112367737, 16112498851, 16112629927, 16112761001, + 16112892073, 16113023149, 16113154249, 16113285337, 16113416453, 16113547543, 16113678649, + 16113809743, 16113940837, 16114071913, 16114202989, 16114334077, 16114465151, 16114596247, + 16114727341, 16114858447, 16114989523, 16115120597, 16115251693, 16115382769, 16115513857, + 16115644939, 16115776067, 16115907149, 16116038227, 16116169301, 16116300391, 16116431483, + 16116562577, 16116693661, 16116824743, 16116955817, 16117086911, 16117217983, 16117349063, + 16117480157, 16117611241, 16117742317, 16117873393, 16118004527, 16118135599, 16118266693, + 16118397793, 16118528939, 16118660023, 16118791147, 16118922221, 16119053297, 16119184391, + 16119315521, 16119446599, 16119577711, 16119708799, 16119839887, 16119970981, 16120102133, + 16120233209, 16120364311, 16120495387, 16120626493, 16120757591, 16120888681, 16121019779, + 16121150861, 16121281961, 16121413043, 16121544139, 16121675221, 16121806301, 16121937427, + 16122068519, 16122199591, 16122330671, 16122461779, 16122592853, 16122723943, 16122855017, + 16122986101, 16123117181, 16123248287, 16123379359, 16123510433, 16123641529, 16123772629, + 16123903717, 16124034791, 16124165903, 16124296997, 16124428081, 16124559161, 16124690251, + 16124821331, 16124952439, 16125083537, 16125214669, 16125345749, 16125476831, 16125607903, + 16125738983, 16125870107, 16126001179, 16126132261, 16126263371, 16126394489, 16126525579, + 16126656653, 16126787731, 16126918817, 16127049889, 16127180983, 16127312093, 16127443187, + 16127574269, 16127705411, 16127836507, 16127967593, 16128098669, 16128229757, 16128360851, + 16128491947, 16128623033, 16128754111, 16128885247, 16129016327, 16129147421, 16129278523, + 16129409627, 16129540729, 16129671809, 16129802993, 16129934131, 16130065229, 16130196301, + 16130327377, 16130458451, 16130589577, 16130720653, 16130851757, 16130982869, 16131113941, + 16131245021, 16131376139, 16131507239, 16131638311, 16131769391, 16131900469, 16132031551, + 16132162637, 16132293787, 16132424863, 16132555949, 16132687033, 16132818133, 16132949219, + 16133080303, 16133211377, 16133342483, 16133473567, 16133604649, 16133735741, 16133866817, + 16133997941, 16134129013, 16134260089, 16134391181, 16134522289, 16134653363, 16134784447, + 16134915551, 16135046623, 16135177753, 16135308829, 16135439909, 16135571017, 16135702091, + 16135833167, 16135964329, 16136095453, 16136226529, 16136357609, 16136488681, 16136619773, + 16136750857, 16136881939, 16137013021, 16137144139, 16137275221, 16137406309, 16137537391, + 16137668507, 16137799591, 16137930667, 16138061759, 16138192843, 16138323919, 16138455031, + 16138586137, 16138717213, 16138848317, 16138979447, 16139110571, 16139241653, 16139372747, + 16139503837, 16139634923, 16139766001, 16139897083, 16140028183, 16140159317, 16140290471, + 16140421597, 16140552677, 16140683773, 16140814873, 16140945959, 16141077031, 16141208137, + 16141339219, 16141470299, 16141601383, 16141732471, 16141863547, 16141994681, 16142125777, + 16142256859, 16142387951, 16142519027, 16142650109, 16142781203, 16142912281, 16143043369, + 16143174461, 16143305537, 16143436613, 16143567697, 16143698773, 16143829847, 16143960929, + 16144092001, 16144223083, 16144354199, 16144485277, 16144616351, 16144747447, 16144878539, + 16145009611, 16145140723, 16145271809, 16145402891, 16145533967, 16145665049, 16145796167, + 16145927267, 16146058343, 16146189431, 16146320543, 16146451621, 16146582707, 16146713783, + 16146844867, 16146976037, 16147107149, 16147238273, 16147369349, 16147500427, 16147631503, + 16147762597, 16147893677, 16148024773, 16148155847, 16148286953, 16148418037, 16148549117, + 16148680199, 16148811277, 16148942377, 16149073609, 16149204703, 16149335777, 16149466867, + 16149597983, 16149729073, 16149860171, 16149991271, 16150122371, 16150253443, 16150384531, + 16150515629, 16150646711, 16150777807, 16150908881, 16151039981, 16151171083, 16151302163, + 16151433293, 16151564371, 16151695447, 16151826547, 16151957671, 16152088759, 16152219833, + 16152350909, 16152481991, 16152613063, 16152744137, 16152875267, 16153006391, 16153137463, + 16153268597, 16153399673, 16153530749, 16153661833, 16153792931, 16153924021, 16154055101, + 16154186173, 16154317247, 16154448329, 16154579401, 16154710487, 16154841559, 16154972651, + 16155103729, 16155234841, 16155365953, 16155497027, 16155628103, 16155759203, 16155890287, + 16156021373, 16156152497, 16156283597, 16156414733, 16156545871, 16156676969, 16156808051, + 16156939129, 16157070211, 16157201287, 16157332391, 16157463463, 16157594569, 16157725657, + 16157856731, 16157987843, 16158118919, 16158250021, 16158381097, 16158512203, 16158643283, + 16158774367, 16158905459, 16159036547, 16159167637, 16159298741, 16159429817, 16159560889, + 16159691971, 16159823083, 16159954159, 16160085241, 16160216321, 16160347403, 16160478479, + 16160609551, 16160740663, 16160871737, 16161002939, 16161134047, 16161265139, 16161396217, + 16161527297, 16161658369, 16161789487, 16161920591, 16162051721, 16162182797, 16162313873, + 16162445011, 16162576121, 16162707217, 16162838309, 16162969391, 16163100463, 16163231537, + 16163362609, 16163493701, 16163624863, 16163755987, 16163887073, 16164018187, 16164149273, + 16164280367, 16164411469, 16164542591, 16164673663, 16164804751, 16164935873, 16165066949, + 16165198073, 16165329163, 16165460237, 16165591313, 16165722389, 16165853519, 16165984661, + 16166115767, 16166246839, 16166377933, 16166509013, 16166640101, 16166771209, 16166902289, + 16167033383, 16167164459, 16167295537, 16167426617, 16167557711, 16167688783, 16167819869, + 16167950957, 16168082057, 16168213157, 16168344287, 16168475381, 16168606457, 16168737569, + 16168868641, 16168999739, 16169130833, 16169261929, 16169393021, 16169524093, 16169655167, + 16169786327, 16169917427, 16170048599, 16170179723, 16170310823, 16170441901, 16170572989, + 16170704083, 16170835157, 16170966233, 16171097311, 16171228387, 16171359473, 16171490551, + 16171621633, 16171752719, 16171883797, 16172014897, 16172146007, 16172277091, 16172408249, + 16172539333, 16172670419, 16172801497, 16172932579, 16173063671, 16173194743, 16173325867, + 16173456967, 16173588047, 16173719119, 16173850213, 16173981293, 16174112411, 16174243483, + 16174374607, 16174505701, 16174636781, 16174767881, 16174898977, 16175030057, 16175161153, + 16175292239, 16175423317, 16175554453, 16175685529, 16175816609, 16175947691, 16176078769, + 16176209867, 16176340951, 16176472063, 16176603143, 16176734263, 16176865351, 16176996457, + 16177127537, 16177258619, 16177389751, 16177520831, 16177651907, 16177782979, 16177914253, + 16178045327, 16178176409, 16178307491, 16178438593, 16178569669, 16178700749, 16178831869, + 16178962967, 16179094067, 16179225187, 16179356261, 16179487343, 16179618421, 16179749501, + 16179880601, 16180011713, 16180142791, 16180273883, 16180404973, 16180536083, 16180667177, + 16180798273, 16180929361, 16181060437, 16181191547, 16181322683, 16181453777, 16181584849, + 16181715943, 16181847023, 16181978101, 16182109253, 16182240377, 16182371483, 16182502577, + 16182633673, 16182764837, 16182895909, 16183026989, 16183158071, 16183289149, 16183420289, + 16183551389, 16183682479, 16183813553, 16183944643, 16184075807, 16184206891, 16184337973, + 16184469079, 16184600161, 16184731237, 16184862371, 16184993449, 16185124531, 16185255607, + 16185386717, 16185517853, 16185648931, 16185780071, 16185911149, 16186042289, 16186173373, + 16186304471, 16186435561, 16186566667, 16186697749, 16186828843, 16186959961, 16187091043, + 16187222131, 16187353223, 16187484317, 16187615419, 16187746493, 16187877577, 16188008653, + 16188139729, 16188270817, 16188401893, 16188532979, 16188664061, 16188795137, 16188926263, + 16189057427, 16189188517, 16189319611, 16189450721, 16189581817, 16189712899, 16189844029, + 16189975117, 16190106263, 16190237341, 16190368417, 16190499509, 16190630581, 16190761667, + 16190892761, 16191023897, 16191154997, 16191286109, 16191417239, 16191548353, 16191679463, + 16191810559, 16191941653, 16192072777, 16192203851, 16192334927, 16192466021, 16192597097, + 16192728179, 16192859273, 16192990349, 16193121463, 16193252549, 16193383621, 16193514697, + 16193645771, 16193776849, 16193907929, 16194039011, 16194170137, 16194301231, 16194432307, + 16194563381, 16194694541, 16194825631, 16194956711, 16195087877, 16195218967, 16195350151, + 16195481261, 16195612333, 16195743409, 16195874521, 16196005601, 16196136673, 16196267771, + 16196398871, 16196529977, 16196661071, 16196792173, 16196923273, 16197054373, 16197185503, + 16197316589, 16197447677, 16197578773, 16197709849, 16197840949, 16197972029, 16198103101, + 16198234223, 16198365299, 16198496399, 16198627477, 16198758599, 16198889677, 16199020777, + 16199151851, 16199282929, 16199414039, 16199545133, 16199676209, 16199807293, 16199938387, + 16200069461, 16200200539, 16200331649, 16200462743, 16200593861, 16200724933, 16200856013, + 16200987109, 16201118203, 16201249279, 16201380383, 16201511483, 16201642559, 16201773641, + 16201904717, 16202035831, 16202166949, 16202298029, 16202429119, 16202560207, 16202691283, + 16202822399, 16202953471, 16203084553, 16203215629, 16203346703, 16203477781, 16203608887, + 16203739963, 16203871069, 16204002167, 16204133249, 16204264333, 16204395409, 16204526483, + 16204657589, 16204788683, 16204919761, 16205050843, 16205181931, 16205313031, 16205444161, + 16205575273, 16205706359, 16205837471, 16205968553, 16206099653, 16206230737, 16206361811, + 16206492899, 16206623999, 16206755077, 16206886217, 16207017289, 16207148381, 16207279453, + 16207410559, 16207541653, 16207672753, 16207803839, 16207934923, 16208066057, 16208197163, + 16208328277, 16208459387, 16208590499, 16208721611, 16208852687, 16208983793, 16209114917, + 16209245989, 16209377089, 16209508169, 16209639287, 16209770359, 16209901439, 16210032511, + 16210163609, 16210294687, 16210425767, 16210556849, 16210687921, 16210818997, 16210950071, + 16211081149, 16211212247, 16211343341, 16211474437, 16211605511, 16211736613, 16211867717, + 16211998807, 16212129887, 16212260963, 16212392041, 16212523121, 16212654193, 16212785273, + 16212916397, 16213047517, 16213178617, 16213309727, 16213440799, 16213571879, 16213702957, + 16213834093, 16213965193, 16214096281, 16214227363, 16214358443, 16214489527, 16214620601, + 16214751731, 16214882807, 16215013891, 16215144997, 16215276083, 16215407171, 16215538271, + 16215669359, 16215800431, 16215931561, 16216062671, 16216193783, 16216324903, 16216455979, + 16216587109, 16216718207, 16216849289, 16216980401, 16217111473, 16217242607, 16217373691, + 16217504819, 16217635909, 16217766991, 16217898083, 16218029227, 16218160331, 16218291407, + 16218422513, 16218553607, 16218684689, 16218815771, 16218946847, 16219077943, 16219209029, + 16219340113, 16219471187, 16219602307, 16219733441, 16219864513, 16219995599, 16220126687, + 16220257769, 16220388853, 16220519929, 16220651003, 16220782093, 16220913167, 16221044243, + 16221175331, 16221306407, 16221437489, 16221568567, 16221699661, 16221830789, 16221961891, + 16222092977, 16222224071, 16222355203, 16222486327, 16222617401, 16222748533, 16222879609, + 16223010689, 16223141813, 16223272909, 16223403997, 16223535109, 16223666191, 16223797307, + 16223928401, 16224059479, 16224190571, 16224321653, 16224452743, 16224583849, 16224714943, + 16224846023, 16224977137, 16225108213, 16225239361, 16225370443, 16225501529, 16225632613, + 16225763731, 16225894819, 16226025899, 16226156977, 16226288063, 16226419171, 16226550251, + 16226681381, 16226812457, 16226943587, 16227074663, 16227205747, 16227336883, 16227467983, + 16227599071, 16227730147, 16227861229, 16227992317, 16228123411, 16228254529, 16228385617, + 16228516691, 16228647767, 16228778843, 16228909943, 16229041027, 16229172103, 16229303177, + 16229434253, 16229565329, 16229696423, 16229827541, 16229958623, 16230089717, 16230220801, + 16230351913, 16230483001, 16230614083, 16230745177, 16230876253, 16231007369, 16231138447, + 16231269529, 16231400609, 16231531691, 16231662809, 16231793891, 16231924993, 16232056069, + 16232187161, 16232318237, 16232449349, 16232580439, 16232711533, 16232842609, 16232973739, + 16233104813, 16233235891, 16233366973, 16233498079, 16233629189, 16233760267, 16233891397, + 16234022489, 16234153567, 16234284641, 16234415783, 16234546897, 16234678039, 16234809119, + 16234940269, 16235071399, 16235202491, 16235333573, 16235464673, 16235595767, 16235726851, + 16235857933, 16235989013, 16236120091, 16236251167, 16236382259, 16236513331, 16236644419, + 16236775537, 16236906629, 16237037797, 16237168873, 16237299977, 16237431083, 16237562161, + 16237693261, 16237824367, 16237955477, 16238086561, 16238217637, 16238348717, 16238479819, + 16238610917, 16238742011, 16238873129, 16239004211, 16239135293, 16239266411, 16239397483, + 16239528559, 16239659641, 16239790729, 16239921853, 16240052953, 16240184027, 16240315109, + 16240446181, 16240577263, 16240708339, 16240839451, 16240970549, 16241101621, 16241232701, + 16241363849, 16241494963, 16241626069, 16241757151, 16241888239, 16242019327, 16242150401, + 16242281483, 16242412591, 16242543671, 16242674743, 16242805819, 16242936949, 16243068041, + 16243199129, 16243330277, 16243461371, 16243592447, 16243723537, 16243854629, 16243985729, + 16244116813, 16244247893, 16244378977, 16244510053, 16244641129, 16244772227, 16244903387, + 16245034537, 16245165613, 16245296687, 16245427777, 16245558859, 16245689951, 16245821089, + 16245952187, 16246083263, 16246214351, 16246345471, 16246476563, 16246607653, 16246738751, + 16246869833, 16247000927, 16247132017, 16247263093, 16247394167, 16247525251, 16247656331, + 16247787407, 16247918501, 16248049619, 16248180721, 16248311803, 16248442877, 16248574021, + 16248705181, 16248836291, 16248967373, 16249098499, 16249229611, 16249360753, 16249491833, + 16249622923, 16249753997, 16249885097, 16250016193, 16250147279, 16250278361, 16250409449, + 16250540531, 16250671627, 16250802719, 16250933807, 16251064901, 16251196037, 16251327119, + 16251458221, 16251589301, 16251720377, 16251851467, 16251982559, 16252113637, 16252244711, + 16252375787, 16252506863, 16252637969, 16252769053, 16252900187, 16253031269, 16253162347, + 16253293447, 16253424599, 16253555677, 16253686751, 16253817823, 16253948899, 16254080027, + 16254211117, 16254342191, 16254473281, 16254604363, 16254735437, 16254866513, 16254997607, + 16255128679, 16255259759, 16255390847, 16255522033, 16255653109, 16255784189, 16255915279, + 16256046377, 16256177471, 16256308543, 16256439623, 16256570713, 16256701837, 16256832959, + 16256964049, 16257095131, 16257226211, 16257357301, 16257488389, 16257619517, 16257750611, + 16257881699, 16258012831, 16258143917, 16258274993, 16258406071, 16258537147, 16258668221, + 16258799309, 16258930381, 16259061499, 16259192603, 16259323723, 16259454803, 16259585957, + 16259717041, 16259848133, 16259979223, 16260110323, 16260241421, 16260372521, 16260503603, + 16260634679, 16260765751, 16260896887, 16261027967, 16261159087, 16261290179, 16261421269, + 16261552357, 16261683461, 16261814561, 16261945643, 16262076731, 16262207807, 16262338909, + 16262469989, 16262601071, 16262732177, 16262863259, 16262994331, 16263125467, 16263256547, + 16263387641, 16263518731, 16263649817, 16263780901, 16263911977, 16264043051, 16264174151, + 16264305247, 16264436381, 16264567481, 16264698559, 16264829641, 16264960771, 16265091847, + 16265222927, 16265354041, 16265485121, 16265616221, 16265747317, 16265878403, 16266009481, + 16266140557, 16266271639, 16266402751, 16266533939, 16266665011, 16266796111, 16266927191, + 16267058299, 16267189399, 16267320481, 16267451567, 16267582651, 16267713757, 16267844837, + 16267976009, 16268107087, 16268238167, 16268369261, 16268500343, 16268631433, 16268762507, + 16268893579, 16269024661, 16269155743, 16269286837, 16269417929, 16269549001, 16269680113, + 16269811211, 16269942287, 16270073359, 16270204441, 16270335527, 16270466633, 16270597709, + 16270728911, 16270860029, 16270991161, 16271122237, 16271253347, 16271384453, 16271515543, + 16271646617, 16271777701, 16271908799, 16272039937, 16272171023, 16272302099, 16272433181, + 16272564263, 16272695399, 16272826519, 16272957599, 16273088683, 16273219783, 16273350859, + 16273481933, 16273613011, 16273744111, 16273875223, 16274006311, 16274137409, 16274268499, + 16274399573, 16274530669, 16274661743, 16274792881, 16274924021, 16275055103, 16275186197, + 16275317281, 16275448381, 16275579517, 16275710603, 16275841763, 16275972841, 16276103917, + 16276235021, 16276366163, 16276497337, 16276628413, 16276759487, 16276890593, 16277021693, + 16277152817, 16277283889, 16277414971, 16277546063, 16277677201, 16277808277, 16277939371, + 16278070453, 16278201551, 16278332627, 16278463699, 16278594779, 16278725851, 16278856933, + 16278988039, 16279119127, 16279250209, 16279381379, 16279512461, 16279643543, 16279774639, + 16279905727, 16280036821, 16280167919, 16280299039, 16280430113, 16280561221, 16280692319, + 16280823409, 16280954527, 16281085603, 16281216689, 16281347783, 16281478883, 16281609961, + 16281741037, 16281872119, 16282003193, 16282134269, 16282265357, 16282396517, 16282527589, + 16282658699, 16282789799, 16282920881, 16283051959, 16283183089, 16283314193, 16283445271, + 16283576411, 16283707487, 16283838577, 16283969651, 16284100733, 16284231809, 16284362881, + 16284493961, 16284625039, 16284756119, 16284887249, 16285018381, 16285149481, 16285280569, + 16285411661, 16285542743, 16285673857, 16285804939, 16285936027, 16286067157, 16286198261, + 16286329337, 16286460427, 16286591507, 16286722631, 16286853703, 16286984797, 16287115937, + 16287247063, 16287378157, 16287509239, 16287640331, 16287771403, 16287902503, 16288033577, + 16288164653, 16288295767, 16288426867, 16288557949, 16288689047, 16288820161, 16288951249, + 16289082371, 16289213443, 16289344517, 16289475593, 16289606701, 16289737781, 16289868853, + 16289999963, 16290131059, 16290262139, 16290393227, 16290524303, 16290655387, 16290786461, + 16290917537, 16291048651, 16291179743, 16291310839, 16291441927, 16291573007, 16291704089, + 16291835213, 16291966319, 16292097391, 16292228479, 16292359553, 16292490647, 16292621731, + 16292752831, 16292883973, 16293015049, 16293146131, 16293277279, 16293408377, 16293539477, + 16293670669, 16293801743, 16293932819, 16294063921, 16294195019, 16294326137, 16294457227, + 16294588313, 16294719391, 16294850479, 16294981553, 16295112653, 16295243749, 16295374829, + 16295505931, 16295637031, 16295768117, 16295899189, 16296030269, 16296161353, 16296292477, + 16296423551, 16296554623, 16296685697, 16296816799, 16296947893, 16297078979, 16297210051, + 16297341157, 16297472239, 16297603319, 16297734461, 16297865533, 16297996613, 16298127689, + 16298258783, 16298389871, 16298520949, 16298652047, 16298783119, 16298914193, 16299045271, + 16299176401, 16299307513, 16299438637, 16299569731, 16299700811, 16299831923, 16299963011, + 16300094113, 16300225187, 16300356263, 16300487339, 16300618417, 16300749511, 16300880591, + 16301011667, 16301142757, 16301273861, 16301404979, 16301536087, 16301667169, 16301798273, + 16301929361, 16302060443, 16302191561, 16302322657, 16302453731, 16302584803, 16302715931, + 16302847009, 16302978119, 16303109213, 16303240297, 16303371389, 16303502461, 16303633547, + 16303764629, 16303895749, 16304026853, 16304157937, 16304289037, 16304420117, 16304551201, + 16304682281, 16304813353, 16304944457, 16305075533, 16305206629, 16305337703, 16305468779, + 16305599857, 16305730949, 16305862049, 16305993127, 16306124201, 16306255289, 16306386373, + 16306517471, 16306648549, 16306779623, 16306910777, 16307041873, 16307172989, 16307304061, + 16307435141, 16307566241, 16307697391, 16307828489, 16307959573, 16308090649, 16308221723, + 16308352799, 16308483907, 16308615047, 16308746141, 16308877219, 16309008299, 16309139411, + 16309270493, 16309401601, 16309532689, 16309663763, 16309794863, 16309925959, 16310057041, + 16310188121, 16310319203, 16310450287, 16310581363, 16310712437, 16310843509, 16310974597, + 16311105689, 16311236797, 16311367909, 16311498989, 16311630089, 16311761183, 16311892273, + 16312023397, 16312154471, 16312285547, 16312416629, 16312547711, 16312678813, 16312809899, + 16312941011, 16313072101, 16313203177, 16313334311, 16313465407, 16313596487, 16313727583, + 16313858707, 16313989823, 16314120929, 16314252007, 16314383087, 16314514159, 16314645247, + 16314776327, 16314907417, 16315038527, 16315169609, 16315300681, 16315431757, 16315562833, + 16315693913, 16315825003, 16315956103, 16316087219, 16316218297, 16316349391, 16316480501, + 16316611607, 16316742751, 16316873849, 16317004939, 16317136021, 16317267133, 16317398221, + 16317529297, 16317660379, 16317791459, 16317922567, 16318053643, 16318184717, 16318315801, + 16318446883, 16318577969, 16318709059, 16318840171, 16318971257, 16319102329, 16319233409, + 16319364493, 16319495573, 16319626657, 16319757781, 16319888863, 16320019943, 16320151019, + 16320282091, 16320413279, 16320544417, 16320675517, 16320806617, 16320937693, 16321068769, + 16321199857, 16321330931, 16321462007, 16321593157, 16321724231, 16321855321, 16321986413, + 16322117491, 16322248639, 16322379713, 16322510791, 16322641877, 16322772979, 16322904139, + 16323035273, 16323166357, 16323297451, 16323428551, 16323559639, 16323690731, 16323821819, + 16323952903, 16324084033, 16324215107, 16324346191, 16324477297, 16324608379, 16324739467, + 16324870561, 16325001653, 16325132731, 16325263807, 16325394889, 16325525977, 16325657059, + 16325788139, 16325919229, 16326050339, 16326181411, 16326312511, 16326443587, 16326574721, + 16326705839, 16326836921, 16326968017, 16327099091, 16327230197, 16327361269, 16327492369, + 16327623449, 16327754537, 16327885649, 16328016721, 16328147809, 16328278913, 16328409989, + 16328541079, 16328672153, 16328803237, 16328934311, 16329065461, 16329196553, 16329327631, + 16329458729, 16329589811, 16329720917, 16329852031, 16329983129, 16330114211, 16330245289, + 16330376369, 16330507451, 16330638539, 16330769617, 16330900709, 16331031823, 16331162933, + 16331294011, 16331425111, 16331556221, 16331687321, 16331818457, 16331949541, 16332080617, + 16332211697, 16332342809, 16332473897, 16332604969, 16332736073, 16332867149, 16332998221, + 16333129301, 16333260379, 16333391471, 16333522589, 16333653671, 16333784749, 16333915867, + 16334046941, 16334178079, 16334309213, 16334440289, 16334571401, 16334702473, 16334833573, + 16334964781, 16335095869, 16335226969, 16335358051, 16335489127, 16335620239, 16335751321, + 16335882413, 16336013489, 16336144597, 16336275671, 16336406783, 16336537891, 16336668967, + 16336800071, 16336931153, 16337062297, 16337193391, 16337324467, 16337455543, 16337586647, + 16337717729, 16337848817, 16337979899, 16338110981, 16338242059, 16338373159, 16338504257, + 16338635347, 16338766439, 16338897529, 16339028603, 16339159699, 16339290839, 16339421957, + 16339553033, 16339684129, 16339815209, 16339946323, 16340077433, 16340208541, 16340339621, + 16340470693, 16340601779, 16340732851, 16340863951, 16340995061, 16341126143, 16341257269, + 16341388423, 16341519529, 16341650609, 16341781691, 16341912859, 16342043933, 16342175029, + 16342306117, 16342437239, 16342568321, 16342699397, 16342830479, 16342961561, 16343092637, + 16343223709, 16343354801, 16343485883, 16343616983, 16343748067, 16343879161, 16344010283, + 16344141361, 16344272519, 16344403591, 16344534671, 16344665783, 16344796859, 16344927953, + 16345059047, 16345190119, 16345321199, 16345452311, 16345583383, 16345714547, 16345845619, + 16345976723, 16346107807, 16346238949, 16346370067, 16346501161, 16346632259, 16346763359, + 16346894441, 16347025523, 16347156629, 16347287701, 16347418781, 16347549887, 16347680989, + 16347812071, 16347943181, 16348074277, 16348205371, 16348336457, 16348467529, 16348598627, + 16348729723, 16348860797, 16348991881, 16349122963, 16349254037, 16349385119, 16349516231, + 16349647361, 16349778443, 16349909519, 16350040601, 16350171737, 16350302867, 16350433951, + 16350565027, 16350696119, 16350827191, 16350958279, 16351089353, 16351220441, 16351351517, + 16351482613, 16351613699, 16351744789, 16351875863, 16352006953, 16352138039, 16352269127, + 16352400221, 16352531357, 16352662441, 16352793521, 16352924641, 16353055727, 16353186809, + 16353317887, 16353448961, 16353580039, 16353711131, 16353842221, 16353973297, 16354104373, + 16354235449, 16354366547, 16354497623, 16354628701, 16354759777, 16354890869, 16355021987, + 16355153081, 16355284171, 16355415269, 16355546357, 16355677447, 16355808541, 16355939617, + 16356070733, 16356201821, 16356332897, 16356463993, 16356595081, 16356726163, 16356857243, + 16356988321, 16357119491, 16357250563, 16357381639, 16357512719, 16357643833, 16357774919, + 16357906007, 16358037079, 16358168159, 16358299247, 16358430379, 16358561467, 16358692547, + 16358823647, 16358954737, 16359085829, 16359216911, 16359347987, 16359479107, 16359610213, + 16359741331, 16359872483, 16360003571, 16360134653, 16360265731, 16360396807, 16360527913, + 16360658989, 16360790063, 16360921141, 16361052221, 16361183297, 16361314391, 16361445479, + 16361576579, 16361707657, 16361838749, 16361969867, 16362100969, 16362232057, 16362363137, + 16362494263, 16362625337, 16362756427, 16362887591, 16363018681, 16363149779, 16363280881, + 16363411979, 16363543057, 16363674137, 16363805219, 16363936291, 16364067373, 16364198491, + 16364329571, 16364460643, 16364591717, 16364722799, 16364853929, 16364985031, 16365116143, + 16365247229, 16365378307, 16365509387, 16365640493, 16365771607, 16365902687, 16366033759, + 16366164833, 16366295971, 16366427087, 16366558183, 16366689359, 16366820443, 16366951529, + 16367082629, 16367213783, 16367344867, 16367475959, 16367607101, 16367738183, 16367869279, + 16368000373, 16368131459, 16368262531, 16368393623, 16368524699, 16368655777, 16368786851, + 16368917927, 16369048999, 16369180097, 16369311263, 16369442347, 16369573447, 16369704523, + 16369835597, 16369966673, 16370097761, 16370228839, 16370359913, 16370491009, 16370622083, + 16370753233, 16370884307, 16371015379, 16371146509, 16371277583, 16371408701, 16371539773, + 16371670849, 16371801923, 16371933119, 16372064239, 16372195327, 16372326409, 16372457483, + 16372588577, 16372719661, 16372850737, 16372981829, 16373112919, 16373244001, 16373375113, + 16373506301, 16373637403, 16373768479, 16373899603, 16374030683, 16374161821, 16374292897, + 16374423973, 16374555047, 16374686147, 16374817223, 16374948307, 16375079387, 16375210463, + 16375341569, 16375472651, 16375603771, 16375734887, 16375866019, 16375997117, 16376128199, + 16376259283, 16376390357, 16376521457, 16376652569, 16376783641, 16376914727, 16377045799, + 16377176941, 16377308021, 16377439121, 16377570197, 16377701269, 16377832379, 16377963451, + 16378094531, 16378225607, 16378356689, 16378487767, 16378618853, 16378749931, 16378881017, + 16379012101, 16379143199, 16379274271, 16379405381, 16379536477, 16379667593, 16379798737, + 16379929829, 16380060901, 16380191977, 16380323081, 16380454177, 16380585259, 16380716351, + 16380847453, 16380978617, 16381109707, 16381240781, 16381371863, 16381502947, 16381634023, + 16381765109, 16381896227, 16382027323, 16382158421, 16382289529, 16382420623, 16382551709, + 16382682821, 16382813903, 16382945021, 16383076109, 16383207193, 16383338269, 16383469363, + 16383600473, 16383731549, 16383862637, 16383993709, 16384124803, 16384255891, 16384387009, + 16384518097, 16384649191, 16384780277, 16384911377, 16385042461, 16385173577, 16385304697, + 16385435789, 16385566913, 16385698027, 16385829101, 16385960177, 16386091277, 16386222353, + 16386353443, 16386484523, 16386615599, 16386746683, 16386877777, 16387008887, 16387139959, + 16387271039, 16387402121, 16387533199, 16387664281, 16387795381, 16387926487, 16388057603, + 16388188711, 16388319791, 16388450909, 16388581997, 16388713079, 16388844181, 16388975263, + 16389106351, 16389237427, 16389368503, 16389499639, 16389630713, 16389761789, 16389892873, + 16390023961, 16390155059, 16390286131, 16390417223, 16390548319, 16390679399, 16390810487, + 16390941569, 16391072647, 16391203723, 16391334797, 16391465989, 16391597071, 16391728189, + 16391859271, 16391990347, 16392121477, 16392252589, 16392383713, 16392514813, 16392645901, + 16392776977, 16392908057, 16393039141, 16393170217, 16393301299, 16393432379, 16393563457, + 16393694531, 16393825603, 16393956727, 16394087807, 16394218891, 16394349971, 16394481053, + 16394612153, 16394743231, 16394874347, 16395005443, 16395136523, 16395267601, 16395398711, + 16395529819, 16395660913, 16395792011, 16395923087, 16396054177, 16396185259, 16396316341, + 16396447517, 16396578593, 16396709669, 16396840769, 16396971881, 16397102959, 16397234047, + 16397365129, 16397496209, 16397627293, 16397758387, 16397889463, 16398020581, 16398151657, + 16398282767, 16398413951, 16398545039, 16398676163, 16398807289, 16398938363, 16399069447, + 16399200577, 16399331657, 16399462741, 16399593817, 16399724897, 16399855973, 16399987081, + 16400118179, 16400249279, 16400380363, 16400511437, 16400642537, 16400773639, 16400904743, + 16401035887, 16401167009, 16401298093, 16401429193, 16401560317, 16401691393, 16401822467, + 16401953543, 16402084631, 16402215737, 16402346833, 16402477913, 16402608991, 16402740089, + 16402871201, 16403002283, 16403133421, 16403264497, 16403395621, 16403526703, 16403657779, + 16403788867, 16403919943, 16404051031, 16404182141, 16404313223, 16404444299, 16404575371, + 16404706463, 16404837587, 16404968663, 16405099741, 16405230817, 16405361893, 16405492991, + 16405624073, 16405755251, 16405886327, 16406017409, 16406148497, 16406279587, 16406410679, + 16406541757, 16406672861, 16406803961, 16406935067, 16407066139, 16407197273, 16407328361, + 16407459449, 16407590527, 16407721661, 16407852761, 16407983849, 16408114939, 16408246037, + 16408377121, 16408508261, 16408639339, 16408770431, 16408901513, 16409032603, 16409163679, + 16409294771, 16409425843, 16409556937, 16409688017, 16409819113, 16409950199, 16410081313, + 16410212389, 16410343463, 16410474559, 16410605633, 16410736709, 16410867821, 16410998897, + 16411129981, 16411261063, 16411392163, 16411523269, 16411654349, 16411785427, 16411916509, + 16412047609, 16412178683, 16412309773, 16412440879, 16412571971, 16412703049, 16412834143, + 16412965223, 16413096319, 16413227393, 16413358469, 16413489551, 16413620627, 16413751721, + 16413882799, 16414013887, 16414144991, 16414276133, 16414407257, 16414538353, 16414669429, + 16414800527, 16414931629, 16415062721, 16415193853, 16415324927, 16415455999, 16415587091, + 16415718181, 16415849257, 16415980333, 16416111407, 16416242501, 16416373591, 16416504691, + 16416635789, 16416766913, 16416898007, 16417029091, 16417160173, 16417291277, 16417422349, + 16417553423, 16417684541, 16417815619, 16417946729, 16418077801, 16418208889, 16418339969, + 16418471059, 16418602133, 16418733211, 16418864291, 16418995367, 16419126481, 16419257573, + 16419388651, 16419519757, 16419650861, 16419781943, 16419913019, 16420044097, 16420175179, + 16420306267, 16420437347, 16420568443, 16420699571, 16420830661, 16420961797, 16421092921, + 16421224021, 16421355109, 16421486201, 16421617273, 16421748353, 16421879443, 16422010519, + 16422141607, 16422272683, 16422403759, 16422534833, 16422665911, 16422797033, 16422928121, + 16423059199, 16423190279, 16423321367, 16423452439, 16423583537, 16423714651, 16423845731, + 16423976813, 16424107897, 16424238977, 16424370049, 16424501141, 16424632243, 16424763323, + 16424894407, 16425025483, 16425156593, 16425287687, 16425418777, 16425549863, 16425680963, + 16425812057, 16425943129, 16426074233, 16426205329, 16426336429, 16426467529, 16426598609, + 16426729681, 16426860763, 16426991837, 16427122937, 16427254013, 16427385109, 16427516191, + 16427647267, 16427778349, 16427909423, 16428040511, 16428171601, 16428302689, 16428433781, + 16428564857, 16428695947, 16428827027, 16428958109, 16429089181, 16429220267, 16429351343, + 16429482427, 16429613561, 16429744637, 16429875713, 16430006797, 16430137873, 16430268979, + 16430400053, 16430531141, 16430662223, 16430793299, 16430924383, 16431055469, 16431186553, + 16431317647, 16431448757, 16431579833, 16431710951, 16431842069, 16431973141, 16432104257, + 16432235357, 16432366439, 16432497511, 16432628617, 16432759703, 16432890811, 16433021893, + 16433152997, 16433284103, 16433415223, 16433546303, 16433677387, 16433808463, 16433939539, + 16434070657, 16434201739, 16434332821, 16434463897, 16434594973, 16434726083, 16434857167, + 16434988249, 16435119331, 16435250407, 16435381511, 16435512593, 16435643687, 16435774781, + 16435905907, 16436036989, 16436168071, 16436299157, 16436430247, 16436561327, 16436692399, + 16436823479, 16436954561, 16437085667, 16437216767, 16437347851, 16437478933, 16437610019, + 16437741097, 16437872179, 16438003261, 16438134341, 16438265429, 16438396531, 16438527613, + 16438658689, 16438789769, 16438920857, 16439051939, 16439183017, 16439314093, 16439445181, + 16439576269, 16439707367, 16439838463, 16439969573, 16440100657, 16440231749, 16440362837, + 16440493919, 16440624997, 16440756089, 16440887167, 16441018247, 16441149341, 16441280423, + 16441411513, 16441542599, 16441673707, 16441804781, 16441935859, 16442066957, 16442198029, + 16442329109, 16442460187, 16442591273, 16442722381, 16442853457, 16442984531, 16443115609, + 16443246683, 16443377779, 16443508951, 16443640051, 16443771143, 16443902221, 16444033301, + 16444164391, 16444295471, 16444426573, 16444557673, 16444688749, 16444819823, 16444950913, + 16445081993, 16445213069, 16445344159, 16445475253, 16445606363, 16445737439, 16445868553, + 16445999629, 16446130711, 16446261869, 16446392969, 16446524057, 16446655129, 16446786229, + 16446917321, 16447048411, 16447179491, 16447310609, 16447441693, 16447572781, 16447703861, + 16447834943, 16447966033, 16448097121, 16448228221, 16448359321, 16448490433, 16448621509, + 16448752589, 16448883679, 16449014773, 16449145847, 16449276931, 16449408007, 16449539081, + 16449670157, 16449801229, 16449932311, 16450063391, 16450194463, 16450325539, 16450456619, + 16450587697, 16450718807, 16450849879, 16450980967, 16451112053, 16451243161, 16451374273, + 16451505347, 16451636429, 16451767513, 16451898611, 16452029717, 16452160799, 16452291871, + 16452422947, 16452554029, 16452685133, 16452816253, 16452947333, 16453078409, 16453209481, + 16453340569, 16453471669, 16453602761, 16453733837, 16453864927, 16453996001, 16454127077, + 16454258189, 16454389261, 16454520361, 16454651443, 16454782549, 16454913661, 16455044759, + 16455175831, 16455307003, 16455438137, 16455569231, 16455700321, 16455831409, 16455962483, + 16456093603, 16456224679, 16456355777, 16456486903, 16456618019, 16456749121, 16456880197, + 16457011273, 16457142379, 16457273477, 16457404609, 16457535701, 16457666777, 16457797879, + 16457929001, 16458060103, 16458191203, 16458322289, 16458453379, 16458584489, 16458715571, + 16458846659, 16458977741, 16459108817, 16459239889, 16459370971, 16459502057, 16459633133, + 16459764221, 16459895297, 16460026381, 16460157481, 16460288569, 16460419681, 16460550773, + 16460681857, 16460812939, 16460944043, 16461075131, 16461206231, 16461337331, 16461468403, + 16461599519, 16461730601, 16461861673, 16461992783, 16462123903, 16462255079, 16462386151, + 16462517231, 16462648303, 16462779397, 16462910473, 16463041561, 16463172637, 16463303723, + 16463434807, 16463565883, 16463697017, 16463828153, 16463959277, 16464090367, 16464221441, + 16464352571, 16464483643, 16464614717, 16464745789, 16464876881, 16465007983, 16465139059, + 16465270163, 16465401263, 16465532339, 16465663439, 16465794511, 16465925617, 16466056721, + 16466187827, 16466318941, 16466450071, 16466581181, 16466712259, 16466843357, 16466974439, + 16467105511, 16467236629, 16467367729, 16467498829, 16467629909, 16467761017, 16467892109, + 16468023191, 16468154291, 16468285367, 16468416457, 16468547549, 16468678631, 16468809703, + 16468940779, 16469071867, 16469202949, 16469334031, 16469465113, 16469596193, 16469727271, + 16469858347, 16469989421, 16470120503, 16470251663, 16470382771, 16470513847, 16470644921, + 16470776017, 16470907109, 16471038211, 16471169311, 16471300387, 16471431481, 16471562573, + 16471693657, 16471824749, 16471955869, 16472086951, 16472218073, 16472349149, 16472480221, + 16472611313, 16472742389, 16472873467, 16473004567, 16473135661, 16473266737, 16473397813, + 16473528893, 16473659977, 16473791053, 16473922151, 16474053223, 16474184323, 16474315471, + 16474446553, 16474577653, 16474708729, 16474839841, 16474970921, 16475102057, 16475233133, + 16475364247, 16475495329, 16475626411, 16475757511, 16475888593, 16476019667, 16476150767, + 16476281849, 16476412933, 16476544027, 16476675101, 16476806189, 16476937261, 16477068341, + 16477199429, 16477330523, 16477461607, 16477592683, 16477723813, 16477854931, 16477986061, + 16478117143, 16478248229, 16478379319, 16478510401, 16478641477, 16478772553, 16478903663, + 16479034739, 16479165811, 16479296891, 16479427967, 16479559039, 16479690121, 16479821207, + 16479952327, 16480083401, 16480214501, 16480345589, 16480476679, 16480607777, 16480738873, + 16480869989, 16481001077, 16481132167, 16481263247, 16481394329, 16481525407, 16481656481, + 16481787583, 16481918671, 16482049777, 16482180863, 16482311941, 16482443093, 16482574169, + 16482705247, 16482836323, 16482967399, 16483098521, 16483229647, 16483360727, 16483491853, + 16483622927, 16483754017, 16483885091, 16484016191, 16484147269, 16484278399, 16484409479, + 16484540561, 16484671699, 16484802773, 16484933849, 16485064927, 16485196009, 16485327101, + 16485458177, 16485589277, 16485720379, 16485851471, 16485982613, 16486113701, 16486244809, + 16486375897, 16486506991, 16486638083, 16486769171, 16486900289, 16487031371, 16487162443, + 16487293531, 16487424631, 16487555713, 16487686799, 16487817889, 16487948963, 16488080039, + 16488211133, 16488342239, 16488473327, 16488604411, 16488735511, 16488866587, 16488997673, + 16489128751, 16489259833, 16489390913, 16489521989, 16489653071, 16489784147, 16489915231, + 16490046317, 16490177399, 16490308477, 16490439601, 16490570693, 16490701771, 16490832857, + 16490963981, 16491095063, 16491226139, 16491357241, 16491488323, 16491619423, 16491750503, + 16491881579, 16492012687, 16492143781, 16492274893, 16492405987, 16492537079, 16492668161, + 16492799233, 16492930309, 16493061383, 16493192461, 16493323541, 16493454617, 16493585737, + 16493716817, 16493847919, 16493979041, 16494110119, 16494241213, 16494372289, 16494503369, + 16494634459, 16494765533, 16494896611, 16495027687, 16495158761, 16495289893, 16495420979, + 16495552061, 16495683157, 16495814339, 16495945423, 16496076511, 16496207597, 16496338673, + 16496469757, 16496600839, 16496731913, 16496863021, 16496994103, 16497125179, 16497256277, + 16497387373, 16497518447, 16497649523, 16497780619, 16497911699, 16498042777, 16498173869, + 16498304947, 16498436047, 16498567153, 16498698329, 16498829441, 16498960559, 16499091659, + 16499222767, 16499353841, 16499484943, 16499616037, 16499747123, 16499878211, 16500009293, + 16500140387, 16500271483, 16500402601, 16500533677, 16500664753, 16500795851, 16500926929, + 16501058011, 16501189087, 16501320211, 16501451371, 16501582451, 16501713577, 16501844719, + 16501975793, 16502106883, 16502237959, 16502369069, 16502500169, 16502631269, 16502762347, + 16502893423, 16503024497, 16503155579, 16503286693, 16503417767, 16503548879, 16503679957, + 16503811061, 16503942139, 16504073213, 16504204303, 16504335461, 16504466551, 16504597631, + 16504728731, 16504859803, 16504990883, 16505121961, 16505253041, 16505384123, 16505515199, + 16505646301, 16505777419, 16505908493, 16506039587, 16506170683, 16506301811, 16506432883, + 16506563981, 16506695059, 16506826159, 16506957281, 16507088359, 16507219447, 16507350551, + 16507481629, 16507612729, 16507743827, 16507874917, 16508005991, 16508137097, 16508268181, + 16508399269, 16508530387, 16508661469, 16508792549, 16508923637, 16509054767, 16509185897, + 16509316969, 16509448057, 16509579131, 16509710209, 16509841291, 16509972371, 16510103483, + 16510234561, 16510365653, 16510496729, 16510627801, 16510758907, 16510889999, 16511021113, + 16511152201, 16511283277, 16511414351, 16511545439, 16511676523, 16511807621, 16511938711, + 16512069787, 16512200893, 16512331981, 16512463081, 16512594169, 16512725249, 16512856337, + 16512987461, 16513118593, 16513249673, 16513380749, 16513511831, 16513642907, 16513773989, + 16513905097, 16514036173, 16514167273, 16514298347, 16514429419, 16514560499, 16514691581, + 16514822657, 16514953747, 16515084821, 16515215897, 16515346979, 16515478051, 16515609181, + 16515740257, 16515871447, 16516002533, 16516133611, 16516264717, 16516395811, 16516526951, + 16516658071, 16516789151, 16516920227, 16517051303, 16517182393, 16517313479, 16517444551, + 16517575643, 16517706721, 16517837839, 16517968919, 16518099991, 16518231089, 16518362191, + 16518493291, 16518624383, 16518755459, 16518886543, 16519017653, 16519148813, 16519279937, + 16519411019, 16519542119, 16519673201, 16519804373, 16519935451, 16520066551, 16520197633, + 16520328707, 16520459779, 16520590859, 16520721949, 16520853029, 16520984113, 16521115243, + 16521246317, 16521377399, 16521508519, 16521639593, 16521770669, 16521901771, 16522032853, + 16522163981, 16522295089, 16522426181, 16522557277, 16522688389, 16522819519, 16522950761, + 16523081837, 16523212933, 16523344037, 16523475113, 16523606201, 16523737289, 16523868371, + 16523999467, 16524130547, 16524261619, 16524392699, 16524523777, 16524654859, 16524785957, + 16524917029, 16525048109, 16525179257, 16525310339, 16525441411, 16525572527, 16525703609, + 16525834709, 16525965803, 16526096891, 16526227967, 16526359081, 16526490193, 16526621269, + 16526752343, 16526883419, 16527014503, 16527145603, 16527276719, 16527407807, 16527538883, + 16527669979, 16527801071, 16527932143, 16528063217, 16528194301, 16528325381, 16528456471, + 16528587577, 16528718651, 16528849723, 16528980841, 16529111927, 16529243009, 16529374109, + 16529505227, 16529636303, 16529767379, 16529898457, 16530029531, 16530160643, 16530291731, + 16530422803, 16530553889, 16530684971, 16530816047, 16530947141, 16531078217, 16531209319, + 16531340407, 16531471501, 16531602599, 16531733749, 16531864823, 16531995919, 16532127019, + 16532258167, 16532389241, 16532520343, 16532651417, 16532782499, 16532913641, 16533044719, + 16533175811, 16533306883, 16533437971, 16533569069, 16533700147, 16533831227, 16533962303, + 16534093403, 16534224481, 16534355623, 16534486711, 16534617791, 16534748863, 16534879973, + 16535011057, 16535142133, 16535273207, 16535404351, 16535535427, 16535666501, 16535797573, + 16535928671, 16536059759, 16536190831, 16536321929, 16536453023, 16536584101, 16536715187, + 16536846281, 16536977363, 16537108459, 16537239553, 16537370711, 16537501811, 16537632883, + 16537763981, 16537895071, 16538026157, 16538157239, 16538288339, 16538419439, 16538550527, + 16538681611, 16538812777, 16538943857, 16539074933, 16539206009, 16539337097, 16539468173, + 16539599267, 16539730351, 16539861433, 16539992531, 16540123603, 16540254677, 16540385789, + 16540516871, 16540647967, 16540779053, 16540910213, 16541041301, 16541172413, 16541303489, + 16541434597, 16541565671, 16541696753, 16541827889, 16541958967, 16542090043, 16542221149, + 16542352243, 16542483337, 16542614443, 16542745517, 16542876593, 16543007707, 16543138789, + 16543269863, 16543400957, 16543532039, 16543663141, 16543794217, 16543925291, 16544056363, + 16544187461, 16544318569, 16544449703, 16544580781, 16544711857, 16544842943, 16544974049, + 16545105151, 16545236261, 16545367343, 16545498439, 16545629561, 16545760661, 16545891749, + 16546022821, 16546153903, 16546284991, 16546416079, 16546547153, 16546678261, 16546809337, + 16546940411, 16547071483, 16547202559, 16547333657, 16547464753, 16547595833, 16547726927, + 16547858009, 16547989097, 16548120181, 16548251273, 16548382373, 16548513451, 16548644569, + 16548775651, 16548906743, 16549037837, 16549168921, 16549300007, 16549431083, 16549562179, + 16549693289, 16549824367, 16549955449, 16550086523, 16550217599, 16550348687, 16550479769, + 16550610887, 16550741983, 16550873057, 16551004147, 16551135269, 16551266357, 16551397433, + 16551528541, 16551659653, 16551790729, 16551921847, 16552053031, 16552184107, 16552315189, + 16552446263, 16552577389, 16552708483, 16552839587, 16552970723, 16553101811, 16553232889, + 16553363963, 16553495059, 16553626183, 16553757313, 16553888399, 16554019549, 16554150623, + 16554281699, 16554412793, 16554543869, 16554674947, 16554806041, 16554937117, 16555068203, + 16555199321, 16555330403, 16555461491, 16555592569, 16555723661, 16555854739, 16555985867, + 16556116957, 16556248039, 16556379131, 16556510207, 16556641303, 16556772377, 16556903477, + 16557034561, 16557165659, 16557296771, 16557427879, 16557558967, 16557690047, 16557821129, + 16557952217, 16558083299, 16558214447, 16558345547, 16558476619, 16558607707, 16558738843, + 16558869919, 16559001001, 16559132077, 16559263169, 16559394259, 16559525351, 16559656433, + 16559787571, 16559918651, 16560049733, 16560180817, 16560311899, 16560442991, 16560574073, + 16560705181, 16560836321, 16560967441, 16561098517, 16561229591, 16561360663, 16561491763, + 16561622837, 16561753909, 16561885003, 16562016103, 16562147191, 16562278331, 16562409431, + 16562540507, 16562671591, 16562802689, 16562933767, 16563064853, 16563195991, 16563327073, + 16563458179, 16563589313, 16563720409, 16563851509, 16563982609, 16564113703, 16564244777, + 16564375853, 16564506929, 16564638047, 16564769147, 16564900229, 16565031323, 16565162459, + 16565293543, 16565424637, 16565555723, 16565686831, 16565817941, 16565949031, 16566080131, + 16566211217, 16566342301, 16566473401, 16566604501, 16566735583, 16566866677, 16566997751, + 16567128863, 16567259939, 16567391033, 16567522129, 16567653211, 16567784329, 16567915421, + 16568046529, 16568177603, 16568308721, 16568439799, 16568570891, 16568701973, 16568833109, + 16568964211, 16569095287, 16569226361, 16569357433, 16569488513, 16569619601, 16569750707, + 16569881813, 16570012951, 16570144067, 16570275187, 16570406263, 16570537337, 16570668419, + 16570799503, 16570930601, 16571061743, 16571192821, 16571323897, 16571454997, 16571586139, + 16571717219, 16571848291, 16571979371, 16572110453, 16572241573, 16572372647, 16572503719, + 16572634831, 16572765919, 16572897013, 16573028107, 16573159181, 16573290257, 16573421341, + 16573552423, 16573683559, 16573814657, 16573945747, 16574076881, 16574207957, 16574339029, + 16574470109, 16574601181, 16574732329, 16574863421, 16574994493, 16575125573, 16575256657, + 16575387733, 16575518807, 16575649897, 16575780971, 16575912047, 16576043119, 16576174193, + 16576305283, 16576436417, 16576567493, 16576698583, 16576829677, 16576960759, 16577091889, + 16577222993, 16577354111, 16577485241, 16577616329, 16577747447, 16577878519, 16578009653, + 16578140731, 16578271811, 16578402889, 16578533963, 16578665069, 16578796211, 16578927311, + 16579058387, 16579189469, 16579320581, 16579451657, 16579582751, 16579713827, 16579844933, + 16579976011, 16580107091, 16580238197, 16580369327, 16580500411, 16580631493, 16580762587, + 16580893687, 16581024781, 16581155869, 16581286949, 16581418093, 16581549167, 16581680243, + 16581811327, 16581942427, 16582073551, 16582204631, 16582335779, 16582466861, 16582597949, + 16582729043, 16582860121, 16582991197, 16583122289, 16583253361, 16583384501, 16583515607, + 16583646763, 16583777869, 16583908973, 16584040061, 16584171133, 16584302243, 16584433379, + 16584564487, 16584695563, 16584826651, 16584957731, 16585088831, 16585219913, 16585350989, + 16585482079, 16585613153, 16585744247, 16585875343, 16586006419, 16586137493, 16586268571, + 16586399663, 16586530747, 16586661827, 16586792899, 16586924041, 16587055141, 16587186221, + 16587317293, 16587448399, 16587579487, 16587710567, 16587841639, 16587972757, 16588103893, + 16588234997, 16588366087, 16588497169, 16588628257, 16588759331, 16588890419, 16589021503, + 16589152577, 16589283677, 16589414773, 16589545849, 16589676949, 16589808031, 16589939111, + 16590070183, 16590201283, 16590332411, 16590463507, 16590594707, 16590725783, 16590856873, + 16590987971, 16591119047, 16591250173, 16591381259, 16591512331, 16591643447, 16591774547, + 16591905677, 16592036753, 16592167831, 16592298917, 16592430007, 16592561131, 16592692211, + 16592823301, 16592954387, 16593085471, 16593216547, 16593347647, 16593478757, 16593609833, + 16593740921, 16593872011, 16594003091, 16594134187, 16594265263, 16594396349, 16594527421, + 16594658519, 16594789597, 16594920689, 16595051777, 16595182883, 16595313971, 16595445089, + 16595576167, 16595707267, 16595838353, 16595969441, 16596100559, 16596231661, 16596362743, + 16596493841, 16596624923, 16596756013, 16596887093, 16597018177, 16597149269, 16597280341, + 16597411417, 16597542499, 16597673591, 16597804721, 16597935799, 16598066893, 16598197999, + 16598329081, 16598460157, 16598591231, 16598722321, 16598853407, 16598984489, 16599115627, + 16599246733, 16599377819, 16599508901, 16599640009, 16599771107, 16599902203, 16600033319, + 16600164407, 16600295479, 16600426553, 16600557637, 16600688711, 16600819847, 16600950953, + 16601082031, 16601213137, 16601344247, 16601475323, 16601606401, 16601737487, 16601868593, + 16601999707, 16602130789, 16602261869, 16602392959, 16602524039, 16602655117, 16602786191, + 16602917299, 16603048393, 16603179493, 16603310609, 16603441681, 16603572809, 16603703899, + 16603834991, 16603966091, 16604097163, 16604228261, 16604359333, 16604490433, 16604621519, + 16604752639, 16604883719, 16605014807, 16605145891, 16605276977, 16605408089, 16605539213, + 16605670339, 16605801437, 16605932543, 16606063627, 16606194707, 16606325779, 16606456859, + 16606587931, 16606719011, 16606850083, 16606981159, 16607112239, 16607243321, 16607374393, + 16607505491, 16607636621, 16607767697, 16607898781, 16608029857, 16608160939, 16608292049, + 16608423191, 16608554279, 16608685351, 16608816439, 16608947543, 16609078643, 16609209767, + 16609340843, 16609471933, 16609603009, 16609734133, 16609865267, 16609996343, 16610127437, + 16610258543, 16610389673, 16610520761, 16610651833, 16610782913, 16610914037, 16611045181, + 16611176261, 16611307333, 16611438449, 16611569537, 16611700631, 16611831703, 16611962791, + 16612093909, 16612224997, 16612356077, 16612487167, 16612618247, 16612749319, 16612880441, + 16613011531, 16613142619, 16613273717, 16613404799, 16613535877, 16613666963, 16613798041, + 16613929117, 16614060191, 16614191291, 16614322363, 16614453437, 16614584527, 16614715613, + 16614846701, 16614977789, 16615108921, 16615240009, 16615371109, 16615502203, 16615633313, + 16615764409, 16615895519, 16616026601, 16616157703, 16616288783, 16616419877, 16616550949, + 16616682037, 16616813113, 16616944193, 16617075287, 16617206363, 16617337439, 16617468521, + 16617599627, 16617730729, 16617861847, 16617992929, 16618124009, 16618255097, 16618386179, + 16618517261, 16618648363, 16618779439, 16618910531, 16619041613, 16619172793, 16619303929, + 16619435081, 16619566157, 16619697247, 16619828321, 16619959429, 16620090503, 16620221587, + 16620352699, 16620483787, 16620614903, 16620746027, 16620877123, 16621008241, 16621139317, + 16621270409, 16621401487, 16621532561, 16621663687, 16621794769, 16621925849, 16622057027, + 16622188139, 16622319221, 16622450293, 16622581379, 16622712497, 16622843597, 16622974699, + 16623105787, 16623236863, 16623367939, 16623499027, 16623630109, 16623761207, 16623892361, + 16624023443, 16624154549, 16624285637, 16624416727, 16624547837, 16624678933, 16624810049, + 16624941133, 16625072231, 16625203307, 16625334449, 16625465599, 16625596681, 16625727761, + 16625858861, 16625990011, 16626121093, 16626252173, 16626383273, 16626514391, 16626645523, + 16626776641, 16626907741, 16627038863, 16627169963, 16627301113, 16627432189, 16627563283, + 16627694389, 16627825507, 16627956599, 16628087681, 16628218757, 16628349847, 16628481007, + 16628612081, 16628743249, 16628874323, 16629005417, 16629136493, 16629267569, 16629398641, + 16629529717, 16629660847, 16629791923, 16629922997, 16630054073, 16630185151, 16630316231, + 16630447349, 16630578427, 16630709509, 16630840601, 16630971673, 16631102753, 16631233837, + 16631364923, 16631496023, 16631627137, 16631758217, 16631889299, 16632020393, 16632151493, + 16632282577, 16632413669, 16632544741, 16632675817, 16632806893, 16632937967, 16633069069, + 16633200151, 16633331237, 16633462309, 16633593401, 16633724473, 16633855549, 16633986641, + 16634117723, 16634248811, 16634379893, 16634510987, 16634642071, 16634773147, 16634904229, + 16635035321, 16635166397, 16635297587, 16635428737, 16635559847, 16635690923, 16635821999, + 16635953077, 16636084183, 16636215257, 16636346341, 16636477427, 16636608517, 16636739611, + 16636870717, 16637001791, 16637132867, 16637263939, 16637395037, 16637526109, 16637657297, + 16637788393, 16637919503, 16638050609, 16638181723, 16638312827, 16638443903, 16638574999, + 16638706111, 16638837199, 16638968309, 16639099409, 16639230497, 16639361573, 16639492663, + 16639623751, 16639754827, 16639885909, 16640016997, 16640148079, 16640279179, 16640410253, + 16640541343, 16640672537, 16640803633, 16640934733, 16641065807, 16641196883, 16641327991, + 16641459067, 16641590167, 16641721259, 16641852349, 16641983447, 16642114547, 16642245629, + 16642376701, 16642507801, 16642638899, 16642769971, 16642901063, 16643032141, 16643163241, + 16643294341, 16643425429, 16643556541, 16643687653, 16643818727, 16643949799, 16644080899, + 16644212003, 16644343087, 16644474173, 16644605267, 16644736379, 16644867469, 16644998551, + 16645129637, 16645260721, 16645391803, 16645522897, 16645653971, 16645785049, 16645916123, + 16646047219, 16646178317, 16646309411, 16646440501, 16646571589, 16646702707, 16646833783, + 16646964871, 16647095951, 16647227029, 16647358111, 16647489251, 16647620329, 16647751403, + 16647882497, 16648013593, 16648144673, 16648275767, 16648406939, 16648538083, 16648669159, + 16648800239, 16648931311, 16649062403, 16649193481, 16649324557, 16649455643, 16649586731, + 16649717831, 16649848937, 16649980019, 16650111119, 16650242209, 16650373297, 16650504371, + 16650635461, 16650766541, 16650897617, 16651028699, 16651159771, 16651290857, 16651421959, + 16651553053, 16651684163, 16651815253, 16651946393, 16652077469, 16652208583, 16652339663, + 16652470739, 16652601817, 16652732903, 16652863999, 16652995091, 16653126173, 16653257317, + 16653388403, 16653519499, 16653650579, 16653781693, 16653912773, 16654043881, 16654174961, + 16654306103, 16654437181, 16654568269, 16654699343, 16654830463, 16654961539, 16655092621, + 16655223709, 16655354809, 16655485943, 16655617063, 16655748157, 16655879267, 16656010339, + 16656141413, 16656272491, 16656403601, 16656534677, 16656665759, 16656796841, 16656927919, + 16657058993, 16657190117, 16657321199, 16657452283, 16657583363, 16657714453, 16657845571, + 16657976663, 16658107757, 16658238853, 16658370083, 16658501213, 16658632297, 16658763371, + 16658894443, 16659025529, 16659156601, 16659287719, 16659418843, 16659549919, 16659681019, + 16659812173, 16659943249, 16660074337, 16660205431, 16660336529, 16660467601, 16660598693, + 16660729777, 16660860857, 16660991939, 16661123021, 16661254133, 16661385217, 16661516303, + 16661647403, 16661778479, 16661909587, 16662040691, 16662171791, 16662302863, 16662433967, + 16662565039, 16662696157, 16662827243, 16662958421, 16663089511, 16663220593, 16663351667, + 16663482761, 16663613839, 16663744931, 16663876003, 16664007079, 16664138159, 16664269247, + 16664400343, 16664531423, 16664662499, 16664793583, 16664924687, 16665055763, 16665186847, + 16665317927, 16665449051, 16665580123, 16665711203, 16665842287, 16665973369, 16666104443, + 16666235557, 16666366637, 16666497709, 16666628789, 16666759861, 16666890941, 16667022049, + 16667153123, 16667284201, 16667415283, 16667546359, 16667677441, 16667808517, 16667939627, + 16668070709, 16668201811, 16668332911, 16668463993, 16668595103, 16668726187, 16668857269, + 16668988351, 16669119427, 16669250501, 16669381601, 16669512689, 16669643773, 16669774861, + 16669905971, 16670037047, 16670168143, 16670299253, 16670430341, 16670561443, 16670692547, + 16670823629, 16670954717, 16671085789, 16671216883, 16671347969, 16671479051, 16671610127, + 16671741209, 16671872281, 16672003367, 16672134439, 16672265531, 16672396627, 16672527701, + 16672658773, 16672789871, 16672920959, 16673052031, 16673183171, 16673314243, 16673445337, + 16673576431, 16673707529, 16673838613, 16673969687, 16674100763, 16674231883, 16674363001, + 16674494093, 16674625189, 16674756271, 16674887353, 16675018453, 16675149583, 16675280659, + 16675411747, 16675542827, 16675673909, 16675805039, 16675936111, 16676067253, 16676198333, + 16676329493, 16676460589, 16676591717, 16676722801, 16676853877, 16676984957, 16677116039, + 16677247121, 16677378197, 16677509273, 16677640349, 16677771427, 16677902503, 16678033577, + 16678164707, 16678295797, 16678426871, 16678557947, 16678689029, 16678820117, 16678951199, + 16679082271, 16679213359, 16679344459, 16679475539, 16679606633, 16679737709, 16679868811, + 16679999899, 16680130979, 16680262069, 16680393157, 16680524243, 16680655337, 16680786431, + 16680917543, 16681048667, 16681179761, 16681310837, 16681441939, 16681573019, 16681704103, + 16681835179, 16681966271, 16682097353, 16682228447, 16682359559, 16682490631, 16682621707, + 16682752841, 16682883947, 16683015029, 16683146101, 16683277183, 16683408319, 16683539429, + 16683670547, 16683801623, 16683932701, 16684063783, 16684194869, 16684325981, 16684457059, + 16684588133, 16684719253, 16684850387, 16684981553, 16685112641, 16685243723, 16685374813, + 16685505887, 16685636977, 16685768053, 16685899129, 16686030239, 16686161311, 16686292393, + 16686423493, 16686554569, 16686685643, 16686816721, 16686947801, 16687078873, 16687209989, + 16687341089, 16687472189, 16687603307, 16687734379, 16687865459, 16687996537, 16688127629, + 16688258711, 16688389799, 16688520887, 16688651971, 16688783051, 16688914129, 16689045259, + 16689176341, 16689307471, 16689438553, 16689569641, 16689700801, 16689831877, 16689962963, + 16690094053, 16690225127, 16690356209, 16690487309, 16690618391, 16690749499, 16690880587, + 16691011663, 16691142799, 16691273899, 16691404997, 16691536097, 16691667169, 16691798251, + 16691929337, 16692060433, 16692191569, 16692322667, 16692453761, 16692584833, 16692715927, + 16692847007, 16692978091, 16693109171, 16693240261, 16693371347, 16693502459, 16693633547, + 16693764641, 16693895753, 16694026847, 16694157923, 16694288999, 16694420089, 16694551169, + 16694682241, 16694813347, 16694944439, 16695075599, 16695206681, 16695337777, 16695468857, + 16695599951, 16695731033, 16695862111, 16695993191, 16696124287, 16696255369, 16696386461, + 16696517533, 16696648607, 16696779683, 16696910773, 16697041847, 16697172923, 16697304011, + 16697435099, 16697566181, 16697697253, 16697828353, 16697959429, 16698090517, 16698221621, + 16698352721, 16698483833, 16698614927, 16698746017, 16698877123, 16699008199, 16699139323, + 16699270409, 16699401487, 16699532587, 16699663667, 16699794779, 16699925881, 16700056963, + 16700188061, 16700319161, 16700450269, 16700581349, 16700712437, 16700843531, 16700974603, + 16701105691, 16701236771, 16701367861, 16701498937, 16701630037, 16701761137, 16701892217, + 16702023307, 16702154387, 16702285459, 16702416539, 16702547627, 16702678703, 16702809779, + 16702940897, 16703071993, 16703203079, 16703334163, 16703465249, 16703596333, 16703727413, + 16703858527, 16703989639, 16704120767, 16704251843, 16704382927, 16704514033, 16704645233, + 16704776371, 16704907451, 16705038527, 16705169603, 16705300687, 16705431773, 16705562851, + 16705693993, 16705825067, 16705956161, 16706087249, 16706218357, 16706349467, 16706480543, + 16706611627, 16706742749, 16706873881, 16707004987, 16707136073, 16707267149, 16707398287, + 16707529409, 16707660509, 16707791623, 16707922717, 16708053793, 16708184879, 16708315951, + 16708447039, 16708578119, 16708709207, 16708840333, 16708971427, 16709102503, 16709233579, + 16709364673, 16709495773, 16709626853, 16709757931, 16709889011, 16710020083, 16710151189, + 16710282289, 16710413431, 16710544507, 16710675629, 16710806701, 16710937777, 16711068851, + 16711199933, 16711331027, 16711462099, 16711593191, 16711724269, 16711855343, 16711986419, + 16712117497, 16712248603, 16712379767, 16712510851, 16712641937, 16712773009, 16712904083, + 16713035179, 16713166271, 16713297443, 16713428531, 16713559633, 16713690731, 16713821863, + 16713952973, 16714084063, 16714215191, 16714346267, 16714477343, 16714608431, 16714739543, + 16714870643, 16715001731, 16715132821, 16715263907, 16715395033, 16715526143, 16715657221, + 16715788319, 16715919401, 16716050473, 16716181577, 16716312673, 16716443767, 16716574841, + 16716705919, 16716837019, 16716968101, 16717099199, 16717230281, 16717361357, 16717492439, + 16717623529, 16717754639, 16717885727, 16718016811, 16718147903, 16718278979, 16718410063, + 16718541143, 16718672221, 16718803303, 16718934413, 16719065507, 16719196579, 16719327673, + 16719458771, 16719589883, 16719720971, 16719852059, 16719983171, 16720114267, 16720245389, + 16720376461, 16720507553, 16720638637, 16720769711, 16720900799, 16721031881, 16721162981, + 16721294053, 16721425129, 16721556227, 16721687321, 16721818403, 16721949487, 16722080567, + 16722211651, 16722342743, 16722473849, 16722604967, 16722736039, 16722867121, 16722998207, + 16723129301, 16723260391, 16723391497, 16723522603, 16723653679, 16723784767, 16723915841, + 16724046991, 16724178109, 16724309191, 16724440297, 16724571421, 16724702503, 16724833589, + 16724964679, 16725095801, 16725226873, 16725357947, 16725489019, 16725620111, 16725751201, + 16725882289, 16726013399, 16726144471, 16726275551, 16726406623, 16726537741, 16726668817, + 16726799893, 16726930973, 16727062061, 16727193139, 16727324213, 16727455313, 16727586397, + 16727717509, 16727848633, 16727979707, 16728110779, 16728241867, 16728372943, 16728504041, + 16728635167, 16728766253, 16728897329, 16729028413, 16729159511, 16729290607, 16729421699, + 16729552771, 16729683847, 16729814929, 16729946003, 16730077079, 16730208151, 16730339237, + 16730470369, 16730601443, 16730732521, 16730863609, 16730994691, 16731125771, 16731256849, + 16731387929, 16731519001, 16731650101, 16731781177, 16731912257, 16732043333, 16732174423, + 16732305511, 16732436599, 16732567699, 16732698839, 16732829947, 16732961023, 16733092097, + 16733223187, 16733354273, 16733485397, 16733616481, 16733747573, 16733878657, 16734009763, + 16734140953, 16734272041, 16734403129, 16734534203, 16734665317, 16734796409, 16734927509, + 16735058581, 16735189663, 16735320787, 16735451917, 16735583009, 16735714091, 16735845193, + 16735976269, 16736107369, 16736238457, 16736369537, 16736500609, 16736631683, 16736762759, + 16736893837, 16737024917, 16737156001, 16737287081, 16737418177, 16737549271, 16737680347, + 16737811463, 16737942547, 16738073623, 16738204787, 16738335871, 16738466977, 16738598069, + 16738729151, 16738860239, 16738991369, 16739122457, 16739253563, 16739384653, 16739515747, + 16739646821, 16739777903, 16739908981, 16740040073, 16740171157, 16740302239, 16740433319, + 16740564397, 16740695519, 16740826631, 16740957719, 16741088797, 16741219933, 16741351009, + 16741482097, 16741613171, 16741744247, 16741875323, 16742006399, 16742137487, 16742268563, + 16742399671, 16742530759, 16742661857, 16742792971, 16742924047, 16743055129, 16743186209, + 16743317287, 16743448363, 16743579439, 16743710521, 16743841643, 16743972727, 16744103807, + 16744234883, 16744365959, 16744497031, 16744628149, 16744759243, 16744890329, 16745021413, + 16745152499, 16745283593, 16745414671, 16745545753, 16745676853, 16745807963, 16745939057, + 16746070129, 16746201217, 16746332299, 16746463379, 16746594451, 16746725531, 16746856603, + 16746987709, 16747118807, 16747249879, 16747381039, 16747512113, 16747643249, 16747774331, + 16747905409, 16748036509, 16748167589, 16748298667, 16748429773, 16748560897, 16748691989, + 16748823173, 16748954249, 16749085391, 16749216467, 16749347543, 16749478619, 16749609691, + 16749740767, 16749871867, 16750002943, 16750134047, 16750265149, 16750396297, 16750527401, + 16750658473, 16750789553, 16750920629, 16751051761, 16751182837, 16751313947, 16751445041, + 16751576141, 16751707213, 16751838307, 16751969387, 16752100483, 16752231557, 16752362663, + 16752493777, 16752624853, 16752755941, 16752887023, 16753018099, 16753149173, 16753280261, + 16753411333, 16753542419, 16753673509, 16753804597, 16753935683, 16754066759, 16754197879, + 16754328959, 16754460059, 16754591171, 16754722267, 16754853389, 16754984471, 16755115547, + 16755246679, 16755377773, 16755508859, 16755639937, 16755771041, 16755902129, 16756033201, + 16756164283, 16756295359, 16756426457, 16756557529, 16756688609, 16756819711, 16756950787, + 16757081867, 16757212957, 16757344033, 16757475107, 16757606207, 16757737289, 16757868383, + 16757999459, 16758130619, 16758261691, 16758392773, 16758523861, 16758654943, 16758786047, + 16758917141, 16759048223, 16759179299, 16759310389, 16759441469, 16759572601, 16759703707, + 16759834799, 16759965877, 16760096999, 16760228077, 16760359169, 16760490259, 16760621333, + 16760752469, 16760883583, 16761014657, 16761145759, 16761276869, 16761407969, 16761539063, + 16761670157, 16761801229, 16761932359, 16762063477, 16762194551, 16762325639, 16762456747, + 16762587827, 16762718933, 16762850021, 16762981117, 16763112221, 16763243293, 16763374373, + 16763505457, 16763636531, 16763767633, 16763898761, 16764029833, 16764160913, 16764291997, + 16764423079, 16764554167, 16764685241, 16764816323, 16764947399, 16765078471, 16765209547, + 16765340633, 16765471717, 16765602797, 16765733903, 16765865003, 16765996109, 16766127181, + 16766258261, 16766389361, 16766520481, 16766651567, 16766782691, 16766913763, 16767044839, + 16767175913, 16767306989, 16767438067, 16767569191, 16767700283, 16767831383, 16767962467, + 16768093547, 16768224653, 16768355753, 16768486859, 16768617959, 16768749061, 16768880137, + 16769011223, 16769142307, 16769273401, 16769404507, 16769535581, 16769666657, 16769797853, + 16769928947, 16770060019, 16770191099, 16770322171, 16770453281, 16770584399, 16770715483, + 16770846569, 16770977659, 16771108777, 16771239911, 16771371037, 16771502129, 16771633211, + 16771764283, 16771895359, 16772026493, 16772157581, 16772288657, 16772419757, 16772550859, + 16772681971, 16772813047, 16772944121, 16773075199, 16773206291, 16773337367, 16773468443, + 16773599519, 16773730591, 16773861691, 16773992777, 16774123879, 16774254953, 16774386061, + 16774517141, 16774648229, 16774779311, 16774910401, 16775041511, 16775172587, 16775303659, + 16775434751, 16775565853, 16775696929, 16775828029, 16775959129, 16776090209, 16776221303, + 16776352379, 16776483467, 16776614539, 16776745627, 16776876703, 16777007803, 16777138877, + 16777269959, 16777401041, 16777532113, 16777663211, 16777794287, 16777925363, 16778056481, + 16778187583, 16778318663, 16778449759, 16778580851, 16778711927, 16778843009, 16778974097, + 16779105197, 16779236293, 16779367369, 16779498479, 16779629557, 16779760639, 16779891841, + 16780022947, 16780154089, 16780285163, 16780416259, 16780547351, 16780678433, 16780809553, + 16780940629, 16781071717, 16781202793, 16781333867, 16781464939, 16781596031, 16781727121, + 16781858201, 16781989291, 16782120371, 16782251443, 16782382553, 16782513689, 16782644773, + 16782775871, 16782906947, 16783038037, 16783169111, 16783300241, 16783431317, 16783562441, + 16783693519, 16783824593, 16783955681, 16784086771, 16784217851, 16784348939, 16784480021, + 16784611111, 16784742241, 16784873317, 16785004393, 16785135481, 16785266573, 16785397649, + 16785528737, 16785659827, 16785790907, 16785922003, 16786053077, 16786184227, 16786315303, + 16786446389, 16786577477, 16786708573, 16786839659, 16786970747, 16787101847, 16787232919, + 16787364059, 16787495167, 16787626253, 16787757359, 16787888431, 16788019511, 16788150611, + 16788281707, 16788412799, 16788543899, 16788675047, 16788806137, 16788937213, 16789068323, + 16789199407, 16789330489, 16789461569, 16789592641, 16789723733, 16789854821, 16789985939, + 16790117021, 16790248129, 16790379233, 16790510327, 16790641423, 16790772499, 16790903599, + 16791034681, 16791165763, 16791296861, 16791427951, 16791559049, 16791690121, 16791821231, + 16791952337, 16792083431, 16792214507, 16792345579, 16792476653, 16792607857, 16792738939, + 16792870043, 16793001133, 16793132207, 16793263303, 16793394383, 16793525461, 16793656541, + 16793787613, 16793918747, 16794049837, 16794180911, 16794311987, 16794443069, 16794574151, + 16794705247, 16794836329, 16794967417, 16795098499, 16795229593, 16795360697, 16795491793, + 16795622891, 16795754011, 16795885091, 16796016191, 16796147321, 16796278393, 16796409521, + 16796540623, 16796671747, 16796802853, 16796933927, 16797065011, 16797196093, 16797327167, + 16797458239, 16797589339, 16797720421, 16797851501, 16797982601, 16798113697, 16798244773, + 16798375873, 16798506971, 16798638053, 16798769173, 16798900249, 16799031331, 16799162407, + 16799293481, 16799424559, 16799555639, 16799686781, 16799817901, 16799948987, 16800080083, + 16800211177, 16800342281, 16800473357, 16800604451, 16800735533, 16800866611, 16800997687, + 16801128769, 16801259843, 16801390919, 16801522009, 16801653131, 16801784203, 16801915301, + 16802046377, 16802177467, 16802308573, 16802439653, 16802570777, 16802701873, 16802832953, + 16802964041, 16803095129, 16803226211, 16803357371, 16803488447, 16803619529, 16803750617, + 16803881701, 16804012783, 16804143857, 16804274933, 16804406011, 16804537093, 16804668173, + 16804799267, 16804930343, 16805061503, 16805192623, 16805323729, 16805454811, 16805585891, + 16805716987, 16805848091, 16805979217, 16806110311, 16806241411, 16806372503, 16806503611, + 16806634693, 16806765779, 16806896857, 16807027943, 16807159037, 16807290127, 16807421207, + 16807552297, 16807683379, 16807814459, 16807945571, 16808076653, 16808207803, 16808338901, + 16808469983, 16808601071, 16808732159, 16808863277, 16808994353, 16809125477, 16809256561, + 16809387649, 16809518807, 16809649897, 16809780973, 16809912061, 16810043183, 16810174261, + 16810305341, 16810436437, 16810567517, 16810698617, 16810829689, 16810960769, 16811091841, + 16811222917, 16811354011, 16811485087, 16811616163, 16811747273, 16811878351, 16812009443, + 16812140539, 16812271631, 16812402703, 16812533779, 16812664853, 16812795931, 16812927007, + 16813058117, 16813189199, 16813320283, 16813451357, 16813582441, 16813713517, 16813844669, + 16813975741, 16814106817, 16814237893, 16814368999, 16814500111, 16814631187, 16814762299, + 16814893379, 16815024481, 16815155587, 16815286699, 16815417793, 16815548881, 16815679961, + 16815811043, 16815942149, 16816073231, 16816204303, 16816335379, 16816466489, 16816597601, + 16816728673, 16816859779, 16816990859, 16817121961, 16817253073, 16817384159, 16817515237, + 16817646317, 16817777393, 16817908469, 16818039541, 16818170639, 16818301711, 16818432803, + 16818563911, 16818695009, 16818826081, 16818957203, 16819088281, 16819219367, 16819350439, + 16819481513, 16819612633, 16819743719, 16819874867, 16820005963, 16820137039, 16820268131, + 16820399207, 16820530291, 16820661383, 16820792489, 16820923579, 16821054661, 16821185747, + 16821316849, 16821447947, 16821579029, 16821710111, 16821841193, 16821972269, 16822103351, + 16822234433, 16822365509, 16822496597, 16822627673, 16822758751, 16822889833, 16823020931, + 16823152051, 16823283133, 16823414221, 16823545301, 16823676383, 16823807467, 16823938583, + 16824069671, 16824200777, 16824331861, 16824462961, 16824594041, 16824725117, 16824856189, + 16824987281, 16825118353, 16825249447, 16825380547, 16825511621, 16825642699, 16825773787, + 16825904861, 16826035987, 16826167081, 16826298263, 16826429353, 16826560477, 16826691599, + 16826822687, 16826953763, 16827084863, 16827215971, 16827347051, 16827478139, 16827609247, + 16827740327, 16827871471, 16828002547, 16828133633, 16828264727, 16828395803, 16828526959, + 16828658053, 16828789139, 16828920223, 16829051311, 16829182399, 16829313481, 16829444573, + 16829575649, 16829706757, 16829837861, 16829968937, 16830100061, 16830231151, 16830362249, + 16830493321, 16830624443, 16830755519, 16830886627, 16831017701, 16831148779, 16831279937, + 16831411039, 16831542113, 16831673207, 16831804291, 16831935377, 16832066453, 16832197537, + 16832328613, 16832459783, 16832590861, 16832721943, 16832853017, 16832984101, 16833115177, + 16833246263, 16833377347, 16833508421, 16833639523, 16833770609, 16833901681, 16834032769, + 16834163851, 16834294927, 16834426003, 16834557119, 16834688203, 16834819283, 16834950401, + 16835081503, 16835212579, 16835343659, 16835474737, 16835605817, 16835736893, 16835868013, + 16835999093, 16836130169, 16836261259, 16836392333, 16836523423, 16836654503, 16836785629, + 16836916727, 16837047803, 16837178881, 16837309967, 16837441067, 16837572139, 16837703269, + 16837834441, 16837965517, 16838096621, 16838227723, 16838358821, 16838489893, 16838620973, + 16838752069, 16838883151, 16839014251, 16839145357, 16839276439, 16839407513, 16839538591, + 16839669697, 16839800771, 16839931883, 16840062989, 16840194071, 16840325197, 16840456271, + 16840587347, 16840718443, 16840849559, 16840980649, 16841111737, 16841242829, 16841373911, + 16841505013, 16841636087, 16841767183, 16841898257, 16842029329, 16842160411, 16842291509, + 16842422581, 16842553697, 16842684811, 16842815897, 16842946987, 16843078073, 16843209157, + 16843340231, 16843471313, 16843602401, 16843733477, 16843864561, 16843995643, 16844126731, + 16844257873, 16844388949, 16844520041, 16844651119, 16844782217, 16844913307, 16845044383, + 16845175469, 16845306547, 16845437621, 16845568699, 16845699797, 16845830879, 16845962069, + 16846093141, 16846224217, 16846355303, 16846486387, 16846617481, 16846748557, 16846879649, + 16847010749, 16847141849, 16847272931, 16847404003, 16847535079, 16847666197, 16847797271, + 16847928371, 16848059447, 16848190531, 16848321617, 16848452689, 16848583781, 16848714863, + 16848845969, 16848977069, 16849108147, 16849239227, 16849370371, 16849501451, 16849632571, + 16849763647, 16849894729, 16850025833, 16850156909, 16850288033, 16850419129, 16850550221, + 16850681317, 16850812399, 16850943481, 16851074557, 16851205633, 16851336727, 16851467803, + 16851598909, 16851729989, 16851861097, 16851992293, 16852123367, 16852254439, 16852385531, + 16852516607, 16852647701, 16852778773, 16852909889, 16853040989, 16853172079, 16853303167, + 16853434243, 16853565371, 16853696467, 16853827547, 16853958619, 16854089711, 16854220843, + 16854351919, 16854483047, 16854614129, 16854745231, 16854876343, 16855007419, 16855138501, + 16855269577, 16855400659, 16855531741, 16855662823, 16855793909, 16855925003, 16856056097, + 16856187203, 16856318279, 16856449471, 16856580563, 16856711653, 16856842771, 16856973863, + 16857105077, 16857236177, 16857367309, 16857498397, 16857629507, 16857760603, 16857891697, + 16858022773, 16858153861, 16858284941, 16858416019, 16858547093, 16858678217, 16858809293, + 16858940381, 16859071457, 16859202557, 16859333629, 16859464729, 16859595811, 16859726903, + 16859857981, 16859989073, 16860120149, 16860251227, 16860382303, 16860513427, 16860644503, + 16860775639, 16860906719, 16861037821, 16861168897, 16861299971, 16861431071, 16861562143, + 16861693217, 16861824299, 16861955389, 16862086477, 16862217557, 16862348651, 16862479747, + 16862610829, 16862741947, 16862873029, 16863004163, 16863135251, 16863266351, 16863397459, + 16863528541, 16863659641, 16863790717, 16863921791, 16864052873, 16864183979, 16864315079, + 16864446169, 16864577243, 16864708337, 16864839479, 16864970569, 16865101661, 16865232773, + 16865363849, 16865494937, 16865626061, 16865757133, 16865888227, 16866019307, 16866150391, + 16866281473, 16866412561, 16866543649, 16866674743, 16866805817, 16866936917, 16867068047, + 16867199123, 16867330223, 16867461323, 16867592407, 16867723559, 16867854643, 16867985731, + 16868116823, 16868247953, 16868379041, 16868510149, 16868641247, 16868772331, 16868903407, + 16869034571, 16869165661, 16869296771, 16869427847, 16869558973, 16869690077, 16869821153, + 16869952241, 16870083343, 16870214447, 16870345529, 16870476619, 16870607711, 16870738883, + 16870869971, 16871001079, 16871132171, 16871263261, 16871394341, 16871525479, 16871656553, + 16871787629, 16871918731, 16872049811, 16872180883, 16872311959, 16872443039, 16872574139, + 16872705229, 16872836327, 16872967451, 16873098527, 16873229707, 16873360787, 16873491913, + 16873622993, 16873754069, 16873885153, 16874016239, 16874147347, 16874278439, 16874409511, + 16874540621, 16874671703, 16874802781, 16874933857, 16875064933, 16875196073, 16875327163, + 16875458239, 16875589321, 16875720427, 16875851507, 16875982583, 16876113659, 16876244731, + 16876375811, 16876506893, 16876638001, 16876769101, 16876900181, 16877031277, 16877162363, + 16877293453, 16877424527, 16877555671, 16877686769, 16877817863, 16877948939, 16878080017, + 16878211123, 16878342233, 16878473317, 16878604397, 16878735487, 16878866561, 16878997633, + 16879128733, 16879259809, 16879390939, 16879522021, 16879653151, 16879784267, 16879915361, + 16880046451, 16880177597, 16880308699, 16880439893, 16880570977, 16880702053, 16880833133, + 16880964239, 16881095321, 16881226403, 16881357497, 16881488573, 16881619663, 16881750751, + 16881881839, 16882012913, 16882144079, 16882275161, 16882406267, 16882537393, 16882668493, + 16882799629, 16882930703, 16883061823, 16883192923, 16883324027, 16883455129, 16883586221, + 16883717293, 16883848369, 16883979451, 16884110563, 16884241639, 16884372719, 16884503791, + 16884634891, 16884765971, 16884897049, 16885028131, 16885159241, 16885290319, 16885421393, + 16885552469, 16885683547, 16885814623, 16885945723, 16886076811, 16886207917, 16886338999, + 16886470087, 16886601191, 16886732287, 16886863393, 16886994469, 16887125579, 16887256709, + 16887387799, 16887518881, 16887649957, 16887781049, 16887912121, 16888043269, 16888174399, + 16888305509, 16888436597, 16888567679, 16888698779, 16888829861, 16888960937, 16889092009, + 16889223083, 16889354177, 16889485273, 16889616349, 16889747437, 16889878541, 16890009613, + 16890140731, 16890271829, 16890402937, 16890534079, 16890665161, 16890796277, 16890927349, + 16891058453, 16891189529, 16891320613, 16891451699, 16891582831, 16891713919, 16891844993, + 16891976069, 16892107153, 16892238271, 16892369393, 16892500511, 16892631583, 16892762659, + 16892893783, 16893024913, 16893156011, 16893287093, 16893418183, 16893549317, 16893680399, + 16893811471, 16893942577, 16894073653, 16894204729, 16894335841, 16894466917, 16894597999, + 16894729109, 16894860233, 16894991329, 16895122417, 16895253527, 16895384621, 16895515829, + 16895646907, 16895777999, 16895909071, 16896040159, 16896171233, 16896302347, 16896433507, + 16896564623, 16896695791, 16896826871, 16896957947, 16897089109, 16897220209, 16897351283, + 16897482361, 16897613441, 16897744517, 16897875607, 16898006707, 16898137801, 16898268917, + 16898400073, 16898531147, 16898662219, 16898793313, 16898924431, 16899055507, 16899186631, + 16899317707, 16899448781, 16899579899, 16899711001, 16899842101, 16899973183, 16900104269, + 16900235351, 16900366423, 16900497499, 16900628579, 16900759663, 16900890757, 16901021861, + 16901152943, 16901284021, 16901415101, 16901546203, 16901677291, 16901808383, 16901939473, + 16902070583, 16902201671, 16902332743, 16902463847, 16902594941, 16902726041, 16902857119, + 16902988199, 16903119319, 16903250393, 16903381489, 16903512589, 16903643681, 16903774777, + 16903905881, 16904036969, 16904168087, 16904299193, 16904430289, 16904561381, 16904692489, + 16904823577, 16904954657, 16905085751, 16905216829, 16905347917, 16905478999, 16905610081, + 16905741163, 16905872251, 16906003343, 16906134491, 16906265591, 16906396679, 16906527751, + 16906658827, 16906789919, 16906921037, 16907052121, 16907183197, 16907314321, 16907445409, + 16907576509, 16907707591, 16907838737, 16907969863, 16908100939, 16908232039, 16908363113, + 16908494189, 16908625303, 16908756379, 16908887459, 16909018571, 16909149643, 16909280743, + 16909411877, 16909542953, 16909674077, 16909805177, 16909936259, 16910067353, 16910198443, + 16910329523, 16910460601, 16910591683, 16910722793, 16910853877, 16910984953, 16911116029, + 16911247159, 16911378233, 16911509311, 16911640393, 16911771511, 16911902593, 16912033669, + 16912164749, 16912295831, 16912426919, 16912558037, 16912689109, 16912820231, 16912951337, + 16913082409, 16913213483, 16913344621, 16913475701, 16913606777, 16913737877, 16913868967, + 16914000083, 16914131177, 16914262273, 16914393367, 16914524483, 16914655577, 16914786673, + 16914917791, 16915048873, 16915179947, 16915311059, 16915442177, 16915573271, 16915704343, + 16915835423, 16915966511, 16916097631, 16916228711, 16916359829, 16916490901, 16916621999, + 16916753083, 16916884163, 16917015257, 16917146381, 16917277483, 16917408559, 16917539689, + 16917670799, 16917801871, 16917932957, 16918064039, 16918195127, 16918326241, 16918457327, + 16918588403, 16918719479, 16918850581, 16918981663, 16919112787, 16919243879, 16919374957, + 16919506033, 16919637109, 16919768209, 16919899303, 16920030427, 16920161509, 16920292589, + 16920423671, 16920554789, 16920685861, 16920816937, 16920948013, 16921079089, 16921210183, + 16921341277, 16921472383, 16921603459, 16921734563, 16921865651, 16921996723, 16922127799, + 16922258897, 16922390027, 16922521237, 16922652323, 16922783407, 16922914487, 16923045619, + 16923176701, 16923307837, 16923438929, 16923570007, 16923701111, 16923832183, 16923963283, + 16924094377, 16924225469, 16924356551, 16924487677, 16924618757, 16924749841, 16924880953, + 16925012029, 16925143141, 16925274283, 16925405383, 16925536477, 16925667553, 16925798627, + 16925929717, 16926060799, 16926191903, 16926322981, 16926454067, 16926585139, 16926716227, + 16926847313, 16926978413, 16927109497, 16927240573, 16927371673, 16927502747, 16927633823, + 16927764913, 16927896019, 16928027093, 16928158223, 16928289299, 16928420407, 16928551481, + 16928682581, 16928813659, 16928944733, 16929075809, 16929206893, 16929337969, 16929469049, + 16929600139, 16929731213, 16929862297, 16929993383, 16930124459, 16930255619, 16930386709, + 16930517809, 16930648883, 16930779979, 16930911061, 16931042147, 16931173219, 16931304311, + 16931435419, 16931566543, 16931697649, 16931828747, 16931959831, 16932090919, 16932222061, + 16932353147, 16932484223, 16932615319, 16932746407, 16932877537, 16933008623, 16933139737, + 16933270819, 16933401913, 16933532989, 16933664107, 16933795187, 16933926259, 16934057333, + 16934188429, 16934319509, 16934450591, 16934581667, 16934712779, 16934843873, 16934974967, + 16935106043, 16935237127, 16935368221, 16935499309, 16935630391, 16935761467, 16935892553, + 16936023641, 16936154713, 16936285789, 16936416869, 16936547941, 16936679017, 16936810109, + 16936941191, 16937072263, 16937203351, 16937334443, 16937465549, 16937596639, 16937727749, + 16937858831, 16937989903, 16938121019, 16938252103, 16938383197, 16938514279, 16938645397, + 16938776473, 16938907571, 16939038647, 16939169719, 16939300853, 16939431961, 16939563097, + 16939694179, 16939825267, 16939956367, 16940087441, 16940218513, 16940349607, 16940480699, + 16940611771, 16940742853, 16940873941, 16941005021, 16941136133, 16941267209, 16941398293, + 16941529391, 16941660497, 16941791599, 16941922687, 16942053769, 16942184851, 16942315969, + 16942447043, 16942578139, 16942709221, 16942840297, 16942971379, 16943102461, 16943233537, + 16943364631, 16943495707, 16943626811, 16943757893, 16943889059, 16944020147, 16944151219, + 16944282307, 16944413419, 16944544499, 16944675593, 16944806701, 16944937817, 16945068913, + 16945199987, 16945331071, 16945462199, 16945593307, 16945724413, 16945855513, 16945986611, + 16946117707, 16946248783, 16946379893, 16946510983, 16946642059, 16946773141, 16946904239, + 16947035317, 16947166399, 16947297503, 16947428579, 16947559669, 16947690763, 16947821897, + 16947952969, 16948084061, 16948215133, 16948346221, 16948477313, 16948608407, 16948739501, + 16948870597, 16949001743, 16949132833, 16949263943, 16949395019, 16949526103, 16949657189, + 16949788321, 16949919397, 16950050477, 16950181553, 16950312629, 16950443701, 16950574841, + 16950705913, 16950837017, 16950968173, 16951099259, 16951230371, 16951361447, 16951492553, + 16951623643, 16951754749, 16951885831, 16952016911, 16952148007, 16952279089, 16952410169, + 16952541259, 16952672339, 16952803423, 16952934511, 16953065599, 16953196691, 16953327779, + 16953458869, 16953589943, 16953721067, 16953852151, 16953983239, 16954114327, 16954245403, + 16954376497, 16954507573, 16954638647, 16954769731, 16954900873, 16955031997, 16955163119, + 16955294203, 16955425309, 16955556389, 16955687509, 16955818589, 16955949671, 16956080747, + 16956211829, 16956342917, 16956473993, 16956605111, 16956736211, 16956867283, 16956998369, + 16957129463, 16957260601, 16957391729, 16957522801, 16957653887, 16957784959, 16957916047, + 16958047129, 16958178247, 16958309327, 16958440409, 16958571533, 16958702609, 16958833739, + 16958964853, 16959095927, 16959227011, 16959358099, 16959489191, 16959620273, 16959751357, + 16959882451, 16960013527, 16960144651, 16960275737, 16960406809, 16960537907, 16960669001, + 16960800079, 16960931159, 16961062241, 16961193329, 16961324437, 16961455513, 16961586589, + 16961717687, 16961848769, 16961979841, 16962110917, 16962241999, 16962373117, 16962504191, + 16962635281, 16962766397, 16962897473, 16963028549, 16963159621, 16963290749, 16963421821, + 16963552909, 16963684019, 16963815097, 16963946177, 16964077253, 16964208343, 16964339437, + 16964470519, 16964601593, 16964732669, 16964863889, 16964994973, 16965126053, 16965257137, + 16965388261, 16965519341, 16965650413, 16965781501, 16965912589, 16966043671, 16966174747, + 16966305871, 16966436999, 16966568083, 16966699181, 16966830271, 16966961353, 16967092447, + 16967223523, 16967354603, 16967485709, 16967616793, 16967747891, 16967878979, 16968010057, + 16968141191, 16968272267, 16968403339, 16968534439, 16968665537, 16968796613, 16968927719, + 16969058833, 16969189907, 16969320997, 16969452163, 16969583263, 16969714337, 16969845413, + 16969976489, 16970107603, 16970238709, 16970369789, 16970500867, 16970631967, 16970763041, + 16970894123, 16971025213, 16971156299, 16971287381, 16971418501, 16971549587, 16971680659, + 16971811783, 16971942881, 16972074001, 16972205083, 16972336177, 16972467251, 16972598339, + 16972729463, 16972860539, 16972991663, 16973122741, 16973253833, 16973384929, 16973516003, + 16973647081, 16973778179, 16973909263, 16974040351, 16974171433, 16974302567, 16974433643, + 16974564721, 16974695797, 16974826877, 16974958009, 16975089097, 16975220191, 16975351271, + 16975482347, 16975613471, 16975744547, 16975875649, 16976006737, 16976137817, 16976268919, + 16976400011, 16976531101, 16976662177, 16976793257, 16976924339, 16977055483, 16977186559, + 16977317639, 16977448751, 16977579847, 16977710921, 16977842017, 16977973097, 16978104181, + 16978235273, 16978366369, 16978497521, 16978628629, 16978759757, 16978890829, 16979021921, + 16979153033, 16979284171, 16979415251, 16979546323, 16979677409, 16979808499, 16979939623, + 16980070699, 16980201781, 16980332869, 16980463967, 16980595063, 16980726163, 16980857237, + 16980988333, 16981119433, 16981250537, 16981381609, 16981512683, 16981643759, 16981774907, + 16981905979, 16982037071, 16982168153, 16982299253, 16982430329, 16982561413, 16982692513, + 16982823601, 16982954693, 16983085781, 16983216863, 16983347971, 16983479129, 16983610207, + 16983741283, 16983872371, 16984003451, 16984134527, 16984265611, 16984396691, 16984527809, + 16984658927, 16984789999, 16984921073, 16985052169, 16985183261, 16985314343, 16985445419, + 16985576551, 16985707631, 16985838707, 16985969783, 16986100891, 16986231991, 16986363067, + 16986494149, 16986625231, 16986756343, 16986887417, 16987018501, 16987149589, 16987280663, + 16987411739, 16987542811, 16987673893, 16987804993, 16987936073, 16988067167, 16988198261, + 16988329357, 16988460431, 16988591507, 16988722631, 16988853769, 16988984849, 16989115931, + 16989247057, 16989378151, 16989509239, 16989640321, 16989771397, 16989902477, 16990033573, + 16990164733, 16990295809, 16990426891, 16990557977, 16990689059, 16990820131, 16990951217, + 16991082319, 16991213417, 16991344511, 16991475619, 16991606693, 16991737781, 16991868869, + 16991999963, 16992131047, 16992262129, 16992393211, 16992524287, 16992655403, 16992786479, + 16992917563, 16993048643, 16993179733, 16993310813, 16993441903, 16993572979, 16993704059, + 16993835141, 16993966217, 16994097319, 16994228393, 16994359483, 16994490559, 16994621641, + 16994752751, 16994883881, 16995014963, 16995146111, 16995277193, 16995408289, 16995539369, + 16995670477, 16995801617, 16995932689, 16996063793, 16996194869, 16996325947, 16996457033, + 16996588123, 16996719199, 16996850281, 16996981369, 16997112443, 16997243521, 16997374613, + 16997505761, 16997636849, 16997767967, 16997899057, 16998030169, 16998161249, 16998292321, + 16998423427, 16998554509, 16998685591, 16998816673, 16998947761, 16999078843, 16999209971, + 16999341061, 16999472137, 16999603249, 16999734343, 16999865417, 16999996513, 17000127589, + 17000258713, 17000389789, 17000520919, 17000652037, 17000783117, 17000914193, 17001045331, + 17001176407, 17001307493, 17001438577, 17001569653, 17001700739, 17001831811, 17001962897, + 17002093991, 17002225111, 17002356199, 17002487311, 17002618387, 17002749473, 17002880549, + 17003011639, 17003142733, 17003273827, 17003404909, 17003536003, 17003667091, 17003798167, + 17003929249, 17004060323, 17004191447, 17004322541, 17004453667, 17004584743, 17004715883, + 17004846959, 17004978071, 17005109153, 17005240289, 17005371373, 17005502471, 17005633571, + 17005764733, 17005895833, 17006026963, 17006158087, 17006289173, 17006420257, 17006551333, + 17006682463, 17006813557, 17006944637, 17007075737, 17007206819, 17007337903, 17007468983, + 17007600107, 17007731189, 17007862303, 17007993391, 17008124467, 17008255543, 17008386631, + 17008517711, 17008648819, 17008779899, 17008910983, 17009042069, 17009173157, 17009304229, + 17009435321, 17009566451, 17009697553, 17009828659, 17009959781, 17010090857, 17010221971, + 17010353047, 17010484123, 17010615221, 17010746317, 17010877417, 17011008559, 17011139633, + 17011270733, 17011401809, 17011532897, 17011663969, 17011795043, 17011926131, 17012057287, + 17012188447, 17012319521, 17012450593, 17012581669, 17012712757, 17012843831, 17012974919, + 17013106009, 17013237091, 17013368173, 17013499249, 17013630323, 17013761417, 17013892501, + 17014023577, 17014154687, 17014285789, 17014416863, 17014547941, 17014679023, 17014810103, + 17014941193, 17015072279, 17015203351, 17015334431, 17015465567, 17015596649, 17015727763, + 17015858843, 17015989919, 17016120991, 17016252079, 17016383171, 17016514279, 17016645353, + 17016776429, 17016907511, 17017038583, 17017169657, 17017300787, 17017431859, 17017562941, + 17017694017, 17017825117, 17017956209, 17018087293, 17018218381, 17018349461, 17018480603, + 17018611721, 17018742827, 17018873899, 17019004973, 17019136061, 17019267179, 17019398311, + 17019529391, 17019660481, 17019791573, 17019922721, 17020053811, 17020184903, 17020315979, + 17020447139, 17020578247, 17020709347, 17020840477, 17020971551, 17021102629, 17021233711, + 17021364803, 17021495893, 17021626981, 17021758067, 17021889163, 17022020263, 17022151361, + 17022282437, 17022413543, 17022544661, 17022675743, 17022806821, 17022937901, 17023068989, + 17023200067, 17023331173, 17023462271, 17023593373, 17023724489, 17023855567, 17023986641, + 17024117723, 17024248831, 17024379923, 17024510999, 17024642077, 17024773159, 17024904271, + 17025035351, 17025166423, 17025297551, 17025428627, 17025559711, 17025690809, 17025821887, + 17025952961, 17026084043, 17026215133, 17026346237, 17026477333, 17026608409, 17026739519, + 17026870643, 17027001721, 17027132797, 17027263901, 17027395013, 17027526107, 17027657191, + 17027788291, 17027919371, 17028050453, 17028181561, 17028312643, 17028443741, 17028574853, + 17028705929, 17028837017, 17028968093, 17029099169, 17029230241, 17029361317, 17029492397, + 17029623473, 17029754561, 17029885651, 17030016733, 17030147863, 17030278939, 17030410027, + 17030541113, 17030672189, 17030803267, 17030934341, 17031065413, 17031196487, 17031327581, + 17031458663, 17031589763, 17031720899, 17031851971, 17031983053, 17032114157, 17032245271, + 17032376419, 17032507559, 17032638631, 17032769731, 17032900813, 17033031889, 17033162989, + 17033294099, 17033425217, 17033556307, 17033687383, 17033818489, 17033949571, 17034080711, + 17034211801, 17034342881, 17034473971, 17034605053, 17034736133, 17034867209, 17034998297, + 17035129381, 17035260481, 17035391557, 17035522661, 17035653781, 17035784863, 17035915943, + 17036047019, 17036178097, 17036309179, 17036440271, 17036571347, 17036702437, 17036833511, + 17036964583, 17037095689, 17037226769, 17037357851, 17037488929, 17037620011, 17037751091, + 17037882163, 17038013257, 17038144337, 17038275421, 17038406543, 17038537697, 17038668781, + 17038799857, 17038930967, 17039062043, 17039193133, 17039324219, 17039455331, 17039586407, + 17039717501, 17039848577, 17039979659, 17040110741, 17040241871, 17040372959, 17040504043, + 17040635149, 17040766229, 17040897329, 17041028483, 17041159571, 17041290689, 17041421767, + 17041552867, 17041683947, 17041815031, 17041946111, 17042077201, 17042208277, 17042339357, + 17042470469, 17042601547, 17042732633, 17042863763, 17042994847, 17043125929, 17043257029, + 17043388139, 17043519221, 17043650293, 17043781373, 17043912463, 17044043561, 17044174661, + 17044305787, 17044436869, 17044567951, 17044699043, 17044830119, 17044961239, 17045092343, + 17045223421, 17045354527, 17045485607, 17045616701, 17045747779, 17045878867, 17046009949, + 17046141031, 17046272171, 17046403357, 17046534473, 17046665549, 17046796639, 17046927713, + 17047058827, 17047189903, 17047320977, 17047452073, 17047583159, 17047714237, 17047845319, + 17047976399, 17048107511, 17048238583, 17048369711, 17048500801, 17048631881, 17048762959, + 17048894221, 17049025303, 17049156461, 17049287557, 17049418651, 17049549739, 17049680827, + 17049811903, 17049942979, 17050074079, 17050205191, 17050336273, 17050467403, 17050598489, + 17050729583, 17050860667, 17050991747, 17051122853, 17051253949, 17051385031, 17051516113, + 17051647189, 17051778283, 17051909359, 17052040433, 17052171553, 17052302633, 17052433777, + 17052564883, 17052696013, 17052827087, 17052958183, 17053089257, 17053220333, 17053351439, + 17053482569, 17053613659, 17053744753, 17053875827, 17054006899, 17054137999, 17054269093, + 17054400169, 17054531243, 17054662319, 17054793401, 17054924483, 17055055561, 17055186647, + 17055317731, 17055448829, 17055579941, 17055711041, 17055842117, 17055973189, 17056104293, + 17056235369, 17056366447, 17056497539, 17056628621, 17056759693, 17056890779, 17057021887, + 17057152969, 17057284063, 17057415143, 17057546239, 17057677337, 17057808419, 17057939527, + 17058070639, 17058201733, 17058332807, 17058463883, 17058594997, 17058726077, 17058857161, + 17058988273, 17059119349, 17059250477, 17059381567, 17059512649, 17059643767, 17059774847, + 17059905959, 17060037061, 17060168137, 17060299213, 17060430347, 17060561437, 17060692529, + 17060823601, 17060954699, 17061085771, 17061216863, 17061347957, 17061479033, 17061610121, + 17061741199, 17061872281, 17062003379, 17062134451, 17062265527, 17062396619, 17062527701, + 17062658779, 17062789879, 17062920983, 17063052059, 17063183131, 17063314241, 17063445323, + 17063576407, 17063707481, 17063838557, 17063969647, 17064100751, 17064231841, 17064362923, + 17064494021, 17064625103, 17064756187, 17064887261, 17065018343, 17065149419, 17065280501, + 17065411607, 17065542679, 17065673809, 17065804897, 17065935973, 17066067097, 17066198189, + 17066329279, 17066460353, 17066591441, 17066722537, 17066853611, 17066984689, 17067115787, + 17067246877, 17067378049, 17067509143, 17067640259, 17067771359, 17067902431, 17068033561, + 17068164637, 17068295729, 17068426801, 17068557881, 17068688977, 17068820051, 17068951129, + 17069082221, 17069213299, 17069344379, 17069475469, 17069606579, 17069737709, 17069868791, + 17069999899, 17070131027, 17070262109, 17070393181, 17070524267, 17070655363, 17070786437, + 17070917531, 17071048609, 17071179689, 17071310783, 17071441867, 17071572949, 17071704031, + 17071835119, 17071966193, 17072097269, 17072228351, 17072359483, 17072490581, 17072621669, + 17072752747, 17072883823, 17073014899, 17073145987, 17073277069, 17073408169, 17073539269, + 17073670363, 17073801461, 17073932549, 17074063667, 17074194757, 17074325843, 17074456937, + 17074588087, 17074719163, 17074850249, 17074981331, 17075112403, 17075243557, 17075374633, + 17075505737, 17075636833, 17075767927, 17075899021, 17076030131, 17076161233, 17076292333, + 17076423421, 17076554527, 17076685667, 17076816749, 17076947857, 17077078979, 17077210061, + 17077341221, 17077472303, 17077603379, 17077734497, 17077865653, 17077996757, 17078127863, + 17078258957, 17078390051, 17078521123, 17078652197, 17078783273, 17078914381, 17079045463, + 17079176573, 17079307657, 17079438743, 17079569821, 17079700919, 17079832037, 17079963119, + 17080094249, 17080225343, 17080356427, 17080487509, 17080618637, 17080749709, 17080880807, + 17081011889, 17081142961, 17081274103, 17081405221, 17081536319, 17081667403, 17081798477, + 17081929549, 17082060629, 17082191717, 17082322793, 17082453877, 17082584957, 17082716047, + 17082847121, 17082978229, 17083109377, 17083240477, 17083371551, 17083502659, 17083633733, + 17083764811, 17083895897, 17084027003, 17084158079, 17084289181, 17084420267, 17084551343, + 17084682467, 17084813573, 17084944661, 17085075737, 17085206837, 17085337933, 17085469007, + 17085600107, 17085731183, 17085862259, 17085993347, 17086124479, 17086255573, 17086386661, + 17086517737, 17086648867, 17086779943, 17086911019, 17087042101, 17087173177, 17087304259, + 17087435347, 17087566423, 17087697541, 17087828621, 17087959703, 17088090853, 17088221947, + 17088353039, 17088484121, 17088615211, 17088746291, 17088877363, 17089008451, 17089139533, + 17089270609, 17089401731, 17089532809, 17089663897, 17089794977, 17089926053, 17090057141, + 17090188309, 17090319413, 17090450497, 17090581591, 17090712689, 17090843827, 17090974907, + 17091106001, 17091237089, 17091368171, 17091499289, 17091630383, 17091761513, 17091892619, + 17092023709, 17092154809, 17092285909, 17092417033, 17092548169, 17092679249, 17092810393, + 17092941527, 17093072611, 17093203697, 17093334799, 17093465941, 17093597021, 17093728153, + 17093859239, 17093990311, 17094121411, 17094252503, 17094383591, 17094514669, 17094645791, + 17094776947, 17094908099, 17095039201, 17095170331, 17095301413, 17095432537, 17095563629, + 17095694701, 17095825807, 17095956901, 17096087989, 17096219093, 17096350189, 17096481317, + 17096612399, 17096743471, 17096874569, 17097005671, 17097136783, 17097267871, 17097398951, + 17097530027, 17097661121, 17097792223, 17097923321, 17098054411, 17098185491, 17098316579, + 17098447657, 17098578737, 17098709809, 17098840883, 17098971991, 17099103071, 17099234161, + 17099365247, 17099496343, 17099627431, 17099758513, 17099889601, 17100020683, 17100151771, + 17100282917, 17100414007, 17100545087, 17100676163, 17100807239, 17100938339, 17101069417, + 17101200503, 17101331579, 17101462657, 17101593731, 17101724803, 17101855889, 17101986971, + 17102118049, 17102249137, 17102380259, 17102511337, 17102642419, 17102773507, 17102904593, + 17103035669, 17103166753, 17103297847, 17103428933, 17103560029, 17103691103, 17103822181, + 17103953261, 17104084339, 17104215437, 17104346513, 17104477589, 17104608683, 17104739761, + 17104870873, 17105001961, 17105133061, 17105264171, 17105395247, 17105526323, 17105657419, + 17105788507, 17105919581, 17106050657, 17106181753, 17106312893, 17106443969, 17106575053, + 17106706129, 17106837269, 17106968353, 17107099519, 17107230601, 17107361701, 17107492811, + 17107623901, 17107754987, 17107886069, 17108017153, 17108148227, 17108279329, 17108410447, + 17108541533, 17108672621, 17108803697, 17108934781, 17109065861, 17109196957, 17109328073, + 17109459149, 17109590227, 17109721303, 17109852401, 17109983533, 17110114613, 17110245689, + 17110376761, 17110507849, 17110638949, 17110770059, 17110901147, 17111032231, 17111163313, + 17111294399, 17111425493, 17111556571, 17111687657, 17111818751, 17111949857, 17112080929, + 17112212059, 17112343133, 17112474209, 17112605281, 17112736357, 17112867467, 17112998543, + 17113129619, 17113260721, 17113391837, 17113522913, 17113654021, 17113785103, 17113916179, + 17114047259, 17114178331, 17114309441, 17114440529, 17114571629, 17114702701, 17114833777, + 17114964859, 17115095951, 17115227027, 17115358121, 17115489203, 17115620297, 17115751423, + 17115882521, 17116013597, 17116144687, 17116275773, 17116406893, 17116537993, 17116669081, + 17116800187, 17116931281, 17117062363, 17117193437, 17117324509, 17117455591, 17117586667, + 17117717789, 17117848861, 17117979941, 17118111029, 17118242101, 17118373187, 17118504259, + 17118635341, 17118766481, 17118897583, 17119028737, 17119159829, 17119290919, 17119421993, + 17119553069, 17119684147, 17119815227, 17119946309, 17120077399, 17120208481, 17120339603, + 17120470681, 17120601761, 17120732869, 17120863987, 17120995061, 17121126137, 17121257213, + 17121388289, 17121519377, 17121650473, 17121781549, 17121912659, 17122043747, 17122174837, + 17122305911, 17122437001, 17122568081, 17122699157, 17122830271, 17122961377, 17123092457, + 17123223539, 17123354657, 17123485759, 17123616889, 17123747983, 17123879083, 17124010157, + 17124141271, 17124272377, 17124403477, 17124534569, 17124665651, 17124796747, 17124927821, + 17125058911, 17125189987, 17125321063, 17125452151, 17125583227, 17125714321, 17125845403, + 17125976507, 17126107597, 17126238709, 17126369807, 17126500883, 17126631961, 17126763047, + 17126894123, 17127025219, 17127156317, 17127287389, 17127418489, 17127549629, 17127680741, + 17127811817, 17127942941, 17128074013, 17128205123, 17128336219, 17128467311, 17128598429, + 17128729507, 17128860583, 17128991707, 17129122793, 17129253877, 17129384999, 17129516071, + 17129647189, 17129778313, 17129909411, 17130040489, 17130171581, 17130302681, 17130433769, + 17130564851, 17130695947, 17130827029, 17130958139, 17131089253, 17131220329, 17131351427, + 17131482581, 17131613659, 17131744739, 17131875811, 17132006923, 17132137999, 17132269079, + 17132400157, 17132531281, 17132662361, 17132793479, 17132924551, 17133055633, 17133186731, + 17133317867, 17133448939, 17133580073, 17133711197, 17133842291, 17133973391, 17134104473, + 17134235603, 17134366679, 17134497769, 17134628873, 17134759973, 17134891057, 17135022137, + 17135153219, 17135284321, 17135415481, 17135546557, 17135677631, 17135808719, 17135939801, + 17136070879, 17136201961, 17136333041, 17136464141, 17136595213, 17136726293, 17136857377, + 17136988471, 17137119563, 17137250651, 17137381733, 17137512839, 17137643911, 17137774999, + 17137906109, 17138037181, 17138168291, 17138299379, 17138430467, 17138561563, 17138692651, + 17138823739, 17138954813, 17139085937, 17139217021, 17139348101, 17139479221, 17139610321, + 17139741431, 17139872509, 17140003591, 17140134677, 17140265767, 17140396879, 17140527973, + 17140659047, 17140790167, 17140921247, 17141052323, 17141183401, 17141314483, 17141445569, + 17141576653, 17141707747, 17141838853, 17141969939, 17142101021, 17142232109, 17142363223, + 17142494311, 17142625387, 17142756467, 17142887539, 17143018621, 17143149721, 17143280867, + 17143411963, 17143543049, 17143674127, 17143805209, 17143936283, 17144067383, 17144198521, + 17144329597, 17144460677, 17144591773, 17144722849, 17144853997, 17144985083, 17145116161, + 17145247253, 17145378343, 17145509453, 17145640571, 17145771647, 17145902723, 17146033799, + 17146164881, 17146295983, 17146427057, 17146558129, 17146689223, 17146820329, 17146951463, + 17147082541, 17147213711, 17147344889, 17147475977, 17147607049, 17147738123, 17147869199, + 17148000271, 17148131347, 17148262441, 17148393523, 17148524641, 17148655781, 17148786923, + 17148918041, 17149049143, 17149180229, 17149311331, 17149442417, 17149573501, 17149704599, + 17149835683, 17149966781, 17150097863, 17150228941, 17150360027, 17150491153, 17150622253, + 17150753353, 17150884427, 17151015559, 17151146641, 17151277723, 17151408823, 17151539929, + 17151671027, 17151802139, 17151933259, 17152064339, 17152195457, 17152326533, 17152457611, + 17152588709, 17152719791, 17152850881, 17152982009, 17153113127, 17153244233, 17153375311, + 17153506411, 17153637499, 17153768591, 17153899667, 17154030743, 17154161821, 17154292921, + 17154424003, 17154555113, 17154686203, 17154817279, 17154948367, 17155079441, 17155210517, + 17155341589, 17155472669, 17155603741, 17155734823, 17155865897, 17155996973, 17156128063, + 17156259137, 17156390219, 17156521321, 17156652427, 17156783549, 17156914657, 17157045749, + 17157176837, 17157307943, 17157439037, 17157570119, 17157701191, 17157832271, 17157963349, + 17158094431, 17158225523, 17158356617, 17158487779, 17158618879, 17158749973, 17158881049, + 17159012149, 17159143229, 17159274311, 17159405383, 17159536463, 17159667649, 17159798723, + 17159929811, 17160060889, 17160191963, 17160323053, 17160454151, 17160585227, 17160716327, + 17160847399, 17160978493, 17161109573, 17161240721, 17161371833, 17161502921, 17161634029, + 17161765109, 17161896197, 17162027269, 17162158357, 17162289437, 17162420519, 17162551613, + 17162682709, 17162813813, 17162944907, 17163075989, 17163207077, 17163338149, 17163469223, + 17163600331, 17163731411, 17163862501, 17163993599, 17164124699, 17164255789, 17164386937, + 17164518047, 17164649119, 17164780207, 17164911299, 17165042381, 17165173453, 17165304551, + 17165435659, 17165566771, 17165697869, 17165828957, 17165960033, 17166091157, 17166222251, + 17166353333, 17166484411, 17166615491, 17166746567, 17166877691, 17167008767, 17167139867, + 17167270997, 17167402123, 17167533203, 17167664287, 17167795361, 17167926439, 17168057521, + 17168188601, 17168319677, 17168450779, 17168581873, 17168712959, 17168844047, 17168975147, + 17169106271, 17169237353, 17169368429, 17169499519, 17169630619, 17169761723, 17169892853, + 17170023961, 17170155061, 17170286137, 17170417213, 17170548289, 17170679437, 17170810513, + 17170941587, 17171072669, 17171203747, 17171334833, 17171465917, 17171596993, 17171728069, + 17171859149, 17171990237, 17172121327, 17172252413, 17172383489, 17172514561, 17172645643, + 17172776717, 17172907813, 17173038893, 17173169987, 17173301059, 17173432163, 17173563259, + 17173694333, 17173825421, 17173956517, 17174087597, 17174218681, 17174349779, 17174480867, + 17174611943, 17174743031, 17174874103, 17175005201, 17175136273, 17175267353, 17175398473, + 17175529577, 17175660743, 17175791821, 17175922903, 17176053997, 17176185083, 17176316167, + 17176447243, 17176578343, 17176709449, 17176840529, 17176971601, 17177102693, 17177233783, + 17177364857, 17177495953, 17177627053, 17177758133}; /** * @brief Indicates whether the input `num` is a prime number. @@ -59,6 +20166,9 @@ constexpr std::size_t compute_prime(std::size_t num) noexcept return num; } +// safe division +#define SDIV(x, y) (((x) + (y)-1) / (y)) + /** * @brief Calculates the adjusted/valid capacity based on `CGSize` and the initial `capacity`. * @@ -69,8 +20179,9 @@ constexpr std::size_t compute_prime(std::size_t num) noexcept template constexpr std::size_t get_valid_capacity(std::size_t capacity) noexcept { - auto const min_prime = compute_prime(SDIV(capacity, CGSize)); - return min_prime * CGSize; + auto const c = SDIV(capacity, CGSize); + auto const min_prime = std::lower_bound(primes.begin(), primes.end(), c); + return *min_prime * CGSize; } } // namespace detail From da10ebae8a2ec02ddd3505eb4c02ba663d2f2bb2 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 27 Aug 2021 20:11:37 -0400 Subject: [PATCH 199/267] Fix several typos --- include/cuco/static_multimap.cuh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index d93fa6f13..6ebae3215 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -77,9 +77,9 @@ namespace cuco { * The singular device-side operations allow individual threads to perform * independent operations (e.g. `insert`, etc.) from device code. These * operations are accessed through non-owning, trivially copyable "view" types: - * `device_view` and `mutable_device_view`. The `device_view` class is an + * `device_view` and `device_mutable_view`. The `device_view` class is an * immutable view that allows only non-modifying operations such as `count` or - * `contains`. The `mutable_device_view` class only allows `insert` operations. + * `contains`. The `device_mutable_view` class only allows `insert` operations. * The two types are separate to prevent erroneous concurrent insert/find * operations. * @@ -628,7 +628,7 @@ class static_multimap { * // Inserts a sequence of pairs {{0,0}, {1,1}, ... {i,i}} * thrust::for_each(thrust::make_counting_iterator(0), * thrust::make_counting_iterator(50'000), - * [map = m.get_mutable_device_view()] + * [map = m.get_device_mutable_view()] * __device__ (auto i) mutable { * map.insert(thrust::make_pair(i,i)); * }); From f249c443dbcd6ba68ee5c6b79cd2b7bb7104ae13 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 31 Aug 2021 11:59:53 -0400 Subject: [PATCH 200/267] Fix a bug: initialize output_idx before ballot --- include/cuco/detail/static_multimap.inl | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 47df44f60..82bcf7558 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1215,13 +1215,13 @@ static_multimap::device_view::retri auto const slot_is_empty = detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); - auto const exists = g.ballot(equals); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); + uint32_t output_idx = *cg_counter; + auto const exists = g.ballot(equals); if (exists) { if constexpr (is_outer) { found_match = true; } - auto num_matches = __popc(exists); - uint32_t output_idx = *cg_counter; + auto num_matches = __popc(exists); if (equals) { // Each match computes its lane-level offset auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); @@ -1235,7 +1235,7 @@ static_multimap::device_view::retri running = false; if constexpr (is_outer) { if ((not found_match) && (lane_id == 0)) { - auto output_idx = (*cg_counter)++; + output_idx = (*cg_counter)++; Key key = k; output_buffer[output_idx] = cuco::make_pair( std::move(key), std::move(this->get_empty_value_sentinel())); @@ -1399,13 +1399,13 @@ static_multimap::device_view::pair_ auto const slot_is_empty = detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and pair_equal(slot_contents, pair)); - auto const exists = g.ballot(equals); + auto const equals = (not slot_is_empty and pair_equal(slot_contents, pair)); + uint32_t output_idx = *cg_counter; + auto const exists = g.ballot(equals); if (exists) { if constexpr (is_outer) { found_match = true; } - auto num_matches = __popc(exists); - uint32_t output_idx = *cg_counter; + auto num_matches = __popc(exists); if (equals) { // Each match computes its lane-level offset auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); @@ -1418,7 +1418,7 @@ static_multimap::device_view::pair_ running = false; if constexpr (is_outer) { if ((not found_match) && (lane_id == 0)) { - auto output_idx = (*cg_counter)++; + output_idx = (*cg_counter)++; probe_output_buffer[output_idx] = pair; contained_output_buffer[output_idx] = cuco::make_pair( std::move(this->get_empty_key_sentinel()), std::move(this->get_empty_value_sentinel())); From 1fec3cbe253da6f6861b9d7f826c704058a27fa4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 2 Sep 2021 22:19:49 -0400 Subject: [PATCH 201/267] Refactor insert_if to take a stencil sequence --- include/cuco/detail/static_multimap.inl | 17 ++++++------- .../cuco/detail/static_multimap_kernels.cuh | 25 +++++++++++-------- include/cuco/static_multimap.cuh | 15 ++++++----- tests/static_multimap/static_multimap_test.cu | 6 ++--- 4 files changed, 33 insertions(+), 30 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 82bcf7558..d9cb6c0e9 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -105,20 +105,17 @@ template -template -void static_multimap::insert_if(InputIt first, - InputIt last, - Predicate pred, - cudaStream_t stream) +template +void static_multimap::insert_if_n( + InputIt first, StencilIt stencil, std::size_t n, Predicate pred, cudaStream_t stream) { - auto num_keys = std::distance(first, last); - auto view = get_device_mutable_view(); + auto view = get_device_mutable_view(); auto constexpr block_size = 128; int grid_size{-1}; cudaOccupancyMaxActiveBlocksPerMultiprocessor( &grid_size, - detail::insert_if, + detail::insert_if_n, block_size, 0); int dev_id{-1}; @@ -127,8 +124,8 @@ void static_multimap::insert_if(Inp cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - detail::insert_if - <<>>(first, first + num_keys, view, pred); + detail::insert_if_n + <<>>(first, stencil, n, view, pred); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index ce656a5a0..8bbf96616 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -88,7 +88,8 @@ __global__ void insert(InputIt first, InputIt last, viewT view) } /** - * @brief Inserts key/value pairs in the range `[first, last)` if `pred` returns true. + * @brief Inserts key/value pairs in the range `[first, first + n)` if `pred` of the + * corresponding stencil returns true. * * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform each * key/value insertion. This provides a significant boost in throughput compared to the non @@ -99,30 +100,34 @@ __global__ void insert(InputIt first, InputIt last, viewT view) * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` + * @tparam StencilIt Device accessible stencil iterator * @tparam viewT Type of device view allowing access of hash map storage * @tparam Predicate Unary predicate function type * @param first Beginning of the sequence of key/value pairs - * @param last End of the sequence of key/value pairs + * @param s Beginning of the stencil sequence + * @param n Number of elements to insert * @param view Mutable device view used to access the hash map's slot storage + * @param pred Predicate to test on the given stencil sequence */ template -__global__ void insert_if(InputIt first, InputIt last, viewT view, Predicate pred) +__global__ void insert_if_n(InputIt first, StencilIt s, std::size_t n, viewT view, Predicate pred) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto const tid = block_size * blockIdx.x + threadIdx.x; + auto i = tid / tile_size; - while (it < last) { - typename viewT::value_type const insert_pair{*it}; - if (pred(insert_pair)) { + while (i < n) { + if (pred(*(s + i))) { + typename viewT::value_type const insert_pair{*(first + i)}; // force conversion to value_type view.insert(tile, insert_pair); } - it += (gridDim.x * block_size) / tile_size; + i += (gridDim.x * block_size) / tile_size; } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 6ebae3215..72fbd0636 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -220,19 +220,22 @@ class static_multimap { void insert(InputIt first, InputIt last, cudaStream_t stream = 0); /** - * @brief Inserts key/value pairs in the range `[first, last)` if `pred` returns true. + * @brief Inserts key/value pairs in the range `[first, first + n)` if `pred` + * of the corresponding stencil returns true. * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `value_type` + * @tparam StencilIt Device accessible stencil iterator * @tparam Predicate Unary predicate function type - * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of key/value pairs - * @param last End of the sequence of key/value pairs + * @param stencil Beginning of the stencil sequence + * @param n Number of elements to insert + * @param pred Predicate to test on the given stencil sequence * @param stream CUDA stream used for insert - * @param key_equal The binary function to compare two keys for equality */ - template - void insert_if(InputIt first, InputIt last, Predicate pred, cudaStream_t stream = 0); + template + void insert_if_n( + InputIt first, StencilIt stencil, std::size_t n, Predicate pred, cudaStream_t stream = 0); /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 6291ac506..b0a874eda 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -268,10 +268,8 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - auto pred_lambda = [] __device__(cuco::pair_type pair) { - return pair.first % 2 == 0; - }; - map.insert_if(d_pairs.begin(), d_pairs.end(), pred_lambda); + auto pred_lambda = [] __device__(Key k) { return k % 2 == 0; }; + map.insert_if_n(d_pairs.begin(), d_keys.begin(), d_pairs.size(), pred_lambda); auto num = map.count(d_keys.begin(), d_keys.end()); From e917e3db45054e1f0c3f8eb357a639d6881f53c1 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 3 Sep 2021 08:01:23 -0400 Subject: [PATCH 202/267] Cleanups: get rid of atomic loads + use value_type --- include/cuco/detail/static_multimap.inl | 27 +++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index d9cb6c0e9..e5bd02b44 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -793,7 +793,8 @@ static_multimap::device_mutable_vie auto current_slot = initial_slot(g, insert_pair.first); while (true) { - key_type const existing_key = current_slot->first.load(cuda::memory_order_relaxed); + value_type slot_contents = *reinterpret_cast(current_slot); + auto const& existing_key = slot_contents.first; // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel @@ -889,7 +890,8 @@ static_multimap::device_view::conta auto current_slot = initial_slot(g, k); while (true) { - key_type const existing_key = current_slot->first.load(cuda::std::memory_order_relaxed); + value_type slot_contents = *reinterpret_cast(current_slot); + auto const& existing_key = slot_contents.first; // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the // sentinel is not a valid key value. Therefore, first check for the sentinel @@ -967,9 +969,8 @@ static_multimap::device_view::count [[maybe_unused]] bool found_match = false; while (true) { - pair slot_contents = - *reinterpret_cast const*>(current_slot); - auto const& current_key = slot_contents.first; + value_type slot_contents = *reinterpret_cast(current_slot); + auto const& current_key = slot_contents.first; auto const slot_is_empty = detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); auto const equals = not slot_is_empty and key_equal(current_key, k); @@ -1057,7 +1058,7 @@ static_multimap::device_view::pair_ [[maybe_unused]] bool found_match = false; while (true) { - auto slot_contents = *reinterpret_cast const*>(current_slot); + auto slot_contents = *reinterpret_cast(current_slot); auto const slot_is_empty = detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); @@ -1208,7 +1209,7 @@ static_multimap::device_view::retri // is unsafe! static_assert(sizeof(Key) == sizeof(cuda::atomic)); static_assert(sizeof(Value) == sizeof(cuda::atomic)); - pair slot_contents = *reinterpret_cast const*>(current_slot); + value_type slot_contents = *reinterpret_cast(current_slot); auto const slot_is_empty = detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); @@ -1467,14 +1468,14 @@ __inline__ __device__ offset = g.shfl(offset, 0); #if defined(CUCO_HAS_CUDA_BARRIER) - cooperative_groups::memcpy_async(g, - output_begin + offset, - output_buffer, - cuda::aligned_size_t)>( - sizeof(cuco::pair_type) * num_outputs)); + cooperative_groups::memcpy_async( + g, + output_begin + offset, + output_buffer, + cuda::aligned_size_t(sizeof(value_type) * num_outputs)); #else cooperative_groups::memcpy_async( - g, output_begin + offset, output_buffer, sizeof(cuco::pair_type) * num_outputs); + g, output_begin + offset, output_buffer, sizeof(value_type) * num_outputs); #endif } From 5752e34db11e2189c6cb49d09441a75b75144bb8 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 3 Sep 2021 08:47:38 -0400 Subject: [PATCH 203/267] Refactor count/pair_count APIs --- include/cuco/detail/static_multimap.inl | 81 +++++++++---------- .../cuco/detail/static_multimap_kernels.cuh | 8 +- include/cuco/static_multimap.cuh | 78 +++++++----------- 3 files changed, 72 insertions(+), 95 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index e5bd02b44..5a2fe5e6e 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -918,10 +918,11 @@ template template -__device__ std::enable_if_t +__device__ std::enable_if_t static_multimap::device_view::count_impl( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept + CG const& g, Key const& k, KeyEqual key_equal) noexcept { + std::size_t count = 0; auto current_slot = initial_slot(g, k); [[maybe_unused]] bool found_match = false; @@ -941,13 +942,13 @@ static_multimap::device_view::count if (g.any(first_equals or second_equals)) { found_match = true; } } - thread_num_matches += (first_equals + second_equals); + count += (first_equals + second_equals); if (g.any(first_slot_is_empty or second_slot_is_empty)) { if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + if ((not found_match) && (g.thread_rank() == 0)) { count++; } } - break; + return count; } current_slot = next_slot(current_slot); @@ -960,10 +961,11 @@ template template -__device__ std::enable_if_t +__device__ std::enable_if_t static_multimap::device_view::count_impl( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept + CG const& g, Key const& k, KeyEqual key_equal) noexcept { + std::size_t count = 0; auto current_slot = initial_slot(g, k); [[maybe_unused]] bool found_match = false; @@ -979,13 +981,13 @@ static_multimap::device_view::count if (g.any(equals)) { found_match = true; } } - thread_num_matches += equals; + count += equals; if (g.any(slot_is_empty)) { if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + if ((not found_match) && (g.thread_rank() == 0)) { count++; } } - break; + return count; } current_slot = next_slot(current_slot); @@ -998,13 +1000,11 @@ template template -__device__ std::enable_if_t +__device__ std::enable_if_t static_multimap::device_view::pair_count_impl( - CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { + std::size_t count = 0; auto key = pair.first; auto current_slot = initial_slot(g, key); @@ -1026,13 +1026,13 @@ static_multimap::device_view::pair_ if (g.any(first_slot_equals or second_slot_equals)) { found_match = true; } } - thread_num_matches += (first_slot_equals + second_slot_equals); + count += (first_slot_equals + second_slot_equals); if (g.any(first_slot_is_empty or second_slot_is_empty)) { if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + if ((not found_match) && (g.thread_rank() == 0)) { count++; } } - break; + return count; } current_slot = next_slot(current_slot); @@ -1045,13 +1045,11 @@ template template -__device__ std::enable_if_t +__device__ std::enable_if_t static_multimap::device_view::pair_count_impl( - CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { + std::size_t count = 0; auto key = pair.first; auto current_slot = initial_slot(g, key); @@ -1069,13 +1067,13 @@ static_multimap::device_view::pair_ if (g.any(equals)) { found_match = true; } } - thread_num_matches += equals; + count += equals; if (g.any(slot_is_empty)) { if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { thread_num_matches++; } + if ((not found_match) && (g.thread_rank() == 0)) { count++; } } - break; + return count; } current_slot = next_slot(current_slot); @@ -1558,11 +1556,12 @@ template template -__device__ void static_multimap::device_view::count( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept +__device__ std::size_t +static_multimap::device_view::count( + CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - count_impl(g, k, thread_num_matches, key_equal); + return count_impl(g, k, key_equal); } template template -__device__ void +__device__ std::size_t static_multimap::device_view::count_outer( - CG const& g, Key const& k, std::size_t& thread_num_matches, KeyEqual key_equal) noexcept + CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - count_impl(g, k, thread_num_matches, key_equal); + return count_impl(g, k, key_equal); } template template -__device__ void +__device__ std::size_t static_multimap::device_view::pair_count( - CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; - pair_count_impl(g, pair, thread_num_matches, pair_equal); + return pair_count_impl(g, pair, pair_equal); } template template -__device__ void +__device__ std::size_t static_multimap::device_view::pair_count_outer( - CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; - pair_count_impl(g, pair, thread_num_matches, pair_equal); + return pair_count_impl(g, pair, pair_equal); } template > - __device__ std::enable_if_t count_impl( - CG const& g, - Key const& k, - std::size_t& thread_num_matches, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ std::enable_if_t count_impl( + CG const& g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap using scalar loads. @@ -934,19 +931,16 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for - * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality + * @return Number of matches found by the current thread */ template > - __device__ std::enable_if_t count_impl( - CG const& g, - Key const& k, - std::size_t& thread_num_matches, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ std::enable_if_t count_impl( + CG const& g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap using vector @@ -958,16 +952,13 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality + * @return Number of matches found by the current thread */ template - __device__ std::enable_if_t pair_count_impl( - CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept; + __device__ std::enable_if_t pair_count_impl( + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap using scalar @@ -979,16 +970,13 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality + * @return Number of matches found by the current thread */ template - __device__ std::enable_if_t pair_count_impl( - CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept; + __device__ std::enable_if_t pair_count_impl( + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept; /** * @brief Find all the matches of a given key contained in multimap using vector @@ -1263,15 +1251,14 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for - * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality + * @return Number of matches found by the current thread */ template > - __device__ void count(CG const& g, - Key const& k, - std::size_t& thread_num_matches, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ std::size_t count(CG const& g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap. If no @@ -1281,15 +1268,14 @@ class static_multimap { * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for - * @param thread_num_matches Number of matches found by the current thread * @param key_equal The binary callable used to compare two keys * for equality + * @return Number of matches found by the current thread */ template > - __device__ void count_outer(CG const& g, - Key const& k, - std::size_t& thread_num_matches, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ std::size_t count_outer(CG const& g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap. @@ -1298,15 +1284,14 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality + * @return Number of matches found by the current thread */ template - __device__ void pair_count(CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept; + __device__ std::size_t pair_count(CG const& g, + value_type const& pair, + PairEqual pair_equal) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap. @@ -1316,15 +1301,14 @@ class static_multimap { * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for - * @param thread_num_matches Number of matches found by the current thread * @param pair_equal The binary callable used to compare two pairs * for equality + * @return Number of matches found by the current thread */ template - __device__ void pair_count_outer(CG const& g, - value_type const& pair, - std::size_t& thread_num_matches, - PairEqual pair_equal) noexcept; + __device__ std::size_t pair_count_outer(CG const& g, + value_type const& pair, + PairEqual pair_equal) noexcept; /** * @brief Find all the matches of a given key contained in multimap using vector @@ -1721,9 +1705,9 @@ class static_multimap { Value empty_value_sentinel_{}; ///< Initial value of empty slot slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots counter_allocator_type counter_allocator_{}; ///< Allocator used to allocate counters - atomic_ctr_type* d_counter_; - cudaStream_t const stream_; -}; // class static_multimap + atomic_ctr_type* d_counter_; ///< Preallocated device counter + cudaStream_t const stream_; ///< CUDA stream used for initialization +}; // class static_multimap } // namespace cuco #include From ed2155626ad9f43e297aff33b4728f9dc6b9bdf7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 3 Sep 2021 10:45:00 -0400 Subject: [PATCH 204/267] Refactor host bulk insert_if API --- include/cuco/detail/static_multimap.inl | 9 +++++---- include/cuco/static_multimap.cuh | 5 +++-- tests/static_multimap/static_multimap_test.cu | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 5a2fe5e6e..1ab2aaf88 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -106,10 +106,11 @@ template template -void static_multimap::insert_if_n( - InputIt first, StencilIt stencil, std::size_t n, Predicate pred, cudaStream_t stream) +void static_multimap::insert_if( + InputIt first, InputIt last, StencilIt stencil, Predicate pred, cudaStream_t stream) { - auto view = get_device_mutable_view(); + auto num_elements = std::distance(first, last); + auto view = get_device_mutable_view(); auto constexpr block_size = 128; int grid_size{-1}; @@ -125,7 +126,7 @@ void static_multimap::insert_if_n( grid_size *= num_sms; detail::insert_if_n - <<>>(first, stencil, n, view, pred); + <<>>(first, stencil, num_elements, view, pred); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index d03589591..7fdde2d8a 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -228,14 +228,15 @@ class static_multimap { * @tparam StencilIt Device accessible stencil iterator * @tparam Predicate Unary predicate function type * @param first Beginning of the sequence of key/value pairs + * @param last End of the sequence of key/value pairs * @param stencil Beginning of the stencil sequence * @param n Number of elements to insert * @param pred Predicate to test on the given stencil sequence * @param stream CUDA stream used for insert */ template - void insert_if_n( - InputIt first, StencilIt stencil, std::size_t n, Predicate pred, cudaStream_t stream = 0); + void insert_if( + InputIt first, InputIt last, StencilIt stencil, Predicate pred, cudaStream_t stream = 0); /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index b0a874eda..870ae13c4 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -269,7 +269,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", thrust::device_vector> d_pairs(h_pairs); auto pred_lambda = [] __device__(Key k) { return k % 2 == 0; }; - map.insert_if_n(d_pairs.begin(), d_keys.begin(), d_pairs.size(), pred_lambda); + map.insert_if(d_pairs.begin(), d_pairs.begin() + d_pairs.size(), d_keys.begin(), pred_lambda); auto num = map.count(d_keys.begin(), d_keys.end()); From fa1a8e68652282976dc074a9fad37777458ac9a3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 7 Sep 2021 14:29:01 -0400 Subject: [PATCH 205/267] Fix a bug: cuda::atomic taking Scope template parameter --- include/cuco/detail/static_multimap.inl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 1ab2aaf88..794e21e54 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -657,9 +657,9 @@ __device__ cuco::make_pair(std::move(expected_key), std::move(expected_value))}; cuco::detail::pair_converter new_pair{insert_pair}; - auto slot = - reinterpret_cast::packed_type>*>( - current_slot); + auto slot = reinterpret_cast< + cuda::atomic::packed_type, Scope>*>( + current_slot); bool success = slot->compare_exchange_strong( expected_pair.packed, new_pair.packed, cuda::std::memory_order_relaxed); From 60c28e61db07149049106983921b18dc29f237f7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 9 Sep 2021 17:48:38 -0400 Subject: [PATCH 206/267] Add multimap move constructor --- include/cuco/static_multimap.cuh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 7fdde2d8a..e3cc9d2a1 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -153,7 +153,6 @@ class static_multimap { typename std::allocator_traits::rebind_alloc; static_multimap(static_multimap const&) = delete; - static_multimap(static_multimap&&) = delete; static_multimap& operator=(static_multimap const&) = delete; static_multimap& operator=(static_multimap&&) = delete; @@ -201,6 +200,25 @@ class static_multimap { cudaStream_t stream = 0, Allocator const& alloc = Allocator{}); + /** + * @brief Move-constructor + * @param other Object to be moved + */ + static_multimap(static_multimap&& other) + : slots_(std::move(other.slots_)), + capacity_(std::move(other.capacity_)), + size_(std::move(other.size_)), + empty_key_sentinel_(std::move(other.empty_key_sentinel_)), + empty_value_sentinel_(std::move(other.empty_value_sentinel_)), + slot_allocator_(std::move(other.slot_allocator_)), + counter_allocator_(std::move(other.counter_allocator_)), + d_counter_(std::move(other.d_counter_)), + stream_(std::move(other.stream_)) + { + other.slots_ = nullptr; + other.d_counter_ = nullptr; + } + /** * @brief Destroys the map and frees its contents. * From d741b995666bd8b28fcdd0796c6799e2021a0797 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 10 Sep 2021 19:13:27 -0400 Subject: [PATCH 207/267] Use default move ctor & assignment operator --- include/cuco/detail/static_multimap.inl | 2 +- include/cuco/static_multimap.cuh | 28 ++++++------------------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 794e21e54..201ad3d41 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -57,7 +57,7 @@ static_multimap::static_multimap( cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - detail::initialize<<>>( + detail::initialize<<>>( slots_, empty_key_sentinel, empty_value_sentinel, get_capacity()); } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index e3cc9d2a1..0bf9d82ba 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -154,7 +154,10 @@ class static_multimap { static_multimap(static_multimap const&) = delete; static_multimap& operator=(static_multimap const&) = delete; - static_multimap& operator=(static_multimap&&) = delete; + + static_multimap() = default; + static_multimap(static_multimap&&) = default; + static_multimap& operator=(static_multimap&&) = default; /** * @brief Indicate the warp size. @@ -200,25 +203,6 @@ class static_multimap { cudaStream_t stream = 0, Allocator const& alloc = Allocator{}); - /** - * @brief Move-constructor - * @param other Object to be moved - */ - static_multimap(static_multimap&& other) - : slots_(std::move(other.slots_)), - capacity_(std::move(other.capacity_)), - size_(std::move(other.size_)), - empty_key_sentinel_(std::move(other.empty_key_sentinel_)), - empty_value_sentinel_(std::move(other.empty_value_sentinel_)), - slot_allocator_(std::move(other.slot_allocator_)), - counter_allocator_(std::move(other.counter_allocator_)), - d_counter_(std::move(other.d_counter_)), - stream_(std::move(other.stream_)) - { - other.slots_ = nullptr; - other.d_counter_ = nullptr; - } - /** * @brief Destroys the map and frees its contents. * @@ -1718,14 +1702,14 @@ class static_multimap { private: pair_atomic_type* slots_{nullptr}; ///< Pointer to flat slots storage + atomic_ctr_type* d_counter_{nullptr}; ///< Preallocated device counter std::size_t capacity_{}; ///< Total number of slots std::size_t size_{}; ///< Number of keys in map Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial value of empty slot slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots counter_allocator_type counter_allocator_{}; ///< Allocator used to allocate counters - atomic_ctr_type* d_counter_; ///< Preallocated device counter - cudaStream_t const stream_; ///< CUDA stream used for initialization + cudaStream_t stream_{}; ///< CUDA stream used for initialization }; // class static_multimap } // namespace cuco From 62bee532046f92cfaa53a4ef5ff4ca6246794a84 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 13 Sep 2021 13:52:39 -0400 Subject: [PATCH 208/267] Update benchmarks: remove unused timer, rename variables and benchmark host-bulk API --- .../static_multimap/find_all_bench.cu | 80 +++++-------------- .../static_multimap/static_multimap_bench.cu | 29 +++---- 2 files changed, 32 insertions(+), 77 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 8a6332ae9..18c8c8860 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -26,12 +26,14 @@ * */ template -static void generate_multikeys(OutputIt output_begin, OutputIt output_end, size_t const num_reps) +static void generate_multikeys(OutputIt output_begin, + OutputIt output_end, + size_t const multiplicity) { auto num_keys = std::distance(output_begin, output_end); for (auto i = 0; i < num_keys; ++i) { - output_begin[i] = (i % (num_keys / num_reps)) + 1; + output_begin[i] = (i % (num_keys / multiplicity)) + 1; } } @@ -48,18 +50,18 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { - std::size_t const num_keys = state.get_int64("NumInputs"); - auto const occupancy = state.get_float64("Occupancy"); - std::size_t const size = num_keys / occupancy; - std::size_t const num_reps = state.get_int64("NumReps"); + std::size_t const num_keys = state.get_int64("NumInputs"); + auto const occupancy = state.get_float64("Occupancy"); + std::size_t const size = num_keys / occupancy; + std::size_t const multiplicity = state.get_int64("Multiplicity"); - constexpr bool is_outer = true; + state.add_element_count(num_keys, "NumKeys"); + state.add_global_memory_writes(num_keys * 2); std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); - generate_multikeys(h_keys.begin(), h_keys.end(), num_reps); - + generate_multikeys(h_keys.begin(), h_keys.end(), multiplicity); for (auto i = 0; i < num_keys; ++i) { Key key = h_keys[i]; Value val = h_keys[i]; @@ -67,56 +69,18 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( h_pairs[i].second = val; } - // Get an array of unique keys - std::set key_set(h_keys.begin(), h_keys.end()); - std::vector h_unique_keys(key_set.begin(), key_set.end()); - thrust::device_vector d_unique_keys(h_unique_keys); - - thrust::device_vector> d_results(2 * num_keys); + thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - state.add_element_count(num_keys, "NumKeys"); - state.add_global_memory_writes(num_keys * 2); + cuco::static_multimap> map{size, -1, -1}; + map.insert(d_pairs.begin(), d_pairs.end()); + + auto const output_size = map.count_outer(d_keys.begin(), d_keys.end()); + thrust::device_vector> d_results(output_size); - state.exec( - nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - cuco::static_multimap> map{size, -1, -1}; - map.insert(d_pairs.begin(), d_pairs.end()); - - timer.start(); - auto view = map.get_device_view(); - - auto const block_size = 128; - auto const warp_size = 32; - auto const buffer_size = CGSize * BufferSize; - auto const stride = 1; - auto const grid_size = (CGSize * num_keys + stride * block_size - 1) / (stride * block_size); - - using KeyEqual = thrust::equal_to; - - KeyEqual key_equal; - - using atomic_ctr_type = typename cuco::static_multimap::atomic_ctr_type; - atomic_ctr_type* num_items; - CUCO_CUDA_TRY(cudaMallocManaged(&num_items, sizeof(atomic_ctr_type))); - *num_items = 0; - int device_id; - CUCO_CUDA_TRY(cudaGetDevice(&device_id)); - CUCO_CUDA_TRY(cudaMemPrefetchAsync(num_items, sizeof(atomic_ctr_type), device_id)); - - // Use timers to explicitly mark the target region - cuco::detail::vectorized_retrieve - <<>>(d_unique_keys.begin(), - d_unique_keys.end(), - d_results.data().get(), - num_items, - view, - key_equal); - CUCO_CUDA_TRY(cudaDeviceSynchronize()); - timer.stop(); - - CUCO_CUDA_TRY(cudaFree(num_items)); - }); + state.exec(nvbench::exec_tag::sync, [&](nvbench::launch& launch) { + map.retrieve_outer(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); + }); } template @@ -139,7 +103,7 @@ NVBENCH_BENCH_TYPES(nvbench_find_all, .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.4}) - .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + .add_int64_power_of_two_axis("Multiplicity", nvbench::range(0, 8, 1)); NVBENCH_BENCH_TYPES( nvbench_find_all, @@ -149,4 +113,4 @@ NVBENCH_BENCH_TYPES( .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.4}) - .add_int64_power_of_two_axis("NumReps", nvbench::range(0, 8, 1)); + .add_int64_power_of_two_axis("Multiplicity", nvbench::range(0, 8, 1)); diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 47fd4c81b..c6d3fd58a 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -110,12 +110,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c cuco::static_multimap map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); - state.exec(nvbench::exec_tag::sync | nvbench::exec_tag::timer, - [&](nvbench::launch& launch, auto& timer) { - timer.start(); - auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); - timer.stop(); - }); + state.exec(nvbench::exec_tag::sync, [&](nvbench::launch& launch) { + auto count = map.count(d_keys.begin(), d_keys.end(), launch.get_stream()); + }); } template @@ -167,12 +164,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f auto const output_size = map.count_outer(d_keys.begin(), d_keys.end()); thrust::device_vector> d_results(output_size); - state.exec( - nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - timer.start(); - map.retrieve_outer(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); - timer.stop(); - }); + state.exec(nvbench::exec_tag::sync, [&](nvbench::launch& launch) { + map.retrieve_outer(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); + }); } template @@ -224,13 +218,10 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r auto const output_size = map.count_outer(d_keys.begin(), d_keys.end()); thrust::device_vector> d_results(output_size); - state.exec( - nvbench::exec_tag::sync | nvbench::exec_tag::timer, [&](nvbench::launch& launch, auto& timer) { - timer.start(); - auto count = map.count_outer(d_keys.begin(), d_keys.end(), launch.get_stream()); - map.retrieve_outer(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); - timer.stop(); - }); + state.exec(nvbench::exec_tag::sync, [&](nvbench::launch& launch) { + auto count = map.count_outer(d_keys.begin(), d_keys.end(), launch.get_stream()); + map.retrieve_outer(d_keys.begin(), d_keys.end(), d_results.data().get(), launch.get_stream()); + }); } template From 4174391d19091cd475ead0f8b0724668cdc0cfcb Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 13 Sep 2021 14:25:20 -0400 Subject: [PATCH 209/267] Update multimap example: add comments, show outer use case --- .../static_multimap_example.cu | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/examples/static_multimap/static_multimap_example.cu b/examples/static_multimap/static_multimap_example.cu index 430dba292..2ef03298d 100644 --- a/examples/static_multimap/static_multimap_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -27,35 +27,43 @@ int main(void) int empty_key_sentinel = -1; int empty_value_sentinel = -1; + constexpr std::size_t N = 50'000; + // Constructs a multimap with 100,000 slots using -1 and -1 as the empty key/value // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, // for an load factor of 50%. - cuco::static_multimap map{100'000, empty_key_sentinel, empty_value_sentinel}; + cuco::static_multimap map{N * 2, empty_key_sentinel, empty_value_sentinel}; - thrust::device_vector> pairs(50'000); + thrust::device_vector> pairs(N); - // Create a sequence of pairs. Eeach key corresponds to two pairs. + // Create a sequence of pairs. Eeach key has two matches. // E.g., {{0,0}, {1,1}, ... {0,25'000}, {1, 25'001}, ...} thrust::transform(thrust::make_counting_iterator(0), thrust::make_counting_iterator(pairs.size()), pairs.begin(), - [] __device__(auto i) { return thrust::make_pair(i % (50'000 / 2), i); }); + [] __device__(auto i) { return thrust::make_pair(i % (N / 2), i); }); // Inserts all pairs into the map map.insert(pairs.begin(), pairs.end()); - // Sequence of keys {0, 1, 2, ...} - thrust::device_vector keys_to_find(50'000); + // Sequence of probe keys {0, 1, 2, ... 49'999} + thrust::device_vector keys_to_find(N); thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); - // Counts number of matches for all keys {0, 1, 2, ... 50'000} - auto const output_size = map.count(keys_to_find.begin(), keys_to_find.end()); + // Counts the occurrences of keys in [0, 50'000) contained in the multimap. + // The `_outer` suffix indicates that the occurrence of a non-match is 1. + auto const output_size = map.count_outer(keys_to_find.begin(), keys_to_find.end()); thrust::device_vector> d_results(output_size); // Finds all keys {0, 1, 2, ...} and stores associated key/value pairs into `d_results` // If a key `keys_to_find[i]` doesn't exist, `d_results[i].second == empty_value_sentinel` - map.retrieve(keys_to_find.begin(), keys_to_find.end(), d_results.data().get()); + auto output_end = + map.retrieve_outer(keys_to_find.begin(), keys_to_find.end(), d_results.data().get()); + auto retrieve_size = output_end - d_results.data().get(); + + // The total number of outer matches should be `N + N / 2` + assert(not(output_size == retrieve_size == N + N / 2)); return 0; } From 65c32ed64af06e075d4d4e4adced4303d717ce8d Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 13 Sep 2021 14:36:27 -0400 Subject: [PATCH 210/267] Move probe sequence classes into cuco::detail namespace --- benchmarks/hash_table/static_multimap/find_all_bench.cu | 3 ++- include/cuco/detail/probe_sequences.cuh | 2 ++ include/cuco/static_multimap.cuh | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 18c8c8860..3447aa1c2 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -72,7 +72,8 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - cuco::static_multimap> map{size, -1, -1}; + cuco::static_multimap> map{ + size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); auto const output_size = map.count_outer(d_keys.begin(), d_keys.end()); diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index f83a8c2a3..37d9d0beb 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -22,6 +22,7 @@ #include namespace cuco { +namespace detail { template { Hash hash_{}; }; // class linear_probing +} // namespace detail } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 0bf9d82ba..e07e96733 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -124,7 +124,7 @@ namespace cuco { */ template , + class ProbeSequence = cuco::detail::double_hashing, cuda::thread_scope Scope = cuda::thread_scope_device, typename Allocator = cuco::cuda_allocator> class static_multimap { From c66372397203a7600de1f559d39ce3127e7dedca Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 13 Sep 2021 15:33:32 -0400 Subject: [PATCH 211/267] Update probe sequence constructors: taking hash object instead of default constructible --- include/cuco/detail/probe_sequences.cuh | 28 ++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 37d9d0beb..c3fc0268a 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -26,7 +26,7 @@ namespace detail { template class probe_sequence_base { protected: @@ -79,8 +79,12 @@ class double_hashing : public probe_sequence_base { using probe_sequence_base::vector_width; using probe_sequence_base::uses_vector_load; - __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) noexcept - : probe_sequence_base{slots, capacity} + __host__ __device__ explicit double_hashing( + iterator slots, + std::size_t capacity, + Hash1 hash1 = cuco::detail::MurmurHash3_32{}, + Hash2 hash2 = cuco::detail::MurmurHash3_32{}) noexcept + : probe_sequence_base{slots, capacity}, hash1_{hash1}, hash2_{hash2} { } @@ -109,8 +113,8 @@ class double_hashing : public probe_sequence_base { private: std::size_t step_size_; - Hash1 hash1_{}; - Hash2 hash2_{}; + Hash1 hash1_; + Hash2 hash2_; }; // class double_hashing template { using probe_sequence_base::vector_width; using probe_sequence_base::uses_vector_load; - __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) - : probe_sequence_base{slots, capacity} + __host__ __device__ explicit linear_probing(iterator slots, + std::size_t capacity, + Hash hash = cuco::detail::MurmurHash3_32{}) + : probe_sequence_base{slots, capacity}, hash_(hash) { } template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { - auto hash_value = hash_(k); - hash_value = hash_value % 2 ? hash_value + 1 : hash_value; + auto const hash_value = [&]() { + auto const tmp = hash_(k); + return tmp + tmp % 2; // ensure initial hash value is always even + }(); std::size_t offset; if constexpr (uses_vector_load()) { @@ -160,7 +168,7 @@ class linear_probing : public probe_sequence_base { } private: - Hash hash_{}; + Hash hash_; }; // class linear_probing } // namespace detail From 93dc6452b642957f25b20593077fa5432a13e65f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 13 Sep 2021 15:35:15 -0400 Subject: [PATCH 212/267] Minor doc updates --- include/cuco/detail/bitwise_compare.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/detail/bitwise_compare.cuh b/include/cuco/detail/bitwise_compare.cuh index afa2c25ef..66c798123 100644 --- a/include/cuco/detail/bitwise_compare.cuh +++ b/include/cuco/detail/bitwise_compare.cuh @@ -77,7 +77,7 @@ __host__ __device__ bool bitwise_compare(T const& lhs, T const& rhs) /** * @brief Customization point that can be specialized to indicate that it is safe to perform bitwise - * equality comparisons on objects of type `T`. + * equality comparisons on the object-representation of objects of type `T`. * * By default, only types where `std::has_unique_object_representations_v` is true are safe for * bitwise equality. However, this can be too restrictive for some types, e.g., floating point From ee191366e243204bbdcda0e42618623f7cb070a1 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 13 Sep 2021 16:16:42 -0400 Subject: [PATCH 213/267] Move is_bitwise_comparable to traits header + formatting --- include/cuco/detail/bitwise_compare.cuh | 34 --- include/cuco/detail/static_map.inl | 2 + include/cuco/detail/static_map_kernels.cuh | 308 ++++++++++----------- include/cuco/detail/static_multimap.inl | 2 + include/cuco/static_map.cuh | 12 +- include/cuco/static_multimap.cuh | 12 +- include/cuco/traits.hpp | 58 ++++ 7 files changed, 217 insertions(+), 211 deletions(-) create mode 100644 include/cuco/traits.hpp diff --git a/include/cuco/detail/bitwise_compare.cuh b/include/cuco/detail/bitwise_compare.cuh index 66c798123..03efb5fc4 100644 --- a/include/cuco/detail/bitwise_compare.cuh +++ b/include/cuco/detail/bitwise_compare.cuh @@ -75,39 +75,5 @@ __host__ __device__ bool bitwise_compare(T const& lhs, T const& rhs) reinterpret_cast(&rhs)); } -/** - * @brief Customization point that can be specialized to indicate that it is safe to perform bitwise - * equality comparisons on the object-representation of objects of type `T`. - * - * By default, only types where `std::has_unique_object_representations_v` is true are safe for - * bitwise equality. However, this can be too restrictive for some types, e.g., floating point - * types. - * - * User-defined specializations of `is_bitwise_comparable` are allowed, but it is the users - * responsibility to ensure values do not occur that would lead to unexpected behavior. For example, - * if a `NaN` bit pattern were used as the empty sentinel value, it may not compare bitwise equal to - * other `NaN` bit patterns. - * - */ -template -struct is_bitwise_comparable : std::false_type { -}; - -/// By default, only types with unique object representations are allowed -template -struct is_bitwise_comparable>> - : std::true_type { -}; - -/** - * @brief Declares that a type `Type` is bitwise comparable. - * - */ -#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ - namespace cuco { \ - template <> \ - struct is_bitwise_comparable : std::true_type { \ - }; \ - } } // namespace detail } // namespace cuco diff --git a/include/cuco/detail/static_map.inl b/include/cuco/detail/static_map.inl index e572eb6b0..53a14696d 100644 --- a/include/cuco/detail/static_map.inl +++ b/include/cuco/detail/static_map.inl @@ -14,6 +14,8 @@ * limitations under the License. */ +#include + namespace cuco { template diff --git a/include/cuco/detail/static_map_kernels.cuh b/include/cuco/detail/static_map_kernels.cuh index aa4606aa6..e166de3c6 100644 --- a/include/cuco/detail/static_map_kernels.cuh +++ b/include/cuco/detail/static_map_kernels.cuh @@ -12,9 +12,9 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ -namespace cuco{ +namespace cuco { namespace detail { namespace cg = cooperative_groups; @@ -23,7 +23,7 @@ namespace cg = cooperative_groups; * * Each space in `slots` that can hold a key value pair is initialized to a * `pair_atomic_type` containing the key `k` and the value `v`. - * + * * @tparam atomic_key_type Type of the `Key` atomic container * @tparam atomic_mapped_type Type of the `Value` atomic container * @tparam Key key type @@ -34,16 +34,14 @@ namespace cg = cooperative_groups; * @param v Value to which all values in `slots` are initialized * @param size Size of the storage pointed to by `slots` */ -template -__global__ void initialize( - pair_atomic_type* const slots, Key k, - Value v, std::size_t size) { - +template +__global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::size_t size) +{ auto tid = block_size * blockIdx.x + threadIdx.x; while (tid < size) { new (&slots[tid].first) atomic_key_type{k}; @@ -53,14 +51,14 @@ __global__ void initialize( } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. - * - * @tparam block_size + * + * @tparam block_size * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -72,25 +70,22 @@ __global__ void initialize( * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; - + auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid; - + auto it = first + tid; + while (it < last) { typename viewT::value_type const insert_pair{*it}; if (view.insert(insert_pair, hash, key_equal)) { thread_num_successes++; } @@ -100,25 +95,23 @@ __global__ void insert(InputIt first, // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** - * @brief Inserts all key/value pairs in the range `[first, last)`. - * + * @brief Inserts all key/value pairs in the range `[first, last)`. + * * If multiple keys in `[first, last)` compare equal, it is unspecified which * element is inserted. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to perform each key/value insertion. This provides a + * of multiple threads to perform each key/value insertion. This provides a * significant boost in throughput compared to the non Cooperative Group * `insert` at moderate to high load factors. - * - * @tparam block_size + * + * @tparam block_size * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible input iterator whose `value_type` is -* convertible to the map's `value_type` + * convertible to the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -130,27 +123,24 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function used to compare two keys for equality */ -template -__global__ void insert(InputIt first, - InputIt last, - atomicT* num_successes, - viewT view, - Hash hash, - KeyEqual key_equal) { +template +__global__ void insert( + InputIt first, InputIt last, atomicT* num_successes, viewT view, Hash hash, KeyEqual key_equal) +{ typedef cub::BlockReduce BlockReduce; __shared__ typename BlockReduce::TempStorage temp_storage; std::size_t thread_num_successes = 0; auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto it = first + tid / tile_size; - + auto tid = block_size * blockIdx.x + threadIdx.x; + auto it = first + tid / tile_size; + while (it < last) { // force conversion to value_type typename viewT::value_type const insert_pair{*it}; @@ -159,25 +149,23 @@ __global__ void insert(InputIt first, } it += (gridDim.x * block_size) / tile_size; } - + // compute number of successfully inserted elements for each block // and atomically add to the grand total std::size_t block_num_successes = BlockReduce(temp_storage).Sum(thread_num_successes); - if(threadIdx.x == 0) { - *num_successes += block_num_successes; - } + if (threadIdx.x == 0) { *num_successes += block_num_successes; } } /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. - * Else, copies the empty value sentinel. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * Else, copies the empty value sentinel. * @tparam block_size The size of the thread block * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -189,37 +177,34 @@ __global__ void insert(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void find( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(key, hash, key_equal); - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - writeBuffer[threadIdx.x] = - found == view.end() - ? view.get_empty_value_sentinel() - : found->second.load(cuda::std::memory_order_relaxed); + writeBuffer[threadIdx.x] = found == view.end() + ? view.get_empty_value_sentinel() + : found->second.load(cuda::std::memory_order_relaxed); __syncthreads(); *(output_begin + key_idx) = writeBuffer[threadIdx.x]; key_idx += gridDim.x * block_size; @@ -228,10 +213,10 @@ __global__ void find(InputIt first, /** * @brief Finds the values corresponding to all keys in the range `[first, last)`. - * - * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. + * + * If the key `*(first + i)` exists in the map, copies its associated value to `(output_begin + i)`. * Else, copies the empty value sentinel. Uses the CUDA Cooperative Groups API to leverage groups - * of multiple threads to find each key. This provides a significant boost in throughput compared + * of multiple threads to find each key. This provides a significant boost in throughput compared * to the non Cooperative Group `find` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -240,7 +225,7 @@ __global__ void find(InputIt first, * @tparam Value The type of the mapped value for the map * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is + * @tparam OutputIt Device accessible output iterator whose `value_type` is * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type @@ -252,42 +237,40 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void find(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void find( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ Value writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.find(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = - found == view.end() - ? view.get_empty_value_sentinel() - : found->second.load(cuda::std::memory_order_relaxed); + found == view.end() ? view.get_empty_value_sentinel() + : found->second.load(cuda::std::memory_order_relaxed); } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; @@ -296,7 +279,7 @@ __global__ void find(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. * * @tparam block_size The size of the thread block @@ -306,7 +289,7 @@ __global__ void find(InputIt first, * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -314,26 +297,24 @@ __global__ void find(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void contains( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { + + while (first + key_idx < last) { auto key = *(first + key_idx); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from @@ -348,10 +329,10 @@ __global__ void contains(InputIt first, /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. - * + * * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. - * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the - * contains operation for each key. This provides a significant boost in throughput compared + * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the + * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. * * @tparam block_size The size of the thread block @@ -363,7 +344,7 @@ __global__ void contains(InputIt first, * convertible to the map's `mapped_type` * @tparam viewT Type of device view allowing access of hash map storage * @tparam Hash Unary callable type - * @tparam KeyEqual Binary callable type + * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys * @param output_begin Beginning of the sequence of booleans for the presence of each key @@ -371,43 +352,40 @@ __global__ void contains(InputIt first, * @param hash The unary function to apply to hash each key * @param key_equal The binary function to compare two keys for equality */ -template -__global__ void contains(InputIt first, - InputIt last, - OutputIt output_begin, - viewT view, - Hash hash, - KeyEqual key_equal) { - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; +template +__global__ void contains( + InputIt first, InputIt last, OutputIt output_begin, viewT view, Hash hash, KeyEqual key_equal) +{ + auto tile = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; auto key_idx = tid / tile_size; __shared__ bool writeBuffer[block_size]; - - while(first + key_idx < last) { - auto key = *(first + key_idx); + + while (first + key_idx < last) { + auto key = *(first + key_idx); auto found = view.contains(tile, key, hash, key_equal); - - /* - * The ld.relaxed.gpu instruction used in view.find causes L1 to + + /* + * The ld.relaxed.gpu instruction used in view.find causes L1 to * flush more frequently, causing increased sector stores from L2 to global memory. * By writing results to shared memory and then synchronizing before writing back * to global, we no longer rely on L1, preventing the increase in sector stores from * L2 to global and improving performance. */ - if(tile.thread_rank() == 0) { - writeBuffer[threadIdx.x / tile_size] = found; - } + if (tile.thread_rank() == 0) { writeBuffer[threadIdx.x / tile_size] = found; } __syncthreads(); - if(tile.thread_rank() == 0) { + if (tile.thread_rank() == 0) { *(output_begin + key_idx) = writeBuffer[threadIdx.x / tile_size]; } key_idx += (gridDim.x * block_size) / tile_size; } } -} // namespace detail -} // namespace cuco +} // namespace detail +} // namespace cuco diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 201ad3d41..54de77221 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -16,6 +16,8 @@ #include +#include + namespace cuco { template #include +#include #if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ (__CUDA_ARCH__ >= 700) @@ -34,7 +35,6 @@ #include #endif -#include #include #include #include @@ -54,7 +54,7 @@ class dynamic_map; * `cuco::detail::is_packable` constexpr). * * Current limitations: - * - Requires keys and values that where `cuco::detail::is_bitwise_comparable::value` is true + * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons. * - Does not support erasing keys * - Capacity is fixed and will not grow automatically @@ -119,14 +119,14 @@ template > class static_map { static_assert( - detail::is_bitwise_comparable::value, + cuco::is_bitwise_comparable::value, "Key type must have unique object representations or have been explicitly declared as safe for " - "bitwise comparison via specialization of cuco::detail::is_bitwise_comparable."); + "bitwise comparison via specialization of cuco::is_bitwise_comparable."); - static_assert(detail::is_bitwise_comparable::value, + static_assert(cuco::is_bitwise_comparable::value, "Value type must have unique object representations or have been explicitly " "declared as safe for bitwise comparison via specialization of " - "cuco::detail::is_bitwise_comparable."); + "cuco::is_bitwise_comparable."); friend class dynamic_map; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index e07e96733..a3058c850 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -23,6 +23,7 @@ #include #include +#include #if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ (__CUDA_ARCH__ >= 700) @@ -40,7 +41,6 @@ #include #endif -#include #include #include #include @@ -56,7 +56,7 @@ namespace cuco { * concurrent insert and find) from threads in device code. * * Current limitations: - * - Requires keys and values that where `cuco::detail::is_bitwise_comparable::value` is true + * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons * Therefore, the objects must have unique, bitwise object representations (e.g., no padding bits). * - Does not support erasing keys @@ -129,14 +129,14 @@ template > class static_multimap { static_assert( - detail::is_bitwise_comparable::value, + cuco::is_bitwise_comparable::value, "Key type must have unique object representations or have been explicitly declared as safe for " - "bitwise comparison via specialization of cuco::detail::is_bitwise_comparable."); + "bitwise comparison via specialization of cuco::is_bitwise_comparable."); static_assert( - detail::is_bitwise_comparable::value, + cuco::is_bitwise_comparable::value, "Value type must have unique object representations or have been explicitly declared as safe " - "for bitwise comparison via specialization of cuco::detail::is_bitwise_comparable."); + "for bitwise comparison via specialization of cuco::is_bitwise_comparable."); public: using value_type = cuco::pair_type; diff --git a/include/cuco/traits.hpp b/include/cuco/traits.hpp new file mode 100644 index 000000000..19d0bce9d --- /dev/null +++ b/include/cuco/traits.hpp @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +namespace cuco { + +/** + * @brief Customization point that can be specialized to indicate that it is safe to perform bitwise + * equality comparisons on the object-representation of objects of type `T`. + * + * By default, only types where `std::has_unique_object_representations_v` is true are safe for + * bitwise equality. However, this can be too restrictive for some types, e.g., floating point + * types. + * + * User-defined specializations of `is_bitwise_comparable` are allowed, but it is the users + * responsibility to ensure values do not occur that would lead to unexpected behavior. For example, + * if a `NaN` bit pattern were used as the empty sentinel value, it may not compare bitwise equal to + * other `NaN` bit patterns. + * + */ +template +struct is_bitwise_comparable : std::false_type { +}; + +/// By default, only types with unique object representations are allowed +template +struct is_bitwise_comparable>> + : std::true_type { +}; + +/** + * @brief Declares that a type `Type` is bitwise comparable. + * + */ +#define CUCO_DECLARE_BITWISE_COMPARABLE(Type) \ + namespace cuco { \ + template <> \ + struct is_bitwise_comparable : std::true_type { \ + }; \ + } + +} // namespace cuco From 42532f4914398d9d6c5ddbcb8ea46e6aaf0f25d8 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 13 Sep 2021 17:27:22 -0400 Subject: [PATCH 214/267] Update docs --- include/cuco/static_multimap.cuh | 72 ++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 27 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index a3058c850..c634cb147 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -52,18 +52,20 @@ namespace cuco { * @brief A GPU-accelerated, unordered, associative container of key-value * pairs that supports equivalent keys. * - * Allows constant time concurrent inserts or concurrent find operations (not - * concurrent insert and find) from threads in device code. + * Allows constant time concurrent inserts or concurrent find operations from threads in device + * code. Concurrent insert/find is allowed only when + * `static_multimap::supports_concurrent_insert_find()` is true. * * Current limitations: - * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true + * - Requires keys and values where `cuco::is_bitwise_comparable::value` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons * Therefore, the objects must have unique, bitwise object representations (e.g., no padding bits). * - Does not support erasing keys * - Capacity is fixed and will not grow automatically * - Requires the user to specify sentinel values for both key and mapped value * to indicate empty slots - * - Does not support concurrent insert and find operations + * - Concurrent insert/find is only supported when `static_multimap::supports_concurrent_insert_find()` is true` * * The `static_multimap` supports two types of operations: * - Host-side "bulk" operations @@ -85,8 +87,8 @@ namespace cuco { * * Loading two consecutive slots instead of one for small pairs can improve cache utilization since * 16B memory loads are natively supported at the SASS/hardware level. This `vector load` method is - * implicitly applied to all involved operations (e.g. `insert`, `count`, and `retrieve`, etc.) if - * the pair is packable (see `multimap::uses_vector_load` logic). + * implicitly applied to all involved operations (e.g. `insert`, `count`, and `retrieve`, etc.) when + * pairs are packable (see `multimap::uses_vector_load` logic). * * Example: * \code{.cpp} @@ -115,7 +117,7 @@ namespace cuco { * \endcode * * - * @tparam Key Arithmetic type used for key + * @tparam Key Type used for keys * @tparam Value Type of the mapped values * @tparam ProbeSequence Probe sequence used in multimap * @tparam Scope The scope in which insert/find operations will be performed by @@ -160,16 +162,19 @@ class static_multimap { static_multimap& operator=(static_multimap&&) = default; /** - * @brief Indicate the warp size. + * @brief Indicate if concurrent insert/find is supported for the key/value types. * - * @return The warp size. + * @return Boolean indicating if concurrent insert/find is supported. */ - static constexpr uint32_t warp_size() noexcept { return 32u; } + __host__ __device__ static constexpr bool supports_concurrent_insert_find() noexcept + { + return cuco::detail::is_packable(); + } /** * @brief The size of the CUDA cooperative thread group. * - * @return Boolean indicating if concurrent insert/find is supported. + * @return The CG size. */ static constexpr uint32_t cg_size() noexcept { return ProbeSequence::cg_size(); } @@ -212,8 +217,9 @@ class static_multimap { /** * @brief Inserts all key/value pairs in the range `[first, last)`. * - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs * @param stream CUDA stream used for insert @@ -225,15 +231,19 @@ class static_multimap { * @brief Inserts key/value pairs in the range `[first, first + n)` if `pred` * of the corresponding stencil returns true. * - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` - * @tparam StencilIt Device accessible stencil iterator - * @tparam Predicate Unary predicate function type + * The key/value pair `*(first + i)` is inserted if `pred( *(stencil+i) )` returns true. + * + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` + * @tparam StencilIt Device accessible random access iterator whose value_type is convertible to + * Predicate's argument type + * @tparam Predicate Unary predicate callable * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs * @param stencil Beginning of the stencil sequence - * @param n Number of elements to insert - * @param pred Predicate to test on the given stencil sequence + * @param pred Predicate to test on every element in the range `[stencil, stencil + + * std::distance(first, last))` * @param stream CUDA stream used for insert */ template @@ -243,16 +253,17 @@ class static_multimap { /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. * - * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. + * Stores `true` or `false` to `(output + i)` indicating if the key `*(first + i)` exists in the + * map. * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @tparam KeyEqual Binary callable type + * convertible from `bool` + * @tparam KeyEqual Binary callable type used to compare two keys for equality * @param first Beginning of the sequence of keys * @param last End of the sequence of keys - * @param output_begin Beginning of the sequence of booleans for the presence of each key + * @param output_begin Beginning of the output sequence indicating whether each key is present * @param stream CUDA stream used for contains * @param key_equal The binary function to compare two keys for equality */ @@ -334,7 +345,7 @@ class static_multimap { cudaStream_t stream = 0) const; /** - * @brief Finds all the values corresponding to all keys in the range `[first, last)`. + * @brief Retrieves all the values corresponding to all keys in the range `[first, last)`. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_end)`. Else, does nothing. @@ -362,7 +373,7 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) const; /** - * @brief Finds all the matches corresponding to all keys in the range `[first, last)`. + * @brief Retrieves all the matches corresponding to all keys in the range `[first, last)`. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value @@ -391,7 +402,7 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) const; /** - * @brief Finds all pairs matching the input probe pair in the range `[first, last)`. + * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)`. * * if pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to * `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. @@ -422,7 +433,7 @@ class static_multimap { cudaStream_t stream = 0) const; /** - * @brief Finds all pairs matching the input probe pair in the range `[first, last)`. + * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)`. * * if pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to * `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. If *(first+i) doesn't @@ -469,6 +480,13 @@ class static_multimap { */ static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } + /** + * @brief Indicate the warp size. + * + * @return The warp size. + */ + static constexpr uint32_t warp_size() noexcept { return 32u; } + class device_view_base { protected: // Import member type definitions from `static_multimap` From ac10e1283eaa778790b51a753a3fedfe5242acf7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 15 Sep 2021 12:00:53 -0400 Subject: [PATCH 215/267] Updates: allocated memory using unique pointer + cleanups --- include/cuco/detail/prime.hpp | 23 ++-- include/cuco/detail/static_multimap.inl | 118 ++++++++++---------- include/cuco/static_multimap.cuh | 137 +++++++++++++++--------- 3 files changed, 163 insertions(+), 115 deletions(-) diff --git a/include/cuco/detail/prime.hpp b/include/cuco/detail/prime.hpp index 6452b4a02..8d6bdb75c 100644 --- a/include/cuco/detail/prime.hpp +++ b/include/cuco/detail/prime.hpp @@ -17,10 +17,8 @@ #pragma once namespace cuco { - namespace detail { -// prime numbers with ~131072 offset constexpr std::array primes = { 2, 3, 5, 7, 13, 19, 29, 37, 43, 53, 59, 67, 73, 79, @@ -20170,18 +20168,27 @@ constexpr std::size_t compute_prime(std::size_t num) noexcept #define SDIV(x, y) (((x) + (y)-1) / (y)) /** - * @brief Calculates the adjusted/valid capacity based on `CGSize` and the initial `capacity`. + * @brief Calculates the valid capacity based on `cg_size` , `vector_width` + * and the initial `capacity`. + * + * @tparam cg_size Cooperative Group size + * @tparam vector_width Length of vector load + * @tparam uses_vector_load If vector load is used * - * @tparam CGSize Cooperative Group size * @param capacity The initially requested capacity - * @return An adjusted capacity greater than or equal to `capacity` + * @return A valid capacity no smaller than the requested `capacity` */ -template +template constexpr std::size_t get_valid_capacity(std::size_t capacity) noexcept { - auto const c = SDIV(capacity, CGSize); + auto const stride = [&]() { + if constexpr (uses_vector_load) { return cg_size * vector_width; } + if constexpr (not uses_vector_load) { return cg_size; } + }(); + + auto const c = SDIV(capacity, stride); auto const min_prime = std::lower_bound(primes.begin(), primes.end(), c); - return *min_prime * CGSize; + return *min_prime * stride; } } // namespace detail diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 54de77221..b46100ba9 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -31,21 +31,18 @@ static_multimap::static_multimap( Value empty_value_sentinel, cudaStream_t stream, Allocator const& alloc) - : empty_key_sentinel_{empty_key_sentinel}, + : capacity_{cuco::detail::get_valid_capacity( + capacity)}, + empty_key_sentinel_{empty_key_sentinel}, empty_value_sentinel_{empty_value_sentinel}, - slot_allocator_{alloc}, counter_allocator_{alloc}, - stream_{stream} + slot_allocator_{alloc}, + stream_{stream}, + delete_counter_{counter_allocator_, stream_}, + delete_slots_{slot_allocator_, capacity_, stream_}, + d_counter_{counter_allocator_.allocate(1, stream_), delete_counter_}, + slots_{slot_allocator_.allocate(capacity_, stream_), delete_slots_} { - if constexpr (uses_vector_load()) { - capacity_ = cuco::detail::get_valid_capacity(capacity); - } else { - capacity_ = cuco::detail::get_valid_capacity(capacity); - } - - d_counter_ = counter_allocator_.allocate(1, stream_); - slots_ = slot_allocator_.allocate(get_capacity(), stream_); - auto constexpr block_size = 128; int grid_size{-1}; cudaOccupancyMaxActiveBlocksPerMultiprocessor( @@ -60,18 +57,7 @@ static_multimap::static_multimap( grid_size *= num_sms; detail::initialize<<>>( - slots_, empty_key_sentinel, empty_value_sentinel, get_capacity()); -} - -template -static_multimap::~static_multimap() -{ - counter_allocator_.deallocate(d_counter_, 1, stream_); - slot_allocator_.deallocate(slots_, get_capacity(), stream_); + slots_.get(), empty_key_sentinel, empty_value_sentinel, get_capacity()); } template ::count( cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::count - <<>>(first, last, d_counter_, view, key_equal); + <<>>(first, last, d_counter_.get(), view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -228,13 +214,13 @@ std::size_t static_multimap::count_ cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::count - <<>>(first, last, d_counter_, view, key_equal); + <<>>(first, last, d_counter_.get(), view, key_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -268,13 +254,13 @@ std::size_t static_multimap::pair_c cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::pair_count - <<>>(first, last, d_counter_, view, pair_equal); + <<>>(first, last, d_counter_.get(), view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -308,13 +294,13 @@ std::size_t static_multimap::pair_c cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; detail::pair_count - <<>>(first, last, d_counter_, view, pair_equal); + <<>>(first, last, d_counter_.get(), view, pair_equal); CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -373,20 +359,20 @@ OutputIt static_multimap::retrieve( cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_retrieve <<>>( - first, last, output_begin, d_counter_, view, key_equal); + first, last, output_begin, d_counter_.get(), view, key_equal); } else { detail::retrieve <<>>( - first, last, output_begin, d_counter_, view, key_equal); + first, last, output_begin, d_counter_.get(), view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + h_counter; @@ -446,20 +432,20 @@ OutputIt static_multimap::retrieve_ cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_retrieve <<>>( - first, last, output_begin, d_counter_, view, key_equal); + first, last, output_begin, d_counter_.get(), view, key_equal); } else { detail::retrieve <<>>( - first, last, output_begin, d_counter_, view, key_equal); + first, last, output_begin, d_counter_.get(), view, key_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); auto output_end = output_begin + h_counter; @@ -526,20 +512,30 @@ std::size_t static_multimap::pair_r cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_pair_retrieve - <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); + <<>>(first, + last, + probe_output_begin, + contained_output_begin, + d_counter_.get(), + view, + pair_equal); } else { detail::pair_retrieve - <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); + <<>>(first, + last, + probe_output_begin, + contained_output_begin, + d_counter_.get(), + view, + pair_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; @@ -605,20 +601,30 @@ std::size_t static_multimap::pair_r cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); grid_size *= num_sms; - cudaMemsetAsync(d_counter_, 0, sizeof(atomic_ctr_type), stream); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; if constexpr (uses_vector_load()) { detail::vectorized_pair_retrieve - <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); + <<>>(first, + last, + probe_output_begin, + contained_output_begin, + d_counter_.get(), + view, + pair_equal); } else { detail::pair_retrieve - <<>>( - first, last, probe_output_begin, contained_output_begin, d_counter_, view, pair_equal); + <<>>(first, + last, + probe_output_begin, + contained_output_begin, + d_counter_.get(), + view, + pair_equal); } CUCO_CUDA_TRY(cudaMemcpyAsync( - &h_counter, d_counter_, sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); + &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); return h_counter; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index c634cb147..d0e60d179 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -160,6 +160,7 @@ class static_multimap { static_multimap() = default; static_multimap(static_multimap&&) = default; static_multimap& operator=(static_multimap&&) = default; + ~static_multimap() = default; /** * @brief Indicate if concurrent insert/find is supported for the key/value types. @@ -208,12 +209,6 @@ class static_multimap { cudaStream_t stream = 0, Allocator const& alloc = Allocator{}); - /** - * @brief Destroys the map and frees its contents. - * - */ - ~static_multimap(); - /** * @brief Inserts all key/value pairs in the range `[first, last)`. * @@ -474,9 +469,9 @@ class static_multimap { static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } /** - * @brief The number of elements for each vector load + * @brief The number of elements in each vector load * - * @return The number of elements for each vector load. + * @return The number of elements in each vector load. */ static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } @@ -487,6 +482,28 @@ class static_multimap { */ static constexpr uint32_t warp_size() noexcept { return 32u; } + struct counter_deleter { + counter_deleter(counter_allocator_type& a, cudaStream_t& s) : allocator{a}, stream{s} {} + + void operator()(atomic_ctr_type* ptr) { allocator.deallocate(ptr, 1, stream); } + + counter_allocator_type& allocator; + cudaStream_t& stream; + }; + + struct slot_deleter { + slot_deleter(slot_allocator_type& a, size_t& c, cudaStream_t& s) + : allocator{a}, capacity{c}, stream{s} + { + } + + void operator()(pair_atomic_type* ptr) { allocator.deallocate(ptr, capacity, stream); } + + slot_allocator_type& allocator; + size_t& capacity; + cudaStream_t& stream; + }; + class device_view_base { protected: // Import member type definitions from `static_multimap` @@ -718,8 +735,8 @@ class static_multimap { value_type const& insert_pair) noexcept; /** - * @brief Inserts the specified key/value pair with a CAS of the key and a dependent write of - * the value. + * @brief Inserts the specified key/value pair with a CAS of the key and a dependent write + * of the value. * * @param current_slot The slot to insert * @param insert_pair The pair to insert @@ -838,8 +855,8 @@ class static_multimap { * @tparam CG The type of the cooperative thread group * @param g The cooperative thread group used to copy the slots * @param source_device_view `device_view` to copy from - * @param memory_to_use Array large enough to support `capacity` elements. Object does not take - * the ownership of the memory + * @param memory_to_use Array large enough to support `capacity` elements. Object does not + * take the ownership of the memory * @return Copy of passed `device_view` */ template @@ -1004,8 +1021,8 @@ class static_multimap { * loads with per-warp shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and - * the empty value sentinel into the output only if `is_outer` is true. + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` + * and the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed or not @@ -1046,8 +1063,8 @@ class static_multimap { * loads with per-cg shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and - * the empty value sentinel into the output only if `is_outer` is true. + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` + * and the empty value sentinel into the output only if `is_outer` is true. * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer @@ -1085,10 +1102,11 @@ class static_multimap { * @brief Find all the matches of a given pair contained in multimap using vector * loads with per-warp shared memory buffer. * - * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations + * in * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and the - * empty value sentinels into the output only if `is_outer` is true. + * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and + * the empty value sentinels into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed or not @@ -1106,7 +1124,8 @@ class static_multimap { * @param contained_output_buffer Buffer of the matched contained pair sequence * @param num_matches Size of the output sequence * @param probe_output_begin Beginning of the output sequence of the matched probe pairs - * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained + * pairs * @param pair_equal The binary callable used to compare two pairs for equality */ template __inline__ __device__ void flush_output_buffer(CG const& g, @@ -1336,8 +1358,8 @@ class static_multimap { * loads with per-warp shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and - * the empty value sentinel into the output only if `is_outer` is true. + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` + * and the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer * @tparam warpT Warp (Cooperative Group) type @@ -1376,8 +1398,8 @@ class static_multimap { * loads with per-warp shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and - * the empty value sentinel into the output only if `is_outer` is true. + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` + * and the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer * @tparam warpT Warp (Cooperative Group) type @@ -1453,8 +1475,8 @@ class static_multimap { * loads with per-cg shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` and - * the empty value sentinel into the output. + * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` + * and the empty value sentinel into the output. * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer @@ -1490,7 +1512,8 @@ class static_multimap { * @brief Find all the matches of a given pair contained in multimap using vector * loads with per-warp shared memory buffer. * - * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations in + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations + * in * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in * `[contained_output_begin, contained_output_end)`. * @@ -1509,7 +1532,8 @@ class static_multimap { * @param contained_output_buffer Buffer of the matched contained pair sequence * @param num_matches Size of the output sequence * @param probe_output_begin Beginning of the output sequence of the matched probe pairs - * @param contained_output_begin Beginning of the output sequence of the matched contained pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained + * pairs * @param pair_equal The binary callable used to compare two pairs for equality */ template d_counter_; ///< Preallocated device counter + std::unique_ptr slots_; ///< Pointer to flat slots storage + +}; // class static_multimap + } // namespace cuco #include From 27aafc3dbd067863d4498f484463c7b4361bfa77 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 15 Sep 2021 12:26:24 -0400 Subject: [PATCH 216/267] Cleanups using util header --- include/cuco/detail/prime.hpp | 6 +- include/cuco/detail/static_multimap.inl | 356 +++++++++--------------- include/cuco/detail/util.hpp | 53 ++++ 3 files changed, 188 insertions(+), 227 deletions(-) create mode 100644 include/cuco/detail/util.hpp diff --git a/include/cuco/detail/prime.hpp b/include/cuco/detail/prime.hpp index 8d6bdb75c..2dceba653 100644 --- a/include/cuco/detail/prime.hpp +++ b/include/cuco/detail/prime.hpp @@ -16,6 +16,8 @@ #pragma once +#include + namespace cuco { namespace detail { @@ -20164,9 +20166,6 @@ constexpr std::size_t compute_prime(std::size_t num) noexcept return num; } -// safe division -#define SDIV(x, y) (((x) + (y)-1) / (y)) - /** * @brief Calculates the valid capacity based on `cg_size` , `vector_width` * and the initial `capacity`. @@ -20192,5 +20191,4 @@ constexpr std::size_t get_valid_capacity(std::size_t capacity) noexcept } } // namespace detail - } // namespace cuco diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index b46100ba9..5a64ab3f8 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -17,6 +17,7 @@ #include #include +#include namespace cuco { @@ -44,17 +45,9 @@ static_multimap::static_multimap( slots_{slot_allocator_.allocate(capacity_, stream_), delete_slots_} { auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, + auto const grid_size = cuco::detail::get_grid_size( detail::initialize, - block_size, - 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + block_size); detail::initialize<<>>( slots_.get(), empty_key_sentinel, empty_value_sentinel, get_capacity()); @@ -74,14 +67,8 @@ void static_multimap::insert(InputI auto view = get_device_mutable_view(); auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, detail::insert, block_size, 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + auto const grid_size = cuco::detail::get_grid_size( + detail::insert, block_size); detail::insert <<>>(first, first + num_keys, view); @@ -101,17 +88,9 @@ void static_multimap::insert_if( auto view = get_device_mutable_view(); auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, + auto const grid_size = cuco::detail::get_grid_size( detail::insert_if_n, - block_size, - 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + block_size); detail::insert_if_n <<>>(first, stencil, num_elements, view, pred); @@ -131,17 +110,8 @@ void static_multimap::contains( auto view = get_device_view(); auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, - detail::contains, - block_size, - 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + auto const grid_size = cuco::detail::get_grid_size( + detail::contains, block_size); detail::contains <<>>(first, last, output_begin, view, key_equal); @@ -163,17 +133,9 @@ std::size_t static_multimap::count( constexpr bool is_outer = false; auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, + auto const grid_size = cuco::detail::get_grid_size( detail::count, - block_size, - 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -202,17 +164,9 @@ std::size_t static_multimap::count_ constexpr bool is_outer = true; auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, + auto const grid_size = cuco::detail::get_grid_size( detail::count, - block_size, - 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -241,18 +195,10 @@ std::size_t static_multimap::pair_c constexpr bool is_outer = false; auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, + auto const grid_size = cuco::detail::get_grid_size( detail:: pair_count, - block_size, - 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -281,18 +227,10 @@ std::size_t static_multimap::pair_c constexpr bool is_outer = true; auto constexpr block_size = 128; - int grid_size{-1}; - cudaOccupancyMaxActiveBlocksPerMultiprocessor( - &grid_size, + auto const grid_size = cuco::detail::get_grid_size( detail:: pair_count, - block_size, - 0); - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -323,41 +261,34 @@ OutputIt static_multimap::retrieve( constexpr bool is_outer = false; auto constexpr block_size = 128; - int grid_size{-1}; - if constexpr (uses_vector_load()) { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::vectorized_retrieve, - block_size, - 0); - } else { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::retrieve, - block_size, - 0); - } - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + auto const grid_size = [&]() { + if constexpr (uses_vector_load()) { + return detail::get_grid_size(detail::vectorized_retrieve, + block_size); + } + if constexpr (not uses_vector_load()) { + return detail::get_grid_size(detail::retrieve, + block_size); + } + }(); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -396,41 +327,34 @@ OutputIt static_multimap::retrieve_ constexpr bool is_outer = true; auto constexpr block_size = 128; - int grid_size{-1}; - if constexpr (uses_vector_load()) { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::vectorized_retrieve, - block_size, - 0); - } else { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::retrieve, - block_size, - 0); - } - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + auto const grid_size = [&]() { + if constexpr (uses_vector_load()) { + return detail::get_grid_size(detail::vectorized_retrieve, + block_size); + } + if constexpr (not uses_vector_load()) { + return detail::get_grid_size(detail::retrieve, + block_size); + } + }(); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -474,43 +398,36 @@ std::size_t static_multimap::pair_r constexpr bool is_outer = false; auto constexpr block_size = 128; - int grid_size{-1}; - if constexpr (uses_vector_load()) { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::vectorized_pair_retrieve, - block_size, - 0); - } else { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::pair_retrieve, - block_size, - 0); - } - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + auto const grid_size = [&]() { + if constexpr (uses_vector_load()) { + return detail::get_grid_size(detail::vectorized_pair_retrieve, + block_size); + } + if constexpr (not uses_vector_load()) { + return detail::get_grid_size(detail::pair_retrieve, + block_size); + } + }(); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -563,43 +480,36 @@ std::size_t static_multimap::pair_r constexpr bool is_outer = true; auto constexpr block_size = 128; - int grid_size{-1}; - if constexpr (uses_vector_load()) { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::vectorized_pair_retrieve, - block_size, - 0); - } else { - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, - detail::pair_retrieve, - block_size, - 0); - } - int dev_id{-1}; - cudaGetDevice(&dev_id); - int num_sms{-1}; - cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); - grid_size *= num_sms; + auto const grid_size = [&]() { + if constexpr (uses_vector_load()) { + return detail::get_grid_size(detail::vectorized_pair_retrieve, + block_size); + } + if constexpr (not uses_vector_load()) { + return detail::get_grid_size(detail::pair_retrieve, + block_size); + } + }(); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; diff --git a/include/cuco/detail/util.hpp b/include/cuco/detail/util.hpp new file mode 100644 index 000000000..40697ff5c --- /dev/null +++ b/include/cuco/detail/util.hpp @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + */ + +#pragma once + +namespace cuco { +namespace detail { + +/** + * @brief Compute the number of bits of a simple type. + * + * @tparam T The type we want to infer its size in bits + * + * @return Size of type T in bits + */ +template +static constexpr std::size_t type_bits() noexcept +{ + return sizeof(T) * CHAR_BIT; +} + +// safe division +#ifndef SDIV +#define SDIV(x, y) (((x) + (y)-1) / (y)) +#endif + +template +auto get_grid_size(Kernel kernel, std::size_t block_size, std::size_t dynamic_smem_bytes = 0) +{ + int grid_size{-1}; + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&grid_size, kernel, block_size, dynamic_smem_bytes); + int dev_id{-1}; + cudaGetDevice(&dev_id); + int num_sms{-1}; + cudaDeviceGetAttribute(&num_sms, cudaDevAttrMultiProcessorCount, dev_id); + grid_size *= num_sms; + return grid_size; +} + +} // namespace detail +} // namespace cuco From 08c6ceaf2cd5c72d94d158e3a051d7f4337785ac Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 15 Sep 2021 20:35:44 -0400 Subject: [PATCH 217/267] Update docs + code cleanups --- include/cuco/detail/probe_sequences.cuh | 270 ++++++++++++++++++------ include/cuco/static_multimap.cuh | 62 +++--- 2 files changed, 233 insertions(+), 99 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index c3fc0268a..91b47a255 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -24,10 +24,22 @@ namespace cuco { namespace detail { -template +/** + * @brief Base class for a hash map probe sequence. This class should not be used directly. + * + * Hash map operations are generally memory-bandwidth bound. A vector-load loads two consecutive + * slots instead of one to fully utilize the 16B memory load supported by SASS/hardware thus + * improve memory throughput. This method (flagged by `uses_vector_load` logic) is implicitly + * applied to all hash map operations (e.g. `insert`, `count`, and `retrieve`, etc.) when pairs + * are packable (see `cuco::detail::is_packable` logic). + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam CGSize Number of threads in CUDA Cooperative Groups + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + */ +template class probe_sequence_base { protected: using value_type = cuco::pair_type; @@ -40,136 +52,256 @@ class probe_sequence_base { using const_iterator = pair_atomic_type const*; public: + /** + * @brief Returns the size of the CUDA cooperative thread group. + */ __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } + /** + * @brief Returns the number of elements loaded with each vector-load. + */ __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + /** + * @brief Indicates if vector-load is used. + * + * Users have no explicit control on whether vector-load is used. + * + * @return Boolean indicating if vector-load is used. + */ __host__ __device__ static constexpr bool uses_vector_load() noexcept { return cuco::detail::is_packable(); } + /** + * @brief Constructs a probe sequence based on the given hash map features. + * + * @param slots Pointer to beginning of the hash map slots + * @param capacity Capacity of the hash map + */ __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) : slots_{slots}, capacity_{capacity} { } + /** + * @brief Returns the capacity of the hash map. + */ __host__ __device__ std::size_t get_capacity() const noexcept { return capacity_; } + /** + * @brief Returns slots array. + */ __device__ iterator get_slots() noexcept { return slots_; } + + /** + * @brief Returns slots array. + */ __device__ const_iterator get_slots() const noexcept { return slots_; } protected: - iterator slots_; - const std::size_t capacity_; -}; // class probe_sequence_base + iterator slots_; ///< Pointer to beginning of the hash map slots + const std::size_t capacity_; ///< Total number of slots +}; // class probe_sequence_base +/** + * @brief Cooperative Groups based Linear probing scheme. + * + * Linear probing is efficient only when few collisions are present. Performance hints: + * - Use linear probing only when collisions are rare. e.g. low occupancy or low multiplicity. + * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam CGSize Number of threads in CUDA Cooperative Groups + * @tparam Hash Unary callable type + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + */ template , - typename Hash2 = cuco::detail::MurmurHash3_32, + typename Hash = cuco::detail::MurmurHash3_32, cuda::thread_scope Scope = cuda::thread_scope_device> -class double_hashing : public probe_sequence_base { +class linear_probing : public probe_sequence_base { public: - using iterator = typename probe_sequence_base::iterator; - using probe_sequence_base::capacity_; - using probe_sequence_base::slots_; - using probe_sequence_base::cg_size; - using probe_sequence_base::vector_width; - using probe_sequence_base::uses_vector_load; + using probe_sequence_base_type = probe_sequence_base; + using iterator = typename probe_sequence_base_type::iterator; + using probe_sequence_base_type::capacity_; + using probe_sequence_base_type::cg_size; + using probe_sequence_base_type::slots_; + using probe_sequence_base_type::uses_vector_load; + using probe_sequence_base_type::vector_width; - __host__ __device__ explicit double_hashing( - iterator slots, - std::size_t capacity, - Hash1 hash1 = cuco::detail::MurmurHash3_32{}, - Hash2 hash2 = cuco::detail::MurmurHash3_32{}) noexcept - : probe_sequence_base{slots, capacity}, hash1_{hash1}, hash2_{hash2} + /** + * @brief Constructs a linear probing scheme based on the given hash map features. + * + * @param slots Pointer to beginning of the hash map slots + * @param capacity Capacity of the hash map + * @param hash Unary function to hash each key + */ + __host__ __device__ explicit linear_probing(iterator slots, + std::size_t capacity, + Hash hash = cuco::detail::MurmurHash3_32{}) + : probe_sequence_base{slots, capacity}, hash_(hash) { } + /** + * @brief Returns the initial slot for a given key `k`. + * + * If vector-load is enabled, the return slot is always even to avoid illegal memory access. + * + * @tparam CG CUDA Cooperative Groups type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @return Pointer to the initial slot for `k` + */ template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { - std::size_t index; - auto const hash_value = hash1_(k); - if constexpr (uses_vector_load()) { - step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * - cg_size() * vector_width(); - index = hash_value % (capacity_ / (cg_size() * vector_width())) * cg_size() * vector_width() + - g.thread_rank() * vector_width(); - } else { - step_size_ = (hash2_(k + 1) % (capacity_ / cg_size() - 1) + 1) * cg_size(); - index = (hash_value + g.thread_rank()) % capacity_; - } - return slots_ + index; + auto const hash_value = [&]() { + auto const tmp = hash_(k); + if constexpr (uses_vector_load()) { + // ensure initial hash value is always even + return tmp + tmp % 2; + } + if constexpr (not uses_vector_load()) { return tmp; } + }(); + + auto const offset = [&]() { + if constexpr (uses_vector_load()) { return g.thread_rank() * vector_width(); } + if constexpr (not uses_vector_load()) { return g.thread_rank(); } + }(); + + // Each CG accesses to a window of (`cg_size` * `vector_width`) + // slots if vector-load is used or `cg_size` slots otherwise + return &slots_[(hash_value + offset) % capacity_]; } + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. + * + * @param s The slot to advance + * @return The next slot after `s` + */ __device__ iterator next_slot(iterator s) noexcept { std::size_t index = s - slots_; - return &slots_[(index + step_size_) % capacity_]; + std::size_t offset; + if constexpr (uses_vector_load()) { + offset = cg_size() * vector_width(); + } else { + offset = cg_size(); + } + return &slots_[(index + offset) % capacity_]; } private: - std::size_t step_size_; - Hash1 hash1_; - Hash2 hash2_; -}; // class double_hashing + Hash hash_; ///< The unary callable used to hash the key +}; // class linear_probing +/** + * @brief Cooperative Groups based double hashing scheme. + * + * Default probe sequence for `cuco::static_multimap`. Double hashing shows superior + * performance when dealing with high multiplicty and/or high occupancy use cases. Performance + * hints: + * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam CGSize Number of threads in CUDA Cooperative Groups + * @tparam Hash1 Unary callable type + * @tparam Hash2 Unary callable type + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + */ template , + typename Hash1 = cuco::detail::MurmurHash3_32, + typename Hash2 = cuco::detail::MurmurHash3_32, cuda::thread_scope Scope = cuda::thread_scope_device> -class linear_probing : public probe_sequence_base { +class double_hashing : public probe_sequence_base { public: - using iterator = typename probe_sequence_base::iterator; - using probe_sequence_base::capacity_; - using probe_sequence_base::slots_; - using probe_sequence_base::cg_size; - using probe_sequence_base::vector_width; - using probe_sequence_base::uses_vector_load; + using probe_sequence_base_type = probe_sequence_base; + using iterator = typename probe_sequence_base_type::iterator; + using probe_sequence_base_type::capacity_; + using probe_sequence_base_type::cg_size; + using probe_sequence_base_type::slots_; + using probe_sequence_base_type::uses_vector_load; + using probe_sequence_base_type::vector_width; - __host__ __device__ explicit linear_probing(iterator slots, - std::size_t capacity, - Hash hash = cuco::detail::MurmurHash3_32{}) - : probe_sequence_base{slots, capacity}, hash_(hash) + /** + * @brief Constructs a double hashing scheme based on the given hash map features. + * + * @param slots Pointer to beginning of the hash map slots + * @param capacity Capacity of the hash map + * @param hash1 First hasher to hash each key + * @param hash2 Second hasher to determine step size + */ + __host__ __device__ explicit double_hashing( + iterator slots, + std::size_t capacity, + Hash1 hash1 = cuco::detail::MurmurHash3_32{}, + Hash2 hash2 = cuco::detail::MurmurHash3_32{}) noexcept + : probe_sequence_base{slots, capacity}, hash1_{hash1}, hash2_{hash2} { } + /** + * @brief Returns the initial slot for a given key `k`. + * + * If vector-load is enabled, the return slot is always a multiple of (`cg_size` * `vector_width`) + * to avoid illegal memory access. + * + * @tparam CG CUDA Cooperative Groups type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @return Pointer to the initial slot for `k` + */ template __device__ iterator initial_slot(CG const& g, Key const k) noexcept { - auto const hash_value = [&]() { - auto const tmp = hash_(k); - return tmp + tmp % 2; // ensure initial hash value is always even - }(); - - std::size_t offset; + std::size_t index; + auto const hash_value = hash1_(k); if constexpr (uses_vector_load()) { - offset = g.thread_rank() * vector_width(); + // step size in range [1, capacity-1] * cg_size * vector_width + step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * + cg_size() * vector_width(); + index = hash_value % (capacity_ / (cg_size() * vector_width())) * cg_size() * vector_width() + + g.thread_rank() * vector_width(); } else { - offset = g.thread_rank(); + // step size in range [1, capacity-1] * cg_size + step_size_ = (hash2_(k + 1) % (capacity_ / cg_size() - 1) + 1) * cg_size(); + index = (hash_value + g.thread_rank()) % capacity_; } - return &slots_[(hash_value + offset) % capacity_]; + return slots_ + index; } + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. + * + * @param s The slot to advance + * @return The next slot after `s` + */ __device__ iterator next_slot(iterator s) noexcept { std::size_t index = s - slots_; - std::size_t offset; - if constexpr (uses_vector_load()) { - offset = cg_size() * vector_width(); - } else { - offset = cg_size(); - } - return &slots_[(index + offset) % capacity_]; + return &slots_[(index + step_size_) % capacity_]; } private: - Hash hash_; -}; // class linear_probing + Hash1 hash1_; ///< The first unary callable used to hash the key + Hash2 hash2_; ///< The second unary callable used to determine step size + std::size_t step_size_; ///< The step stride when searching for the next slot +}; // class double_hashing } // namespace detail } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index d0e60d179..a42bd3021 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -85,10 +85,10 @@ namespace cuco { * The two types are separate to prevent erroneous concurrent insert/find * operations. * - * Loading two consecutive slots instead of one for small pairs can improve cache utilization since - * 16B memory loads are natively supported at the SASS/hardware level. This `vector load` method is - * implicitly applied to all involved operations (e.g. `insert`, `count`, and `retrieve`, etc.) when - * pairs are packable (see `multimap::uses_vector_load` logic). + * By default, query operations (e.g. `count` and `retrieve`) take `Key` as input and do not include + * non-matches in the output. APIs with `_outer` suffix should be used if non-match handling is + * desired. The `pair_` prefix indicates that the input data are key-value pairs whose type can be + * converted to multimap's `value_type`. * * Example: * \code{.cpp} @@ -119,9 +119,9 @@ namespace cuco { * * @tparam Key Type used for keys * @tparam Value Type of the mapped values - * @tparam ProbeSequence Probe sequence used in multimap - * @tparam Scope The scope in which insert/find operations will be performed by - * individual threads. + * @tparam ProbeSequence Probe sequence defined in `detail/probe_sequence.cuh` + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads * @tparam Allocator Type of allocator used for device storage */ template ::value_type, - * static_multimap::value_type>` is `true` + * static_multimap::value_type>` is `true` * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs * @param stream CUDA stream used for insert @@ -230,7 +230,7 @@ class static_multimap { * * @tparam InputIt Device accessible random access input iterator where * `std::is_converitble::value_type, - * static_multimap::value_type>` is `true` + * static_multimap::value_type>` is `true` * @tparam StencilIt Device accessible random access iterator whose value_type is convertible to * Predicate's argument type * @tparam Predicate Unary predicate callable @@ -462,26 +462,27 @@ class static_multimap { private: /** - * @brief Indicate if vector load is used. + * @brief Indicates if vector-load is used. * - * @return Boolean indicating if vector load is used. + * Users have no explicit control on whether vector-load is used. + * + * @return Boolean indicating if vector-load is used. */ static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } /** - * @brief The number of elements in each vector load - * - * @return The number of elements in each vector load. + * @brief Returns the number of pairs loaded with each vector-load */ static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } /** - * @brief Indicate the warp size. - * - * @return The warp size. + * @brief Returns the warp size. */ static constexpr uint32_t warp_size() noexcept { return 32u; } + /** + * @brief Custom deleter for unique pointer of device counter. + */ struct counter_deleter { counter_deleter(counter_allocator_type& a, cudaStream_t& s) : allocator{a}, stream{s} {} @@ -491,6 +492,9 @@ class static_multimap { cudaStream_t& stream; }; + /** + * @brief Custom deleter for unique pointer of slots. + */ struct slot_deleter { slot_deleter(slot_allocator_type& a, size_t& c, cudaStream_t& s) : allocator{a}, capacity{c}, stream{s} @@ -514,16 +518,16 @@ class static_multimap { using const_iterator = pair_atomic_type const*; /** - * @brief Indicate if vector load is used. + * @brief Indicates if vector-load is used. + * + * Users have no explicit control on whether vector-load is used. * - * @return Boolean indicating if vector load is used. + * @return Boolean indicating if vector-load is used. */ static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } /** - * @brief The number of elements for each vector load - * - * @return The number of elements for each vector load. + * @brief Returns the number of pairs loaded with each vector-load */ static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } @@ -536,7 +540,7 @@ class static_multimap { __device__ void load_pair_array(value_type* arr, const_iterator current_slot) noexcept; private: - ProbeSequence probe_sequence_; + ProbeSequence probe_sequence_; ///< Probe sequence used to probe the hash map Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial Value of empty slot @@ -1689,7 +1693,6 @@ class static_multimap { OutputZipIt1 probe_output_begin, OutputZipIt2 contained_output_begin, PairEqual pair_equal) noexcept; - }; // class device_view /** @@ -1756,13 +1759,12 @@ class static_multimap { Value empty_value_sentinel_{}; ///< Initial value of empty slot slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots counter_allocator_type counter_allocator_{}; ///< Allocator used to allocate counters - cudaStream_t stream_{}; ///< CUDA stream used for initialization + cudaStream_t stream_{}; ///< CUDA stream used for ctor/dtor counter_deleter delete_counter_{}; ///< Custom counter deleter - slot_deleter delete_slots_{}; ///< Custom slot deleter - std::unique_ptr d_counter_; ///< Preallocated device counter - std::unique_ptr slots_; ///< Pointer to flat slots storage - -}; // class static_multimap + slot_deleter delete_slots_{}; ///< Custom slots deleter + std::unique_ptr d_counter_{}; ///< Preallocated device counter + std::unique_ptr slots_{}; ///< Pointer to flat slots storage +}; // class static_multimap } // namespace cuco From c2af6fd3448facd59f2c421ed81508e1a2cad4d7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 15 Sep 2021 20:50:52 -0400 Subject: [PATCH 218/267] Add manual default constructor --- include/cuco/detail/static_multimap.inl | 10 ++++++++++ include/cuco/static_multimap.cuh | 10 +++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 5a64ab3f8..d80096067 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -21,6 +21,16 @@ namespace cuco { +template +static_multimap::static_multimap() + : delete_counter_{counter_allocator_, stream_}, delete_slots_{slot_allocator_, capacity_, stream_} +{ +} + template d_counter_{}; ///< Preallocated device counter std::unique_ptr slots_{}; ///< Pointer to flat slots storage }; // class static_multimap From 3d7a6c19cd72ccfd0401067196e35a42940b1de3 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 15 Sep 2021 20:59:27 -0400 Subject: [PATCH 219/267] Default constructed unique pointers --- include/cuco/detail/static_multimap.inl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index d80096067..86148b717 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -27,7 +27,10 @@ template static_multimap::static_multimap() - : delete_counter_{counter_allocator_, stream_}, delete_slots_{slot_allocator_, capacity_, stream_} + : delete_counter_{counter_allocator_, stream_}, + delete_slots_{slot_allocator_, capacity_, stream_}, + d_counter_{nullptr, delete_counter_}, + slots_{nullptr, delete_slots_} { } From aedc8284ef1ef5725b911226d45000122eb2d544 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 12:54:51 -0400 Subject: [PATCH 220/267] Add move assignment for custom deleters --- include/cuco/static_multimap.cuh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 3c128b551..0f6ca83f3 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -490,8 +490,19 @@ class static_multimap { struct counter_deleter { counter_deleter(counter_allocator_type& a, cudaStream_t& s) : allocator{a}, stream{s} {} + counter_deleter(counter_deleter const&) = default; + void operator()(atomic_ctr_type* ptr) { allocator.deallocate(ptr, 1, stream); } + counter_deleter& operator=(counter_deleter&& other) + { + if (this != &other) { + allocator = other.allocator; + stream = other.stream; + } + return *this; + } + counter_allocator_type& allocator; cudaStream_t& stream; }; @@ -505,8 +516,20 @@ class static_multimap { { } + slot_deleter(slot_deleter const&) = default; + void operator()(pair_atomic_type* ptr) { allocator.deallocate(ptr, capacity, stream); } + slot_deleter& operator=(slot_deleter&& other) + { + if (this != &other) { + allocator = other.allocator; + capacity = other.capacity; + stream = other.stream; + } + return *this; + } + slot_allocator_type& allocator; size_t& capacity; cudaStream_t& stream; From 14384d7e162bbea55c05a5e557c5e564a8616875 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 13:41:34 -0400 Subject: [PATCH 221/267] Code cleanups: use CUCO_HAS_CG_MEMCPY_ASYNC macro --- include/cuco/detail/static_multimap.inl | 62 +++++++++---------------- include/cuco/static_multimap.cuh | 40 +++------------- 2 files changed, 28 insertions(+), 74 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 86148b717..ca89ec89c 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1380,44 +1380,7 @@ template template -__inline__ __device__ - std::enable_if_t::value and SUPPORTS_CG_MEMCPY_ASYNC, - void> - static_multimap::device_view::flush_output_buffer( - CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept -{ - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = g.shfl(offset, 0); - -#if defined(CUCO_HAS_CUDA_BARRIER) - cooperative_groups::memcpy_async( - g, - output_begin + offset, - output_buffer, - cuda::aligned_size_t(sizeof(value_type) * num_outputs)); -#else - cooperative_groups::memcpy_async( - g, output_begin + offset, output_buffer, sizeof(value_type) * num_outputs); -#endif -} - -template -template -__inline__ __device__ std::enable_if_t::value and - SUPPORTS_CG_MEMCPY_ASYNC), - void> +__inline__ __device__ void static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, @@ -1432,8 +1395,27 @@ static_multimap::device_view::flush } offset = g.shfl(offset, 0); - for (auto index = lane_id; index < num_outputs; index += g.size()) { - *(output_begin + offset + index) = output_buffer[index]; + if constexpr (thrust::is_contiguous_iterator_v) { +#if defined(CUCO_HAS_CG_MEMCPY_ASYNC) +#if defined(CUCO_HAS_CUDA_BARRIER) + cooperative_groups::memcpy_async( + g, + output_begin + offset, + output_buffer, + cuda::aligned_size_t(sizeof(value_type) * num_outputs)); +#else + cooperative_groups::memcpy_async( + g, output_begin + offset, output_buffer, sizeof(value_type) * num_outputs); +#endif // end CUCO_HAS_CUDA_BARRIER +#else + for (auto index = lane_id; index < num_outputs; index += g.size()) { + *(output_begin + offset + index) = output_buffer[index]; + } +#endif // end CUCO_HAS_CG_MEMCPY_ASYNC + } else { + for (auto index = lane_id; index < num_outputs; index += g.size()) { + *(output_begin + offset + index) = output_buffer[index]; + } } } diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 0f6ca83f3..82ab28c08 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -32,9 +32,7 @@ // cg::memcpy_aysnc is supported for CUDA 11.1 and up #if defined(CUDART_VERSION) && (CUDART_VERSION >= 11100) -#define SUPPORTS_CG_MEMCPY_ASYNC 1 -#else -#define SUPPORTS_CG_MEMCPY_ASYNC 0 +#define CUCO_HAS_CG_MEMCPY_ASYNC #endif #if defined(CUCO_HAS_CUDA_BARRIER) @@ -1226,29 +1224,6 @@ class static_multimap { PairEqual pair_equal) noexcept; public: - /** - * @brief Flushes per-CG buffer into the output sequence using CG memcpy_async. - * - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` - * @param g The Cooperative Group used to flush output buffer - * @param num_outputs Number of valid output in the buffer - * @param output_buffer Buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - */ - template - __inline__ __device__ - std::enable_if_t::value and SUPPORTS_CG_MEMCPY_ASYNC, - void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; - /** * @brief Flushes per-CG buffer into the output sequence. * @@ -1263,14 +1238,11 @@ class static_multimap { * @param output_begin Beginning of the output sequence of key/value pairs */ template - __inline__ __device__ std::enable_if_t::value and - SUPPORTS_CG_MEMCPY_ASYNC), - void> - flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + __inline__ __device__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Flushes per-CG buffer into the output sequences. From d8b3036e6a8a62c43eae86dd294ffd85f9386b4f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 14:05:30 -0400 Subject: [PATCH 222/267] CMake file cleanups --- benchmarks/CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 6220f908a..7b02316d9 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -19,10 +19,9 @@ CPMAddPackage( GIT_SHALLOW TRUE ) -set_target_properties(benchmark PROPERTIES CXX_STANDARD 17) - ################################################################################################### -# - compiler function ----------------------------------------------------------------------------- +### compiler function ############################################################################# +################################################################################################### ################################################################################################### function(ConfigureBench BENCH_NAME BENCH_SRC) From a6fec80aea209b65bfcbdd2ce609f7e4af850c00 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 16:49:27 -0400 Subject: [PATCH 223/267] Add linear probing unit tests --- tests/static_multimap/static_multimap_test.cu | 359 ++++++++---------- 1 file changed, 158 insertions(+), 201 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 870ae13c4..3796bf202 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -14,14 +14,17 @@ * limitations under the License. */ +#include +#include + +#include + #include #include #include #include -#include -#include + #include -#include namespace { namespace cg = cooperative_groups; @@ -59,6 +62,7 @@ struct pair_equal { } // namespace enum class dist_type { UNIQUE, DUAL, UNIFORM, GAUSSIAN }; +enum class probe_sequence { linear_probing, double_hashing }; template static void generate_keys(OutputIt output_begin, OutputIt output_end) @@ -84,50 +88,26 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } } -TEMPLATE_TEST_CASE_SIG("Each key appears twice", - "", - ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), - (int32_t, int32_t, dist_type::DUAL), - (int32_t, int64_t, dist_type::DUAL), - (int64_t, int64_t, dist_type::DUAL)) +template +__inline__ void test_multiplicity_two( + Map& map, PairIt pair_begin, KeyIt key_begin, ResultIt result_begin, std::size_t num_items) { - constexpr std::size_t num_items{400}; - cuco::static_multimap map{500, -1, -1}; - - std::vector h_keys(num_items); - std::vector> h_pairs(num_items); - - generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_items; ++i) { - Key key = h_keys[i]; - Value val = i; - h_pairs[i].first = key; - h_pairs[i].second = val; - } - thrust::device_vector> d_pairs(h_pairs); - thrust::device_vector> d_results(num_items); - - // Get unique keys - std::set key_set(h_keys.begin(), h_keys.end()); - std::vector h_unique_keys(key_set.begin(), key_set.end()); - thrust::device_vector d_unique_keys(h_unique_keys); - - thrust::device_vector d_contained(num_items / 2); + auto num_keys = num_items / 2; + thrust::device_vector d_contained(num_keys); SECTION("Non-inserted key/value pairs should not be contained.") { - map.contains(d_unique_keys.begin(), d_unique_keys.end(), d_contained.begin()); + map.contains(key_begin, key_begin + num_keys, d_contained.begin()); REQUIRE( none_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); } - map.insert(d_pairs.begin(), d_pairs.end()); + map.insert(pair_begin, pair_begin + num_items); SECTION("All inserted key/value pairs should be contained.") { - map.contains(d_unique_keys.begin(), d_unique_keys.end(), d_contained.begin()); + map.contains(key_begin, key_begin + num_keys, d_contained.begin()); REQUIRE( all_of(d_contained.begin(), d_contained.end(), [] __device__(bool const& b) { return b; })); @@ -136,12 +116,12 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", SECTION("Total count should be equal to the number of inserted pairs.") { // Count matching keys - auto num = map.count(d_unique_keys.begin(), d_unique_keys.end()); + auto num = map.count(key_begin, key_begin + num_keys); REQUIRE(num == num_items); - auto output_begin = d_results.data().get(); - auto output_end = map.retrieve(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + auto output_begin = result_begin; + auto output_end = map.retrieve(key_begin, key_begin + num_keys, output_begin); auto size = thrust::distance(output_begin, output_end); REQUIRE(size == num_items); @@ -149,111 +129,116 @@ TEMPLATE_TEST_CASE_SIG("Each key appears twice", SECTION("count and count_outer should return the same value.") { - auto num = map.count(d_unique_keys.begin(), d_unique_keys.end()); - auto num_outer = map.count_outer(d_unique_keys.begin(), d_unique_keys.end()); + auto num = map.count(key_begin, key_begin + num_keys); + auto num_outer = map.count_outer(key_begin, key_begin + num_keys); REQUIRE(num == num_outer); } - SECTION("Output size of retrieve and retrieve_outer should be the same.") + SECTION("Output of retrieve and retrieve_outer should be the same.") { - auto output_begin = d_results.data().get(); - auto output_end = map.retrieve(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + auto output_begin = result_begin; + auto output_end = map.retrieve(key_begin, key_begin + num_keys, output_begin); auto size = thrust::distance(output_begin, output_end); - output_end = map.retrieve_outer(d_unique_keys.begin(), d_unique_keys.end(), output_begin); + output_end = map.retrieve_outer(key_begin, key_begin + num_keys, output_begin); auto size_outer = thrust::distance(output_begin, output_end); REQUIRE(size == size_outer); } } -TEMPLATE_TEST_CASE_SIG("Handling of non-matches", - "", - ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), - (int32_t, int32_t, dist_type::UNIQUE), - (int32_t, int64_t, dist_type::UNIQUE), - (int64_t, int64_t, dist_type::UNIQUE)) +TEMPLATE_TEST_CASE_SIG( + "Multiplicity equals two", + "", + ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), + (int32_t, int32_t, dist_type::DUAL, probe_sequence::linear_probing), + (int32_t, int64_t, dist_type::DUAL, probe_sequence::linear_probing), + (int64_t, int64_t, dist_type::DUAL, probe_sequence::linear_probing), + (int32_t, int32_t, dist_type::DUAL, probe_sequence::double_hashing), + (int32_t, int64_t, dist_type::DUAL, probe_sequence::double_hashing), + (int64_t, int64_t, dist_type::DUAL, probe_sequence::double_hashing)) { - constexpr std::size_t num_keys{1'000'000}; - cuco::static_multimap map{2'000'000, -1, -1}; + constexpr std::size_t num_items{4}; - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); + std::vector h_keys(num_items); + std::vector> h_pairs(num_items); generate_keys(h_keys.begin(), h_keys.end()); - for (auto i = 0; i < num_keys; ++i) { - h_pairs[i].first = h_keys[i] / 2; - h_pairs[i].second = h_keys[i]; + for (auto i = 0; i < num_items; ++i) { + Key key = h_keys[i]; + Value val = i; + h_pairs[i].first = key; + h_pairs[i].second = val; } - - thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - map.insert(d_pairs.begin(), d_pairs.end()); + // Get unique keys + std::set key_set(h_keys.begin(), h_keys.end()); + std::vector h_unique_keys(key_set.begin(), key_set.end()); + thrust::device_vector d_unique_keys(h_unique_keys); + + thrust::device_vector> d_results(num_items); + + if constexpr (Probe == probe_sequence::linear_probing) { + cuco::static_multimap> map{5, -1, -1}; + test_multiplicity_two( + map, d_pairs.begin(), d_unique_keys.begin(), d_results.begin(), num_items); + } + if constexpr (Probe == probe_sequence::double_hashing) { + cuco::static_multimap map{5, -1, -1}; + test_multiplicity_two( + map, d_pairs.begin(), d_unique_keys.begin(), d_results.begin(), num_items); + } +} + +template +__inline__ void test_non_matches(Map& map, PairIt pair_begin, KeyIt key_begin, std::size_t num_keys) +{ + map.insert(pair_begin, pair_begin + num_keys); SECTION("Output of count and retrieve should be coherent.") { - auto num = map.count(d_keys.begin(), d_keys.end()); + auto num = map.count(key_begin, key_begin + num_keys); thrust::device_vector> d_results(num); REQUIRE(num == num_keys); auto output_begin = d_results.data().get(); - auto output_end = map.retrieve(d_keys.begin(), d_keys.end(), output_begin); + auto output_end = map.retrieve(key_begin, key_begin + num_keys, output_begin); auto size = thrust::distance(output_begin, output_end); - REQUIRE(num == size); + REQUIRE(size == num_keys); } SECTION("Output of count_outer and retrieve_outer should be coherent.") { - auto num = map.count_outer(d_keys.begin(), d_keys.end()); + auto num = map.count_outer(key_begin, key_begin + num_keys); thrust::device_vector> d_results(num); REQUIRE(num == (num_keys + num_keys / 2)); auto output_begin = d_results.data().get(); - auto output_end = map.retrieve_outer(d_keys.begin(), d_keys.end(), output_begin); + auto output_end = map.retrieve_outer(key_begin, key_begin + num_keys, output_begin); auto size = thrust::distance(output_begin, output_end); - REQUIRE(num == size); - } - - SECTION("count_outer handles non-matches wile count doesn't.") - { - auto num_outer = map.count_outer(d_keys.begin(), d_keys.end()); - auto num = map.count(d_keys.begin(), d_keys.end()); - - REQUIRE(num_outer == (num + num_keys / 2)); - } - - SECTION("retrieve_outer handles non-matches wile retrieve doesn't.") - { - auto num_outer = map.count_outer(d_keys.begin(), d_keys.end()); - thrust::device_vector> d_results(num_outer); - - auto output_begin = d_results.data().get(); - auto output_end = map.retrieve(d_keys.begin(), d_keys.end(), output_begin); - auto size = thrust::distance(output_begin, output_end); - - output_end = map.retrieve_outer(d_keys.begin(), d_keys.end(), output_begin); - auto size_outer = thrust::distance(output_begin, output_end); - - REQUIRE(size_outer == (size + num_keys / 2)); + REQUIRE(size == (num_keys + num_keys / 2)); } } -TEMPLATE_TEST_CASE_SIG("Tests of insert_if", - "", - ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), - (int32_t, int32_t, dist_type::UNIQUE), - (int32_t, int64_t, dist_type::UNIQUE), - (int64_t, int64_t, dist_type::UNIQUE)) +TEMPLATE_TEST_CASE_SIG( + "Tests of non-matches", + "", + ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), + (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::double_hashing), + (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing), + (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing)) { constexpr std::size_t num_keys{1'000'000}; - cuco::static_multimap map{2'000'000, -1, -1}; std::vector h_keys(num_keys); std::vector> h_pairs(num_keys); @@ -261,59 +246,87 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", generate_keys(h_keys.begin(), h_keys.end()); for (auto i = 0; i < num_keys; ++i) { - h_pairs[i].first = h_keys[i]; + h_pairs[i].first = h_keys[i] / 2; h_pairs[i].second = h_keys[i]; } thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); + if constexpr (Probe == probe_sequence::linear_probing) { + cuco::static_multimap> map{ + num_keys * 2, -1, -1}; + test_non_matches(map, d_pairs.begin(), d_keys.begin(), num_keys); + } + if constexpr (Probe == probe_sequence::double_hashing) { + cuco::static_multimap map{num_keys * 2, -1, -1}; + test_non_matches(map, d_pairs.begin(), d_keys.begin(), num_keys); + } +} + +template +__inline__ void test_insert_if(Map& map, PairIt pair_begin, KeyIt key_begin, std::size_t size) +{ + // 50% insertion auto pred_lambda = [] __device__(Key k) { return k % 2 == 0; }; - map.insert_if(d_pairs.begin(), d_pairs.begin() + d_pairs.size(), d_keys.begin(), pred_lambda); - auto num = map.count(d_keys.begin(), d_keys.end()); + map.insert_if(pair_begin, pair_begin + size, key_begin, pred_lambda); - REQUIRE(num * 2 == num_keys); + auto num = map.count(key_begin, key_begin + size); + + REQUIRE(num * 2 == size); } -TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", - "", - ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), - (int32_t, int32_t, dist_type::UNIQUE), - (int32_t, int64_t, dist_type::UNIQUE), - (int64_t, int64_t, dist_type::UNIQUE)) +TEMPLATE_TEST_CASE_SIG( + "Tests of insert_if", + "", + ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), + (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::double_hashing), + (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing), + (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing)) { - constexpr std::size_t num_pairs{5'000'000}; - cuco::static_multimap map{10'000'000, -1, -1}; + constexpr std::size_t num_keys{1'000}; - std::vector h_keys(num_pairs); - std::vector> h_pairs(num_pairs); + std::vector h_keys(num_keys); + std::vector> h_pairs(num_keys); generate_keys(h_keys.begin(), h_keys.end()); - for (auto i = 0; i < num_pairs; ++i) { - h_pairs[i].first = h_keys[i] / 2; + for (auto i = 0; i < num_keys; ++i) { + h_pairs[i].first = h_keys[i]; h_pairs[i].second = h_keys[i]; } thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); + if constexpr (Probe == probe_sequence::linear_probing) { + cuco::static_multimap> map{ + num_keys * 2, -1, -1}; + test_insert_if(map, d_pairs.begin(), d_keys.begin(), num_keys); + } + if constexpr (Probe == probe_sequence::double_hashing) { + cuco::static_multimap map{num_keys * 2, -1, -1}; + test_insert_if(map, d_pairs.begin(), d_keys.begin(), num_keys); + } +} + +template +__inline__ void test_pair_functions(Map& map, + std::vector>& h_pairs, + thrust::device_vector>& d_pairs, + std::size_t num_pairs) +{ map.insert(d_pairs.begin(), d_pairs.end()); for (auto i = 0; i < num_pairs; ++i) { - h_pairs[i].first = h_keys[i]; + h_pairs[i].first = i; } d_pairs = h_pairs; - SECTION("pair_count_outer handles non-matches wile pair_count doesn't.") - { - auto num_outer = map.pair_count_outer(d_pairs.begin(), d_pairs.end(), pair_equal{}); - auto num = map.pair_count(d_pairs.begin(), d_pairs.end(), pair_equal{}); - - REQUIRE(num_outer == (num + num_pairs / 2)); - } - SECTION("Output of pair_count and pair_retrieve should be coherent.") { auto num = map.pair_count(d_pairs.begin(), d_pairs.end(), pair_equal{}); @@ -328,7 +341,7 @@ TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", auto size = map.pair_retrieve( d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); - REQUIRE(num == size); + REQUIRE(size == num_pairs); } SECTION("Output of pair_count_outer and pair_retrieve_outer should be coherent.") @@ -340,31 +353,34 @@ TEMPLATE_TEST_CASE_SIG("Evaluation of pair functions", auto out2_zip = thrust::make_zip_iterator( thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); - REQUIRE(num == num_pairs * 1.5); + REQUIRE(num == (num_pairs + num_pairs / 2)); auto size = map.pair_retrieve_outer( d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); - REQUIRE(num == size); + REQUIRE(size == (num_pairs + num_pairs / 2)); } } -TEMPLATE_TEST_CASE_SIG("Evaluation of small test cases", - "", - ((typename Key, typename Value, dist_type Dist), Key, Value, Dist), - (int32_t, int32_t, dist_type::UNIQUE), - (int32_t, int64_t, dist_type::UNIQUE), - (int64_t, int64_t, dist_type::UNIQUE)) +TEMPLATE_TEST_CASE_SIG( + "Tests of pair functions", + "", + ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), + (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), + (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::double_hashing), + (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing), + (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing)) { - constexpr std::size_t num_items{3}; - cuco::static_multimap map{2 * num_items, -1, -1}; + constexpr std::size_t num_pairs{4}; - std::vector h_keys(num_items); - std::vector> h_pairs(num_items); + std::vector h_keys(num_pairs); + std::vector> h_pairs(num_pairs); generate_keys(h_keys.begin(), h_keys.end()); - for (auto i = 0; i < num_items; ++i) { + for (auto i = 0; i < num_pairs; ++i) { h_pairs[i].first = h_keys[i] / 2; h_pairs[i].second = h_keys[i]; } @@ -372,72 +388,13 @@ TEMPLATE_TEST_CASE_SIG("Evaluation of small test cases", thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - map.insert(d_pairs.begin(), d_pairs.end()); - - for (auto i = 0; i < num_items; ++i) { - h_pairs[i].first = h_keys[i]; - } - d_pairs = h_pairs; - - SECTION("Output of count and retrieve should be coherent.") - { - auto num = map.count(d_keys.begin(), d_keys.end()); - thrust::device_vector> d_results(num); - - REQUIRE(num == num_items); - - auto output_begin = d_results.data().get(); - auto output_end = map.retrieve(d_keys.begin(), d_keys.end(), output_begin); - auto size = thrust::distance(output_begin, output_end); - - REQUIRE(num == size); + if constexpr (Probe == probe_sequence::linear_probing) { + cuco::static_multimap> map{ + num_pairs * 2, -1, -1}; + test_pair_functions(map, h_pairs, d_pairs, num_pairs); } - - SECTION("Output of count_outer and retrieve_outer should be coherent.") - { - auto num = map.count_outer(d_keys.begin(), d_keys.end()); - thrust::device_vector> d_results(num); - - REQUIRE(num == num_items + 1); - - auto output_begin = d_results.data().get(); - auto output_end = map.retrieve_outer(d_keys.begin(), d_keys.end(), output_begin); - auto size = thrust::distance(output_begin, output_end); - - REQUIRE(num == size); - } - - SECTION("Output of pair_count and pair_retrieve should be coherent.") - { - auto num = map.pair_count(d_pairs.begin(), d_pairs.end(), pair_equal{}); - - auto out1_zip = thrust::make_zip_iterator( - thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); - auto out2_zip = thrust::make_zip_iterator( - thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); - - REQUIRE(num == num_items); - - auto size = map.pair_retrieve( - d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); - - REQUIRE(num == size); - } - - SECTION("Output of pair_count_outer and pair_retrieve_outer should be coherent.") - { - auto num = map.pair_count_outer(d_pairs.begin(), d_pairs.end(), pair_equal{}); - - auto out1_zip = thrust::make_zip_iterator( - thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); - auto out2_zip = thrust::make_zip_iterator( - thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); - - REQUIRE(num == num_items + 1); - - auto size = map.pair_retrieve_outer( - d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); - - REQUIRE(num == size); + if constexpr (Probe == probe_sequence::double_hashing) { + cuco::static_multimap map{num_pairs * 2, -1, -1}; + test_pair_functions(map, h_pairs, d_pairs, num_pairs); } } From 3db65221e4735e2ccdeaf1d86ee071f7904a17f2 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 18:07:44 -0400 Subject: [PATCH 224/267] Use thrust algorithms instead of naive for loops --- tests/static_multimap/static_multimap_test.cu | 235 ++++++++---------- 1 file changed, 99 insertions(+), 136 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 3796bf202..41203e7c0 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -61,33 +61,8 @@ struct pair_equal { } // namespace -enum class dist_type { UNIQUE, DUAL, UNIFORM, GAUSSIAN }; enum class probe_sequence { linear_probing, double_hashing }; -template -static void generate_keys(OutputIt output_begin, OutputIt output_end) -{ - auto num_items = std::distance(output_begin, output_end); - - std::random_device rd; - std::mt19937 gen{rd()}; - - switch (Dist) { - case dist_type::UNIQUE: { - for (auto i = 0; i < num_items; ++i) { - output_begin[i] = i; - } - break; - } - case dist_type::DUAL: { - for (auto i = 0; i < num_items; ++i) { - output_begin[i] = i % (num_items / 2); - } - break; - } - } -} - template __inline__ void test_multiplicity_two( Map& map, PairIt pair_begin, KeyIt key_begin, ResultIt result_begin, std::size_t num_items) @@ -148,48 +123,40 @@ __inline__ void test_multiplicity_two( } } -TEMPLATE_TEST_CASE_SIG( - "Multiplicity equals two", - "", - ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), - (int32_t, int32_t, dist_type::DUAL, probe_sequence::linear_probing), - (int32_t, int64_t, dist_type::DUAL, probe_sequence::linear_probing), - (int64_t, int64_t, dist_type::DUAL, probe_sequence::linear_probing), - (int32_t, int32_t, dist_type::DUAL, probe_sequence::double_hashing), - (int32_t, int64_t, dist_type::DUAL, probe_sequence::double_hashing), - (int64_t, int64_t, dist_type::DUAL, probe_sequence::double_hashing)) +TEMPLATE_TEST_CASE_SIG("Multiplicity equals two", + "", + ((typename Key, typename Value, probe_sequence Probe), Key, Value, Probe), + (int32_t, int32_t, probe_sequence::linear_probing), + (int32_t, int64_t, probe_sequence::linear_probing), + (int64_t, int64_t, probe_sequence::linear_probing), + (int32_t, int32_t, probe_sequence::double_hashing), + (int32_t, int64_t, probe_sequence::double_hashing), + (int64_t, int64_t, probe_sequence::double_hashing)) { constexpr std::size_t num_items{4}; - std::vector h_keys(num_items); - std::vector> h_pairs(num_items); - - generate_keys(h_keys.begin(), h_keys.end()); + thrust::device_vector d_keys(num_items / 2); + thrust::device_vector> d_pairs(num_items); - for (auto i = 0; i < num_items; ++i) { - Key key = h_keys[i]; - Value val = i; - h_pairs[i].first = key; - h_pairs[i].second = val; - } - thrust::device_vector> d_pairs(h_pairs); - - // Get unique keys - std::set key_set(h_keys.begin(), h_keys.end()); - std::vector h_unique_keys(key_set.begin(), key_set.end()); - thrust::device_vector d_unique_keys(h_unique_keys); + thrust::sequence(thrust::device, d_keys.begin(), d_keys.end()); + // multiplicity = 2 + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num_items), + d_pairs.begin(), + [] __device__(auto i) { + return cuco::pair_type{i / 2, i}; + }); thrust::device_vector> d_results(num_items); if constexpr (Probe == probe_sequence::linear_probing) { cuco::static_multimap> map{5, -1, -1}; - test_multiplicity_two( - map, d_pairs.begin(), d_unique_keys.begin(), d_results.begin(), num_items); + test_multiplicity_two(map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); } if constexpr (Probe == probe_sequence::double_hashing) { cuco::static_multimap map{5, -1, -1}; - test_multiplicity_two( - map, d_pairs.begin(), d_unique_keys.begin(), d_results.begin(), num_items); + test_multiplicity_two(map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); } } @@ -227,31 +194,30 @@ __inline__ void test_non_matches(Map& map, PairIt pair_begin, KeyIt key_begin, s } } -TEMPLATE_TEST_CASE_SIG( - "Tests of non-matches", - "", - ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), - (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::double_hashing), - (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing), - (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing)) +TEMPLATE_TEST_CASE_SIG("Tests of non-matches", + "", + ((typename Key, typename Value, probe_sequence Probe), Key, Value, Probe), + (int32_t, int32_t, probe_sequence::linear_probing), + (int32_t, int64_t, probe_sequence::linear_probing), + (int64_t, int64_t, probe_sequence::linear_probing), + (int32_t, int32_t, probe_sequence::double_hashing), + (int32_t, int64_t, probe_sequence::double_hashing), + (int64_t, int64_t, probe_sequence::double_hashing)) { constexpr std::size_t num_keys{1'000'000}; - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); - - generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_keys; ++i) { - h_pairs[i].first = h_keys[i] / 2; - h_pairs[i].second = h_keys[i]; - } + thrust::device_vector d_keys(num_keys); + thrust::device_vector> d_pairs(num_keys); - thrust::device_vector d_keys(h_keys); - thrust::device_vector> d_pairs(h_pairs); + thrust::sequence(thrust::device, d_keys.begin(), d_keys.end()); + // multiplicity = 2 + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num_keys), + d_pairs.begin(), + [] __device__(auto i) { + return cuco::pair_type{i / 2, i}; + }); if constexpr (Probe == probe_sequence::linear_probing) { cuco::static_multimap> map{ @@ -277,31 +243,30 @@ __inline__ void test_insert_if(Map& map, PairIt pair_begin, KeyIt key_begin, std REQUIRE(num * 2 == size); } -TEMPLATE_TEST_CASE_SIG( - "Tests of insert_if", - "", - ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), - (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::double_hashing), - (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing), - (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing)) +TEMPLATE_TEST_CASE_SIG("Tests of insert_if", + "", + ((typename Key, typename Value, probe_sequence Probe), Key, Value, Probe), + (int32_t, int32_t, probe_sequence::linear_probing), + (int32_t, int64_t, probe_sequence::linear_probing), + (int64_t, int64_t, probe_sequence::linear_probing), + (int32_t, int32_t, probe_sequence::double_hashing), + (int32_t, int64_t, probe_sequence::double_hashing), + (int64_t, int64_t, probe_sequence::double_hashing)) { constexpr std::size_t num_keys{1'000}; - std::vector h_keys(num_keys); - std::vector> h_pairs(num_keys); + thrust::device_vector d_keys(num_keys); + thrust::device_vector> d_pairs(num_keys); - generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_keys; ++i) { - h_pairs[i].first = h_keys[i]; - h_pairs[i].second = h_keys[i]; - } - - thrust::device_vector d_keys(h_keys); - thrust::device_vector> d_pairs(h_pairs); + thrust::sequence(thrust::device, d_keys.begin(), d_keys.end()); + // multiplicity = 1 + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num_keys), + d_pairs.begin(), + [] __device__(auto i) { + return cuco::pair_type{i, i}; + }); if constexpr (Probe == probe_sequence::linear_probing) { cuco::static_multimap> map{ @@ -314,22 +279,24 @@ TEMPLATE_TEST_CASE_SIG( } } -template -__inline__ void test_pair_functions(Map& map, - std::vector>& h_pairs, - thrust::device_vector>& d_pairs, - std::size_t num_pairs) +template +__inline__ void test_pair_functions(Map& map, PairIt pair_begin, std::size_t num_pairs) { - map.insert(d_pairs.begin(), d_pairs.end()); - - for (auto i = 0; i < num_pairs; ++i) { - h_pairs[i].first = i; - } - d_pairs = h_pairs; + map.insert(pair_begin, pair_begin + num_pairs); + cudaStreamSynchronize(0); + + // query pair matching rate = 50% + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num_pairs), + pair_begin, + [] __device__(auto i) { + return cuco::pair_type{i, i}; + }); SECTION("Output of pair_count and pair_retrieve should be coherent.") { - auto num = map.pair_count(d_pairs.begin(), d_pairs.end(), pair_equal{}); + auto num = map.pair_count(pair_begin, pair_begin + num_pairs, pair_equal{}); auto out1_zip = thrust::make_zip_iterator( thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); @@ -339,14 +306,14 @@ __inline__ void test_pair_functions(Map& map, REQUIRE(num == num_pairs); auto size = map.pair_retrieve( - d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); + pair_begin, pair_begin + num_pairs, out1_zip, out2_zip, pair_equal{}); REQUIRE(size == num_pairs); } SECTION("Output of pair_count_outer and pair_retrieve_outer should be coherent.") { - auto num = map.pair_count_outer(d_pairs.begin(), d_pairs.end(), pair_equal{}); + auto num = map.pair_count_outer(pair_begin, pair_begin + num_pairs, pair_equal{}); auto out1_zip = thrust::make_zip_iterator( thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); @@ -356,45 +323,41 @@ __inline__ void test_pair_functions(Map& map, REQUIRE(num == (num_pairs + num_pairs / 2)); auto size = map.pair_retrieve_outer( - d_pairs.begin(), d_pairs.end(), out1_zip, out2_zip, pair_equal{}); + pair_begin, pair_begin + num_pairs, out1_zip, out2_zip, pair_equal{}); REQUIRE(size == (num_pairs + num_pairs / 2)); } } -TEMPLATE_TEST_CASE_SIG( - "Tests of pair functions", - "", - ((typename Key, typename Value, dist_type Dist, probe_sequence Probe), Key, Value, Dist, Probe), - (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::linear_probing), - (int32_t, int32_t, dist_type::UNIQUE, probe_sequence::double_hashing), - (int32_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing), - (int64_t, int64_t, dist_type::UNIQUE, probe_sequence::double_hashing)) +TEMPLATE_TEST_CASE_SIG("Tests of pair functions", + "", + ((typename Key, typename Value, probe_sequence Probe), Key, Value, Probe), + (int32_t, int32_t, probe_sequence::linear_probing), + (int32_t, int64_t, probe_sequence::linear_probing), + (int64_t, int64_t, probe_sequence::linear_probing), + (int32_t, int32_t, probe_sequence::double_hashing), + (int32_t, int64_t, probe_sequence::double_hashing), + (int64_t, int64_t, probe_sequence::double_hashing)) { constexpr std::size_t num_pairs{4}; + thrust::device_vector> d_pairs(num_pairs); - std::vector h_keys(num_pairs); - std::vector> h_pairs(num_pairs); - - generate_keys(h_keys.begin(), h_keys.end()); - - for (auto i = 0; i < num_pairs; ++i) { - h_pairs[i].first = h_keys[i] / 2; - h_pairs[i].second = h_keys[i]; - } - - thrust::device_vector d_keys(h_keys); - thrust::device_vector> d_pairs(h_pairs); + // pair multiplicity = 2 + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num_pairs), + d_pairs.begin(), + [] __device__(auto i) { + return cuco::pair_type{i / 2, i}; + }); if constexpr (Probe == probe_sequence::linear_probing) { cuco::static_multimap> map{ num_pairs * 2, -1, -1}; - test_pair_functions(map, h_pairs, d_pairs, num_pairs); + test_pair_functions(map, d_pairs.begin(), num_pairs); } if constexpr (Probe == probe_sequence::double_hashing) { cuco::static_multimap map{num_pairs * 2, -1, -1}; - test_pair_functions(map, h_pairs, d_pairs, num_pairs); + test_pair_functions(map, d_pairs.begin(), num_pairs); } } From be9def10b13ffecf858ded061493b128a8b2bfb0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 19:09:40 -0400 Subject: [PATCH 225/267] Minor correction in probe sequence --- include/cuco/detail/probe_sequences.cuh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 91b47a255..6e76b49e3 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -143,7 +143,7 @@ class linear_probing : public probe_sequence_base { */ __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity, - Hash hash = cuco::detail::MurmurHash3_32{}) + Hash hash = Hash{}) : probe_sequence_base{slots, capacity}, hash_(hash) { } @@ -244,11 +244,10 @@ class double_hashing : public probe_sequence_base { * @param hash1 First hasher to hash each key * @param hash2 Second hasher to determine step size */ - __host__ __device__ explicit double_hashing( - iterator slots, - std::size_t capacity, - Hash1 hash1 = cuco::detail::MurmurHash3_32{}, - Hash2 hash2 = cuco::detail::MurmurHash3_32{}) noexcept + __host__ __device__ explicit double_hashing(iterator slots, + std::size_t capacity, + Hash1 hash1 = Hash1{}, + Hash2 hash2 = Hash2{}) noexcept : probe_sequence_base{slots, capacity}, hash1_{hash1}, hash2_{hash2} { } From f7adf961bff8b69f9f90af8dbead0ce70a488fac Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 20:00:50 -0400 Subject: [PATCH 226/267] Fix a bug: retrieve_impl takes key_equal callable --- include/cuco/detail/static_multimap.inl | 8 +++--- include/cuco/static_multimap.cuh | 33 +++++++++++-------------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index ca89ec89c..41fb05ceb 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1543,7 +1543,7 @@ __device__ void static_multimap::de { constexpr bool is_outer = false; retrieve_impl( - warp, g, k, warp_counter, output_buffer, num_matches, output_begin); + warp, g, k, warp_counter, output_buffer, num_matches, output_begin, key_equal); } template ::device_view::retri { constexpr bool is_outer = true; retrieve_impl( - warp, g, k, warp_counter, output_buffer, num_matches, output_begin); + warp, g, k, warp_counter, output_buffer, num_matches, output_begin, key_equal); } template ::de { constexpr bool is_outer = false; retrieve_impl( - g, k, cg_counter, output_buffer, num_matches, output_begin); + g, k, cg_counter, output_buffer, num_matches, output_begin, key_equal); } template ::device_view::retri { constexpr bool is_outer = true; retrieve_impl( - g, k, cg_counter, output_buffer, num_matches, output_begin); + g, k, cg_counter, output_buffer, num_matches, output_begin, key_equal); } template > - __device__ std::enable_if_t contains_impl( - CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + template + __device__ std::enable_if_t contains_impl(CG g, + Key const& k, + KeyEqual key_equal) noexcept; /** * @brief Indicates whether the key `k` was inserted into the map using scalar loads. @@ -965,9 +966,9 @@ class static_multimap { * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ - template > + template __device__ std::enable_if_t contains_impl( - CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + CG g, Key const& k, KeyEqual key_equal) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap using vector loads. @@ -982,12 +983,9 @@ class static_multimap { * for equality * @return Number of matches found by the current thread */ - template > + template __device__ std::enable_if_t count_impl( - CG const& g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + CG const& g, Key const& k, KeyEqual key_equal) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap using scalar loads. @@ -1002,12 +1000,9 @@ class static_multimap { * for equality * @return Number of matches found by the current thread */ - template > + template __device__ std::enable_if_t count_impl( - CG const& g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + CG const& g, Key const& k, KeyEqual key_equal) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap using vector @@ -1077,7 +1072,7 @@ class static_multimap { typename CG, typename atomicT, typename OutputIt, - typename KeyEqual = thrust::equal_to> + typename KeyEqual> __device__ void retrieve_impl(warpT const& warp, CG const& g, Key const& k, @@ -1085,7 +1080,7 @@ class static_multimap { value_type* output_buffer, atomicT* num_matches, OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + KeyEqual key_equal) noexcept; /** * @brief Find all the matches of a given key contained in multimap using scalar @@ -1118,14 +1113,14 @@ class static_multimap { typename CG, typename atomicT, typename OutputIt, - typename KeyEqual = thrust::equal_to> + typename KeyEqual> __device__ void retrieve_impl(CG const& g, Key const& k, uint32_t* cg_counter, value_type* output_buffer, atomicT* num_matches, OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + KeyEqual key_equal) noexcept; /** * @brief Find all the matches of a given pair contained in multimap using vector From 4ec7f69eb27672ce1a65953e52360234bf4c9051 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 22:09:16 -0400 Subject: [PATCH 227/267] Minor correction in double hashing: avoid using key + operator --- include/cuco/detail/probe_sequences.cuh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 6e76b49e3..6bdc326a6 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -269,14 +269,14 @@ class double_hashing : public probe_sequence_base { std::size_t index; auto const hash_value = hash1_(k); if constexpr (uses_vector_load()) { - // step size in range [1, capacity-1] * cg_size * vector_width - step_size_ = (hash2_(k + 1) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * - cg_size() * vector_width(); + // step size in range [1, prime - 1] * cg_size * vector_width + step_size_ = (hash2_(k) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * cg_size() * + vector_width(); index = hash_value % (capacity_ / (cg_size() * vector_width())) * cg_size() * vector_width() + g.thread_rank() * vector_width(); } else { - // step size in range [1, capacity-1] * cg_size - step_size_ = (hash2_(k + 1) % (capacity_ / cg_size() - 1) + 1) * cg_size(); + // step size in range [1, prime - 1] * cg_size + step_size_ = (hash2_(k) % (capacity_ / cg_size() - 1) + 1) * cg_size(); index = (hash_value + g.thread_rank()) % capacity_; } return slots_ + index; From c4799ccfadc2c1387fa72a17a47d6d185cec00c0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 16 Sep 2021 22:11:41 -0400 Subject: [PATCH 228/267] Add tests for custom key and value types --- tests/static_multimap/static_multimap_test.cu | 212 +++++++++++++++++- 1 file changed, 205 insertions(+), 7 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 41203e7c0..bc4f27f3e 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -50,18 +50,206 @@ bool none_of(Iterator begin, Iterator end, Predicate p) return not all_of(begin, end, p); } -template -struct pair_equal { - __host__ __device__ bool operator()(const cuco::pair_type& lhs, - const cuco::pair_type& rhs) const +} // namespace + +enum class probe_sequence { linear_probing, double_hashing }; + +// User-defined key type +// Need to specify alignment to WAR libcu++ bug where cuda::atomic fails for underaligned types: +// https://github.com/NVIDIA/libcudacxx/issues/160 +struct alignas(8) key_pair { + int32_t a; + int32_t b; +}; + +struct hash_key_pair { + __device__ uint32_t operator()(key_pair k) { return k.a; }; +}; + +struct key_pair_equals { + __device__ bool operator()(const key_pair& lhs, const key_pair& rhs) { - return lhs.first == rhs.first; + return std::tie(lhs.a, lhs.b) == std::tie(rhs.a, rhs.b); } }; -} // namespace +struct alignas(8) value_pair { + int32_t f; + int32_t s; +}; -enum class probe_sequence { linear_probing, double_hashing }; +#define SIZE 10 +__device__ int A[SIZE]; + +template +struct custom_equals { + __device__ bool operator()(T lhs, T rhs) { return A[lhs] == A[rhs]; } +}; + +template +__inline__ void test_custom_key_value_type(Map& map, + PairIt pair_begin, + KeyIt key_begin, + size_t num_pairs) +{ + constexpr cudaStream_t stream = 0; + + SECTION("All inserted keys-value pairs should be correctly recovered during find") + { + map.insert(pair_begin, pair_begin + num_pairs); + + auto count = map.count(key_begin, key_begin + num_pairs, stream, key_pair_equals{}); + REQUIRE(count == num_pairs); + + thrust::device_vector> found_pairs(num_pairs); + auto output_end = map.retrieve( + key_begin, key_begin + num_pairs, found_pairs.begin(), stream, key_pair_equals{}); + auto size = output_end - found_pairs.begin(); + + REQUIRE(size == num_pairs); + + // sort before compare + thrust::sort( + thrust::device, + found_pairs.begin(), + found_pairs.end(), + [] __device__(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) { return lhs.first.a < rhs.first.a; }); + + REQUIRE(thrust::equal( + thrust::device, + pair_begin, + pair_begin + num_pairs, + found_pairs.begin(), + [] __device__(cuco::pair_type lhs, cuco::pair_type rhs) { + return lhs.first.a == rhs.first.a; + })); + } + + SECTION("Outer functions include non-matches in the output while normal functions don't") + { + map.insert(pair_begin, pair_begin + num_pairs); + + auto const num = num_pairs * 2; + thrust::device_vector query_keys(num); + auto query_key_begin = query_keys.begin(); + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num), + query_key_begin, + [] __device__(auto i) { + return Key{i, i}; + }); + + auto count = map.count(query_key_begin, query_key_begin + num, stream, key_pair_equals{}); + REQUIRE(count == num_pairs); + + auto count_outer = + map.count_outer(query_key_begin, query_key_begin + num, stream, key_pair_equals{}); + REQUIRE(count_outer == num); + + ////////////////////// tests of retreive + thrust::device_vector> found_pairs(num_pairs); + auto output_end = map.retrieve( + query_key_begin, query_key_begin + num, found_pairs.begin(), stream, key_pair_equals{}); + auto size = output_end - found_pairs.begin(); + + REQUIRE(size == num_pairs); + + // sort before compare + thrust::sort( + thrust::device, + found_pairs.begin(), + found_pairs.end(), + [] __device__(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) { return lhs.first.a < rhs.first.a; }); + + REQUIRE(thrust::equal( + thrust::device, + pair_begin, + pair_begin + num_pairs, + found_pairs.begin(), + [] __device__(cuco::pair_type lhs, cuco::pair_type rhs) { + return lhs.first.a == rhs.first.a; + })); + + ////////////////////// tests of retreive_outer + found_pairs.resize(num); + output_end = map.retrieve_outer( + query_key_begin, query_key_begin + num, found_pairs.begin(), stream, key_pair_equals{}); + auto size_outer = output_end - found_pairs.begin(); + + REQUIRE(size_outer == num); + } + + SECTION("All inserted keys-value pairs should be contained") + { + thrust::device_vector contained(num_pairs); + map.insert(pair_begin, pair_begin + num_pairs); + map.contains(key_begin, key_begin + num_pairs, contained.begin(), stream, key_pair_equals{}); + REQUIRE(all_of(contained.begin(), contained.end(), [] __device__(bool const& b) { return b; })); + } + + SECTION("Non-inserted keys-value pairs should not be contained") + { + thrust::device_vector contained(num_pairs); + map.contains(key_begin, key_begin + num_pairs, contained.begin(), stream, key_pair_equals{}); + REQUIRE( + none_of(contained.begin(), contained.end(), [] __device__(bool const& b) { return b; })); + } +} + +TEMPLATE_TEST_CASE_SIG("User defined key and value type", + "", + ((probe_sequence Probe), Probe), + (probe_sequence::linear_probing), + (probe_sequence::double_hashing)) +{ + using Key = key_pair; + using Value = value_pair; + + auto constexpr sentinel_key = Key{-1, -1}; + auto constexpr sentinel_value = Value{-1, -1}; + + constexpr std::size_t num_pairs = 100; + constexpr std::size_t capacity = num_pairs * 2; + + thrust::device_vector insert_keys(num_pairs); + thrust::device_vector insert_values(num_pairs); + + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num_pairs), + insert_keys.begin(), + [] __device__(auto i) { + return Key{i, i}; + }); + + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num_pairs), + insert_values.begin(), + [] __device__(auto i) { + return Value{i, i}; + }); + auto insert_pairs = + thrust::make_zip_iterator(thrust::make_tuple(insert_keys.begin(), insert_values.begin())); + + if constexpr (Probe == probe_sequence::linear_probing) { + cuco::static_multimap> + map{capacity, sentinel_key, sentinel_value}; + test_custom_key_value_type(map, insert_pairs, insert_keys.begin(), num_pairs); + } + if constexpr (Probe == probe_sequence::double_hashing) { + cuco::static_multimap> + map{capacity, sentinel_key, sentinel_value}; + test_custom_key_value_type(map, insert_pairs, insert_keys.begin(), num_pairs); + } +} template __inline__ void test_multiplicity_two( @@ -279,6 +467,16 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", } } +// Custom pair equal +template +struct pair_equal { + __device__ bool operator()(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) const + { + return lhs.first == rhs.first; + } +}; + template __inline__ void test_pair_functions(Map& map, PairIt pair_begin, std::size_t num_pairs) { From 9ec49c33218fca2fd8d3bcc70dee97c3c5b80d95 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 17 Sep 2021 14:01:25 -0400 Subject: [PATCH 229/267] Update docs --- .../cuco/detail/static_multimap_kernels.cuh | 127 +++++++++++++---- include/cuco/static_multimap.cuh | 130 ++++++++++-------- 2 files changed, 176 insertions(+), 81 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 21c2aff45..8ad623d31 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -64,8 +64,9 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @tparam viewT Type of device view allowing access of hash map storage * * @param first Beginning of the sequence of key/value pairs @@ -91,6 +92,8 @@ __global__ void insert(InputIt first, InputIt last, viewT view) * @brief Inserts key/value pairs in the range `[first, first + n)` if `pred` of the * corresponding stencil returns true. * + * The key/value pair `*(first + i)` is inserted if `pred( *(stencil + i) )` returns true. + * * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform each * key/value insertion. This provides a significant boost in throughput compared to the non * Cooperative Group `insert` at moderate to high load factors. @@ -98,8 +101,9 @@ __global__ void insert(InputIt first, InputIt last, viewT view) * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `value_type` + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @tparam StencilIt Device accessible stencil iterator * @tparam viewT Type of device view allowing access of hash map storage * @tparam Predicate Unary predicate function type @@ -134,7 +138,9 @@ __global__ void insert_if_n(InputIt first, StencilIt s, std::size_t n, viewT vie /** * @brief Indicates whether the keys in the range `[first, last)` are contained in the map. * - * Writes a `bool` to `(output + i)` indicating if the key `*(first + i)` exists in the map. + * Stores `true` or `false` to `(output + i)` indicating if the key `*(first + i)` exists in the + * map. + * * Uses the CUDA Cooperative Groups API to leverage groups of multiple threads to perform the * contains operation for each key. This provides a significant boost in throughput compared * to the non Cooperative Group `contains` at moderate to high load factors. @@ -194,8 +200,7 @@ __global__ void contains( * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not - * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join - * operations or not + * @tparam is_outer Boolean flag indicating whether non-matches are counted * @tparam InputIt Device accessible input iterator whose `value_type` is convertible to the map's * `key_type` * @tparam atomicT Type of atomic storage @@ -245,14 +250,14 @@ __global__ void count( /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. - * If no matches can be found for a given key/value pair and `is_outer` is true, the corresponding - * occurrence is 1. + * The occurrence of non-matches is `1` if `is_outer` is `true`. Otherwise it's `0`. * * @tparam block_size The size of the thread block * @tparam tile_size The number of threads in the Cooperative Groups used to perform counts - * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join - * operations or not - * @tparam Input Device accesible input iterator of key/value pairs + * @tparam is_outer Boolean flag indicating whether non-matches are counted + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam PairEqual Binary callable @@ -299,12 +304,14 @@ __global__ void pair_count( } /** - * @brief Finds all the values corresponding to all keys in the range `[first, last)` using vector - * oads combined with per-block shared memory buffer. + * @brief Retrieves all the values corresponding to all keys in the range `[first, last)` + * using vector loads combined with per-block shared memory buffer. + * + * The `vectorized_` prefix indicates that the vector load method is used. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Else, copies `k` and - * the empty value sentinel. + * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Copies `k` and + * the empty value sentinel into the output only when `is_outer` is `true`. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. @@ -313,8 +320,7 @@ __global__ void pair_count( * @tparam warp_size The size of the warp * @tparam tile_size The number of threads in the Cooperative Groups * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join - * operations or not + * @tparam is_outer Boolean flag indicating whether non-matches are included in the output * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -400,12 +406,12 @@ __global__ void vectorized_retrieve(InputIt first, } /** - * @brief Finds all the values corresponding to all keys in the range `[first, last)` using scalar - * loads combined with per-CG shared memory buffer. + * @brief Retrieves all the values corresponding to all keys in the range `[first, last)` using + * scalar loads combined with per-CG shared memory buffer. * * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Else, copies `k` and - * the empty value sentinel. + * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Copies `k` and + * the empty value sentinel into the output only when `is_outer` is `true`. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. @@ -414,8 +420,7 @@ __global__ void vectorized_retrieve(InputIt first, * @tparam warp_size The size of the warp * @tparam tile_size The number of threads in the Cooperative Groups * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether the current functions is used for outer join - * operations or not + * @tparam is_outer Boolean flag indicating whether non-matches are included in the output * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -481,6 +486,44 @@ __global__ void retrieve(InputIt first, } } +/** + * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)` + * using vector loads combined with per-block shared memory buffer. + * + * The `vectorized_` prefix indicates that the vector load method is used. + * + * If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to unspecified + * locations in `probe_output_begin`, and slot[j] is stored to unspecified locations in + * `contained_output_begin`. If the given pair has no matches in the map, copies *(first + i) in + * `probe_output_begin` and a pair of `empty_key_sentinel` and `empty_value_sentinel` in + * `contained_output_begin` only when `is_outer` is `true`. + * + * Behavior is undefined if the total number of matching pairs exceeds `std::distance(output_begin, + * output_begin + *num_matches - 1)`. Use `pair_count()` to determine the number of matching keys. + * + * @tparam block_size The size of the thread block + * @tparam warp_size The size of the warp + * @tparam tile_size The number of threads in the Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam is_outer Boolean flag indicating whether non-matches are included in the output + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam PairEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param probe_output_begin Beginning of the sequence of the matched probe pairs + * @param contained_output_begin Beginning of the sequence of the matched contained pairs + * @param num_matches Size of the output sequence + * @param view Device view used to access the hash map's slot storage + * @param pair_equal The binary function to compare two pairs for equality + */ template ::value_type, + * static_multimap::value_type>` is `true` + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is + * convertible to the map's `value_type` + * @tparam atomicT Type of atomic storage + * @tparam viewT Type of device view allowing access of hash map storage + * @tparam PairEqual Binary callable type + * @param first Beginning of the sequence of keys + * @param last End of the sequence of keys + * @param probe_output_begin Beginning of the sequence of the matched probe pairs + * @param contained_output_begin Beginning of the sequence of the matched contained pairs + * @param num_matches Size of the output sequence + * @param view Device view used to access the hash map's slot storage + * @param pair_equal The binary function to compare two pairs for equality + */ template ::value_type, * static_multimap::value_type>` is `true` - * @tparam StencilIt Device accessible random access iterator whose value_type is convertible to - * Predicate's argument type + * @tparam StencilIt Device accessible random access iterator whose value_type is + * convertible to Predicate's argument type * @tparam Predicate Unary predicate callable * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs @@ -280,7 +280,7 @@ class static_multimap { * @param last End of the sequence of keys to count * @param stream CUDA stream used for count * @param key_equal Binary function to compare two keys for equality - * @return The sum of total occurrences of all keys in `[first,last)` + * @return The sum of total occurrences of all keys in `[first, last)` */ template > std::size_t count(InputIt first, @@ -289,8 +289,9 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) const; /** - * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. If no - * matches can be found for a given key, the corresponding occurrence is 1. + * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. + * + * The `_outer` suffix signifies that the occurrence of non-matches is 1. * * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` * @tparam KeyEqual Binary callable @@ -298,7 +299,7 @@ class static_multimap { * @param last End of the sequence of keys to count * @param stream CUDA stream used for count_outer * @param key_equal Binary function to compare two keys for equality - * @return The sum of total occurrences of all keys in `[first,last)` + * @return The sum of total occurrences of all keys in `[first, last)` */ template > std::size_t count_outer(InputIt first, @@ -309,13 +310,17 @@ class static_multimap { /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. * - * @tparam Input Device accesible input iterator of key/value pairs + * The `pair_` prefix indicates that the input data type is convertible to the map's `value_type`. + * + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count * @param pair_equal Binary function to compare two pairs for equality * @param stream CUDA stream used for pair_count - * @return The sum of total occurrences of all pairs in `[first,last)` + * @return The sum of total occurrences of all pairs in `[first, last)` */ template std::size_t pair_count(InputIt first, @@ -325,15 +330,19 @@ class static_multimap { /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. - * If no matches can be found for a given key/value pair, the corresponding occurrence is 1. * - * @tparam Input Device accesible input iterator of key/value pairs + * The `pair_` prefix indicates that the input data type is convertible to the map's `value_type`. + * The `_outer` suffix signifies that the occurrence of non-matches is 1. + * + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count * @param pair_equal Binary function to compare two pairs for equality * @param stream CUDA stream used for pair_count_outer - * @return The sum of total occurrences of all pairs in `[first,last)` + * @return The sum of total occurrences of all pairs in `[first, last)` */ template std::size_t pair_count_outer(InputIt first, @@ -372,9 +381,9 @@ class static_multimap { /** * @brief Retrieves all the matches corresponding to all keys in the range `[first, last)`. * - * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and the empty value - * sentinel. + * The `_outer` suffix signifies that non-matches are included in the output: If the key + * `k = *(first + i)` exists in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. Else, copies `k` and the empty value sentinel. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, * output_end)`. Use `count_outer()` to determine the number of matching keys. @@ -401,15 +410,18 @@ class static_multimap { /** * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)`. * - * if pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to - * `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. + * The `pair_` prefix indicates that the input data type is convertible to the map's + * `value_type`. If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is + * stored to `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. * * Behavior is undefined if the total number of matching pairs exceeds * `std::distance(probe_output_begin, probe_output_end)` (or * `std::distance(contained_output_begin, contained_output_end)`). Use * `pair_count()` to determine the number of matching pairs. * - * @tparam InputIt Device accessible input iterator for probe pairs + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type @@ -418,7 +430,7 @@ class static_multimap { * @param probe_output_begin Beginning of the sequence of the matched probe pairs * @param contained_output_begin Beginning of the sequence of the matched contained pairs * @param pair_equal The binary function to compare two pairs for equality - * @param stream CUDA stream used for retrieve_outer + * @param stream CUDA stream used for pair_retrieve * @return The total number of matches */ template @@ -432,7 +444,9 @@ class static_multimap { /** * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)`. * - * if pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to + * The `pair_` prefix indicates that the input data type is convertible to the map's `value_type`. + * The `_outer` suffix signifies that non-matches are included in the output: if + * pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to * `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. If *(first+i) doesn't * have matches in the map, copies *(first + i) in `probe_output_begin` and a pair of * `empty_key_sentinel` and `empty_value_sentinel` in `contained_output_begin`. @@ -442,7 +456,9 @@ class static_multimap { * `std::distance(contained_output_begin, contained_output_end)`). Use * `pair_count()` to determine the number of matching pairs. * - * @tparam InputIt Device accessible input iterator for probe pairs + * @tparam InputIt Device accessible random access input iterator where + * `std::is_converitble::value_type, + * static_multimap::value_type>` is `true` * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches * @tparam PairEqual Binary callable type @@ -451,7 +467,7 @@ class static_multimap { * @param probe_output_begin Beginning of the sequence of the matched probe pairs * @param contained_output_begin Beginning of the sequence of the matched contained pairs * @param pair_equal The binary function to compare two pairs for equality - * @param stream CUDA stream used for retrieve_outer + * @param stream CUDA stream used for pair_retrieve_outer * @return The total number of matches */ template @@ -777,7 +793,7 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map using vector loads. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used * @tparam CG Cooperative Group type * * @param g The Cooperative Group that performs the insert @@ -791,7 +807,7 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map using scalar loads. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used * @tparam CG Cooperative Group type * * @param g The Cooperative Group that performs the insert @@ -926,13 +942,13 @@ class static_multimap { /** * @brief Indicates whether the key `k` was inserted into the map using vector loads. * - * If the key `k` was inserted into the map, find returns + * If the key `k` was inserted into the map, `contains` returns * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single contains operation. This provides a - * significant boost in throughput compared to the non Cooperative Group + * to leverage multiple threads to perform a single `contains` operation. This provides a + * significant boost in throughput compared to the non Cooperative Group based * `contains` at moderate to high load factors. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation @@ -950,13 +966,13 @@ class static_multimap { /** * @brief Indicates whether the key `k` was inserted into the map using scalar loads. * - * If the key `k` was inserted into the map, find returns + * If the key `k` was inserted into the map, `contains` returns * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single contains operation. This provides a + * to leverage multiple threads to perform a single `contains` operation. This provides a * significant boost in throughput compared to the non Cooperative Group * `contains` at moderate to high load factors. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation @@ -973,8 +989,8 @@ class static_multimap { /** * @brief Counts the occurrence of a given key contained in multimap using vector loads. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation @@ -990,8 +1006,8 @@ class static_multimap { /** * @brief Counts the occurrence of a given key contained in multimap using scalar loads. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation @@ -1008,8 +1024,8 @@ class static_multimap { * @brief Counts the occurrence of a given key/value pair contained in multimap using vector * loads. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation @@ -1026,8 +1042,8 @@ class static_multimap { * @brief Counts the occurrence of a given key/value pair contained in multimap using scalar * loads. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used or not - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation @@ -1041,7 +1057,7 @@ class static_multimap { CG const& g, value_type const& pair, PairEqual pair_equal) noexcept; /** - * @brief Find all the matches of a given key contained in multimap using vector + * @brief Retrieves all the matches of a given key contained in multimap using vector * loads with per-warp shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to @@ -1049,7 +1065,7 @@ class static_multimap { * and the empty value sentinel into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -1083,7 +1099,7 @@ class static_multimap { KeyEqual key_equal) noexcept; /** - * @brief Find all the matches of a given key contained in multimap using scalar + * @brief Retrieves all the matches of a given key contained in multimap using scalar * loads with per-cg shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to @@ -1092,7 +1108,7 @@ class static_multimap { * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -1123,7 +1139,7 @@ class static_multimap { KeyEqual key_equal) noexcept; /** - * @brief Find all the matches of a given pair contained in multimap using vector + * @brief Retrieves all the matches of a given pair contained in multimap using vector * loads with per-warp shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations @@ -1133,7 +1149,7 @@ class static_multimap { * the empty value sentinels into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -1172,7 +1188,7 @@ class static_multimap { PairEqual pair_equal) noexcept; /** - * @brief Find all the matches of a given pair contained in multimap using scalar + * @brief Retrieves all the matches of a given pair contained in multimap using scalar * loads with per-cg shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations @@ -1183,7 +1199,7 @@ class static_multimap { * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed or not + * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches @@ -1267,9 +1283,9 @@ class static_multimap { /** * @brief Indicates whether the key `k` was inserted into the map. * - * If the key `k` was inserted into the map, find returns + * If the key `k` was inserted into the map, `contains` returns * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single contains operation. This provides a + * to leverage multiple threads to perform a single `contains` operation. This provides a * significant boost in throughput compared to the non Cooperative Group * `contains` at moderate to high load factors. * @@ -1352,7 +1368,7 @@ class static_multimap { PairEqual pair_equal) noexcept; /** - * @brief Find all the matches of a given key contained in multimap using vector + * @brief Retrieves all the matches of a given key contained in multimap using vector * loads with per-warp shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to @@ -1392,7 +1408,7 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) noexcept; /** - * @brief Find all the matches of a given key contained in multimap using vector + * @brief Retrieves all the matches of a given key contained in multimap using vector * loads with per-warp shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to @@ -1432,7 +1448,7 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) noexcept; /** - * @brief Find all the matches of a given key contained in multimap using scalar + * @brief Retrieves all the matches of a given key contained in multimap using scalar * loads with per-cg shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to @@ -1469,7 +1485,7 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) noexcept; /** - * @brief Find all the matches of a given key contained in multimap using scalar + * @brief Retrieves all the matches of a given key contained in multimap using scalar * loads with per-cg shared memory buffer. * * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to @@ -1507,7 +1523,7 @@ class static_multimap { KeyEqual key_equal = KeyEqual{}) noexcept; /** - * @brief Find all the matches of a given pair contained in multimap using vector + * @brief Retrieves all the matches of a given pair contained in multimap using vector * loads with per-warp shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations @@ -1553,7 +1569,7 @@ class static_multimap { PairEqual pair_equal) noexcept; /** - * @brief Find all the matches of a given pair contained in multimap using vector + * @brief Retrieves all the matches of a given pair contained in multimap using vector * loads with per-warp shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations @@ -1600,7 +1616,7 @@ class static_multimap { PairEqual pair_equal) noexcept; /** - * @brief Find all the matches of a given pair contained in multimap using scalar + * @brief Retrieves all the matches of a given pair contained in multimap using scalar * loads with per-cg shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations @@ -1644,7 +1660,7 @@ class static_multimap { PairEqual pair_equal) noexcept; /** - * @brief Find all the matches of a given pair contained in multimap using scalar + * @brief Retrieves all the matches of a given pair contained in multimap using scalar * loads with per-cg shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations From 17bdffe184ed5d9f5a5a31b9a2899bfacb7d78b7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 17 Sep 2021 15:32:33 -0400 Subject: [PATCH 230/267] Updates: docs, examples and probe sequence taking map's Scope --- .../static_multimap/find_all_bench.cu | 7 +- .../static_multimap_example.cu | 11 +- include/cuco/detail/probe_sequences.cuh | 4 + include/cuco/detail/static_multimap.inl | 186 +++++++++--------- include/cuco/static_multimap.cuh | 10 +- tests/static_multimap/static_multimap_test.cu | 33 ++-- 6 files changed, 139 insertions(+), 112 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index 3447aa1c2..d98aac8d4 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -72,8 +72,11 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); - cuco::static_multimap> map{ - size, -1, -1}; + cuco::static_multimap> + map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); auto const output_size = map.count_outer(d_keys.begin(), d_keys.end()); diff --git a/examples/static_multimap/static_multimap_example.cu b/examples/static_multimap/static_multimap_example.cu index 2ef03298d..cda8f2073 100644 --- a/examples/static_multimap/static_multimap_example.cu +++ b/examples/static_multimap/static_multimap_example.cu @@ -24,6 +24,9 @@ int main(void) { + using key_type = int; + using value_type = int; + int empty_key_sentinel = -1; int empty_value_sentinel = -1; @@ -32,9 +35,9 @@ int main(void) // Constructs a multimap with 100,000 slots using -1 and -1 as the empty key/value // sentinels. Note the capacity is chosen knowing we will insert 50,000 keys, // for an load factor of 50%. - cuco::static_multimap map{N * 2, empty_key_sentinel, empty_value_sentinel}; + cuco::static_multimap map{N * 2, empty_key_sentinel, empty_value_sentinel}; - thrust::device_vector> pairs(N); + thrust::device_vector> pairs(N); // Create a sequence of pairs. Eeach key has two matches. // E.g., {{0,0}, {1,1}, ... {0,25'000}, {1, 25'001}, ...} @@ -47,14 +50,14 @@ int main(void) map.insert(pairs.begin(), pairs.end()); // Sequence of probe keys {0, 1, 2, ... 49'999} - thrust::device_vector keys_to_find(N); + thrust::device_vector keys_to_find(N); thrust::sequence(keys_to_find.begin(), keys_to_find.end(), 0); // Counts the occurrences of keys in [0, 50'000) contained in the multimap. // The `_outer` suffix indicates that the occurrence of a non-match is 1. auto const output_size = map.count_outer(keys_to_find.begin(), keys_to_find.end()); - thrust::device_vector> d_results(output_size); + thrust::device_vector> d_results(output_size); // Finds all keys {0, 1, 2, ...} and stores associated key/value pairs into `d_results` // If a key `keys_to_find[i]` doesn't exist, `d_results[i].second == empty_value_sentinel` diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 6bdc326a6..318be4e7d 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -112,6 +112,8 @@ class probe_sequence_base { * - Use linear probing only when collisions are rare. e.g. low occupancy or low multiplicity. * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. * + * `Hash` should be callable object type. + * * @tparam Key Type used for keys * @tparam Value Type of the mapped values * @tparam CGSize Number of threads in CUDA Cooperative Groups @@ -212,6 +214,8 @@ class linear_probing : public probe_sequence_base { * hints: * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. * + * `Hash1` and `Hash2` should be callable object type. + * * @tparam Key Type used for keys * @tparam Value Type of the mapped values * @tparam CGSize Number of threads in CUDA Cooperative Groups diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 41fb05ceb..d7ea00225 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -23,10 +23,10 @@ namespace cuco { template -static_multimap::static_multimap() +static_multimap::static_multimap() : delete_counter_{counter_allocator_, stream_}, delete_slots_{slot_allocator_, capacity_, stream_}, d_counter_{nullptr, delete_counter_}, @@ -36,10 +36,10 @@ static_multimap::static_multimap() template -static_multimap::static_multimap( +static_multimap::static_multimap( std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel, @@ -68,11 +68,11 @@ static_multimap::static_multimap( template template -void static_multimap::insert(InputIt first, +void static_multimap::insert(InputIt first, InputIt last, cudaStream_t stream) { @@ -90,11 +90,11 @@ void static_multimap::insert(InputI template template -void static_multimap::insert_if( +void static_multimap::insert_if( InputIt first, InputIt last, StencilIt stencil, Predicate pred, cudaStream_t stream) { auto num_elements = std::distance(first, last); @@ -112,11 +112,11 @@ void static_multimap::insert_if( template template -void static_multimap::contains( +void static_multimap::contains( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -133,11 +133,11 @@ void static_multimap::contains( template template -std::size_t static_multimap::count( +std::size_t static_multimap::count( InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -164,11 +164,11 @@ std::size_t static_multimap::count( template template -std::size_t static_multimap::count_outer( +std::size_t static_multimap::count_outer( InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -195,11 +195,11 @@ std::size_t static_multimap::count_ template template -std::size_t static_multimap::pair_count( +std::size_t static_multimap::pair_count( InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { auto num_keys = std::distance(first, last); @@ -227,11 +227,11 @@ std::size_t static_multimap::pair_c template template -std::size_t static_multimap::pair_count_outer( +std::size_t static_multimap::pair_count_outer( InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { auto num_keys = std::distance(first, last); @@ -259,11 +259,11 @@ std::size_t static_multimap::pair_c template template -OutputIt static_multimap::retrieve( +OutputIt static_multimap::retrieve( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -325,11 +325,11 @@ OutputIt static_multimap::retrieve( template template -OutputIt static_multimap::retrieve_outer( +OutputIt static_multimap::retrieve_outer( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -391,11 +391,11 @@ OutputIt static_multimap::retrieve_ template template -std::size_t static_multimap::pair_retrieve( +std::size_t static_multimap::pair_retrieve( InputIt first, InputIt last, OutputZipIt1 probe_output_begin, @@ -473,11 +473,11 @@ std::size_t static_multimap::pair_r template template -std::size_t static_multimap::pair_retrieve_outer( +std::size_t static_multimap::pair_retrieve_outer( InputIt first, InputIt last, OutputZipIt1 probe_output_begin, @@ -555,11 +555,11 @@ std::size_t static_multimap::pair_r template __device__ void -static_multimap::device_view_base::load_pair_array( +static_multimap::device_view_base::load_pair_array( value_type* arr, const_iterator current_slot) noexcept { if constexpr (sizeof(value_type) == 4) { @@ -573,12 +573,12 @@ static_multimap::device_view_base:: template __device__ - static_multimap::device_mutable_view::insert_result - static_multimap::device_mutable_view::packed_cas( + static_multimap::device_mutable_view::insert_result + static_multimap::device_mutable_view::packed_cas( iterator current_slot, value_type const& insert_pair) noexcept { auto expected_key = this->get_empty_key_sentinel(); @@ -601,12 +601,12 @@ __device__ template __device__ - static_multimap::device_mutable_view::insert_result - static_multimap::device_mutable_view:: + static_multimap::device_mutable_view::insert_result + static_multimap::device_mutable_view:: back_to_back_cas(iterator current_slot, value_type const& insert_pair) noexcept { using cuda::std::memory_order_relaxed; @@ -640,12 +640,12 @@ __device__ template __device__ - static_multimap::device_mutable_view::insert_result - static_multimap::device_mutable_view:: + static_multimap::device_mutable_view::insert_result + static_multimap::device_mutable_view:: cas_dependent_write(iterator current_slot, value_type const& insert_pair) noexcept { using cuda::std::memory_order_relaxed; @@ -667,12 +667,12 @@ __device__ template template __device__ std::enable_if_t -static_multimap::device_mutable_view::insert_impl( +static_multimap::device_mutable_view::insert_impl( CG g, value_type const& insert_pair) noexcept { auto current_slot = initial_slot(g, insert_pair.first); @@ -714,12 +714,12 @@ static_multimap::device_mutable_vie template template __device__ std::enable_if_t -static_multimap::device_mutable_view::insert_impl( +static_multimap::device_mutable_view::insert_impl( CG g, value_type const& insert_pair) noexcept { auto current_slot = initial_slot(g, insert_pair.first); @@ -763,12 +763,12 @@ static_multimap::device_mutable_vie template template __device__ void -static_multimap::device_mutable_view::insert( +static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair) noexcept { insert_impl(g, insert_pair); @@ -776,12 +776,12 @@ static_multimap::device_mutable_vie template template __device__ std::enable_if_t -static_multimap::device_view::contains_impl( +static_multimap::device_view::contains_impl( CG g, Key const& k, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -811,12 +811,12 @@ static_multimap::device_view::conta template template __device__ std::enable_if_t -static_multimap::device_view::contains_impl( +static_multimap::device_view::contains_impl( CG g, Key const& k, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -846,12 +846,12 @@ static_multimap::device_view::conta template template __device__ std::enable_if_t -static_multimap::device_view::count_impl( +static_multimap::device_view::count_impl( CG const& g, Key const& k, KeyEqual key_equal) noexcept { std::size_t count = 0; @@ -889,12 +889,12 @@ static_multimap::device_view::count template template __device__ std::enable_if_t -static_multimap::device_view::count_impl( +static_multimap::device_view::count_impl( CG const& g, Key const& k, KeyEqual key_equal) noexcept { std::size_t count = 0; @@ -928,12 +928,12 @@ static_multimap::device_view::count template template __device__ std::enable_if_t -static_multimap::device_view::pair_count_impl( +static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { std::size_t count = 0; @@ -973,12 +973,12 @@ static_multimap::device_view::pair_ template template __device__ std::enable_if_t -static_multimap::device_view::pair_count_impl( +static_multimap::device_view::pair_count_impl( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { std::size_t count = 0; @@ -1014,8 +1014,8 @@ static_multimap::device_view::pair_ template template __device__ void -static_multimap::device_view::retrieve_impl( +static_multimap::device_view::retrieve_impl( warpT const& warp, CG const& g, Key const& k, @@ -1107,8 +1107,8 @@ static_multimap::device_view::retri template template __device__ void -static_multimap::device_view::retrieve_impl( +static_multimap::device_view::retrieve_impl( CG const& g, Key const& k, uint32_t* cg_counter, @@ -1185,8 +1185,8 @@ static_multimap::device_view::retri template template __device__ void -static_multimap::device_view::pair_retrieve_impl( +static_multimap::device_view::pair_retrieve_impl( warpT const& warp, CG const& g, value_type const& pair, @@ -1287,8 +1287,8 @@ static_multimap::device_view::pair_ template template __device__ void -static_multimap::device_view::pair_retrieve_impl( +static_multimap::device_view::pair_retrieve_impl( CG const& g, value_type const& pair, uint32_t* cg_counter, @@ -1376,12 +1376,12 @@ static_multimap::device_view::pair_ template template __inline__ __device__ void -static_multimap::device_view::flush_output_buffer( +static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, value_type* output_buffer, @@ -1421,12 +1421,12 @@ static_multimap::device_view::flush template template __inline__ __device__ void -static_multimap::device_view::flush_output_buffer( +static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, value_type* probe_output_buffer, @@ -1454,11 +1454,11 @@ static_multimap::device_view::flush template template -__device__ bool static_multimap::device_view::contains( +__device__ bool static_multimap::device_view::contains( CG g, Key const& k, KeyEqual key_equal) noexcept { return contains_impl(g, k, key_equal); @@ -1466,12 +1466,12 @@ __device__ bool static_multimap::de template template __device__ std::size_t -static_multimap::device_view::count( +static_multimap::device_view::count( CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = false; @@ -1480,12 +1480,12 @@ static_multimap::device_view::count template template __device__ std::size_t -static_multimap::device_view::count_outer( +static_multimap::device_view::count_outer( CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = true; @@ -1494,12 +1494,12 @@ static_multimap::device_view::count template template __device__ std::size_t -static_multimap::device_view::pair_count( +static_multimap::device_view::pair_count( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; @@ -1508,12 +1508,12 @@ static_multimap::device_view::pair_ template template __device__ std::size_t -static_multimap::device_view::pair_count_outer( +static_multimap::device_view::pair_count_outer( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; @@ -1522,8 +1522,8 @@ static_multimap::device_view::pair_ template template -__device__ void static_multimap::device_view::retrieve( +__device__ void static_multimap::device_view::retrieve( warpT const& warp, CG const& g, Key const& k, @@ -1548,8 +1548,8 @@ __device__ void static_multimap::de template template __device__ void -static_multimap::device_view::retrieve_outer( +static_multimap::device_view::retrieve_outer( warpT const& warp, CG const& g, Key const& k, @@ -1575,8 +1575,8 @@ static_multimap::device_view::retri template template -__device__ void static_multimap::device_view::retrieve( +__device__ void static_multimap::device_view::retrieve( CG const& g, Key const& k, uint32_t* cg_counter, @@ -1600,8 +1600,8 @@ __device__ void static_multimap::de template template __device__ void -static_multimap::device_view::retrieve_outer( +static_multimap::device_view::retrieve_outer( CG const& g, Key const& k, uint32_t* cg_counter, @@ -1626,8 +1626,8 @@ static_multimap::device_view::retri template template __device__ void -static_multimap::device_view::pair_retrieve( +static_multimap::device_view::pair_retrieve( warpT const& warp, CG const& g, value_type const& pair, @@ -1664,8 +1664,8 @@ static_multimap::device_view::pair_ template template __device__ void -static_multimap::device_view::pair_retrieve_outer( +static_multimap::device_view::pair_retrieve_outer( warpT const& warp, CG const& g, value_type const& pair, @@ -1702,8 +1702,8 @@ static_multimap::device_view::pair_ template template __device__ void -static_multimap::device_view::pair_retrieve( +static_multimap::device_view::pair_retrieve( CG const& g, value_type const& pair, uint32_t* cg_counter, @@ -1738,8 +1738,8 @@ static_multimap::device_view::pair_ template template __device__ void -static_multimap::device_view::pair_retrieve_outer( +static_multimap::device_view::pair_retrieve_outer( CG const& g, value_type const& pair, uint32_t* cg_counter, diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index c9b46f813..caa6fa6e7 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -117,15 +117,21 @@ namespace cuco { * * @tparam Key Type used for keys * @tparam Value Type of the mapped values - * @tparam ProbeSequence Probe sequence defined in `detail/probe_sequence.cuh` * @tparam Scope The scope in which multimap operations will be performed by * individual threads + * @tparam ProbeSequence Probe sequence chosen between `cuco::detail::linear_probing` + * and `cuco::detail::double_hashing`. (see `detail/probe_sequences.cuh`) * @tparam Allocator Type of allocator used for device storage */ template , cuda::thread_scope Scope = cuda::thread_scope_device, + class ProbeSequence = cuco::detail::double_hashing, + cuco::detail::MurmurHash3_32, + Scope>, typename Allocator = cuco::cuda_allocator> class static_multimap { static_assert( diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index bc4f27f3e..3f5495e2c 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -238,15 +238,13 @@ TEMPLATE_TEST_CASE_SIG("User defined key and value type", if constexpr (Probe == probe_sequence::linear_probing) { cuco::static_multimap> map{capacity, sentinel_key, sentinel_value}; test_custom_key_value_type(map, insert_pairs, insert_keys.begin(), num_pairs); } if constexpr (Probe == probe_sequence::double_hashing) { - cuco::static_multimap> - map{capacity, sentinel_key, sentinel_value}; + cuco::static_multimap map{capacity, sentinel_key, sentinel_value}; test_custom_key_value_type(map, insert_pairs, insert_keys.begin(), num_pairs); } } @@ -339,7 +337,11 @@ TEMPLATE_TEST_CASE_SIG("Multiplicity equals two", thrust::device_vector> d_results(num_items); if constexpr (Probe == probe_sequence::linear_probing) { - cuco::static_multimap> map{5, -1, -1}; + cuco::static_multimap> + map{5, -1, -1}; test_multiplicity_two(map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); } if constexpr (Probe == probe_sequence::double_hashing) { @@ -408,8 +410,11 @@ TEMPLATE_TEST_CASE_SIG("Tests of non-matches", }); if constexpr (Probe == probe_sequence::linear_probing) { - cuco::static_multimap> map{ - num_keys * 2, -1, -1}; + cuco::static_multimap> + map{num_keys * 2, -1, -1}; test_non_matches(map, d_pairs.begin(), d_keys.begin(), num_keys); } if constexpr (Probe == probe_sequence::double_hashing) { @@ -457,8 +462,11 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", }); if constexpr (Probe == probe_sequence::linear_probing) { - cuco::static_multimap> map{ - num_keys * 2, -1, -1}; + cuco::static_multimap> + map{num_keys * 2, -1, -1}; test_insert_if(map, d_pairs.begin(), d_keys.begin(), num_keys); } if constexpr (Probe == probe_sequence::double_hashing) { @@ -550,8 +558,11 @@ TEMPLATE_TEST_CASE_SIG("Tests of pair functions", }); if constexpr (Probe == probe_sequence::linear_probing) { - cuco::static_multimap> map{ - num_pairs * 2, -1, -1}; + cuco::static_multimap> + map{num_pairs * 2, -1, -1}; test_pair_functions(map, d_pairs.begin(), num_pairs); } if constexpr (Probe == probe_sequence::double_hashing) { From c26366acbef5dbae09d6e8e323a6014aae91fad6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 17 Sep 2021 17:22:01 -0400 Subject: [PATCH 231/267] Add thorough tests for retrieve functions --- tests/static_multimap/static_multimap_test.cu | 138 +++++++++++++++--- 1 file changed, 121 insertions(+), 17 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 3f5495e2c..d43650a54 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -81,11 +81,6 @@ struct alignas(8) value_pair { #define SIZE 10 __device__ int A[SIZE]; -template -struct custom_equals { - __device__ bool operator()(T lhs, T rhs) { return A[lhs] == A[rhs]; } -}; - template __inline__ void test_custom_key_value_type(Map& map, PairIt pair_begin, @@ -126,7 +121,7 @@ __inline__ void test_custom_key_value_type(Map& map, })); } - SECTION("Outer functions include non-matches in the output while normal functions don't") + SECTION("Non-matches are not included in the output") { map.insert(pair_begin, pair_begin + num_pairs); @@ -144,11 +139,6 @@ __inline__ void test_custom_key_value_type(Map& map, auto count = map.count(query_key_begin, query_key_begin + num, stream, key_pair_equals{}); REQUIRE(count == num_pairs); - auto count_outer = - map.count_outer(query_key_begin, query_key_begin + num, stream, key_pair_equals{}); - REQUIRE(count_outer == num); - - ////////////////////// tests of retreive thrust::device_vector> found_pairs(num_pairs); auto output_end = map.retrieve( query_key_begin, query_key_begin + num, found_pairs.begin(), stream, key_pair_equals{}); @@ -172,10 +162,29 @@ __inline__ void test_custom_key_value_type(Map& map, [] __device__(cuco::pair_type lhs, cuco::pair_type rhs) { return lhs.first.a == rhs.first.a; })); + } + + SECTION("Outer functions include non-matches in the output") + { + map.insert(pair_begin, pair_begin + num_pairs); + + auto const num = num_pairs * 2; + thrust::device_vector query_keys(num); + auto query_key_begin = query_keys.begin(); + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(num), + query_key_begin, + [] __device__(auto i) { + return Key{i, i}; + }); - ////////////////////// tests of retreive_outer - found_pairs.resize(num); - output_end = map.retrieve_outer( + auto count_outer = + map.count_outer(query_key_begin, query_key_begin + num, stream, key_pair_equals{}); + REQUIRE(count_outer == num); + + thrust::device_vector> found_pairs(num); + auto output_end = map.retrieve_outer( query_key_begin, query_key_begin + num, found_pairs.begin(), stream, key_pair_equals{}); auto size_outer = output_end - found_pairs.begin(); @@ -249,7 +258,12 @@ TEMPLATE_TEST_CASE_SIG("User defined key and value type", } } -template +template __inline__ void test_multiplicity_two( Map& map, PairIt pair_begin, KeyIt key_begin, ResultIt result_begin, std::size_t num_items) { @@ -286,6 +300,25 @@ __inline__ void test_multiplicity_two( auto size = thrust::distance(output_begin, output_end); REQUIRE(size == num_items); + + // sort before compare + thrust::sort(thrust::device, + output_begin, + output_end, + [] __device__(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) { + if (lhs.first != rhs.first) { return lhs.first < rhs.first; } + return lhs.second < rhs.second; + }); + + REQUIRE(thrust::equal( + thrust::device, + pair_begin, + pair_begin + num_items, + output_begin, + [] __device__(cuco::pair_type lhs, cuco::pair_type rhs) { + return lhs.first == rhs.first and lhs.second == rhs.second; + })); } SECTION("count and count_outer should return the same value.") @@ -306,6 +339,25 @@ __inline__ void test_multiplicity_two( auto size_outer = thrust::distance(output_begin, output_end); REQUIRE(size == size_outer); + + // sort before compare + thrust::sort(thrust::device, + output_begin, + output_end, + [] __device__(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) { + if (lhs.first != rhs.first) { return lhs.first < rhs.first; } + return lhs.second < rhs.second; + }); + + REQUIRE(thrust::equal( + thrust::device, + pair_begin, + pair_begin + num_items, + output_begin, + [] __device__(cuco::pair_type lhs, cuco::pair_type rhs) { + return lhs.first == rhs.first and lhs.second == rhs.second; + })); } } @@ -342,11 +394,13 @@ TEMPLATE_TEST_CASE_SIG("Multiplicity equals two", cuda::thread_scope_device, cuco::detail::linear_probing> map{5, -1, -1}; - test_multiplicity_two(map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); + test_multiplicity_two( + map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); } if constexpr (Probe == probe_sequence::double_hashing) { cuco::static_multimap map{5, -1, -1}; - test_multiplicity_two(map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); + test_multiplicity_two( + map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); } } @@ -367,6 +421,25 @@ __inline__ void test_non_matches(Map& map, PairIt pair_begin, KeyIt key_begin, s auto size = thrust::distance(output_begin, output_end); REQUIRE(size == num_keys); + + // sort before compare + thrust::sort(thrust::device, + output_begin, + output_end, + [] __device__(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) { + if (lhs.first != rhs.first) { return lhs.first < rhs.first; } + return lhs.second < rhs.second; + }); + + REQUIRE(thrust::equal( + thrust::device, + pair_begin, + pair_begin + num_keys, + output_begin, + [] __device__(cuco::pair_type lhs, cuco::pair_type rhs) { + return lhs.first == rhs.first and lhs.second == rhs.second; + })); } SECTION("Output of count_outer and retrieve_outer should be coherent.") @@ -381,6 +454,37 @@ __inline__ void test_non_matches(Map& map, PairIt pair_begin, KeyIt key_begin, s auto size = thrust::distance(output_begin, output_end); REQUIRE(size == (num_keys + num_keys / 2)); + + // sort before compare + thrust::sort(thrust::device, + output_begin, + output_end, + [] __device__(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) { + if (lhs.first != rhs.first) { return lhs.first < rhs.first; } + return lhs.second < rhs.second; + }); + + // create gold reference + thrust::device_vector> gold(size); + auto gold_begin = gold.begin(); + thrust::transform(thrust::device, + thrust::counting_iterator(0), + thrust::counting_iterator(size), + gold_begin, + [num_keys] __device__(auto i) { + if (i < num_keys) { return cuco::pair_type{i / 2, i}; } + return cuco::pair_type{i - num_keys / 2, -1}; + }); + + REQUIRE(thrust::equal( + thrust::device, + gold_begin, + gold_begin + size, + output_begin, + [] __device__(cuco::pair_type lhs, cuco::pair_type rhs) { + return lhs.first == rhs.first and lhs.second == rhs.second; + })); } } From b1ff422c538a3c8b495fa36501ced8b3a58b7512 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 20 Sep 2021 19:17:25 -0400 Subject: [PATCH 232/267] Update size computation & add related unit tests --- include/cuco/detail/static_multimap.inl | 39 +++++++++++++++++++ include/cuco/static_multimap.cuh | 27 +++++++++++-- tests/static_multimap/static_multimap_test.cu | 29 +++++++++++++- 3 files changed, 90 insertions(+), 5 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index d7ea00225..b29dd8038 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -19,6 +19,18 @@ #include #include +namespace { +/** + * @brief Device functor used to determine if a slot is filled. + */ +template +struct slot_is_filled { + slot_is_filled(Key s) : empty_key_sentinel{s} {} + __device__ bool operator()(Key const& k) { return k != empty_key_sentinel; } + Key empty_key_sentinel; +}; +} // anonymous namespace + namespace cuco { template ::device_view::pair_ pair_equal); } +template +std::size_t static_multimap::get_size( + cudaStream_t stream) const noexcept +{ + auto begin = thrust::make_transform_iterator( + raw_slots(), [] __device__(cuco::pair_type const& pair) { return pair.first; }); + slot_is_filled filled(empty_key_sentinel_); + + return thrust::count_if(thrust::cuda::par.on(stream), begin, begin + capacity_, filled); +} + +template +float static_multimap::get_load_factor( + cudaStream_t stream) const noexcept +{ + auto size = get_size(stream); + return static_cast(size) / static_cast(capacity_); +} + } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index caa6fa6e7..c25002203 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -1711,6 +1711,26 @@ class static_multimap { PairEqual pair_equal) noexcept; }; // class device_view + /** + * @brief Return the raw pointer of the hash map slots. + */ + value_type* raw_slots() noexcept + { + // Unsafe access to the slots stripping away their atomic-ness to allow non-atomic access. + // TODO: to be replace by atomic_ref when it's ready + return reinterpret_cast(slots_.get()); + } + + /** + * @brief Return the raw pointer of the hash map slots. + */ + value_type const* raw_slots() const noexcept + { + // Unsafe access to the slots stripping away their atomic-ness to allow non-atomic access. + // TODO: to be replace by atomic_ref when it's ready + return reinterpret_cast(slots_.get()); + } + /** * @brief Gets the maximum number of elements the hash map can hold. * @@ -1721,16 +1741,18 @@ class static_multimap { /** * @brief Gets the number of elements in the hash map. * + * @param stream CUDA stream used to get the number of inserted elements * @return The number of elements in the map */ - std::size_t get_size() const noexcept { return size_; } + std::size_t get_size(cudaStream_t stream = 0) const noexcept; /** * @brief Gets the load factor of the hash map. * + * @param stream CUDA stream used to get the load factor * @return The load factor of the hash map */ - float get_load_factor() const noexcept { return static_cast(size_) / capacity_; } + float get_load_factor(cudaStream_t stream = 0) const noexcept; /** * @brief Gets the sentinel value used to represent an empty key slot. @@ -1770,7 +1792,6 @@ class static_multimap { private: std::size_t capacity_{}; ///< Total number of slots - std::size_t size_{}; ///< Number of keys in map Key empty_key_sentinel_{}; ///< Key value that represents an empty slot Value empty_value_sentinel_{}; ///< Initial value of empty slot slot_allocator_type slot_allocator_{}; ///< Allocator used to allocate slots diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index d43650a54..000382490 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -60,6 +60,7 @@ enum class probe_sequence { linear_probing, double_hashing }; struct alignas(8) key_pair { int32_t a; int32_t b; + __device__ bool operator!=(key_pair const& other) const { return a != other.a and b != other.b; } }; struct hash_key_pair { @@ -93,6 +94,9 @@ __inline__ void test_custom_key_value_type(Map& map, { map.insert(pair_begin, pair_begin + num_pairs); + auto res = map.get_size(); + REQUIRE(res == num_pairs); + auto count = map.count(key_begin, key_begin + num_pairs, stream, key_pair_equals{}); REQUIRE(count == num_pairs); @@ -193,14 +197,21 @@ __inline__ void test_custom_key_value_type(Map& map, SECTION("All inserted keys-value pairs should be contained") { - thrust::device_vector contained(num_pairs); map.insert(pair_begin, pair_begin + num_pairs); + + auto size = map.get_size(); + REQUIRE(size == num_pairs); + + thrust::device_vector contained(num_pairs); map.contains(key_begin, key_begin + num_pairs, contained.begin(), stream, key_pair_equals{}); REQUIRE(all_of(contained.begin(), contained.end(), [] __device__(bool const& b) { return b; })); } SECTION("Non-inserted keys-value pairs should not be contained") { + auto size = map.get_size(); + REQUIRE(size == 0); + thrust::device_vector contained(num_pairs); map.contains(key_begin, key_begin + num_pairs, contained.begin(), stream, key_pair_equals{}); REQUIRE( @@ -272,6 +283,9 @@ __inline__ void test_multiplicity_two( SECTION("Non-inserted key/value pairs should not be contained.") { + auto size = map.get_size(); + REQUIRE(size == 0); + map.contains(key_begin, key_begin + num_keys, d_contained.begin()); REQUIRE( @@ -282,6 +296,9 @@ __inline__ void test_multiplicity_two( SECTION("All inserted key/value pairs should be contained.") { + auto size = map.get_size(); + REQUIRE(size == num_items); + map.contains(key_begin, key_begin + num_keys, d_contained.begin()); REQUIRE( @@ -409,6 +426,9 @@ __inline__ void test_non_matches(Map& map, PairIt pair_begin, KeyIt key_begin, s { map.insert(pair_begin, pair_begin + num_keys); + auto res = map.get_size(); + REQUIRE(res == num_keys); + SECTION("Output of count and retrieve should be coherent.") { auto num = map.count(key_begin, key_begin + num_keys); @@ -535,8 +555,10 @@ __inline__ void test_insert_if(Map& map, PairIt pair_begin, KeyIt key_begin, std map.insert_if(pair_begin, pair_begin + size, key_begin, pred_lambda); - auto num = map.count(key_begin, key_begin + size); + auto res = map.get_size(); + REQUIRE(res * 2 == size); + auto num = map.count(key_begin, key_begin + size); REQUIRE(num * 2 == size); } @@ -595,6 +617,9 @@ __inline__ void test_pair_functions(Map& map, PairIt pair_begin, std::size_t num map.insert(pair_begin, pair_begin + num_pairs); cudaStreamSynchronize(0); + auto res = map.get_size(); + REQUIRE(res == num_pairs); + // query pair matching rate = 50% thrust::transform(thrust::device, thrust::counting_iterator(0), From 0a3e137c5b1740a557a2ec1078b9aaf9093dd17f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 22 Sep 2021 16:49:05 -0400 Subject: [PATCH 233/267] Use non-default seed to get rid of the potential secondary clustering issue in double hashing --- include/cuco/detail/hash_functions.cuh | 4 +++- include/cuco/detail/probe_sequences.cuh | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/cuco/detail/hash_functions.cuh b/include/cuco/detail/hash_functions.cuh index aec550aba..d5dcd0f64 100644 --- a/include/cuco/detail/hash_functions.cuh +++ b/include/cuco/detail/hash_functions.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, NVIDIA CORPORATION. + * Copyright (c) 2017-2021, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,6 +36,8 @@ struct MurmurHash3_32 { __host__ __device__ constexpr MurmurHash3_32() : m_seed(0) {} + __host__ __device__ constexpr MurmurHash3_32(uint32_t seed) : m_seed(seed) {} + constexpr result_type __host__ __device__ operator()(Key const& key) const noexcept { constexpr int len = sizeof(argument_type); diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index 318be4e7d..b377398ee 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -243,6 +243,8 @@ class double_hashing : public probe_sequence_base { /** * @brief Constructs a double hashing scheme based on the given hash map features. * + * `hash2` takes a different seed to reduce the chance of secondary clustering. + * * @param slots Pointer to beginning of the hash map slots * @param capacity Capacity of the hash map * @param hash1 First hasher to hash each key @@ -251,7 +253,7 @@ class double_hashing : public probe_sequence_base { __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity, Hash1 hash1 = Hash1{}, - Hash2 hash2 = Hash2{}) noexcept + Hash2 hash2 = Hash2{1}) noexcept : probe_sequence_base{slots, capacity}, hash1_{hash1}, hash2_{hash2} { } From ed6b25360ab296e9a01a0e2d0dd43ec1eabc06a4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Thu, 7 Oct 2021 16:52:21 -0400 Subject: [PATCH 234/267] Include necessary headers --- include/cuco/detail/static_multimap.inl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index b29dd8038..7cde62d52 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -14,6 +14,8 @@ * limitations under the License. */ +#include +#include #include #include From 0dd290eccd6a50517148857e0baa6c45f99d1ae2 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 8 Oct 2021 11:37:34 -0400 Subject: [PATCH 235/267] Add and use is_bitwise_comparable_v --- include/cuco/static_map.cuh | 10 +++++----- include/cuco/static_multimap.cuh | 10 +++++----- include/cuco/traits.hpp | 3 +++ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/include/cuco/static_map.cuh b/include/cuco/static_map.cuh index ab9bf1350..1ae7ee314 100644 --- a/include/cuco/static_map.cuh +++ b/include/cuco/static_map.cuh @@ -54,7 +54,7 @@ class dynamic_map; * `cuco::detail::is_packable` constexpr). * * Current limitations: - * - Requires keys and values that where `cuco::is_bitwise_comparable::value` is true + * - Requires keys and values that where `cuco::is_bitwise_comparable_v` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons. * - Does not support erasing keys * - Capacity is fixed and will not grow automatically @@ -119,14 +119,14 @@ template > class static_map { static_assert( - cuco::is_bitwise_comparable::value, + cuco::is_bitwise_comparable_v, "Key type must have unique object representations or have been explicitly declared as safe for " - "bitwise comparison via specialization of cuco::is_bitwise_comparable."); + "bitwise comparison via specialization of cuco::is_bitwise_comparable_v."); - static_assert(cuco::is_bitwise_comparable::value, + static_assert(cuco::is_bitwise_comparable_v, "Value type must have unique object representations or have been explicitly " "declared as safe for bitwise comparison via specialization of " - "cuco::is_bitwise_comparable."); + "cuco::is_bitwise_comparable_v."); friend class dynamic_map; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index c25002203..46990879b 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -55,7 +55,7 @@ namespace cuco { * `static_multimap::supports_concurrent_insert_find()` is true. * * Current limitations: - * - Requires keys and values where `cuco::is_bitwise_comparable::value` is true + * - Requires keys and values where `cuco::is_bitwise_comparable_v` is true * - Comparisons against the "sentinel" values will always be done with bitwise comparisons * Therefore, the objects must have unique, bitwise object representations (e.g., no padding bits). * - Does not support erasing keys @@ -135,14 +135,14 @@ template > class static_multimap { static_assert( - cuco::is_bitwise_comparable::value, + cuco::is_bitwise_comparable_v, "Key type must have unique object representations or have been explicitly declared as safe for " - "bitwise comparison via specialization of cuco::is_bitwise_comparable."); + "bitwise comparison via specialization of cuco::is_bitwise_comparable_v."); static_assert( - cuco::is_bitwise_comparable::value, + cuco::is_bitwise_comparable_v, "Value type must have unique object representations or have been explicitly declared as safe " - "for bitwise comparison via specialization of cuco::is_bitwise_comparable."); + "for bitwise comparison via specialization of cuco::is_bitwise_comparable_v."); public: using value_type = cuco::pair_type; diff --git a/include/cuco/traits.hpp b/include/cuco/traits.hpp index 19d0bce9d..445a40daf 100644 --- a/include/cuco/traits.hpp +++ b/include/cuco/traits.hpp @@ -44,6 +44,9 @@ struct is_bitwise_comparable +inline constexpr bool is_bitwise_comparable_v = is_bitwise_comparable::value; + /** * @brief Declares that a type `Type` is bitwise comparable. * From f84216f6fad1ca99b58ac667357a149742ae20d5 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 8 Oct 2021 16:14:00 -0400 Subject: [PATCH 236/267] Update docs --- .../cuco/detail/static_multimap_kernels.cuh | 69 +++--- include/cuco/static_multimap.cuh | 197 ++++++++++-------- 2 files changed, 146 insertions(+), 120 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index 8ad623d31..fa1ef65f2 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -65,7 +65,7 @@ __global__ void initialize(pair_atomic_type* const slots, Key k, Value v, std::s * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam viewT Type of device view allowing access of hash map storage * @@ -102,16 +102,18 @@ __global__ void insert(InputIt first, InputIt last, viewT view) * @tparam tile_size The number of threads in the Cooperative Groups used to perform * inserts * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` - * @tparam StencilIt Device accessible stencil iterator + * @tparam StencilIt Device accessible random access iterator whose value_type is + * convertible to Predicate's argument type * @tparam viewT Type of device view allowing access of hash map storage - * @tparam Predicate Unary predicate function type + * @tparam Predicate Unary predicate callable whose return type must be convertible to `bool` and + * argument type is convertible from `std::iterator_traits::value_type`. * @param first Beginning of the sequence of key/value pairs * @param s Beginning of the stencil sequence * @param n Number of elements to insert * @param view Mutable device view used to access the hash map's slot storage - * @param pred Predicate to test on the given stencil sequence + * @param pred Predicate to test on every element in the range `[s, s + n)` */ template ::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage @@ -307,14 +314,12 @@ __global__ void pair_count( * @brief Retrieves all the values corresponding to all keys in the range `[first, last)` * using vector loads combined with per-block shared memory buffer. * - * The `vectorized_` prefix indicates that the vector load method is used. - * - * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Copies `k` and - * the empty value sentinel into the output only when `is_outer` is `true`. + * For key `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. If `k` does not have any matches, copies + * `k` and `empty_value_sentinel()` into the output only if `is_outer` is true. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. + * output_begin + *num_matches - 1)`. Use `count()` to determine the size of the output range. * * @tparam block_size The size of the thread block * @tparam warp_size The size of the warp @@ -324,7 +329,7 @@ __global__ void pair_count( * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam KeyEqual Binary callable type @@ -409,12 +414,12 @@ __global__ void vectorized_retrieve(InputIt first, * @brief Retrieves all the values corresponding to all keys in the range `[first, last)` using * scalar loads combined with per-CG shared memory buffer. * - * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_begin + *num_matches - 1)`. Copies `k` and - * the empty value sentinel into the output only when `is_outer` is `true`. + * For key `k = *(first + i)` existing in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. If `k` does not have any matches, copies + * `k` and `empty_value_sentinel()` into the output only if `is_outer` is true. * * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_begin + *num_matches - 1)`. Use `count()` to determine the number of matching keys. + * output_begin + *num_matches - 1)`. Use `count()` to determine the size of the output range. * * @tparam block_size The size of the thread block * @tparam warp_size The size of the warp @@ -424,7 +429,7 @@ __global__ void vectorized_retrieve(InputIt first, * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam KeyEqual Binary callable type @@ -490,8 +495,6 @@ __global__ void retrieve(InputIt first, * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)` * using vector loads combined with per-block shared memory buffer. * - * The `vectorized_` prefix indicates that the vector load method is used. - * * If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to unspecified * locations in `probe_output_begin`, and slot[j] is stored to unspecified locations in * `contained_output_begin`. If the given pair has no matches in the map, copies *(first + i) in @@ -499,7 +502,7 @@ __global__ void retrieve(InputIt first, * `contained_output_begin` only when `is_outer` is `true`. * * Behavior is undefined if the total number of matching pairs exceeds `std::distance(output_begin, - * output_begin + *num_matches - 1)`. Use `pair_count()` to determine the number of matching keys. + * output_begin + *num_matches - 1)`. Use `pair_count()` to determine the size of the output range. * * @tparam block_size The size of the thread block * @tparam warp_size The size of the warp @@ -507,12 +510,12 @@ __global__ void retrieve(InputIt first, * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether non-matches are included in the output * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam OutputIt1 Device accessible output iterator whose `value_type` is - * convertible to the map's `value_type` + * constructible from the map's `value_type` * @tparam OutputIt2 Device accessible output iterator whose `value_type` is - * convertible to the map's `value_type` + * constructible from the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam PairEqual Binary callable type @@ -617,7 +620,7 @@ __global__ void vectorized_pair_retrieve(InputIt first, * `contained_output_begin` only when `is_outer` is `true`. * * Behavior is undefined if the total number of matching pairs exceeds `std::distance(output_begin, - * output_begin + *num_matches - 1)`. Use `pair_count()` to determine the number of matching keys. + * output_begin + *num_matches - 1)`. Use `pair_count()` to determine the size of the output range. * * @tparam block_size The size of the thread block * @tparam warp_size The size of the warp @@ -625,12 +628,12 @@ __global__ void vectorized_pair_retrieve(InputIt first, * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether non-matches are included in the output * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam OutputIt1 Device accessible output iterator whose `value_type` is - * convertible to the map's `value_type` + * constructible from the map's `value_type` * @tparam OutputIt2 Device accessible output iterator whose `value_type` is - * convertible to the map's `value_type` + * constructible from the map's `value_type` * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam PairEqual Binary callable type diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 46990879b..e790a05ce 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -83,10 +83,18 @@ namespace cuco { * The two types are separate to prevent erroneous concurrent insert/find * operations. * - * By default, query operations (e.g. `count` and `retrieve`) take `Key` as input and do not include - * non-matches in the output. APIs with `_outer` suffix should be used if non-match handling is - * desired. The `pair_` prefix indicates that the input data are key-value pairs whose type can be - * converted to multimap's `value_type`. + * By default, when querying for a Key `k` in operations like `count` or `retrieve`, if `k` is not + * present in the map, it will not contribute to the output. Query APIs with the `_outer` suffix + * will include non-matching keys in the output. See the relevant API documentation for more + * information. + * + * Typical associative container query APIs like `retrieve` look up values by solely by key, e.g., + * `count` for a Key `k` will count all values whose associated key `k'` matches `k` as determined + * by `key_equal(k, k')`. In some cases, one may want to consider both key _and_ value when + * determining if a key-value pair should contribute to the output. `static_multimap` supports this + * use case with APIs prefixed with `pair_`, e.g., `pair_count` is given a key-value pair + * `{k,v}` and only counts key-value pairs, `{k', v'}`, in the map where `pair_equal({k,v}, {k', + * v'})` is true. See the relevant API documentation for more information. * * Example: * \code{.cpp} @@ -115,8 +123,8 @@ namespace cuco { * \endcode * * - * @tparam Key Type used for keys - * @tparam Value Type of the mapped values + * @tparam Key Type used for keys. Requires `cuco::is_bitwise_comparable_v` + * @tparam Value Type of the mapped values. Requires `cuco::is_bitwise_comparable_v` * @tparam Scope The scope in which multimap operations will be performed by * individual threads * @tparam ProbeSequence Probe sequence chosen between `cuco::detail::linear_probing` @@ -188,9 +196,8 @@ class static_multimap { static_multimap(); /** - * @brief Construct a fixed-size map with the specified capacity and sentinel values. - * @brief Construct a statically sized map with the specified number of slots - * and sentinel values. + * @brief Construct a statically-sized map with the specified initial capacity, + * sentinel values and CUDA stream. * * The capacity of the map is fixed. Insert operations will not automatically * grow the map. Attempting to insert more unique keys than the capacity of @@ -221,7 +228,7 @@ class static_multimap { * @brief Inserts all key/value pairs in the range `[first, last)`. * * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs @@ -237,11 +244,12 @@ class static_multimap { * The key/value pair `*(first + i)` is inserted if `pred( *(stencil + i) )` returns true. * * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam StencilIt Device accessible random access iterator whose value_type is * convertible to Predicate's argument type - * @tparam Predicate Unary predicate callable + * @tparam Predicate Unary predicate callable whose return type must be convertible to `bool` and + * argument type is convertible from `std::iterator_traits::value_type`. * @param first Beginning of the sequence of key/value pairs * @param last End of the sequence of key/value pairs * @param stencil Beginning of the stencil sequence @@ -261,8 +269,8 @@ class static_multimap { * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible from `bool` + * @tparam OutputIt Device accessible output iterator whose `value_type` is convertible from + * `bool` * @tparam KeyEqual Binary callable type used to compare two keys for equality * @param first Beginning of the sequence of keys * @param last End of the sequence of keys @@ -280,6 +288,9 @@ class static_multimap { /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. * + * For each key, `k = *(first + i)`, counts all matching keys, `k'`, as determined by + * `key_equal(k, k')` and returns the sum of all matches for all keys. + * * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` * @tparam KeyEqual Binary callable * @param first Beginning of the sequence of keys to count @@ -297,7 +308,9 @@ class static_multimap { /** * @brief Counts the occurrences of keys in `[first, last)` contained in the multimap. * - * The `_outer` suffix signifies that the occurrence of non-matches is 1. + * For each key, `k = *(first + i)`, counts all matching keys, `k'`, as determined by + * `key_equal(k, k')` and returns the sum of all matches for all keys. If `k` does not have any + * matches, it contributes 1 to the final sum. * * @tparam Input Device accesible input iterator whose `value_type` is convertible to `key_type` * @tparam KeyEqual Binary callable @@ -305,7 +318,8 @@ class static_multimap { * @param last End of the sequence of keys to count * @param stream CUDA stream used for count_outer * @param key_equal Binary function to compare two keys for equality - * @return The sum of total occurrences of all keys in `[first, last)` + * @return The sum of total occurrences of all keys in `[first, last)` where keys without matches + * are considered to have a single occurrence. */ template > std::size_t count_outer(InputIt first, @@ -316,10 +330,11 @@ class static_multimap { /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. * - * The `pair_` prefix indicates that the input data type is convertible to the map's `value_type`. + * For key-value pair, `kv = *(first + i)`, counts all matching key-value pairs, `kv'`, as + * determined by `pair_equal(kv, kv')` and returns the sum of all matches for all key-value pairs. * * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count @@ -337,18 +352,20 @@ class static_multimap { /** * @brief Counts the occurrences of key/value pairs in `[first, last)` contained in the multimap. * - * The `pair_` prefix indicates that the input data type is convertible to the map's `value_type`. - * The `_outer` suffix signifies that the occurrence of non-matches is 1. + * For key-value pair, `kv = *(first + i)`, counts all matching key-value pairs, `kv'`, as + * determined by `pair_equal(kv, kv')` and returns the sum of all matches for all key-value pairs. + * if `kv` does not have any matches, it contributes 1 to the final sum. * * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam PairEqual Binary callable * @param first Beginning of the sequence of pairs to count * @param last End of the sequence of pairs to count * @param pair_equal Binary function to compare two pairs for equality * @param stream CUDA stream used for pair_count_outer - * @return The sum of total occurrences of all pairs in `[first, last)` + * @return The sum of total occurrences of all pairs in `[first, last)` where a key-value pair + * without a match is considered to have a single occurrence */ template std::size_t pair_count_outer(InputIt first, @@ -359,16 +376,16 @@ class static_multimap { /** * @brief Retrieves all the values corresponding to all keys in the range `[first, last)`. * - * If the key `k = *(first + i)` exists in the map, copies `k` and all associated values to + * If key `k = *(first + i)` exists in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_end)`. Else, does nothing. * - * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_end)`. Use `count()` to determine the number of matching keys. + * Behavior is undefined if the size of the output range exceeds `std::distance(output_begin, + * output_end)`. Use `count()` to determine the size of the output range. * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `value_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys @@ -387,17 +404,17 @@ class static_multimap { /** * @brief Retrieves all the matches corresponding to all keys in the range `[first, last)`. * - * The `_outer` suffix signifies that non-matches are included in the output: If the key - * `k = *(first + i)` exists in the map, copies `k` and all associated values to unspecified - * locations in `[output_begin, output_end)`. Else, copies `k` and the empty value sentinel. + * If key `k = *(first + i)` exists in the map, copies `k` and all associated values to + * unspecified locations in `[output_begin, output_end)`. Else, copies `k` and + * `empty_value_sentinel`. * - * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_end)`. Use `count_outer()` to determine the number of matching keys. + * Behavior is undefined if the size of the output range exceeds `std::distance(output_begin, + * output_end)`. Use `count_outer()` to determine the size of the output range. * * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `value_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys * @param last End of the sequence of keys @@ -420,13 +437,13 @@ class static_multimap { * `value_type`. If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is * stored to `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. * - * Behavior is undefined if the total number of matching pairs exceeds + * Behavior is undefined if the size of the output range exceeds * `std::distance(probe_output_begin, probe_output_end)` (or * `std::distance(contained_output_begin, contained_output_end)`). Use - * `pair_count()` to determine the number of matching pairs. + * `pair_count()` to determine the size of the output range. * * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches @@ -451,19 +468,18 @@ class static_multimap { * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)`. * * The `pair_` prefix indicates that the input data type is convertible to the map's `value_type`. - * The `_outer` suffix signifies that non-matches are included in the output: if - * pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to + * If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to * `probe_output_begin`, and slot[j] is stored to `contained_output_begin`. If *(first+i) doesn't * have matches in the map, copies *(first + i) in `probe_output_begin` and a pair of * `empty_key_sentinel` and `empty_value_sentinel` in `contained_output_begin`. * - * Behavior is undefined if the total number of matching pairs exceeds + * Behavior is undefined if the size of the output range exceeds * `std::distance(probe_output_begin, probe_output_end)` (or * `std::distance(contained_output_begin, contained_output_end)`). Use - * `pair_count()` to determine the number of matching pairs. + * `pair_count()` to determine the size of the output range. * * @tparam InputIt Device accessible random access input iterator where - * `std::is_converitble::value_type, + * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches @@ -946,7 +962,7 @@ class static_multimap { private: /** - * @brief Indicates whether the key `k` was inserted into the map using vector loads. + * @brief Indicates whether the key `k` exists in the map using vector loads. * * If the key `k` was inserted into the map, `contains` returns * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to @@ -970,7 +986,7 @@ class static_multimap { KeyEqual key_equal) noexcept; /** - * @brief Indicates whether the key `k` was inserted into the map using scalar loads. + * @brief Indicates whether the key `k` exists in the map using scalar loads. * * If the key `k` was inserted into the map, `contains` returns * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to @@ -1066,9 +1082,9 @@ class static_multimap { * @brief Retrieves all the matches of a given key contained in multimap using vector * loads with per-warp shared memory buffer. * - * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` - * and the empty value sentinel into the output only if `is_outer` is true. + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and + * `empty_value_sentinel()` into the output only if `is_outer` is true. * * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed @@ -1076,7 +1092,7 @@ class static_multimap { * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1108,9 +1124,9 @@ class static_multimap { * @brief Retrieves all the matches of a given key contained in multimap using scalar * loads with per-cg shared memory buffer. * - * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` - * and the empty value sentinel into the output only if `is_outer` is true. + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and + * `empty_value_sentinel()` into the output only if `is_outer` is true. * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer @@ -1118,7 +1134,7 @@ class static_multimap { * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for @@ -1149,10 +1165,10 @@ class static_multimap { * loads with per-warp shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in - * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and - * the empty value sentinels into the output only if `is_outer` is true. + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies + * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output only if + * `is_outer` is true. * * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed @@ -1198,10 +1214,10 @@ class static_multimap { * loads with per-cg shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in - * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and - * the empty value sentinels into the output only if `is_outer` is true. + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies + * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output only if + * `is_outer` is true. * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer @@ -1247,7 +1263,7 @@ class static_multimap { * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @param g The Cooperative Group used to flush output buffer * @param num_outputs Number of valid output in the buffer * @param output_buffer Buffer of the key/value pair sequence @@ -1287,7 +1303,7 @@ class static_multimap { OutputZipIt2 contained_output_begin) noexcept; /** - * @brief Indicates whether the key `k` was inserted into the map. + * @brief Indicates whether the key `k` exists in the map. * * If the key `k` was inserted into the map, `contains` returns * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to @@ -1310,6 +1326,9 @@ class static_multimap { /** * @brief Counts the occurrence of a given key contained in multimap. * + * For a given key, `k`, counts all matching keys, `k'`, as determined by `key_equal(k, k')` and + * returns the sum of all matches for `k`. + * * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation @@ -1327,6 +1346,9 @@ class static_multimap { * @brief Counts the occurrence of a given key contained in multimap. If no * matches can be found for a given key, the corresponding occurrence is 1. * + * For a given key, `k`, counts all matching keys, `k'`, as determined by `key_equal(k, k')` and + * returns the sum of all matches for `k`. If `k` does not have any matches, returns 1. + * * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation @@ -1343,6 +1365,9 @@ class static_multimap { /** * @brief Counts the occurrence of a given key/value pair contained in multimap. * + * For a given pair, `p`, counts all matching pairs, `p'`, as determined by `pair_equal(p, p')` + * and returns the sum of all matches for `p`. + * * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation @@ -1360,6 +1385,9 @@ class static_multimap { * @brief Counts the occurrence of a given key/value pair contained in multimap. * If no matches can be found for a given key, the corresponding occurrence is 1. * + * For a given pair, `p`, counts all matching pairs, `p'`, as determined by `pair_equal(p, p')` + * and returns the sum of all matches for `p`. If `p` does not have any matches, returns 1. + * * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation @@ -1377,16 +1405,15 @@ class static_multimap { * @brief Retrieves all the matches of a given key contained in multimap using vector * loads with per-warp shared memory buffer. * - * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` - * and the empty value sentinel into the output only if `is_outer` is true. + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. * * @tparam buffer_size Size of the output buffer * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1417,16 +1444,16 @@ class static_multimap { * @brief Retrieves all the matches of a given key contained in multimap using vector * loads with per-warp shared memory buffer. * - * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` - * and the empty value sentinel into the output only if `is_outer` is true. + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and + * `empty_value_sentinel()` into the output. * * @tparam buffer_size Size of the output buffer * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1457,15 +1484,15 @@ class static_multimap { * @brief Retrieves all the matches of a given key contained in multimap using scalar * loads with per-cg shared memory buffer. * - * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for @@ -1494,16 +1521,16 @@ class static_multimap { * @brief Retrieves all the matches of a given key contained in multimap using scalar * loads with per-cg shared memory buffer. * - * For keys `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. In case of non-matches, copies `k` - * and the empty value sentinel into the output. + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and + * `empty_value_sentinel` into the output. * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is - * convertible to the map's `mapped_type` + * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param k The key to search for @@ -1533,8 +1560,7 @@ class static_multimap { * loads with per-warp shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in - * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in * `[contained_output_begin, contained_output_end)`. * * @tparam buffer_size Size of the output buffer @@ -1579,10 +1605,9 @@ class static_multimap { * loads with per-warp shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in - * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and - * the empty value sentinels into the output. + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies + * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output. * * @tparam buffer_size Size of the output buffer * @tparam warpT Warp (Cooperative Group) type @@ -1626,8 +1651,7 @@ class static_multimap { * loads with per-cg shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in - * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in * `[contained_output_begin, contained_output_end)`. * * @tparam cg_size The number of threads in CUDA Cooperative Groups @@ -1670,10 +1694,9 @@ class static_multimap { * loads with per-cg shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in - * `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. In case of non-matches, copies `p` and - * the empty value sentinels into the output. + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies + * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output. * * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer From 294ffc1b851777ff3cc84ec0e384a05e447c13f7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 8 Oct 2021 19:10:57 -0400 Subject: [PATCH 237/267] pair_retrieve returns pair of iterators instead of size --- include/cuco/detail/static_multimap.inl | 92 ++++++------ .../cuco/detail/static_multimap_kernels.cuh | 18 +-- include/cuco/static_multimap.cuh | 140 ++++++++++-------- tests/static_multimap/static_multimap_test.cu | 20 +-- 4 files changed, 145 insertions(+), 125 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 7cde62d52..38740fe52 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -408,12 +408,13 @@ template -template -std::size_t static_multimap::pair_retrieve( +template +std::pair +static_multimap::pair_retrieve( InputIt first, InputIt last, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal, cudaStream_t stream) const { @@ -433,8 +434,8 @@ std::size_t static_multimap::pair_r buffer_size, is_outer, InputIt, - OutputZipIt1, - OutputZipIt2, + OutputIt1, + OutputIt2, atomic_ctr_type, device_view, PairEqual>, @@ -447,8 +448,8 @@ std::size_t static_multimap::pair_r buffer_size, is_outer, InputIt, - OutputZipIt1, - OutputZipIt2, + OutputIt1, + OutputIt2, atomic_ctr_type, device_view, PairEqual>, @@ -482,7 +483,7 @@ std::size_t static_multimap::pair_r &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - return h_counter; + return std::make_pair(probe_output_begin + h_counter, contained_output_begin + h_counter); } template -template -std::size_t static_multimap::pair_retrieve_outer( +template +std::pair +static_multimap::pair_retrieve_outer( InputIt first, InputIt last, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal, cudaStream_t stream) const { @@ -515,8 +517,8 @@ std::size_t static_multimap::pair_r buffer_size, is_outer, InputIt, - OutputZipIt1, - OutputZipIt2, + OutputIt1, + OutputIt2, atomic_ctr_type, device_view, PairEqual>, @@ -529,8 +531,8 @@ std::size_t static_multimap::pair_r buffer_size, is_outer, InputIt, - OutputZipIt1, - OutputZipIt2, + OutputIt1, + OutputIt2, atomic_ctr_type, device_view, PairEqual>, @@ -564,7 +566,7 @@ std::size_t static_multimap::pair_r &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); - return h_counter; + return std::make_pair(probe_output_begin + h_counter, contained_output_begin + h_counter); } template __device__ void static_multimap::device_view::pair_retrieve_impl( @@ -1219,8 +1221,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept { const uint32_t cg_lane_id = g.thread_rank(); @@ -1309,8 +1311,8 @@ template __device__ void static_multimap::device_view::pair_retrieve_impl( @@ -1320,8 +1322,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept { const uint32_t lane_id = g.thread_rank(); @@ -1438,7 +1440,7 @@ template -template +template __inline__ __device__ void static_multimap::device_view::flush_output_buffer( CG const& g, @@ -1446,8 +1448,8 @@ static_multimap::device_view::flush value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin) noexcept + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin) noexcept { std::size_t offset; const auto lane_id = g.thread_rank(); @@ -1647,8 +1649,8 @@ template __device__ void static_multimap::device_view::pair_retrieve( @@ -1659,8 +1661,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; @@ -1685,8 +1687,8 @@ template __device__ void static_multimap::device_view::pair_retrieve_outer( @@ -1697,8 +1699,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; @@ -1723,8 +1725,8 @@ template __device__ void static_multimap::device_view::pair_retrieve( @@ -1734,8 +1736,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; @@ -1759,8 +1761,8 @@ template __device__ void static_multimap::device_view::pair_retrieve_outer( @@ -1770,8 +1772,8 @@ static_multimap::device_view::pair_ value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index fa1ef65f2..e098b978e 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -151,7 +151,7 @@ __global__ void insert_if_n(InputIt first, StencilIt s, std::size_t n, viewT vie * @tparam tile_size The number of threads in the Cooperative Groups * @tparam InputIt Device accessible input iterator whose `value_type` is * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is `bool` + * @tparam OutputIt Device accessible output iterator whose `value_type` is convertible from `bool` * @tparam viewT Type of device view allowing access of hash map storage * @tparam KeyEqual Binary callable type * @param first Beginning of the sequence of keys @@ -512,10 +512,10 @@ __global__ void retrieve(InputIt first, * @tparam InputIt Device accessible random access input iterator where * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` - * @tparam OutputIt1 Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` - * @tparam OutputIt2 Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam PairEqual Binary callable type @@ -630,10 +630,10 @@ __global__ void vectorized_pair_retrieve(InputIt first, * @tparam InputIt Device accessible random access input iterator where * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` - * @tparam OutputIt1 Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` - * @tparam OutputIt2 Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam atomicT Type of atomic storage * @tparam viewT Type of device view allowing access of hash map storage * @tparam PairEqual Binary callable type diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index e790a05ce..fd6466e53 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -445,8 +445,10 @@ class static_multimap { * @tparam InputIt Device accessible random access input iterator where * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param first Beginning of the sequence of pairs * @param last End of the sequence of pairs @@ -454,15 +456,15 @@ class static_multimap { * @param contained_output_begin Beginning of the sequence of the matched contained pairs * @param pair_equal The binary function to compare two pairs for equality * @param stream CUDA stream used for pair_retrieve - * @return The total number of matches + * @return Pair of iterators pointing to the last elements in the output */ - template - std::size_t pair_retrieve(InputIt first, - InputIt last, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, - PairEqual pair_equal, - cudaStream_t stream = 0) const; + template + std::pair pair_retrieve(InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal, + cudaStream_t stream = 0) const; /** * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)`. @@ -481,8 +483,10 @@ class static_multimap { * @tparam InputIt Device accessible random access input iterator where * `std::is_convertible::value_type, * static_multimap::value_type>` is `true` - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param first Beginning of the sequence of pairs * @param last End of the sequence of pairs @@ -490,15 +494,15 @@ class static_multimap { * @param contained_output_begin Beginning of the sequence of the matched contained pairs * @param pair_equal The binary function to compare two pairs for equality * @param stream CUDA stream used for pair_retrieve_outer - * @return The total number of matches + * @return Pair of iterators pointing to the last elements in the output */ - template - std::size_t pair_retrieve_outer(InputIt first, - InputIt last, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, - PairEqual pair_equal, - cudaStream_t stream = 0) const; + template + std::pair pair_retrieve_outer(InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal, + cudaStream_t stream = 0) const; private: /** @@ -1175,8 +1179,10 @@ class static_multimap { * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1195,8 +1201,8 @@ class static_multimap { typename warpT, typename CG, typename atomicT, - typename OutputZipIt1, - typename OutputZipIt2, + typename OutputIt1, + typename OutputIt2, typename PairEqual> __device__ void pair_retrieve_impl(warpT const& warp, CG const& g, @@ -1205,8 +1211,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1224,8 +1230,10 @@ class static_multimap { * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for @@ -1243,8 +1251,8 @@ class static_multimap { bool is_outer, typename CG, typename atomicT, - typename OutputZipIt1, - typename OutputZipIt2, + typename OutputIt1, + typename OutputIt2, typename PairEqual> __device__ void pair_retrieve_impl(CG const& g, value_type const& pair, @@ -1252,8 +1260,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept; public: @@ -1282,8 +1290,10 @@ class static_multimap { * * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputZipIt1 Device accessible output zip iterator for probe pairs - * @tparam OutputZipIt2 Device accessible output zip iterator for contained pairs + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @param g The Cooperative Group used to flush output buffer * @param num_outputs Number of valid output in the buffer * @param probe_output_buffer Buffer of the matched probe pair sequence @@ -1293,14 +1303,14 @@ class static_multimap { * @param contained_output_begin Beginning of the output sequence of the matched contained * pairs */ - template + template __inline__ __device__ void flush_output_buffer(CG const& g, uint32_t const num_outputs, value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin) noexcept; + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin) noexcept; /** * @brief Indicates whether the key `k` exists in the map. @@ -1567,8 +1577,10 @@ class static_multimap { * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1586,8 +1598,8 @@ class static_multimap { typename warpT, typename CG, typename atomicT, - typename OutputZipIt1, - typename OutputZipIt2, + typename OutputIt1, + typename OutputIt2, typename PairEqual> __device__ void pair_retrieve(warpT const& warp, CG const& g, @@ -1596,8 +1608,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1613,8 +1625,10 @@ class static_multimap { * @tparam warpT Warp (Cooperative Group) type * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param warp The Cooperative Group (or warp) used to flush output buffer * @param g The Cooperative Group used to retrieve @@ -1632,8 +1646,8 @@ class static_multimap { typename warpT, typename CG, typename atomicT, - typename OutputZipIt1, - typename OutputZipIt2, + typename OutputIt1, + typename OutputIt2, typename PairEqual> __device__ void pair_retrieve_outer(warpT const& warp, CG const& g, @@ -1642,8 +1656,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1658,8 +1672,10 @@ class static_multimap { * @tparam buffer_size Size of the output buffer * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for @@ -1676,8 +1692,8 @@ class static_multimap { uint32_t buffer_size, typename CG, typename atomicT, - typename OutputZipIt1, - typename OutputZipIt2, + typename OutputIt1, + typename OutputIt2, typename PairEqual> __device__ void pair_retrieve(CG const& g, value_type const& pair, @@ -1685,8 +1701,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept; /** @@ -1702,8 +1718,10 @@ class static_multimap { * @tparam buffer_size Size of the output buffer * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage - * @tparam OutputZipIt1 Device accessible output zip iterator for probe matches - * @tparam OutputZipIt2 Device accessible output zip iterator for contained matches + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to retrieve * @param pair The pair to search for @@ -1720,8 +1738,8 @@ class static_multimap { uint32_t buffer_size, typename CG, typename atomicT, - typename OutputZipIt1, - typename OutputZipIt2, + typename OutputIt1, + typename OutputIt2, typename PairEqual> __device__ void pair_retrieve_outer(CG const& g, value_type const& pair, @@ -1729,8 +1747,8 @@ class static_multimap { value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, - OutputZipIt1 probe_output_begin, - OutputZipIt2 contained_output_begin, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept; }; // class device_view diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 000382490..6cb31cbf2 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -633,34 +633,34 @@ __inline__ void test_pair_functions(Map& map, PairIt pair_begin, std::size_t num { auto num = map.pair_count(pair_begin, pair_begin + num_pairs, pair_equal{}); - auto out1_zip = thrust::make_zip_iterator( + auto out1_begin = thrust::make_zip_iterator( thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); - auto out2_zip = thrust::make_zip_iterator( + auto out2_begin = thrust::make_zip_iterator( thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); REQUIRE(num == num_pairs); - auto size = map.pair_retrieve( - pair_begin, pair_begin + num_pairs, out1_zip, out2_zip, pair_equal{}); + auto [out1_end, out2_end] = map.pair_retrieve( + pair_begin, pair_begin + num_pairs, out1_begin, out2_begin, pair_equal{}); - REQUIRE(size == num_pairs); + REQUIRE((out1_end - out1_begin) == num_pairs); } SECTION("Output of pair_count_outer and pair_retrieve_outer should be coherent.") { auto num = map.pair_count_outer(pair_begin, pair_begin + num_pairs, pair_equal{}); - auto out1_zip = thrust::make_zip_iterator( + auto out1_begin = thrust::make_zip_iterator( thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); - auto out2_zip = thrust::make_zip_iterator( + auto out2_begin = thrust::make_zip_iterator( thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); REQUIRE(num == (num_pairs + num_pairs / 2)); - auto size = map.pair_retrieve_outer( - pair_begin, pair_begin + num_pairs, out1_zip, out2_zip, pair_equal{}); + auto [out1_end, out2_end] = map.pair_retrieve_outer( + pair_begin, pair_begin + num_pairs, out1_begin, out2_begin, pair_equal{}); - REQUIRE(size == (num_pairs + num_pairs / 2)); + REQUIRE((out1_end - out1_begin) == (num_pairs + num_pairs / 2)); } } From 5082f8f62f6acff60db11b59857cff71dec63767 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 8 Oct 2021 19:17:50 -0400 Subject: [PATCH 238/267] Remove default constructor --- include/cuco/detail/static_multimap.inl | 13 ------------- include/cuco/static_multimap.cuh | 5 ----- 2 files changed, 18 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 38740fe52..72e6ce56b 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -35,19 +35,6 @@ struct slot_is_filled { namespace cuco { -template -static_multimap::static_multimap() - : delete_counter_{counter_allocator_, stream_}, - delete_slots_{slot_allocator_, capacity_, stream_}, - d_counter_{nullptr, delete_counter_}, - slots_{nullptr, delete_slots_} -{ -} - template Date: Fri, 8 Oct 2021 19:55:13 -0400 Subject: [PATCH 239/267] Remove move assignment operator for deleters --- include/cuco/static_multimap.cuh | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 0649ead22..51514d64d 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -529,15 +529,6 @@ class static_multimap { void operator()(atomic_ctr_type* ptr) { allocator.deallocate(ptr, 1, stream); } - counter_deleter& operator=(counter_deleter&& other) - { - if (this != &other) { - allocator = other.allocator; - stream = other.stream; - } - return *this; - } - counter_allocator_type& allocator; cudaStream_t& stream; }; @@ -555,16 +546,6 @@ class static_multimap { void operator()(pair_atomic_type* ptr) { allocator.deallocate(ptr, capacity, stream); } - slot_deleter& operator=(slot_deleter&& other) - { - if (this != &other) { - allocator = other.allocator; - capacity = other.capacity; - stream = other.stream; - } - return *this; - } - slot_allocator_type& allocator; size_t& capacity; cudaStream_t& stream; From da040454097549bf669c4e0edf3c9fa0efc45d25 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 12 Oct 2021 21:21:45 -0400 Subject: [PATCH 240/267] Add docs for flush_output_buffer --- include/cuco/static_multimap.cuh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 51514d64d..5dc841aed 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -1244,6 +1244,12 @@ class static_multimap { /** * @brief Flushes per-CG buffer into the output sequence. * + * CUDA Cooperative Group, `g`, loads `num_outputs` key-value pairs from `output_buffer` and + * writes them into global memory in a coalesced fashion. CG-wide `memcpy_sync` is used if + * `CUCO_HAS_CG_MEMCPY_ASYNC` is defined and `thrust::is_contiguous_iterator_v` + * returns true. All threads of `g` must be active due to implicit CG-wide synchronization + * during flushing. + * * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is @@ -1264,6 +1270,11 @@ class static_multimap { /** * @brief Flushes per-CG buffer into the output sequences. * + * CUDA Cooperative Group, `g`, loads `num_outputs` elements from `probe_output_buffer` and + * `num_outputs` elements from `contained_output_buffer`, then writes them into global memory + * started from `probe_output_begin` and `contained_output_begin` respectively. All threads of + * `g` must be active due to implicit CG-wide synchronization during flushing. + * * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from From 927b2b42b2c3f9fc18122e17050c1ba86aae50ad Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 12 Oct 2021 21:22:51 -0400 Subject: [PATCH 241/267] Minor cleanups --- include/cuco/detail/static_multimap.inl | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index 72e6ce56b..af9438493 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -1410,15 +1410,11 @@ static_multimap::device_view::flush cooperative_groups::memcpy_async( g, output_begin + offset, output_buffer, sizeof(value_type) * num_outputs); #endif // end CUCO_HAS_CUDA_BARRIER -#else - for (auto index = lane_id; index < num_outputs; index += g.size()) { - *(output_begin + offset + index) = output_buffer[index]; - } + return; #endif // end CUCO_HAS_CG_MEMCPY_ASYNC - } else { - for (auto index = lane_id; index < num_outputs; index += g.size()) { - *(output_begin + offset + index) = output_buffer[index]; - } + } + for (auto index = lane_id; index < num_outputs; index += g.size()) { + *(output_begin + offset + index) = output_buffer[index]; } } From 0be35b781e050c321df47952678a0b09db7ba7a0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 12 Oct 2021 21:48:51 -0400 Subject: [PATCH 242/267] Doc cleanups --- .../cuco/detail/static_multimap_kernels.cuh | 4 ++-- include/cuco/static_multimap.cuh | 24 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap_kernels.cuh index e098b978e..d3b54af5b 100644 --- a/include/cuco/detail/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap_kernels.cuh @@ -312,7 +312,7 @@ __global__ void pair_count( /** * @brief Retrieves all the values corresponding to all keys in the range `[first, last)` - * using vector loads combined with per-block shared memory buffer. + * using vector loads combined with per-warp shared memory buffer. * * For key `k = *(first + i)` existing in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_end)`. If `k` does not have any matches, copies @@ -493,7 +493,7 @@ __global__ void retrieve(InputIt first, /** * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)` - * using vector loads combined with per-block shared memory buffer. + * using vector loads combined with per-warp shared memory buffer. * * If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to unspecified * locations in `probe_output_begin`, and slot[j] is stored to unspecified locations in diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 5dc841aed..453790828 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -1102,7 +1102,7 @@ class static_multimap { /** * @brief Retrieves all the matches of a given key contained in multimap using scalar - * loads with per-cg shared memory buffer. + * loads with per-CG shared memory buffer. * * For key `k` existing in the map, copies `k` and all associated values to unspecified * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and @@ -1193,7 +1193,7 @@ class static_multimap { /** * @brief Retrieves all the matches of a given pair contained in multimap using scalar - * loads with per-cg shared memory buffer. + * loads with per-CG shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in @@ -1244,8 +1244,8 @@ class static_multimap { /** * @brief Flushes per-CG buffer into the output sequence. * - * CUDA Cooperative Group, `g`, loads `num_outputs` key-value pairs from `output_buffer` and - * writes them into global memory in a coalesced fashion. CG-wide `memcpy_sync` is used if + * A given CUDA Cooperative Group, `g`, loads `num_outputs` key-value pairs from `output_buffer` + * and writes them into global memory in a coalesced fashion. CG-wide `memcpy_sync` is used if * `CUCO_HAS_CG_MEMCPY_ASYNC` is defined and `thrust::is_contiguous_iterator_v` * returns true. All threads of `g` must be active due to implicit CG-wide synchronization * during flushing. @@ -1270,10 +1270,10 @@ class static_multimap { /** * @brief Flushes per-CG buffer into the output sequences. * - * CUDA Cooperative Group, `g`, loads `num_outputs` elements from `probe_output_buffer` and - * `num_outputs` elements from `contained_output_buffer`, then writes them into global memory - * started from `probe_output_begin` and `contained_output_begin` respectively. All threads of - * `g` must be active due to implicit CG-wide synchronization during flushing. + * A given CUDA Cooperative Group, `g`, loads `num_outputs` elements from `probe_output_buffer` + * and `num_outputs` elements from `contained_output_buffer`, then writes them into global + * memory started from `probe_output_begin` and `contained_output_begin` respectively. All + * threads of `g` must be active due to implicit CG-wide synchronization during flushing. * * @tparam CG Cooperative Group type * @tparam atomicT Type of atomic storage @@ -1479,7 +1479,7 @@ class static_multimap { /** * @brief Retrieves all the matches of a given key contained in multimap using scalar - * loads with per-cg shared memory buffer. + * loads with per-CG shared memory buffer. * * For key `k` existing in the map, copies `k` and all associated values to unspecified * locations in `[output_begin, output_end)`. @@ -1516,7 +1516,7 @@ class static_multimap { /** * @brief Retrieves all the matches of a given key contained in multimap using scalar - * loads with per-cg shared memory buffer. + * loads with per-CG shared memory buffer. * * For key `k` existing in the map, copies `k` and all associated values to unspecified * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and @@ -1649,7 +1649,7 @@ class static_multimap { /** * @brief Retrieves all the matches of a given pair contained in multimap using scalar - * loads with per-cg shared memory buffer. + * loads with per-CG shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in @@ -1694,7 +1694,7 @@ class static_multimap { /** * @brief Retrieves all the matches of a given pair contained in multimap using scalar - * loads with per-cg shared memory buffer. + * loads with per-CG shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in From de8603656ae0fa534dc4f3dfe65be368ba0e761a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 15 Oct 2021 15:08:40 -0400 Subject: [PATCH 243/267] Test cleanups --- tests/static_multimap/static_multimap_test.cu | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 6cb31cbf2..4e92d7eae 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -79,9 +79,6 @@ struct alignas(8) value_pair { int32_t s; }; -#define SIZE 10 -__device__ int A[SIZE]; - template __inline__ void test_custom_key_value_type(Map& map, PairIt pair_begin, From 99d26ce7b2249b1eadc80f325415241fa9e8f634 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 15 Oct 2021 17:53:41 -0400 Subject: [PATCH 244/267] Move _impl functions to a new file --- include/cuco/detail/static_multimap_impl.inl | 1291 ++++++++++++++++++ 1 file changed, 1291 insertions(+) create mode 100644 include/cuco/detail/static_multimap_impl.inl diff --git a/include/cuco/detail/static_multimap_impl.inl b/include/cuco/detail/static_multimap_impl.inl new file mode 100644 index 000000000..601d030aa --- /dev/null +++ b/include/cuco/detail/static_multimap_impl.inl @@ -0,0 +1,1291 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include + +namespace cuco { + +template +class static_multimap::device_view_impl_base { + private: + ProbeSequence probe_sequence_; ///< Probe sequence used to probe the hash map + Key empty_key_sentinel_{}; ///< Key value that represents an empty slot + Value empty_value_sentinel_{}; ///< Initial Value of empty slot + + protected: + // Import member type definitions from `static_multimap` + using value_type = value_type; + using key_type = Key; + using mapped_type = Value; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + + /** + * @brief Indicates if vector-load is used. + * + * Users have no explicit control on whether vector-load is used. + * + * @return Boolean indicating if vector-load is used. + */ + static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + + /** + * @brief Returns the number of pairs loaded with each vector-load + */ + static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } + + __host__ __device__ device_view_impl_base(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept + : probe_sequence_{slots, capacity}, + empty_key_sentinel_{empty_key_sentinel}, + empty_value_sentinel_{empty_value_sentinel} + { + } + + /** + * @brief Gets slots array. + * + * @return Slots array + */ + __device__ pair_atomic_type* get_slots() noexcept { return probe_sequence_.get_slots(); } + + /** + * @brief Gets slots array. + * + * @return Slots array + */ + __device__ pair_atomic_type const* get_slots() const noexcept + { + return probe_sequence_.get_slots(); + } + + /** + * @brief Returns the initial slot for a given key `k` + * + * To be used for Cooperative Group based probing. + * + * @tparam CG Cooperative Group type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @return Pointer to the initial slot for `k` + */ + template + __device__ iterator initial_slot(CG const& g, Key const& k) noexcept + { + return probe_sequence_.initial_slot(g, k); + } + + /** + * @brief Returns the initial slot for a given key `k` + * + * To be used for Cooperative Group based probing. + * + * @tparam CG Cooperative Group type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @return Pointer to the initial slot for `k` + */ + template + __device__ const_iterator initial_slot(CG g, Key const& k) const noexcept + { + return probe_sequence_.initial_slot(g, k); + } + + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. To + * be used for Cooperative Group based probing. + * + * @param s The slot to advance + * @return The next slot after `s` + */ + __device__ iterator next_slot(iterator s) noexcept { return probe_sequence_.next_slot(s); } + + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. To + * be used for Cooperative Group based probing. + * + * @param s The slot to advance + * @return The next slot after `s` + */ + __device__ const_iterator next_slot(const_iterator s) const noexcept + { + return probe_sequence_.next_slot(s); + } + + /** + * @brief Gets the maximum number of elements the hash map can hold. + * + * @return The maximum number of elements the hash map can hold + */ + __host__ __device__ std::size_t get_capacity() const noexcept + { + return probe_sequence_.get_capacity(); + } + + /** + * @brief Gets the sentinel value used to represent an empty key slot. + * + * @return The sentinel value used to represent an empty key slot + */ + __host__ __device__ Key get_empty_key_sentinel() const noexcept { return empty_key_sentinel_; } + + /** + * @brief Gets the sentinel value used to represent an empty value slot. + * + * @return The sentinel value used to represent an empty value slot + */ + __host__ __device__ Value get_empty_value_sentinel() const noexcept + { + return empty_value_sentinel_; + } + + /** + * @brief Load two key/value pairs from the given slot to the target pair array. + * + * @param arr The pair array to be loaded + * @param current_slot The given slot to load from + */ + __device__ void load_pair_array(value_type* arr, const_iterator current_slot) noexcept + { + if constexpr (sizeof(value_type) == 4) { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); + } else { + auto const tmp = *reinterpret_cast(current_slot); + memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); + } + } + +}; // class device_view_impl_base + +template +class static_multimap::device_mutable_view_impl + : public device_view_impl_base { + public: + using value_type = typename device_view_impl_base::value_type; + using key_type = typename device_view_impl_base::key_type; + using mapped_type = typename device_view_impl_base::mapped_type; + using iterator = typename device_view_impl_base::iterator; + using const_iterator = typename device_view_impl_base::const_iterator; + + private: + /** + * @brief Enumeration of the possible results of attempting to insert into a hash bucket. + */ + enum class insert_result { + CONTINUE, ///< Insert did not succeed, continue trying to insert + SUCCESS, ///< New pair inserted successfully + DUPLICATE ///< Insert did not succeed, key is already present + }; + + /** + * @brief Inserts the specified key/value pair with one single CAS operation. + * + * @param current_slot The slot to insert + * @param insert_pair The pair to insert + * @param key_equal The binary callable used to compare two keys for + * equality + * @return An insert result from the `insert_resullt` enumeration. + */ + __device__ insert_result packed_cas(iterator current_slot, value_type const& insert_pair) noexcept + { + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + + cuco::detail::pair_converter expected_pair{ + cuco::make_pair(std::move(expected_key), std::move(expected_value))}; + cuco::detail::pair_converter new_pair{insert_pair}; + + auto slot = reinterpret_cast< + cuda::atomic::packed_type, Scope>*>( + current_slot); + + bool success = slot->compare_exchange_strong( + expected_pair.packed, new_pair.packed, cuda::std::memory_order_relaxed); + if (success) { return insert_result::SUCCESS; } + + return insert_result::CONTINUE; + } + + /** + * @brief Inserts the specified key/value pair with two back-to-back CAS operations. + * + * @param current_slot The slot to insert + * @param insert_pair The pair to insert + * @return An insert result from the `insert_resullt` enumeration. + */ + __device__ insert_result back_to_back_cas(iterator current_slot, + value_type const& insert_pair) noexcept + { + using cuda::std::memory_order_relaxed; + + auto expected_key = this->get_empty_key_sentinel(); + auto expected_value = this->get_empty_value_sentinel(); + + // Back-to-back CAS for 8B/8B key/value pairs + auto& slot_key = current_slot->first; + auto& slot_value = current_slot->second; + + bool key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + bool value_success = + slot_value.compare_exchange_strong(expected_value, insert_pair.second, memory_order_relaxed); + + if (key_success) { + while (not value_success) { + value_success = + slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), + insert_pair.second, + memory_order_relaxed); + } + return insert_result::SUCCESS; + } else if (value_success) { + slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); + } + + return insert_result::CONTINUE; + } + + /** + * @brief Inserts the specified key/value pair with a CAS of the key and a dependent write + * of the value. + * + * @param current_slot The slot to insert + * @param insert_pair The pair to insert + * @return An insert result from the `insert_resullt` enumeration. + */ + __device__ insert_result cas_dependent_write(iterator current_slot, + value_type const& insert_pair) noexcept + { + using cuda::std::memory_order_relaxed; + auto expected_key = this->get_empty_key_sentinel(); + + auto& slot_key = current_slot->first; + + auto const key_success = + slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); + + if (key_success) { + auto& slot_value = current_slot->second; + slot_value.store(insert_pair.second, memory_order_relaxed); + return insert_result::SUCCESS; + } + + return insert_result::CONTINUE; + } + + public: + __host__ __device__ device_mutable_view_impl(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept + : device_view_impl_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} + { + } + + /** + * @brief Inserts the specified key/value pair into the map using vector loads. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam CG Cooperative Group type + * + * @param g The Cooperative Group that performs the insert + * @param insert_pair The pair to insert + * @return void. + */ + template + __device__ std::enable_if_t insert(CG g, + value_type const& insert_pair) noexcept + { + auto current_slot = initial_slot(g, insert_pair.first); + while (true) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as + // the sentinel is not a valid key value. Therefore, first check for the sentinel + auto const first_slot_is_empty = + (detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel())); + auto const second_slot_is_empty = + (detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel())); + auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); + + if (window_contains_empty) { + // the first lane in the group with an empty slot will attempt the insert + insert_result status{insert_result::CONTINUE}; + uint32_t src_lane = __ffs(window_contains_empty) - 1; + if (g.thread_rank() == src_lane) { + auto insert_location = first_slot_is_empty ? current_slot : current_slot + 1; + // One single CAS operation since vector loads are dedicated to packable pairs + status = packed_cas(insert_location, insert_pair); + } + + // successful insert + if (g.any(status == insert_result::SUCCESS)) { return; } + // if we've gotten this far, a different key took our spot + // before we could insert. We need to retry the insert on the + // same window + } + // if there are no empty slots in the current window, + // we move onto the next window + else { + current_slot = next_slot(current_slot); + } + } // while true + } + + /** + * @brief Inserts the specified key/value pair into the map using scalar loads. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam CG Cooperative Group type + * + * @param g The Cooperative Group that performs the insert + * @param insert_pair The pair to insert + * @return void. + */ + template + __device__ std::enable_if_t insert( + CG g, value_type const& insert_pair) noexcept + { + auto current_slot = initial_slot(g, insert_pair.first); + + while (true) { + value_type slot_contents = *reinterpret_cast(current_slot); + auto const& existing_key = slot_contents.first; + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as + // the sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); + auto const window_contains_empty = g.ballot(slot_is_empty); + + if (window_contains_empty) { + // the first lane in the group with an empty slot will attempt the insert + insert_result status{insert_result::CONTINUE}; + uint32_t src_lane = __ffs(window_contains_empty) - 1; + + if (g.thread_rank() == src_lane) { +#if __CUDA_ARCH__ < 700 + status = cas_dependent_write(current_slot, insert_pair); +#else + status = back_to_back_cas(current_slot, insert_pair); +#endif + } + + // successful insert + if (g.any(status == insert_result::SUCCESS)) { return; } + // if we've gotten this far, a different key took our spot + // before we could insert. We need to retry the insert on the + // same window + } + // if there are no empty slots in the current window, + // we move onto the next window + else { + current_slot = next_slot(current_slot); + } + } // while true + } +}; // class device_mutable_view_impl + +template +class static_multimap::device_view_impl + : public device_view_impl_base { + public: + using value_type = typename device_view_impl_base::value_type; + using key_type = typename device_view_impl_base::key_type; + using mapped_type = typename device_view_impl_base::mapped_type; + using iterator = typename device_view_impl_base::iterator; + using const_iterator = typename device_view_impl_base::const_iterator; + + __host__ __device__ device_view_impl(pair_atomic_type* slots, + std::size_t capacity, + Key empty_key_sentinel, + Value empty_value_sentinel) noexcept + : device_view_impl_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} + { + } + + /** + * @brief Flushes per-CG buffer into the output sequence. + * + * A given CUDA Cooperative Group, `g`, loads `num_outputs` key-value pairs from `output_buffer` + * and writes them into global memory in a coalesced fashion. CG-wide `memcpy_sync` is used if + * `CUCO_HAS_CG_MEMCPY_ASYNC` is defined and `thrust::is_contiguous_iterator_v` + * returns true. All threads of `g` must be active due to implicit CG-wide synchronization + * during flushing. + * + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * constructible from the map's `value_type` + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer + * @param output_buffer Buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + */ + template + __inline__ __device__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept + { + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + offset = g.shfl(offset, 0); + + if constexpr (thrust::is_contiguous_iterator_v) { +#if defined(CUCO_HAS_CG_MEMCPY_ASYNC) +#if defined(CUCO_HAS_CUDA_BARRIER) + cooperative_groups::memcpy_async( + g, + output_begin + offset, + output_buffer, + cuda::aligned_size_t(sizeof(value_type) * num_outputs)); +#else + cooperative_groups::memcpy_async( + g, output_begin + offset, output_buffer, sizeof(value_type) * num_outputs); +#endif // end CUCO_HAS_CUDA_BARRIER + return; +#endif // end CUCO_HAS_CG_MEMCPY_ASYNC + } + for (auto index = lane_id; index < num_outputs; index += g.size()) { + *(output_begin + offset + index) = output_buffer[index]; + } + } + + /** + * @brief Flushes per-CG buffer into the output sequences. + * + * A given CUDA Cooperative Group, `g`, loads `num_outputs` elements from `probe_output_buffer` + * and `num_outputs` elements from `contained_output_buffer`, then writes them into global + * memory started from `probe_output_begin` and `contained_output_begin` respectively. All + * threads of `g` must be active due to implicit CG-wide synchronization during flushing. + * + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. + * @param g The Cooperative Group used to flush output buffer + * @param num_outputs Number of valid output in the buffer + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained + * pairs + */ + template + __inline__ __device__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin) noexcept + { + std::size_t offset; + const auto lane_id = g.thread_rank(); + if (0 == lane_id) { + offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); + } + offset = g.shfl(offset, 0); + + for (auto index = lane_id; index < num_outputs; index += g.size()) { + auto& probe_pair = probe_output_buffer[index]; + auto& contained_pair = contained_output_buffer[index]; + thrust::get<0>(*(probe_output_begin + offset + index)) = probe_pair.first; + thrust::get<1>(*(probe_output_begin + offset + index)) = probe_pair.second; + thrust::get<0>(*(contained_output_begin + offset + index)) = contained_pair.first; + thrust::get<1>(*(contained_output_begin + offset + index)) = contained_pair.second; + } + } + + /** + * @brief Indicates whether the key `k` exists in the map using vector loads. + * + * If the key `k` was inserted into the map, `contains` returns + * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single `contains` operation. This provides a + * significant boost in throughput compared to the non Cooperative Group based + * `contains` at moderate to high load factors. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the contains operation + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A boolean indicating whether the key/value pair + * containing `k` was inserted + */ + template + __device__ std::enable_if_t contains(CG g, + Key const& k, + KeyEqual key_equal) noexcept + { + auto current_slot = initial_slot(g, k); + + while (true) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + + // the key we were searching for was found by one of the threads, so we return true + if (g.any(first_equals or second_equals)) { return true; } + + // we found an empty slot, meaning that the key we're searching for isn't present + if (g.any(first_slot_is_empty or second_slot_is_empty)) { return false; } + + // otherwise, all slots in the current window are full with other keys, so we move onto the + // next window + current_slot = next_slot(current_slot); + } + } + + /** + * @brief Indicates whether the key `k` exists in the map using scalar loads. + * + * If the key `k` was inserted into the map, `contains` returns + * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to + * to leverage multiple threads to perform a single `contains` operation. This provides a + * significant boost in throughput compared to the non Cooperative Group + * `contains` at moderate to high load factors. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the contains operation + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + * @return A boolean indicating whether the key/value pair + * containing `k` was inserted + */ + template + __device__ std::enable_if_t contains(CG g, + Key const& k, + KeyEqual key_equal) noexcept + { + auto current_slot = initial_slot(g, k); + + while (true) { + value_type slot_contents = *reinterpret_cast(current_slot); + auto const& existing_key = slot_contents.first; + + // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as + // the sentinel is not a valid key value. Therefore, first check for the sentinel + auto const slot_is_empty = + detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); + + auto const equals = (not slot_is_empty and key_equal(existing_key, k)); + + // the key we were searching for was found by one of the threads, so we return true + if (g.any(equals)) { return true; } + + // we found an empty slot, meaning that the key we're searching for isn't present + if (g.any(slot_is_empty)) { return false; } + + // otherwise, all slots in the current window are full with other keys, so we move onto the + // next window + current_slot = next_slot(current_slot); + } + } + + /** + * @brief Counts the occurrence of a given key contained in multimap using vector loads. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the count operation + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + * @return Number of matches found by the current thread + */ + template + __device__ std::enable_if_t count(CG const& g, + Key const& k, + KeyEqual key_equal) noexcept + { + std::size_t count = 0; + auto current_slot = initial_slot(g, k); + + [[maybe_unused]] bool found_match = false; + + while (true) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + + if constexpr (is_outer) { + if (g.any(first_equals or second_equals)) { found_match = true; } + } + + count += (first_equals + second_equals); + + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if constexpr (is_outer) { + if ((not found_match) && (g.thread_rank() == 0)) { count++; } + } + return count; + } + + current_slot = next_slot(current_slot); + } + } + + /** + * @brief Counts the occurrence of a given key contained in multimap using scalar loads. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam CG Cooperative Group type + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to perform the count operation + * @param k The key to search for + * @param key_equal The binary callable used to compare two keys + * for equality + * @return Number of matches found by the current thread + */ + template + __device__ std::enable_if_t count(CG const& g, + Key const& k, + KeyEqual key_equal) noexcept + { + std::size_t count = 0; + auto current_slot = initial_slot(g, k); + + [[maybe_unused]] bool found_match = false; + + while (true) { + value_type slot_contents = *reinterpret_cast(current_slot); + auto const& current_key = slot_contents.first; + + auto const slot_is_empty = + detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); + auto const equals = not slot_is_empty and key_equal(current_key, k); + + if constexpr (is_outer) { + if (g.any(equals)) { found_match = true; } + } + + count += equals; + + if (g.any(slot_is_empty)) { + if constexpr (is_outer) { + if ((not found_match) && (g.thread_rank() == 0)) { count++; } + } + return count; + } + + current_slot = next_slot(current_slot); + } + } + + /** + * @brief Counts the occurrence of a given key/value pair contained in multimap using vector + * loads. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam CG Cooperative Group type + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to perform the pair_count operation + * @param pair The pair to search for + * @param pair_equal The binary callable used to compare two pairs + * for equality + * @return Number of matches found by the current thread + */ + template + __device__ std::enable_if_t pair_count( + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept + { + std::size_t count = 0; + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + [[maybe_unused]] bool found_match = false; + + while (true) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + + auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); + + if constexpr (is_outer) { + if (g.any(first_slot_equals or second_slot_equals)) { found_match = true; } + } + + count += (first_slot_equals + second_slot_equals); + + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if constexpr (is_outer) { + if ((not found_match) && (g.thread_rank() == 0)) { count++; } + } + return count; + } + + current_slot = next_slot(current_slot); + } + } + + /** + * @brief Counts the occurrence of a given key/value pair contained in multimap using scalar + * loads. + * + * @tparam uses_vector_load Boolean flag indicating whether vector loads are used + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam CG Cooperative Group type + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to perform the pair_count operation + * @param pair The pair to search for + * @param pair_equal The binary callable used to compare two pairs + * for equality + * @return Number of matches found by the current thread + */ + template + __device__ std::enable_if_t pair_count( + CG const& g, value_type const& pair, PairEqual pair_equal) noexcept + { + std::size_t count = 0; + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + [[maybe_unused]] bool found_match = false; + + while (true) { + auto slot_contents = *reinterpret_cast(current_slot); + + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); + + auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); + + if constexpr (is_outer) { + if (g.any(equals)) { found_match = true; } + } + + count += equals; + + if (g.any(slot_is_empty)) { + if constexpr (is_outer) { + if ((not found_match) && (g.thread_rank() == 0)) { count++; } + } + return count; + } + + current_slot = next_slot(current_slot); + } + } + + /** + * @brief Retrieves all the matches of a given key contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and + * `empty_value_sentinel()` into the output only if `is_outer` is true. + * + * @tparam buffer_size Size of the output buffer + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam warpT Warp (Cooperative Group) type + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * constructible from the map's `value_type` + * @tparam KeyEqual Binary callable type + * @param warp The Cooperative Group (or warp) used to flush output buffer + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param warp_counter Pointer to the warp counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template + __device__ void retrieve(warpT const& warp, + CG const& g, + Key const& k, + uint32_t* warp_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept + { + const uint32_t cg_lane_id = g.thread_rank(); + + auto current_slot = initial_slot(g, k); + + bool running = true; + [[maybe_unused]] bool found_match = false; + + while (warp.any(running)) { + if (running) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); + auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); + + if (first_exists or second_exists) { + if constexpr (is_outer) { found_match = true; } + + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == cg_lane_id) { + output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + } + output_idx = g.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[0].second)); + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); + Key key = k; + output_buffer[output_idx + num_first_matches + lane_offset] = + cuco::make_pair(std::move(key), std::move(arr[1].second)); + } + } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if constexpr (is_outer) { + if ((not found_match) && (cg_lane_id == 0)) { + auto output_idx = atomicAdd(warp_counter, 1); + Key key = k; + output_buffer[output_idx] = cuco::make_pair( + std::move(key), std::move(this->get_empty_value_sentinel())); + } + } + } + } // if running + + warp.sync(); + if (*warp_counter + warp.size() * vector_width() > buffer_size) { + flush_output_buffer(warp, *warp_counter, output_buffer, num_matches, output_begin); + // First lane reset warp-level counter + if (warp.thread_rank() == 0) { *warp_counter = 0; } + } + + current_slot = next_slot(current_slot); + } // while running + } + + /** + * @brief Retrieves all the matches of a given key contained in multimap using scalar + * loads with per-CG shared memory buffer. + * + * For key `k` existing in the map, copies `k` and all associated values to unspecified + * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and + * `empty_value_sentinel()` into the output only if `is_outer` is true. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt Device accessible output iterator whose `value_type` is + * constructible from the map's `value_type` + * @tparam KeyEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param k The key to search for + * @param cg_counter Pointer to the CG counter + * @param output_buffer Shared memory buffer of the key/value pair sequence + * @param num_matches Size of the output sequence + * @param output_begin Beginning of the output sequence of key/value pairs + * @param key_equal The binary callable used to compare two keys + * for equality + */ + template + __device__ void retrieve(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept + { + const uint32_t lane_id = g.thread_rank(); + + auto current_slot = initial_slot(g, k); + + bool running = true; + [[maybe_unused]] bool found_match = false; + + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + value_type slot_contents = *reinterpret_cast(current_slot); + + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); + uint32_t output_idx = *cg_counter; + auto const exists = g.ballot(equals); + + if (exists) { + if constexpr (is_outer) { found_match = true; } + auto num_matches = __popc(exists); + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + Key key = k; + output_buffer[output_idx + lane_offset] = + cuco::make_pair(std::move(key), std::move(slot_contents.second)); + } + if (0 == lane_id) { (*cg_counter) += num_matches; } + } + if (g.any(slot_is_empty)) { + running = false; + if constexpr (is_outer) { + if ((not found_match) && (lane_id == 0)) { + output_idx = (*cg_counter)++; + Key key = k; + output_buffer[output_idx] = cuco::make_pair( + std::move(key), std::move(this->get_empty_value_sentinel())); + } + } + } + + g.sync(); + + // Flush if the next iteration won't fit into buffer + if ((*cg_counter + cg_size) > buffer_size) { + flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { *cg_counter = 0; } + } + current_slot = next_slot(current_slot); + } // while running + } + + /** + * @brief Retrieves all the matches of a given pair contained in multimap using vector + * loads with per-warp shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies + * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output only if + * `is_outer` is true. + * + * @tparam buffer_size Size of the output buffer + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam warpT Warp (Cooperative Group) type + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. + * @tparam PairEqual Binary callable type + * @param warp The Cooperative Group (or warp) used to flush output buffer + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param warp_counter Pointer to the warp counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained + * pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve(warpT const& warp, + CG const& g, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept + { + const uint32_t cg_lane_id = g.thread_rank(); + + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + bool running = true; + [[maybe_unused]] bool found_match = false; + + while (warp.any(running)) { + if (running) { + value_type arr[2]; + load_pair_array(&arr[0], current_slot); + + auto const first_slot_is_empty = + detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); + auto const second_slot_is_empty = + detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); + auto const first_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); + auto const second_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); + auto const first_exists = g.ballot(first_equals); + auto const second_exists = g.ballot(second_equals); + + if (first_exists or second_exists) { + if constexpr (is_outer) { found_match = true; } + + auto num_first_matches = __popc(first_exists); + auto num_second_matches = __popc(second_exists); + + uint32_t output_idx; + if (0 == cg_lane_id) { + output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + } + output_idx = g.shfl(output_idx, 0); + + if (first_equals) { + auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); + probe_output_buffer[output_idx + lane_offset] = pair; + contained_output_buffer[output_idx + lane_offset] = arr[0]; + } + if (second_equals) { + auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); + probe_output_buffer[output_idx + num_first_matches + lane_offset] = pair; + contained_output_buffer[output_idx + num_first_matches + lane_offset] = arr[1]; + } + } + if (g.any(first_slot_is_empty or second_slot_is_empty)) { + running = false; + if constexpr (is_outer) { + if ((not found_match) && (cg_lane_id == 0)) { + auto output_idx = atomicAdd(warp_counter, 1); + probe_output_buffer[output_idx] = pair; + contained_output_buffer[output_idx] = + cuco::make_pair(std::move(this->get_empty_key_sentinel()), + std::move(this->get_empty_value_sentinel())); + } + } + } + } // if running + + warp.sync(); + if (*warp_counter + warp.size() * vector_width() > buffer_size) { + flush_output_buffer(warp, + *warp_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin); + // First lane reset warp-level counter + if (warp.thread_rank() == 0) { *warp_counter = 0; } + } + + current_slot = next_slot(current_slot); + } // while running + } + + /** + * @brief Retrieves all the matches of a given pair contained in multimap using scalar + * loads with per-CG shared memory buffer. + * + * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations + * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in + * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies + * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output only if + * `is_outer` is true. + * + * @tparam cg_size The number of threads in CUDA Cooperative Groups + * @tparam buffer_size Size of the output buffer + * @tparam is_outer Boolean flag indicating whether outer join is peformed + * @tparam CG Cooperative Group type + * @tparam atomicT Type of atomic storage + * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from + * `InputIt`s `value_type`. + * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from + * the map's `value_type`. + * @tparam PairEqual Binary callable type + * @param g The Cooperative Group used to retrieve + * @param pair The pair to search for + * @param cg_counter Pointer to the CG counter + * @param probe_output_buffer Buffer of the matched probe pair sequence + * @param contained_output_buffer Buffer of the matched contained pair sequence + * @param num_matches Size of the output sequence + * @param probe_output_begin Beginning of the output sequence of the matched probe pairs + * @param contained_output_begin Beginning of the output sequence of the matched contained + * pairs + * @param pair_equal The binary callable used to compare two pairs for equality + */ + template + __device__ void pair_retrieve(CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept + { + const uint32_t lane_id = g.thread_rank(); + + auto key = pair.first; + auto current_slot = initial_slot(g, key); + + bool running = true; + [[maybe_unused]] bool found_match = false; + + while (running) { + // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation + // is unsafe! + static_assert(sizeof(Key) == sizeof(cuda::atomic)); + static_assert(sizeof(Value) == sizeof(cuda::atomic)); + value_type slot_contents = *reinterpret_cast(current_slot); + + auto const slot_is_empty = + detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); + auto const equals = (not slot_is_empty and pair_equal(slot_contents, pair)); + uint32_t output_idx = *cg_counter; + auto const exists = g.ballot(equals); + + if (exists) { + if constexpr (is_outer) { found_match = true; } + auto num_matches = __popc(exists); + if (equals) { + // Each match computes its lane-level offset + auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); + probe_output_buffer[output_idx + lane_offset] = pair; + contained_output_buffer[output_idx + lane_offset] = slot_contents; + } + if (0 == lane_id) { (*cg_counter) += num_matches; } + } + if (g.any(slot_is_empty)) { + running = false; + if constexpr (is_outer) { + if ((not found_match) && (lane_id == 0)) { + output_idx = (*cg_counter)++; + probe_output_buffer[output_idx] = pair; + contained_output_buffer[output_idx] = + cuco::make_pair(std::move(this->get_empty_key_sentinel()), + std::move(this->get_empty_value_sentinel())); + } + } + } + + g.sync(); + + // Flush if the next iteration won't fit into buffer + if ((*cg_counter + cg_size) > buffer_size) { + flush_output_buffer(g, + *cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin); + // First lane reset CG-level counter + if (lane_id == 0) { *cg_counter = 0; } + } + current_slot = next_slot(current_slot); + } // while running + } +}; // class device_view_impl + +} // namespace cuco From 098073732cfb904ad3e9552151cda020b32df5ab Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 15 Oct 2021 17:59:43 -0400 Subject: [PATCH 245/267] Updates: move _impl functions out of the public header --- include/cuco/detail/static_multimap.inl | 968 ++---------------------- include/cuco/static_multimap.cuh | 642 ++-------------- 2 files changed, 143 insertions(+), 1467 deletions(-) diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap.inl index af9438493..4a4386b48 100644 --- a/include/cuco/detail/static_multimap.inl +++ b/include/cuco/detail/static_multimap.inl @@ -18,7 +18,6 @@ #include #include -#include #include namespace { @@ -556,214 +555,6 @@ static_multimap::pair_retrieve_oute return std::make_pair(probe_output_begin + h_counter, contained_output_begin + h_counter); } -template -__device__ void -static_multimap::device_view_base::load_pair_array( - value_type* arr, const_iterator current_slot) noexcept -{ - if constexpr (sizeof(value_type) == 4) { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); - } else { - auto const tmp = *reinterpret_cast(current_slot); - memcpy(&arr[0], &tmp, 2 * sizeof(value_type)); - } -} - -template -__device__ - static_multimap::device_mutable_view::insert_result - static_multimap::device_mutable_view::packed_cas( - iterator current_slot, value_type const& insert_pair) noexcept -{ - auto expected_key = this->get_empty_key_sentinel(); - auto expected_value = this->get_empty_value_sentinel(); - - cuco::detail::pair_converter expected_pair{ - cuco::make_pair(std::move(expected_key), std::move(expected_value))}; - cuco::detail::pair_converter new_pair{insert_pair}; - - auto slot = reinterpret_cast< - cuda::atomic::packed_type, Scope>*>( - current_slot); - - bool success = slot->compare_exchange_strong( - expected_pair.packed, new_pair.packed, cuda::std::memory_order_relaxed); - if (success) { return insert_result::SUCCESS; } - - return insert_result::CONTINUE; -} - -template -__device__ - static_multimap::device_mutable_view::insert_result - static_multimap::device_mutable_view:: - back_to_back_cas(iterator current_slot, value_type const& insert_pair) noexcept -{ - using cuda::std::memory_order_relaxed; - - auto expected_key = this->get_empty_key_sentinel(); - auto expected_value = this->get_empty_value_sentinel(); - - // Back-to-back CAS for 8B/8B key/value pairs - auto& slot_key = current_slot->first; - auto& slot_value = current_slot->second; - - bool key_success = - slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); - bool value_success = - slot_value.compare_exchange_strong(expected_value, insert_pair.second, memory_order_relaxed); - - if (key_success) { - while (not value_success) { - value_success = - slot_value.compare_exchange_strong(expected_value = this->get_empty_value_sentinel(), - insert_pair.second, - memory_order_relaxed); - } - return insert_result::SUCCESS; - } else if (value_success) { - slot_value.store(this->get_empty_value_sentinel(), memory_order_relaxed); - } - - return insert_result::CONTINUE; -} - -template -__device__ - static_multimap::device_mutable_view::insert_result - static_multimap::device_mutable_view:: - cas_dependent_write(iterator current_slot, value_type const& insert_pair) noexcept -{ - using cuda::std::memory_order_relaxed; - auto expected_key = this->get_empty_key_sentinel(); - - auto& slot_key = current_slot->first; - - auto const key_success = - slot_key.compare_exchange_strong(expected_key, insert_pair.first, memory_order_relaxed); - - if (key_success) { - auto& slot_value = current_slot->second; - slot_value.store(insert_pair.second, memory_order_relaxed); - return insert_result::SUCCESS; - } - - return insert_result::CONTINUE; -} - -template -template -__device__ std::enable_if_t -static_multimap::device_mutable_view::insert_impl( - CG g, value_type const& insert_pair) noexcept -{ - auto current_slot = initial_slot(g, insert_pair.first); - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as - // the sentinel is not a valid key value. Therefore, first check for the sentinel - auto const first_slot_is_empty = - (detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel())); - auto const second_slot_is_empty = - (detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel())); - auto const window_contains_empty = g.ballot(first_slot_is_empty or second_slot_is_empty); - - if (window_contains_empty) { - // the first lane in the group with an empty slot will attempt the insert - insert_result status{insert_result::CONTINUE}; - uint32_t src_lane = __ffs(window_contains_empty) - 1; - if (g.thread_rank() == src_lane) { - auto insert_location = first_slot_is_empty ? current_slot : current_slot + 1; - // One single CAS operation since vector loads are dedicated to packable pairs - status = packed_cas(insert_location, insert_pair); - } - - // successful insert - if (g.any(status == insert_result::SUCCESS)) { return; } - // if we've gotten this far, a different key took our spot - // before we could insert. We need to retry the insert on the - // same window - } - // if there are no empty slots in the current window, - // we move onto the next window - else { - current_slot = next_slot(current_slot); - } - } // while true -} - -template -template -__device__ std::enable_if_t -static_multimap::device_mutable_view::insert_impl( - CG g, value_type const& insert_pair) noexcept -{ - auto current_slot = initial_slot(g, insert_pair.first); - - while (true) { - value_type slot_contents = *reinterpret_cast(current_slot); - auto const& existing_key = slot_contents.first; - - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = - detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); - auto const window_contains_empty = g.ballot(slot_is_empty); - - if (window_contains_empty) { - // the first lane in the group with an empty slot will attempt the insert - insert_result status{insert_result::CONTINUE}; - uint32_t src_lane = __ffs(window_contains_empty) - 1; - - if (g.thread_rank() == src_lane) { -#if __CUDA_ARCH__ < 700 - status = cas_dependent_write(current_slot, insert_pair); -#else - status = back_to_back_cas(current_slot, insert_pair); -#endif - } - - // successful insert - if (g.any(status == insert_result::SUCCESS)) { return; } - // if we've gotten this far, a different key took our spot - // before we could insert. We need to retry the insert on the - // same window - } - // if there are no empty slots in the current window, - // we move onto the next window - else { - current_slot = next_slot(current_slot); - } - } // while true -} - template ::device_mutable_view::insert( CG g, value_type const& insert_pair) noexcept { - insert_impl(g, insert_pair); + impl_.insert(g, insert_pair); } template -template -__device__ std::enable_if_t -static_multimap::device_view::contains_impl( - CG g, Key const& k, KeyEqual key_equal) noexcept -{ - auto current_slot = initial_slot(g, k); - - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - - // the key we were searching for was found by one of the threads, so we return true - if (g.any(first_equals or second_equals)) { return true; } - - // we found an empty slot, meaning that the key we're searching for isn't present - if (g.any(first_slot_is_empty or second_slot_is_empty)) { return false; } - - // otherwise, all slots in the current window are full with other keys, so we move onto the next - // window - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ std::enable_if_t -static_multimap::device_view::contains_impl( - CG g, Key const& k, KeyEqual key_equal) noexcept -{ - auto current_slot = initial_slot(g, k); - - while (true) { - value_type slot_contents = *reinterpret_cast(current_slot); - auto const& existing_key = slot_contents.first; - - // The user provide `key_equal` can never be used to compare against `empty_key_sentinel` as the - // sentinel is not a valid key value. Therefore, first check for the sentinel - auto const slot_is_empty = - detail::bitwise_compare(existing_key, this->get_empty_key_sentinel()); - - auto const equals = (not slot_is_empty and key_equal(existing_key, k)); - - // the key we were searching for was found by one of the threads, so we return true - if (g.any(equals)) { return true; } - - // we found an empty slot, meaning that the key we're searching for isn't present - if (g.any(slot_is_empty)) { return false; } - - // otherwise, all slots in the current window are full with other keys, so we move onto the next - // window - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ std::enable_if_t -static_multimap::device_view::count_impl( - CG const& g, Key const& k, KeyEqual key_equal) noexcept -{ - std::size_t count = 0; - auto current_slot = initial_slot(g, k); - - [[maybe_unused]] bool found_match = false; - - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - - if constexpr (is_outer) { - if (g.any(first_equals or second_equals)) { found_match = true; } - } - - count += (first_equals + second_equals); - - if (g.any(first_slot_is_empty or second_slot_is_empty)) { - if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { count++; } - } - return count; - } - - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ std::enable_if_t -static_multimap::device_view::count_impl( - CG const& g, Key const& k, KeyEqual key_equal) noexcept -{ - std::size_t count = 0; - auto current_slot = initial_slot(g, k); - - [[maybe_unused]] bool found_match = false; - - while (true) { - value_type slot_contents = *reinterpret_cast(current_slot); - auto const& current_key = slot_contents.first; - - auto const slot_is_empty = detail::bitwise_compare(current_key, this->get_empty_key_sentinel()); - auto const equals = not slot_is_empty and key_equal(current_key, k); - - if constexpr (is_outer) { - if (g.any(equals)) { found_match = true; } - } - - count += equals; - - if (g.any(slot_is_empty)) { - if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { count++; } - } - return count; - } - - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ std::enable_if_t -static_multimap::device_view::pair_count_impl( - CG const& g, value_type const& pair, PairEqual pair_equal) noexcept -{ - std::size_t count = 0; - auto key = pair.first; - auto current_slot = initial_slot(g, key); - - [[maybe_unused]] bool found_match = false; - - while (true) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - - auto const first_slot_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); - auto const second_slot_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - - if constexpr (is_outer) { - if (g.any(first_slot_equals or second_slot_equals)) { found_match = true; } - } - - count += (first_slot_equals + second_slot_equals); - - if (g.any(first_slot_is_empty or second_slot_is_empty)) { - if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { count++; } - } - return count; - } - - current_slot = next_slot(current_slot); - } -} - -template -template -__device__ std::enable_if_t -static_multimap::device_view::pair_count_impl( - CG const& g, value_type const& pair, PairEqual pair_equal) noexcept +template +__device__ static_multimap::device_view +static_multimap::device_view::make_copy( + CG g, pair_atomic_type* const memory_to_use, device_view source_device_view) noexcept { - std::size_t count = 0; - auto key = pair.first; - auto current_slot = initial_slot(g, key); - - [[maybe_unused]] bool found_match = false; - - while (true) { - auto slot_contents = *reinterpret_cast(current_slot); - - auto const slot_is_empty = - detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - - auto const equals = not slot_is_empty and pair_equal(slot_contents, pair); - - if constexpr (is_outer) { - if (g.any(equals)) { found_match = true; } - } +#if defined(CUCO_HAS_CUDA_BARRIER) + __shared__ cuda::barrier barrier; + if (g.thread_rank() == 0) { init(&barrier, g.size()); } + g.sync(); - count += equals; + cuda::memcpy_async(g, + memory_to_use, + source_device_view.get_slots(), + sizeof(pair_atomic_type) * source_device_view.get_capacity(), + barrier); - if (g.any(slot_is_empty)) { - if constexpr (is_outer) { - if ((not found_match) && (g.thread_rank() == 0)) { count++; } - } - return count; - } - - current_slot = next_slot(current_slot); + barrier.arrive_and_wait(); +#else + pair_atomic_type const* const slots_ptr = source_device_view.get_slots(); + for (std::size_t i = g.thread_rank(); i < source_device_view.get_capacity(); i += g.size()) { + new (&memory_to_use[i].first) + atomic_key_type{slots_ptr[i].first.load(cuda::memory_order_relaxed)}; + new (&memory_to_use[i].second) + atomic_mapped_type{slots_ptr[i].second.load(cuda::memory_order_relaxed)}; } -} - -template -template -__device__ void -static_multimap::device_view::retrieve_impl( - warpT const& warp, - CG const& g, - Key const& k, - uint32_t* warp_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept -{ - const uint32_t cg_lane_id = g.thread_rank(); - - auto current_slot = initial_slot(g, k); - - bool running = true; - [[maybe_unused]] bool found_match = false; - - while (warp.any(running)) { - if (running) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); - auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); - - if (first_exists or second_exists) { - if constexpr (is_outer) { found_match = true; } - - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); - - uint32_t output_idx; - if (0 == cg_lane_id) { - output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); - } - output_idx = g.shfl(output_idx, 0); - - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); - Key key = k; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(key), std::move(arr[0].second)); - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); - Key key = k; - output_buffer[output_idx + num_first_matches + lane_offset] = - cuco::make_pair(std::move(key), std::move(arr[1].second)); - } - } - if (g.any(first_slot_is_empty or second_slot_is_empty)) { - running = false; - if constexpr (is_outer) { - if ((not found_match) && (cg_lane_id == 0)) { - auto output_idx = atomicAdd(warp_counter, 1); - Key key = k; - output_buffer[output_idx] = cuco::make_pair( - std::move(key), std::move(this->get_empty_value_sentinel())); - } - } - } - } // if running - - warp.sync(); - if (*warp_counter + warp.size() * vector_width() > buffer_size) { - flush_output_buffer(warp, *warp_counter, output_buffer, num_matches, output_begin); - // First lane reset warp-level counter - if (warp.thread_rank() == 0) { *warp_counter = 0; } - } - - current_slot = next_slot(current_slot); - } // while running -} - -template -template -__device__ void -static_multimap::device_view::retrieve_impl( - CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept -{ - const uint32_t lane_id = g.thread_rank(); - - auto current_slot = initial_slot(g, k); - - bool running = true; - [[maybe_unused]] bool found_match = false; - - while (running) { - // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation - // is unsafe! - static_assert(sizeof(Key) == sizeof(cuda::atomic)); - static_assert(sizeof(Value) == sizeof(cuda::atomic)); - value_type slot_contents = *reinterpret_cast(current_slot); - - auto const slot_is_empty = - detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and key_equal(slot_contents.first, k)); - uint32_t output_idx = *cg_counter; - auto const exists = g.ballot(equals); - - if (exists) { - if constexpr (is_outer) { found_match = true; } - auto num_matches = __popc(exists); - if (equals) { - // Each match computes its lane-level offset - auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); - Key key = k; - output_buffer[output_idx + lane_offset] = - cuco::make_pair(std::move(key), std::move(slot_contents.second)); - } - if (0 == lane_id) { (*cg_counter) += num_matches; } - } - if (g.any(slot_is_empty)) { - running = false; - if constexpr (is_outer) { - if ((not found_match) && (lane_id == 0)) { - output_idx = (*cg_counter)++; - Key key = k; - output_buffer[output_idx] = cuco::make_pair( - std::move(key), std::move(this->get_empty_value_sentinel())); - } - } - } - - g.sync(); - - // Flush if the next iteration won't fit into buffer - if ((*cg_counter + cg_size) > buffer_size) { - flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { *cg_counter = 0; } - } - current_slot = next_slot(current_slot); - } // while running -} - -template -template -__device__ void -static_multimap::device_view::pair_retrieve_impl( - warpT const& warp, - CG const& g, - value_type const& pair, - uint32_t* warp_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept -{ - const uint32_t cg_lane_id = g.thread_rank(); - - auto key = pair.first; - auto current_slot = initial_slot(g, key); - - bool running = true; - [[maybe_unused]] bool found_match = false; - - while (warp.any(running)) { - if (running) { - value_type arr[2]; - load_pair_array(&arr[0], current_slot); - - auto const first_slot_is_empty = - detail::bitwise_compare(arr[0].first, this->get_empty_key_sentinel()); - auto const second_slot_is_empty = - detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); - auto const first_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); - auto const second_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); - - if (first_exists or second_exists) { - if constexpr (is_outer) { found_match = true; } - - auto num_first_matches = __popc(first_exists); - auto num_second_matches = __popc(second_exists); - - uint32_t output_idx; - if (0 == cg_lane_id) { - output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); - } - output_idx = g.shfl(output_idx, 0); - - if (first_equals) { - auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); - probe_output_buffer[output_idx + lane_offset] = pair; - contained_output_buffer[output_idx + lane_offset] = arr[0]; - } - if (second_equals) { - auto lane_offset = __popc(second_exists & ((1 << cg_lane_id) - 1)); - probe_output_buffer[output_idx + num_first_matches + lane_offset] = pair; - contained_output_buffer[output_idx + num_first_matches + lane_offset] = arr[1]; - } - } - if (g.any(first_slot_is_empty or second_slot_is_empty)) { - running = false; - if constexpr (is_outer) { - if ((not found_match) && (cg_lane_id == 0)) { - auto output_idx = atomicAdd(warp_counter, 1); - probe_output_buffer[output_idx] = pair; - contained_output_buffer[output_idx] = - cuco::make_pair(std::move(this->get_empty_key_sentinel()), - std::move(this->get_empty_value_sentinel())); - } - } - } - } // if running - - warp.sync(); - if (*warp_counter + warp.size() * vector_width() > buffer_size) { - flush_output_buffer(warp, - *warp_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin); - // First lane reset warp-level counter - if (warp.thread_rank() == 0) { *warp_counter = 0; } - } - - current_slot = next_slot(current_slot); - } // while running -} - -template -template -__device__ void -static_multimap::device_view::pair_retrieve_impl( - CG const& g, - value_type const& pair, - uint32_t* cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept -{ - const uint32_t lane_id = g.thread_rank(); - - auto key = pair.first; - auto current_slot = initial_slot(g, key); - - bool running = true; - [[maybe_unused]] bool found_match = false; - - while (running) { - // TODO: Replace reinterpret_cast with atomic ref when possible. The current implementation - // is unsafe! - static_assert(sizeof(Key) == sizeof(cuda::atomic)); - static_assert(sizeof(Value) == sizeof(cuda::atomic)); - value_type slot_contents = *reinterpret_cast(current_slot); - - auto const slot_is_empty = - detail::bitwise_compare(slot_contents.first, this->get_empty_key_sentinel()); - auto const equals = (not slot_is_empty and pair_equal(slot_contents, pair)); - uint32_t output_idx = *cg_counter; - auto const exists = g.ballot(equals); - - if (exists) { - if constexpr (is_outer) { found_match = true; } - auto num_matches = __popc(exists); - if (equals) { - // Each match computes its lane-level offset - auto lane_offset = __popc(exists & ((1 << lane_id) - 1)); - probe_output_buffer[output_idx + lane_offset] = pair; - contained_output_buffer[output_idx + lane_offset] = slot_contents; - } - if (0 == lane_id) { (*cg_counter) += num_matches; } - } - if (g.any(slot_is_empty)) { - running = false; - if constexpr (is_outer) { - if ((not found_match) && (lane_id == 0)) { - output_idx = (*cg_counter)++; - probe_output_buffer[output_idx] = pair; - contained_output_buffer[output_idx] = cuco::make_pair( - std::move(this->get_empty_key_sentinel()), std::move(this->get_empty_value_sentinel())); - } - } - } + g.sync(); +#endif - g.sync(); - - // Flush if the next iteration won't fit into buffer - if ((*cg_counter + cg_size) > buffer_size) { - flush_output_buffer(g, - *cg_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin); - // First lane reset CG-level counter - if (lane_id == 0) { *cg_counter = 0; } - } - current_slot = next_slot(current_slot); - } // while running + return device_view(memory_to_use, + source_device_view.get_capacity(), + source_device_view.get_empty_key_sentinel(), + source_device_view.get_empty_value_sentinel()); } -// public APIs - template ::device_view::flush atomicT* num_matches, OutputIt output_begin) noexcept { - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = g.shfl(offset, 0); - - if constexpr (thrust::is_contiguous_iterator_v) { -#if defined(CUCO_HAS_CG_MEMCPY_ASYNC) -#if defined(CUCO_HAS_CUDA_BARRIER) - cooperative_groups::memcpy_async( - g, - output_begin + offset, - output_buffer, - cuda::aligned_size_t(sizeof(value_type) * num_outputs)); -#else - cooperative_groups::memcpy_async( - g, output_begin + offset, output_buffer, sizeof(value_type) * num_outputs); -#endif // end CUCO_HAS_CUDA_BARRIER - return; -#endif // end CUCO_HAS_CG_MEMCPY_ASYNC - } - for (auto index = lane_id; index < num_outputs; index += g.size()) { - *(output_begin + offset + index) = output_buffer[index]; - } + impl_.flush_output_buffer(g, num_outputs, output_buffer, num_matches, output_begin); } template ::device_view::flush OutputIt1 probe_output_begin, OutputIt2 contained_output_begin) noexcept { - std::size_t offset; - const auto lane_id = g.thread_rank(); - if (0 == lane_id) { - offset = num_matches->fetch_add(num_outputs, cuda::std::memory_order_relaxed); - } - offset = g.shfl(offset, 0); - - for (auto index = lane_id; index < num_outputs; index += g.size()) { - auto& probe_pair = probe_output_buffer[index]; - auto& contained_pair = contained_output_buffer[index]; - thrust::get<0>(*(probe_output_begin + offset + index)) = probe_pair.first; - thrust::get<1>(*(probe_output_begin + offset + index)) = probe_pair.second; - thrust::get<0>(*(contained_output_begin + offset + index)) = contained_pair.first; - thrust::get<1>(*(contained_output_begin + offset + index)) = contained_pair.second; - } + impl_.flush_output_buffer(g, + num_outputs, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin); } template __device__ bool static_multimap::device_view::contains( CG g, Key const& k, KeyEqual key_equal) noexcept { - return contains_impl(g, k, key_equal); + return impl_.contains(g, k, key_equal); } template ::device_view::count CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - return count_impl(g, k, key_equal); + return impl_.count(g, k, key_equal); } template ::device_view::count CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - return count_impl(g, k, key_equal); + return impl_.count(g, k, key_equal); } template ::device_view::pair_ CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; - return pair_count_impl(g, pair, pair_equal); + return impl_.pair_count(g, pair, pair_equal); } template ::device_view::pair_ CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; - return pair_count_impl(g, pair, pair_equal); + return impl_.pair_count(g, pair, pair_equal); } template ::de KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - retrieve_impl( + impl_.retrieve( warp, g, k, warp_counter, output_buffer, num_matches, output_begin, key_equal); } @@ -1568,7 +766,7 @@ static_multimap::device_view::retri KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - retrieve_impl( + impl_.retrieve( warp, g, k, warp_counter, output_buffer, num_matches, output_begin, key_equal); } @@ -1593,7 +791,7 @@ __device__ void static_multimap::de KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - retrieve_impl( + impl_.retrieve( g, k, cg_counter, output_buffer, num_matches, output_begin, key_equal); } @@ -1619,7 +817,7 @@ static_multimap::device_view::retri KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - retrieve_impl( + impl_.retrieve( g, k, cg_counter, output_buffer, num_matches, output_begin, key_equal); } @@ -1649,16 +847,16 @@ static_multimap::device_view::pair_ PairEqual pair_equal) noexcept { constexpr bool is_outer = false; - pair_retrieve_impl(warp, - g, - pair, - warp_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); + impl_.pair_retrieve(warp, + g, + pair, + warp_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); } template ::device_view::pair_ PairEqual pair_equal) noexcept { constexpr bool is_outer = true; - pair_retrieve_impl(warp, - g, - pair, - warp_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); + impl_.pair_retrieve(warp, + g, + pair, + warp_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); } template ::device_view::pair_ PairEqual pair_equal) noexcept { constexpr bool is_outer = false; - pair_retrieve_impl(g, - pair, - cg_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); + impl_.pair_retrieve(g, + pair, + cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); } template ::device_view::pair_ PairEqual pair_equal) noexcept { constexpr bool is_outer = true; - pair_retrieve_impl(g, - pair, - cg_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); + impl_.pair_retrieve(g, + pair, + cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); } template - __device__ iterator initial_slot(CG const& g, Key const& k) noexcept - { - return probe_sequence_.initial_slot(g, k); - } - - /** - * @brief Returns the initial slot for a given key `k` - * - * To be used for Cooperative Group based probing. - * - * @tparam CG Cooperative Group type - * @param g the Cooperative Group for which the initial slot is needed - * @param k The key to get the slot for - * @return Pointer to the initial slot for `k` - */ - template - __device__ const_iterator initial_slot(CG g, Key const& k) const noexcept - { - return probe_sequence_.initial_slot(g, k); - } - - /** - * @brief Given a slot `s`, returns the next slot. - * - * If `s` is the last slot, wraps back around to the first slot. To - * be used for Cooperative Group based probing. - * - * @param s The slot to advance - * @return The next slot after `s` - */ - __device__ iterator next_slot(iterator s) noexcept { return probe_sequence_.next_slot(s); } - - /** - * @brief Given a slot `s`, returns the next slot. - * - * If `s` is the last slot, wraps back around to the first slot. To - * be used for Cooperative Group based probing. - * - * @param s The slot to advance - * @return The next slot after `s` - */ - __device__ const_iterator next_slot(const_iterator s) const noexcept - { - return probe_sequence_.next_slot(s); - } - - public: - /** - * @brief Gets the maximum number of elements the hash map can hold. - * - * @return The maximum number of elements the hash map can hold - */ - __host__ __device__ std::size_t get_capacity() const noexcept - { - return probe_sequence_.get_capacity(); - } - - /** - * @brief Gets the sentinel value used to represent an empty key slot. - * - * @return The sentinel value used to represent an empty key slot - */ - __host__ __device__ Key get_empty_key_sentinel() const noexcept { return empty_key_sentinel_; } - - /** - * @brief Gets the sentinel value used to represent an empty value slot. - * - * @return The sentinel value used to represent an empty value slot - */ - __host__ __device__ Value get_empty_value_sentinel() const noexcept - { - return empty_value_sentinel_; - } - }; + class device_view_impl_base; + class device_mutable_view_impl; + class device_view_impl; public: /** @@ -722,13 +576,14 @@ class static_multimap { * }); * \endcode */ - class device_mutable_view : public device_view_base { + class device_mutable_view { public: - using value_type = typename device_view_base::value_type; - using key_type = typename device_view_base::key_type; - using mapped_type = typename device_view_base::mapped_type; - using iterator = typename device_view_base::iterator; - using const_iterator = typename device_view_base::const_iterator; + // Import member type definitions from `static_multimap` + using value_type = value_type; + using key_type = Key; + using mapped_type = Value; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; /** * @brief Construct a mutable view of the first `capacity` slots of the @@ -745,82 +600,10 @@ class static_multimap { std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel) noexcept - : device_view_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} + : impl_{slots, capacity, empty_key_sentinel, empty_value_sentinel} { } - private: - /** - * @brief Enumeration of the possible results of attempting to insert into a hash bucket. - */ - enum class insert_result { - CONTINUE, ///< Insert did not succeed, continue trying to insert - SUCCESS, ///< New pair inserted successfully - DUPLICATE ///< Insert did not succeed, key is already present - }; - - /** - * @brief Inserts the specified key/value pair with one single CAS operation. - * - * @param current_slot The slot to insert - * @param insert_pair The pair to insert - * @param key_equal The binary callable used to compare two keys for - * equality - * @return An insert result from the `insert_resullt` enumeration. - */ - __device__ insert_result packed_cas(iterator current_slot, - value_type const& insert_pair) noexcept; - - /** - * @brief Inserts the specified key/value pair with two back-to-back CAS operations. - * - * @param current_slot The slot to insert - * @param insert_pair The pair to insert - * @return An insert result from the `insert_resullt` enumeration. - */ - __device__ insert_result back_to_back_cas(iterator current_slot, - value_type const& insert_pair) noexcept; - - /** - * @brief Inserts the specified key/value pair with a CAS of the key and a dependent write - * of the value. - * - * @param current_slot The slot to insert - * @param insert_pair The pair to insert - * @return An insert result from the `insert_resullt` enumeration. - */ - __device__ insert_result cas_dependent_write(iterator current_slot, - value_type const& insert_pair) noexcept; - - /** - * @brief Inserts the specified key/value pair into the map using vector loads. - * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam CG Cooperative Group type - * - * @param g The Cooperative Group that performs the insert - * @param insert_pair The pair to insert - * @return void. - */ - template - __device__ std::enable_if_t insert_impl( - CG g, value_type const& insert_pair) noexcept; - - /** - * @brief Inserts the specified key/value pair into the map using scalar loads. - * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam CG Cooperative Group type - * - * @param g The Cooperative Group that performs the insert - * @param insert_pair The pair to insert - * @return void. - */ - template - __device__ std::enable_if_t insert_impl( - CG g, value_type const& insert_pair) noexcept; - - public: /** * @brief Inserts the specified key/value pair into the map. * @@ -832,6 +615,9 @@ class static_multimap { */ template __device__ void insert(CG g, value_type const& insert_pair) noexcept; + + private: + device_mutable_view_impl impl_; }; // class device mutable view /** @@ -842,13 +628,14 @@ class static_multimap { * value. * */ - class device_view : public device_view_base { + class device_view { public: - using value_type = typename device_view_base::value_type; - using key_type = typename device_view_base::key_type; - using mapped_type = typename device_view_base::mapped_type; - using iterator = typename device_view_base::iterator; - using const_iterator = typename device_view_base::const_iterator; + // Import member type definitions from `static_multimap` + using value_type = value_type; + using key_type = Key; + using mapped_type = Value; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; /** * @brief Construct a view of the first `capacity` slots of the @@ -865,382 +652,69 @@ class static_multimap { std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel) noexcept - : device_view_base{slots, capacity, empty_key_sentinel, empty_value_sentinel} - { - } - - /** - * @brief Makes a copy of given `device_view` using non-owned memory. - * - * This function is intended to be used to create shared memory copies of small static maps, - * although global memory can be used as well. - * - * Example: - * @code{.cpp} - * template - * __global__ void use_device_view(const typename MapType::device_view device_view, - * map_key_t const* const keys_to_search, - * map_value_t* const values_found, - * const size_t number_of_elements) - * { - * const size_t index = blockIdx.x * blockDim.x + threadIdx.x; - * - * __shared__ typename MapType::pair_atomic_type sm_buffer[CAPACITY]; - * - * auto g = cg::this_thread_block(); - * - * const map_t::device_view sm_static_multimap = device_view.make_copy(g, - * sm_buffer); - * - * for (size_t i = g.thread_rank(); i < number_of_elements; i += g.size()) - * { - * values_found[i] = sm_static_multimap.find(keys_to_search[i])->second; - * } - * } - * @endcode - * - * @tparam CG The type of the cooperative thread group - * @param g The cooperative thread group used to copy the slots - * @param source_device_view `device_view` to copy from - * @param memory_to_use Array large enough to support `capacity` elements. Object does not - * take the ownership of the memory - * @return Copy of passed `device_view` - */ - template - __device__ static device_view make_copy(CG g, - pair_atomic_type* const memory_to_use, - device_view source_device_view) noexcept + : impl_{slots, capacity, empty_key_sentinel, empty_value_sentinel} { -#if defined(CUCO_HAS_CUDA_BARRIER) - __shared__ cuda::barrier barrier; - if (g.thread_rank() == 0) { init(&barrier, g.size()); } - g.sync(); - - cuda::memcpy_async(g, - memory_to_use, - source_device_view.get_slots(), - sizeof(pair_atomic_type) * source_device_view.get_capacity(), - barrier); - - barrier.arrive_and_wait(); -#else - pair_atomic_type const* const slots_ptr = source_device_view.get_slots(); - for (std::size_t i = g.thread_rank(); i < source_device_view.get_capacity(); i += g.size()) { - new (&memory_to_use[i].first) - atomic_key_type{slots_ptr[i].first.load(cuda::memory_order_relaxed)}; - new (&memory_to_use[i].second) - atomic_mapped_type{slots_ptr[i].second.load(cuda::memory_order_relaxed)}; - } - g.sync(); -#endif - - return device_view(memory_to_use, - source_device_view.get_capacity(), - source_device_view.get_empty_key_sentinel(), - source_device_view.get_empty_value_sentinel()); } - private: - /** - * @brief Indicates whether the key `k` exists in the map using vector loads. - * - * If the key `k` was inserted into the map, `contains` returns - * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single `contains` operation. This provides a - * significant boost in throughput compared to the non Cooperative Group based - * `contains` at moderate to high load factors. - * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam CG Cooperative Group type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the contains operation - * @param k The key to search for - * @param key_equal The binary callable used to compare two keys - * for equality - * @return A boolean indicating whether the key/value pair - * containing `k` was inserted - */ - template - __device__ std::enable_if_t contains_impl(CG g, - Key const& k, - KeyEqual key_equal) noexcept; - - /** - * @brief Indicates whether the key `k` exists in the map using scalar loads. - * - * If the key `k` was inserted into the map, `contains` returns - * true. Otherwise, it returns false. Uses the CUDA Cooperative Groups API to - * to leverage multiple threads to perform a single `contains` operation. This provides a - * significant boost in throughput compared to the non Cooperative Group - * `contains` at moderate to high load factors. - * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam CG Cooperative Group type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the contains operation - * @param k The key to search for - * @param key_equal The binary callable used to compare two keys - * for equality - * @return A boolean indicating whether the key/value pair - * containing `k` was inserted - */ - template - __device__ std::enable_if_t contains_impl( - CG g, Key const& k, KeyEqual key_equal) noexcept; - - /** - * @brief Counts the occurrence of a given key contained in multimap using vector loads. - * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam CG Cooperative Group type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the count operation - * @param k The key to search for - * @param key_equal The binary callable used to compare two keys - * for equality - * @return Number of matches found by the current thread - */ - template - __device__ std::enable_if_t count_impl( - CG const& g, Key const& k, KeyEqual key_equal) noexcept; - - /** - * @brief Counts the occurrence of a given key contained in multimap using scalar loads. - * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam CG Cooperative Group type - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to perform the count operation - * @param k The key to search for - * @param key_equal The binary callable used to compare two keys - * for equality - * @return Number of matches found by the current thread - */ - template - __device__ std::enable_if_t count_impl( - CG const& g, Key const& k, KeyEqual key_equal) noexcept; - /** - * @brief Counts the occurrence of a given key/value pair contained in multimap using vector - * loads. + * @brief Gets slots array. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam CG Cooperative Group type - * @tparam PairEqual Binary callable type - * @param g The Cooperative Group used to perform the pair_count operation - * @param pair The pair to search for - * @param pair_equal The binary callable used to compare two pairs - * for equality - * @return Number of matches found by the current thread + * @return Slots array */ - template - __device__ std::enable_if_t pair_count_impl( - CG const& g, value_type const& pair, PairEqual pair_equal) noexcept; + __device__ pair_atomic_type* get_slots() noexcept { return impl_.get_slots(); } /** - * @brief Counts the occurrence of a given key/value pair contained in multimap using scalar - * loads. + * @brief Gets slots array. * - * @tparam uses_vector_load Boolean flag indicating whether vector loads are used - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam CG Cooperative Group type - * @tparam PairEqual Binary callable type - * @param g The Cooperative Group used to perform the pair_count operation - * @param pair The pair to search for - * @param pair_equal The binary callable used to compare two pairs - * for equality - * @return Number of matches found by the current thread + * @return Slots array */ - template - __device__ std::enable_if_t pair_count_impl( - CG const& g, value_type const& pair, PairEqual pair_equal) noexcept; + __device__ pair_atomic_type const* get_slots() const noexcept { return impl_.get_slots(); } /** - * @brief Retrieves all the matches of a given key contained in multimap using vector - * loads with per-warp shared memory buffer. - * - * For key `k` existing in the map, copies `k` and all associated values to unspecified - * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and - * `empty_value_sentinel()` into the output only if `is_outer` is true. + * @brief Gets the maximum number of elements the hash map can hold. * - * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam warpT Warp (Cooperative Group) type - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` - * @tparam KeyEqual Binary callable type - * @param warp The Cooperative Group (or warp) used to flush output buffer - * @param g The Cooperative Group used to retrieve - * @param k The key to search for - * @param warp_counter Pointer to the warp counter - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - * @param key_equal The binary callable used to compare two keys - * for equality + * @return The maximum number of elements the hash map can hold */ - template - __device__ void retrieve_impl(warpT const& warp, - CG const& g, - Key const& k, - uint32_t* warp_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept; + __host__ __device__ std::size_t get_capacity() const noexcept { return impl_.get_capacity(); } /** - * @brief Retrieves all the matches of a given key contained in multimap using scalar - * loads with per-CG shared memory buffer. - * - * For key `k` existing in the map, copies `k` and all associated values to unspecified - * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and - * `empty_value_sentinel()` into the output only if `is_outer` is true. + * @brief Gets the sentinel value used to represent an empty key slot. * - * @tparam cg_size The number of threads in CUDA Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to retrieve - * @param k The key to search for - * @param cg_counter Pointer to the CG counter - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - * @param key_equal The binary callable used to compare two keys - * for equality + * @return The sentinel value used to represent an empty key slot */ - template - __device__ void retrieve_impl(CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept; + __host__ __device__ Key get_empty_key_sentinel() const noexcept + { + return impl_.get_empty_key_sentinel(); + } /** - * @brief Retrieves all the matches of a given pair contained in multimap using vector - * loads with per-warp shared memory buffer. - * - * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies - * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output only if - * `is_outer` is true. + * @brief Gets the sentinel value used to represent an empty value slot. * - * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam warpT Warp (Cooperative Group) type - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from - * `InputIt`s `value_type`. - * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from - * the map's `value_type`. - * @tparam PairEqual Binary callable type - * @param warp The Cooperative Group (or warp) used to flush output buffer - * @param g The Cooperative Group used to retrieve - * @param pair The pair to search for - * @param warp_counter Pointer to the warp counter - * @param probe_output_buffer Buffer of the matched probe pair sequence - * @param contained_output_buffer Buffer of the matched contained pair sequence - * @param num_matches Size of the output sequence - * @param probe_output_begin Beginning of the output sequence of the matched probe pairs - * @param contained_output_begin Beginning of the output sequence of the matched contained - * pairs - * @param pair_equal The binary callable used to compare two pairs for equality + * @return The sentinel value used to represent an empty value slot */ - template - __device__ void pair_retrieve_impl(warpT const& warp, - CG const& g, - value_type const& pair, - uint32_t* warp_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; + __host__ __device__ Value get_empty_value_sentinel() const noexcept + { + return impl_.get_empty_value_sentinel(); + } /** - * @brief Retrieves all the matches of a given pair contained in multimap using scalar - * loads with per-CG shared memory buffer. + * @brief Makes a copy of given `device_view` using non-owned memory. * - * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies - * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output only if - * `is_outer` is true. + * This function is intended to be used to create shared memory copies of small static maps, + * although global memory can be used as well. * - * @tparam cg_size The number of threads in CUDA Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from - * `InputIt`s `value_type`. - * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from - * the map's `value_type`. - * @tparam PairEqual Binary callable type - * @param g The Cooperative Group used to retrieve - * @param pair The pair to search for - * @param cg_counter Pointer to the CG counter - * @param probe_output_buffer Buffer of the matched probe pair sequence - * @param contained_output_buffer Buffer of the matched contained pair sequence - * @param num_matches Size of the output sequence - * @param probe_output_begin Beginning of the output sequence of the matched probe pairs - * @param contained_output_begin Beginning of the output sequence of the matched contained - * pairs - * @param pair_equal The binary callable used to compare two pairs for equality + * @tparam CG The type of the cooperative thread group + * @param g The cooperative thread group used to copy the slots + * @param source_device_view `device_view` to copy from + * @param memory_to_use Array large enough to support `capacity` elements. Object does not + * take the ownership of the memory + * @return Copy of passed `device_view` */ - template - __device__ void pair_retrieve_impl(CG const& g, - value_type const& pair, - uint32_t* cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; + template + __device__ static device_view make_copy(CG g, + pair_atomic_type* const memory_to_use, + device_view source_device_view) noexcept; - public: /** * @brief Flushes per-CG buffer into the output sequence. * @@ -1737,6 +1211,9 @@ class static_multimap { OutputIt1 probe_output_begin, OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept; + + private: + device_view_impl impl_; }; // class device_view /** @@ -1834,3 +1311,4 @@ class static_multimap { } // namespace cuco #include +#include From 8c9efe869a8b2216670e141f542985e31aee9ed6 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 15 Oct 2021 18:02:39 -0400 Subject: [PATCH 246/267] Minor cleanup: remove unnecessary include --- include/cuco/detail/static_multimap_impl.inl | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/cuco/detail/static_multimap_impl.inl b/include/cuco/detail/static_multimap_impl.inl index 601d030aa..dd694ac02 100644 --- a/include/cuco/detail/static_multimap_impl.inl +++ b/include/cuco/detail/static_multimap_impl.inl @@ -14,8 +14,6 @@ * limitations under the License. */ -#include - #include namespace cuco { From 68357743d31c698ed3f30633133f0f649d728475 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 25 Oct 2021 09:56:51 -0400 Subject: [PATCH 247/267] Move implementations into detail/static_multimap folder --- .../device_view_impl.inl} | 0 .../cuco/detail/{ => static_multimap}/static_multimap.inl | 0 .../{ => static_multimap}/static_multimap_kernels.cuh | 0 include/cuco/static_multimap.cuh | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) rename include/cuco/detail/{static_multimap_impl.inl => static_multimap/device_view_impl.inl} (100%) rename include/cuco/detail/{ => static_multimap}/static_multimap.inl (100%) rename include/cuco/detail/{ => static_multimap}/static_multimap_kernels.cuh (100%) diff --git a/include/cuco/detail/static_multimap_impl.inl b/include/cuco/detail/static_multimap/device_view_impl.inl similarity index 100% rename from include/cuco/detail/static_multimap_impl.inl rename to include/cuco/detail/static_multimap/device_view_impl.inl diff --git a/include/cuco/detail/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl similarity index 100% rename from include/cuco/detail/static_multimap.inl rename to include/cuco/detail/static_multimap/static_multimap.inl diff --git a/include/cuco/detail/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap/static_multimap_kernels.cuh similarity index 100% rename from include/cuco/detail/static_multimap_kernels.cuh rename to include/cuco/detail/static_multimap/static_multimap_kernels.cuh diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 5a73910c5..6cbfb0c08 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -42,7 +42,7 @@ #include #include #include -#include +#include namespace cuco { @@ -1310,5 +1310,5 @@ class static_multimap { } // namespace cuco -#include -#include +#include +#include From 092eca6ca295eac58483c2ef36df6b9bb2c0d5de Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 25 Oct 2021 11:49:10 -0400 Subject: [PATCH 248/267] Add static assert for ProbeSequence type check --- include/cuco/static_multimap.cuh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 6cbfb0c08..35272b7b4 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -152,6 +152,12 @@ class static_multimap { "Value type must have unique object representations or have been explicitly declared as safe " "for bitwise comparison via specialization of cuco::is_bitwise_comparable_v."); + static_assert(std::is_base_of_v< + cuco::detail::probe_sequence_base, + ProbeSequence>, + "ProbeSequence must be a specialization of either cuco::detail::double_hashing or " + "cuco::detail::linear_probing"); + public: using value_type = cuco::pair_type; using key_type = Key; From a513ecbc2fdfa74346485f100f2f83e7dabe791a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 25 Oct 2021 15:38:03 -0400 Subject: [PATCH 249/267] Cleanups: use flushing_cg instead of warp for retrieve --- .../static_multimap/device_view_impl.inl | 55 +++-- ...tatic_multimap_kernels.cuh => kernels.cuh} | 154 +++---------- .../static_multimap/static_multimap.inl | 217 +++++++----------- include/cuco/static_multimap.cuh | 125 ++-------- 4 files changed, 168 insertions(+), 383 deletions(-) rename include/cuco/detail/static_multimap/{static_multimap_kernels.cuh => kernels.cuh} (84%) diff --git a/include/cuco/detail/static_multimap/device_view_impl.inl b/include/cuco/detail/static_multimap/device_view_impl.inl index dd694ac02..548dd7907 100644 --- a/include/cuco/detail/static_multimap/device_view_impl.inl +++ b/include/cuco/detail/static_multimap/device_view_impl.inl @@ -840,7 +840,7 @@ class static_multimap::device_view_ /** * @brief Retrieves all the matches of a given key contained in multimap using vector - * loads with per-warp shared memory buffer. + * loads with per-flushing-CG shared memory buffer. * * For key `k` existing in the map, copies `k` and all associated values to unspecified * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and @@ -848,16 +848,16 @@ class static_multimap::device_view_ * * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam warpT Warp (Cooperative Group) type - * @tparam CG Cooperative Group type + * @tparam FlushingCG Type of Cooperative Group used to flush output buffer + * @tparam ProbingCG Type of Cooperative Group used to retrieve * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type - * @param warp The Cooperative Group (or warp) used to flush output buffer - * @param g The Cooperative Group used to retrieve + * @param flushing_cg The Cooperative Group used to flush output buffer + * @param probing_cg The Cooperative Group used to retrieve * @param k The key to search for - * @param warp_counter Pointer to the warp counter + * @param flushing_cg_counter Pointer to the flushing cg counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs @@ -866,28 +866,28 @@ class static_multimap::device_view_ */ template - __device__ void retrieve(warpT const& warp, - CG const& g, + __device__ void retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, Key const& k, - uint32_t* warp_counter, + uint32_t* flushing_cg_counter, value_type* output_buffer, atomicT* num_matches, OutputIt output_begin, KeyEqual key_equal) noexcept { - const uint32_t cg_lane_id = g.thread_rank(); + const uint32_t cg_lane_id = probing_cg.thread_rank(); - auto current_slot = initial_slot(g, k); + auto current_slot = initial_slot(probing_cg, k); bool running = true; [[maybe_unused]] bool found_match = false; - while (warp.any(running)) { + while (flushing_cg.any(running)) { if (running) { value_type arr[2]; load_pair_array(&arr[0], current_slot); @@ -898,8 +898,8 @@ class static_multimap::device_view_ detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); auto const first_equals = (not first_slot_is_empty and key_equal(arr[0].first, k)); auto const second_equals = (not second_slot_is_empty and key_equal(arr[1].first, k)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); + auto const first_exists = probing_cg.ballot(first_equals); + auto const second_exists = probing_cg.ballot(second_equals); if (first_exists or second_exists) { if constexpr (is_outer) { found_match = true; } @@ -909,9 +909,9 @@ class static_multimap::device_view_ uint32_t output_idx; if (0 == cg_lane_id) { - output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + output_idx = atomicAdd(flushing_cg_counter, (num_first_matches + num_second_matches)); } - output_idx = g.shfl(output_idx, 0); + output_idx = probing_cg.shfl(output_idx, 0); if (first_equals) { auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); @@ -926,11 +926,11 @@ class static_multimap::device_view_ cuco::make_pair(std::move(key), std::move(arr[1].second)); } } - if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if (probing_cg.any(first_slot_is_empty or second_slot_is_empty)) { running = false; if constexpr (is_outer) { if ((not found_match) && (cg_lane_id == 0)) { - auto output_idx = atomicAdd(warp_counter, 1); + auto output_idx = atomicAdd(flushing_cg_counter, 1); Key key = k; output_buffer[output_idx] = cuco::make_pair( std::move(key), std::move(this->get_empty_value_sentinel())); @@ -939,11 +939,12 @@ class static_multimap::device_view_ } } // if running - warp.sync(); - if (*warp_counter + warp.size() * vector_width() > buffer_size) { - flush_output_buffer(warp, *warp_counter, output_buffer, num_matches, output_begin); + flushing_cg.sync(); + if (*flushing_cg_counter + flushing_cg.size() * vector_width() > buffer_size) { + flush_output_buffer( + flushing_cg, *flushing_cg_counter, output_buffer, num_matches, output_begin); // First lane reset warp-level counter - if (warp.thread_rank() == 0) { *warp_counter = 0; } + if (flushing_cg.thread_rank() == 0) { *flushing_cg_counter = 0; } } current_slot = next_slot(current_slot); @@ -958,7 +959,6 @@ class static_multimap::device_view_ * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and * `empty_value_sentinel()` into the output only if `is_outer` is true. * - * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type @@ -975,8 +975,7 @@ class static_multimap::device_view_ * @param key_equal The binary callable used to compare two keys * for equality */ - template ::device_view_ g.sync(); // Flush if the next iteration won't fit into buffer - if ((*cg_counter + cg_size) > buffer_size) { + if ((*cg_counter + g.size()) > buffer_size) { flush_output_buffer(g, *cg_counter, output_buffer, num_matches, output_begin); // First lane reset CG-level counter if (lane_id == 0) { *cg_counter = 0; } diff --git a/include/cuco/detail/static_multimap/static_multimap_kernels.cuh b/include/cuco/detail/static_multimap/kernels.cuh similarity index 84% rename from include/cuco/detail/static_multimap/static_multimap_kernels.cuh rename to include/cuco/detail/static_multimap/kernels.cuh index d3b54af5b..e7d597423 100644 --- a/include/cuco/detail/static_multimap/static_multimap_kernels.cuh +++ b/include/cuco/detail/static_multimap/kernels.cuh @@ -322,8 +322,8 @@ __global__ void pair_count( * output_begin + *num_matches - 1)`. Use `count()` to determine the size of the output range. * * @tparam block_size The size of the thread block - * @tparam warp_size The size of the warp - * @tparam tile_size The number of threads in the Cooperative Groups + * @tparam flushing_cg_size The size of the CG for flushing output buffers + * @tparam probing_cg_size The size of the CG for parallel retrievals * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether non-matches are included in the output * @tparam InputIt Device accessible input iterator whose `value_type` is @@ -341,8 +341,8 @@ __global__ void pair_count( * @param key_equal The binary function to compare two keys for equality */ template -__global__ void vectorized_retrieve(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_matches, - viewT view, - KeyEqual key_equal) +__global__ void retrieve(InputIt first, + InputIt last, + OutputIt output_begin, + atomicT* num_matches, + viewT view, + KeyEqual key_equal) { using pair_type = typename viewT::value_type; - constexpr uint32_t num_warps = block_size / warp_size; - const uint32_t warp_id = threadIdx.x / warp_size; + constexpr uint32_t num_flushing_cgs = block_size / flushing_cg_size; + const uint32_t flushing_cg_id = threadIdx.x / flushing_cg_size; - auto warp = cg::tiled_partition(cg::this_thread_block()); - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; + auto flushing_cg = cg::tiled_partition(cg::this_thread_block()); + auto probing_cg = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto key_idx = tid / probing_cg_size; - __shared__ pair_type output_buffer[num_warps][buffer_size]; + __shared__ pair_type output_buffer[num_flushing_cgs][buffer_size]; // TODO: replace this with shared memory cuda::atomic variables once the dynamiic initialization - // warning issue is solved __shared__ atomicT toto_countter[num_warps]; - __shared__ uint32_t warp_counter[num_warps]; + // warning issue is solved __shared__ atomicT counter[num_flushing_cgs][buffer_size]; + __shared__ uint32_t flushing_cg_counter[num_flushing_cgs]; - if (warp.thread_rank() == 0) { warp_counter[warp_id] = 0; } + if (flushing_cg.thread_rank() == 0) { flushing_cg_counter[flushing_cg_id] = 0; } - while (warp.any(first + key_idx < last)) { - bool active_flag = first + key_idx < last; - auto active_warp = cg::binary_partition(warp, active_flag); + while (flushing_cg.any(first + key_idx < last)) { + bool active_flag = first + key_idx < last; + auto active_flushing_cg = cg::binary_partition(flushing_cg, active_flag); if (active_flag) { auto key = *(first + key_idx); if constexpr (is_outer) { - view.retrieve_outer(active_warp, - tile, + view.retrieve_outer(active_flushing_cg, + probing_cg, key, - &warp_counter[warp_id], - output_buffer[warp_id], + &flushing_cg_counter[flushing_cg_id], + output_buffer[flushing_cg_id], num_matches, output_begin, key_equal); } else { - view.retrieve(active_warp, - tile, + view.retrieve(active_flushing_cg, + probing_cg, key, - &warp_counter[warp_id], - output_buffer[warp_id], + &flushing_cg_counter[flushing_cg_id], + output_buffer[flushing_cg_id], num_matches, output_begin, key_equal); } } - key_idx += (gridDim.x * block_size) / tile_size; - } - - // Final flush of output buffer - if (warp_counter[warp_id] > 0) { - view.flush_output_buffer( - warp, warp_counter[warp_id], output_buffer[warp_id], num_matches, output_begin); - } -} - -/** - * @brief Retrieves all the values corresponding to all keys in the range `[first, last)` using - * scalar loads combined with per-CG shared memory buffer. - * - * For key `k = *(first + i)` existing in the map, copies `k` and all associated values to - * unspecified locations in `[output_begin, output_end)`. If `k` does not have any matches, copies - * `k` and `empty_value_sentinel()` into the output only if `is_outer` is true. - * - * Behavior is undefined if the total number of matching keys exceeds `std::distance(output_begin, - * output_begin + *num_matches - 1)`. Use `count()` to determine the size of the output range. - * - * @tparam block_size The size of the thread block - * @tparam warp_size The size of the warp - * @tparam tile_size The number of threads in the Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether non-matches are included in the output - * @tparam InputIt Device accessible input iterator whose `value_type` is - * convertible to the map's `key_type` - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` - * @tparam atomicT Type of atomic storage - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam KeyEqual Binary callable type - * @param first Beginning of the sequence of keys - * @param last End of the sequence of keys - * @param output_begin Beginning of the sequence of values retrieved for each key - * @param num_matches Size of the output sequence - * @param view Device view used to access the hash map's slot storage - * @param key_equal The binary function to compare two keys for equality - */ -template -__global__ void retrieve(InputIt first, - InputIt last, - OutputIt output_begin, - atomicT* num_matches, - viewT view, - KeyEqual key_equal) -{ - using pair_type = typename viewT::value_type; - - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto key_idx = tid / tile_size; - - constexpr uint32_t num_cgs = block_size / tile_size; - const uint32_t cg_id = threadIdx.x / tile_size; - const uint32_t lane_id = tile.thread_rank(); - - __shared__ pair_type output_buffer[num_cgs][buffer_size]; - __shared__ uint32_t cg_counter[num_cgs]; - - if (lane_id == 0) { cg_counter[cg_id] = 0; } - - while (first + key_idx < last) { - auto key = *(first + key_idx); - if constexpr (is_outer) { - view.retrieve_outer( - tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); - } else { - view.retrieve( - tile, key, &cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin, key_equal); - } - key_idx += (gridDim.x * block_size) / tile_size; + key_idx += (gridDim.x * block_size) / probing_cg_size; } // Final flush of output buffer - if (cg_counter[cg_id] > 0) { - view.flush_output_buffer( - tile, cg_counter[cg_id], output_buffer[cg_id], num_matches, output_begin); + if (flushing_cg_counter[flushing_cg_id] > 0) { + view.flush_output_buffer(flushing_cg, + flushing_cg_counter[flushing_cg_id], + output_buffer[flushing_cg_id], + num_matches, + output_begin); } } diff --git a/include/cuco/detail/static_multimap/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl index 4a4386b48..7f65482b7 100644 --- a/include/cuco/detail/static_multimap/static_multimap.inl +++ b/include/cuco/detail/static_multimap/static_multimap.inl @@ -271,50 +271,33 @@ OutputIt static_multimap::retrieve( // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr auto block_size = 128; constexpr bool is_outer = false; - auto constexpr block_size = 128; - auto const grid_size = [&]() { - if constexpr (uses_vector_load()) { - return detail::get_grid_size(detail::vectorized_retrieve, - block_size); - } - if constexpr (not uses_vector_load()) { - return detail::get_grid_size(detail::retrieve, - block_size); - } + auto const flushing_cg_size = [&]() { + if constexpr (uses_vector_load()) { return warp_size(); } + return cg_size(); }(); + auto const grid_size = detail::get_grid_size(detail::retrieve, + block_size); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - if constexpr (uses_vector_load()) { - detail::vectorized_retrieve - <<>>( - first, last, output_begin, d_counter_.get(), view, key_equal); - } else { - detail::retrieve - <<>>( - first, last, output_begin, d_counter_.get(), view, key_equal); - } + detail::retrieve + <<>>( + first, last, output_begin, d_counter_.get(), view, key_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -337,50 +320,33 @@ OutputIt static_multimap::retrieve_ // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr auto block_size = 128; constexpr bool is_outer = true; - auto constexpr block_size = 128; - auto const grid_size = [&]() { - if constexpr (uses_vector_load()) { - return detail::get_grid_size(detail::vectorized_retrieve, - block_size); - } - if constexpr (not uses_vector_load()) { - return detail::get_grid_size(detail::retrieve, - block_size); - } + auto const flushing_cg_size = [&]() { + if constexpr (uses_vector_load()) { return warp_size(); } + return cg_size(); }(); + auto const grid_size = detail::get_grid_size(detail::retrieve, + block_size); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - if constexpr (uses_vector_load()) { - detail::vectorized_retrieve - <<>>( - first, last, output_begin, d_counter_.get(), view, key_equal); - } else { - detail::retrieve - <<>>( - first, last, output_begin, d_counter_.get(), view, key_equal); - } + detail::retrieve + <<>>( + first, last, output_begin, d_counter_.get(), view, key_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -723,24 +689,36 @@ template template __device__ void static_multimap::device_view::retrieve( - warpT const& warp, - CG const& g, + FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, Key const& k, - uint32_t* warp_counter, + uint32_t* flushing_cg_counter, value_type* output_buffer, atomicT* num_matches, OutputIt output_begin, KeyEqual key_equal) noexcept { constexpr bool is_outer = false; - impl_.retrieve( - warp, g, k, warp_counter, output_buffer, num_matches, output_begin, key_equal); + if constexpr (uses_vector_load()) { + impl_.retrieve(flushing_cg, + probing_cg, + k, + flushing_cg_counter, + output_buffer, + num_matches, + output_begin, + key_equal); + } else // In the case of scalar load, flushing CG is the same as probing CG + { + impl_.retrieve( + probing_cg, k, flushing_cg_counter, output_buffer, num_matches, output_begin, key_equal); + } } template template __device__ void static_multimap::device_view::retrieve_outer( - warpT const& warp, - CG const& g, + FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, Key const& k, - uint32_t* warp_counter, + uint32_t* flushing_cg_counter, value_type* output_buffer, atomicT* num_matches, OutputIt output_begin, KeyEqual key_equal) noexcept { constexpr bool is_outer = true; - impl_.retrieve( - warp, g, k, warp_counter, output_buffer, num_matches, output_begin, key_equal); -} - -template -template -__device__ void static_multimap::device_view::retrieve( - CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept -{ - constexpr bool is_outer = false; - impl_.retrieve( - g, k, cg_counter, output_buffer, num_matches, output_begin, key_equal); -} - -template -template -__device__ void -static_multimap::device_view::retrieve_outer( - CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept -{ - constexpr bool is_outer = true; - impl_.retrieve( - g, k, cg_counter, output_buffer, num_matches, output_begin, key_equal); + if constexpr (uses_vector_load()) { + impl_.retrieve(flushing_cg, + probing_cg, + k, + flushing_cg_counter, + output_buffer, + num_matches, + output_begin, + key_equal); + } else // In the case of scalar load, flushing CG is the same as probing CG + { + impl_.retrieve( + probing_cg, k, flushing_cg_counter, output_buffer, num_matches, output_begin, key_equal); + } } template #include #include -#include +#include namespace cuco { @@ -879,23 +879,23 @@ class static_multimap { PairEqual pair_equal) noexcept; /** - * @brief Retrieves all the matches of a given key contained in multimap using vector - * loads with per-warp shared memory buffer. + * @brief Retrieves all the matches of a given key contained in multimap with per-flushing-CG + * shared memory buffer. * * For key `k` existing in the map, copies `k` and all associated values to unspecified * locations in `[output_begin, output_end)`. * * @tparam buffer_size Size of the output buffer - * @tparam warpT Warp (Cooperative Group) type - * @tparam CG Cooperative Group type + * @tparam FlushingCG Type of Cooperative Group used to flush output buffer + * @tparam ProbingCG Type of Cooperative Group for parallel retrieval * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type - * @param warp The Cooperative Group (or warp) used to flush output buffer - * @param g The Cooperative Group used to retrieve + * @param flushing_cg The Cooperative Group used to flush output buffer + * @param probing_cg The Cooperative Group used to retrieve * @param k The key to search for - * @param warp_counter Pointer to the warp counter + * @param flushing_cg_counter Pointer to flushing_cg counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs @@ -903,39 +903,39 @@ class static_multimap { * for equality */ template > - __device__ void retrieve(warpT const& warp, - CG const& g, + __device__ void retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, Key const& k, - uint32_t* warp_counter, + uint32_t* flushing_cg_counter, value_type* output_buffer, atomicT* num_matches, OutputIt output_begin, KeyEqual key_equal = KeyEqual{}) noexcept; /** - * @brief Retrieves all the matches of a given key contained in multimap using vector - * loads with per-warp shared memory buffer. + * @brief Retrieves all the matches of a given key contained in multimap with per-flushing-CG + * shared memory buffer. * * For key `k` existing in the map, copies `k` and all associated values to unspecified * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and * `empty_value_sentinel()` into the output. * * @tparam buffer_size Size of the output buffer - * @tparam warpT Warp (Cooperative Group) type - * @tparam CG Cooperative Group type + * @tparam FlushingCG Type of Cooperative Group used to flush output buffer + * @tparam ProbingCG Type of Cooperative Group for parallel retrieval * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * constructible from the map's `value_type` * @tparam KeyEqual Binary callable type - * @param warp The Cooperative Group (or warp) used to flush output buffer - * @param g The Cooperative Group used to retrieve + * @param flushing_cg The Cooperative Group used to flush output buffer + * @param probing_cg The Cooperative Group used to retrieve * @param k The key to search for - * @param warp_counter Pointer to the warp counter + * @param flushing_cg_counter Pointer to flushing_cg counter * @param output_buffer Shared memory buffer of the key/value pair sequence * @param num_matches Size of the output sequence * @param output_begin Beginning of the output sequence of key/value pairs @@ -943,90 +943,15 @@ class static_multimap { * for equality */ template > - __device__ void retrieve_outer(warpT const& warp, - CG const& g, - Key const& k, - uint32_t* warp_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Retrieves all the matches of a given key contained in multimap using scalar - * loads with per-CG shared memory buffer. - * - * For key `k` existing in the map, copies `k` and all associated values to unspecified - * locations in `[output_begin, output_end)`. - * - * @tparam cg_size The number of threads in CUDA Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to retrieve - * @param k The key to search for - * @param cg_counter Pointer to the CG counter - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - * @param key_equal The binary callable used to compare two keys - * for equality - */ - template > - __device__ void retrieve(CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; - - /** - * @brief Retrieves all the matches of a given key contained in multimap using scalar - * loads with per-CG shared memory buffer. - * - * For key `k` existing in the map, copies `k` and all associated values to unspecified - * locations in `[output_begin, output_end)`. If `k` does not have any matches, copies `k` and - * `empty_value_sentinel` into the output. - * - * @tparam cg_size The number of threads in CUDA Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt Device accessible output iterator whose `value_type` is - * constructible from the map's `value_type` - * @tparam KeyEqual Binary callable type - * @param g The Cooperative Group used to retrieve - * @param k The key to search for - * @param cg_counter Pointer to the CG counter - * @param output_buffer Shared memory buffer of the key/value pair sequence - * @param num_matches Size of the output sequence - * @param output_begin Beginning of the output sequence of key/value pairs - * @param key_equal The binary callable used to compare two keys - * for equality - */ - template > - __device__ void retrieve_outer(CG const& g, + __device__ void retrieve_outer(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, Key const& k, - uint32_t* cg_counter, + uint32_t* flushing_cg_counter, value_type* output_buffer, atomicT* num_matches, OutputIt output_begin, From a4cfcbec765c60312d2c4611b949a166a857a3e4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 25 Oct 2021 16:50:29 -0400 Subject: [PATCH 250/267] Cleanups: use flushing CG logic for pair_retrieve --- .../static_multimap/device_view_impl.inl | 56 ++-- .../cuco/detail/static_multimap/kernels.cuh | 199 +++--------- .../static_multimap/static_multimap.inl | 298 ++++++------------ include/cuco/static_multimap.cuh | 137 ++------ 4 files changed, 192 insertions(+), 498 deletions(-) diff --git a/include/cuco/detail/static_multimap/device_view_impl.inl b/include/cuco/detail/static_multimap/device_view_impl.inl index 548dd7907..ad0df9fe9 100644 --- a/include/cuco/detail/static_multimap/device_view_impl.inl +++ b/include/cuco/detail/static_multimap/device_view_impl.inl @@ -1047,7 +1047,7 @@ class static_multimap::device_view_ /** * @brief Retrieves all the matches of a given pair contained in multimap using vector - * loads with per-warp shared memory buffer. + * loads with per-flushing-CG shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in @@ -1057,18 +1057,18 @@ class static_multimap::device_view_ * * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed - * @tparam warpT Warp (Cooperative Group) type - * @tparam CG Cooperative Group type + * @tparam FlushingCG Type of Cooperative Group used to flush output buffer + * @tparam ProbingCG Type of Cooperative Group used to retrieve * @tparam atomicT Type of atomic storage * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from * `InputIt`s `value_type`. * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from * the map's `value_type`. * @tparam PairEqual Binary callable type - * @param warp The Cooperative Group (or warp) used to flush output buffer - * @param g The Cooperative Group used to retrieve + * @param flushing_cg The Cooperative Group used to flush output buffer + * @param probing_cg The Cooperative Group used to retrieve * @param pair The pair to search for - * @param warp_counter Pointer to the warp counter + * @param flushing_cg_counter Pointer to the flushing CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence * @param num_matches Size of the output sequence @@ -1079,16 +1079,16 @@ class static_multimap::device_view_ */ template - __device__ void pair_retrieve(warpT const& warp, - CG const& g, + __device__ void pair_retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, value_type const& pair, - uint32_t* warp_counter, + uint32_t* flushing_cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, @@ -1096,15 +1096,15 @@ class static_multimap::device_view_ OutputIt2 contained_output_begin, PairEqual pair_equal) noexcept { - const uint32_t cg_lane_id = g.thread_rank(); + const uint32_t cg_lane_id = probing_cg.thread_rank(); auto key = pair.first; - auto current_slot = initial_slot(g, key); + auto current_slot = initial_slot(probing_cg, key); bool running = true; [[maybe_unused]] bool found_match = false; - while (warp.any(running)) { + while (flushing_cg.any(running)) { if (running) { value_type arr[2]; load_pair_array(&arr[0], current_slot); @@ -1115,8 +1115,8 @@ class static_multimap::device_view_ detail::bitwise_compare(arr[1].first, this->get_empty_key_sentinel()); auto const first_equals = (not first_slot_is_empty and pair_equal(arr[0], pair)); auto const second_equals = (not second_slot_is_empty and pair_equal(arr[1], pair)); - auto const first_exists = g.ballot(first_equals); - auto const second_exists = g.ballot(second_equals); + auto const first_exists = probing_cg.ballot(first_equals); + auto const second_exists = probing_cg.ballot(second_equals); if (first_exists or second_exists) { if constexpr (is_outer) { found_match = true; } @@ -1126,9 +1126,9 @@ class static_multimap::device_view_ uint32_t output_idx; if (0 == cg_lane_id) { - output_idx = atomicAdd(warp_counter, (num_first_matches + num_second_matches)); + output_idx = atomicAdd(flushing_cg_counter, (num_first_matches + num_second_matches)); } - output_idx = g.shfl(output_idx, 0); + output_idx = probing_cg.shfl(output_idx, 0); if (first_equals) { auto lane_offset = __popc(first_exists & ((1 << cg_lane_id) - 1)); @@ -1141,11 +1141,11 @@ class static_multimap::device_view_ contained_output_buffer[output_idx + num_first_matches + lane_offset] = arr[1]; } } - if (g.any(first_slot_is_empty or second_slot_is_empty)) { + if (probing_cg.any(first_slot_is_empty or second_slot_is_empty)) { running = false; if constexpr (is_outer) { if ((not found_match) && (cg_lane_id == 0)) { - auto output_idx = atomicAdd(warp_counter, 1); + auto output_idx = atomicAdd(flushing_cg_counter, 1); probe_output_buffer[output_idx] = pair; contained_output_buffer[output_idx] = cuco::make_pair(std::move(this->get_empty_key_sentinel()), @@ -1155,17 +1155,17 @@ class static_multimap::device_view_ } } // if running - warp.sync(); - if (*warp_counter + warp.size() * vector_width() > buffer_size) { - flush_output_buffer(warp, - *warp_counter, + flushing_cg.sync(); + if (*flushing_cg_counter + flushing_cg.size() * vector_width() > buffer_size) { + flush_output_buffer(flushing_cg, + *flushing_cg_counter, probe_output_buffer, contained_output_buffer, num_matches, probe_output_begin, contained_output_begin); // First lane reset warp-level counter - if (warp.thread_rank() == 0) { *warp_counter = 0; } + if (flushing_cg.thread_rank() == 0) { *flushing_cg_counter = 0; } } current_slot = next_slot(current_slot); @@ -1182,7 +1182,6 @@ class static_multimap::device_view_ * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output only if * `is_outer` is true. * - * @tparam cg_size The number of threads in CUDA Cooperative Groups * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether outer join is peformed * @tparam CG Cooperative Group type @@ -1203,8 +1202,7 @@ class static_multimap::device_view_ * pairs * @param pair_equal The binary callable used to compare two pairs for equality */ - template ::device_view_ g.sync(); // Flush if the next iteration won't fit into buffer - if ((*cg_counter + cg_size) > buffer_size) { + if ((*cg_counter + g.size()) > buffer_size) { flush_output_buffer(g, *cg_counter, probe_output_buffer, diff --git a/include/cuco/detail/static_multimap/kernels.cuh b/include/cuco/detail/static_multimap/kernels.cuh index e7d597423..83aa2c640 100644 --- a/include/cuco/detail/static_multimap/kernels.cuh +++ b/include/cuco/detail/static_multimap/kernels.cuh @@ -311,8 +311,7 @@ __global__ void pair_count( } /** - * @brief Retrieves all the values corresponding to all keys in the range `[first, last)` - * using vector loads combined with per-warp shared memory buffer. + * @brief Retrieves all the values corresponding to all keys in the range `[first, last)`. * * For key `k = *(first + i)` existing in the map, copies `k` and all associated values to * unspecified locations in `[output_begin, output_end)`. If `k` does not have any matches, copies @@ -322,7 +321,7 @@ __global__ void pair_count( * output_begin + *num_matches - 1)`. Use `count()` to determine the size of the output range. * * @tparam block_size The size of the thread block - * @tparam flushing_cg_size The size of the CG for flushing output buffers + * @tparam flushing_cg_size The size of the CG used to flush output buffers * @tparam probing_cg_size The size of the CG for parallel retrievals * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether non-matches are included in the output @@ -414,8 +413,7 @@ __global__ void retrieve(InputIt first, } /** - * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)` - * using vector loads combined with per-warp shared memory buffer. + * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)`. * * If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to unspecified * locations in `probe_output_begin`, and slot[j] is stored to unspecified locations in @@ -427,8 +425,8 @@ __global__ void retrieve(InputIt first, * output_begin + *num_matches - 1)`. Use `pair_count()` to determine the size of the output range. * * @tparam block_size The size of the thread block - * @tparam warp_size The size of the warp - * @tparam tile_size The number of threads in the Cooperative Groups + * @tparam flushing_cg_size The size of the CG used to flush output buffers + * @tparam probing_cg_size The size of the CG for parallel retrievals * @tparam buffer_size Size of the output buffer * @tparam is_outer Boolean flag indicating whether non-matches are included in the output * @tparam InputIt Device accessible random access input iterator where @@ -450,8 +448,8 @@ __global__ void retrieve(InputIt first, * @param pair_equal The binary function to compare two pairs for equality */ template -__global__ void vectorized_pair_retrieve(InputIt first, - InputIt last, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - atomicT* num_matches, - viewT view, - PairEqual pair_equal) +__global__ void pair_retrieve(InputIt first, + InputIt last, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + atomicT* num_matches, + viewT view, + PairEqual pair_equal) { using pair_type = typename viewT::value_type; - constexpr uint32_t num_warps = block_size / warp_size; - const uint32_t warp_id = threadIdx.x / warp_size; + constexpr uint32_t num_flushing_cgs = block_size / flushing_cg_size; + const uint32_t flushing_cg_id = threadIdx.x / flushing_cg_size; - auto warp = cg::tiled_partition(cg::this_thread_block()); - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto pair_idx = tid / tile_size; + auto flushing_cg = cg::tiled_partition(cg::this_thread_block()); + auto probing_cg = cg::tiled_partition(cg::this_thread_block()); + auto tid = block_size * blockIdx.x + threadIdx.x; + auto pair_idx = tid / probing_cg_size; - __shared__ pair_type probe_output_buffer[num_warps][buffer_size]; - __shared__ pair_type contained_output_buffer[num_warps][buffer_size]; + __shared__ pair_type probe_output_buffer[num_flushing_cgs][buffer_size]; + __shared__ pair_type contained_output_buffer[num_flushing_cgs][buffer_size]; // TODO: replace this with shared memory cuda::atomic variables once the dynamiic initialization - // warning issue is solved __shared__ atomicT toto_countter[num_warps]; - __shared__ uint32_t warp_counter[num_warps]; + // warning issue is solved __shared__ atomicT counter[num_flushing_cgs][buffer_size]; + __shared__ uint32_t flushing_cg_counter[num_flushing_cgs]; - if (warp.thread_rank() == 0) { warp_counter[warp_id] = 0; } + if (flushing_cg.thread_rank() == 0) { flushing_cg_counter[flushing_cg_id] = 0; } - while (warp.any(first + pair_idx < last)) { - bool active_flag = first + pair_idx < last; - auto active_warp = cg::binary_partition(warp, active_flag); + while (flushing_cg.any(first + pair_idx < last)) { + bool active_flag = first + pair_idx < last; + auto active_flushing_cg = cg::binary_partition(flushing_cg, active_flag); if (active_flag) { pair_type pair = *(first + pair_idx); if constexpr (is_outer) { - view.pair_retrieve_outer(active_warp, - tile, + view.pair_retrieve_outer(active_flushing_cg, + probing_cg, pair, - &warp_counter[warp_id], - probe_output_buffer[warp_id], - contained_output_buffer[warp_id], + &flushing_cg_counter[flushing_cg_id], + probe_output_buffer[flushing_cg_id], + contained_output_buffer[flushing_cg_id], num_matches, probe_output_begin, contained_output_begin, pair_equal); } else { - view.pair_retrieve(active_warp, - tile, + view.pair_retrieve(active_flushing_cg, + probing_cg, pair, - &warp_counter[warp_id], - probe_output_buffer[warp_id], - contained_output_buffer[warp_id], + &flushing_cg_counter[flushing_cg_id], + probe_output_buffer[flushing_cg_id], + contained_output_buffer[flushing_cg_id], num_matches, probe_output_begin, contained_output_begin, pair_equal); } } - pair_idx += (gridDim.x * block_size) / tile_size; - } - - // Final flush of output buffer - if (warp_counter[warp_id] > 0) { - view.flush_output_buffer(warp, - warp_counter[warp_id], - probe_output_buffer[warp_id], - contained_output_buffer[warp_id], - num_matches, - probe_output_begin, - contained_output_begin); - } -} - -/** - * @brief Retrieves all pairs matching the input probe pair in the range `[first, last)` - * using scalar loads combined with per-CG shared memory buffer. - * - * If pair_equal(*(first + i), slot[j]) returns true, then *(first+i) is stored to unspecified - * locations in `probe_output_begin`, and slot[j] is stored to unspecified locations in - * `contained_output_begin`. If the given pair has no matches in the map, copies *(first + i) in - * `probe_output_begin` and a pair of `empty_key_sentinel` and `empty_value_sentinel` in - * `contained_output_begin` only when `is_outer` is `true`. - * - * Behavior is undefined if the total number of matching pairs exceeds `std::distance(output_begin, - * output_begin + *num_matches - 1)`. Use `pair_count()` to determine the size of the output range. - * - * @tparam block_size The size of the thread block - * @tparam warp_size The size of the warp - * @tparam tile_size The number of threads in the Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam is_outer Boolean flag indicating whether non-matches are included in the output - * @tparam InputIt Device accessible random access input iterator where - * `std::is_convertible::value_type, - * static_multimap::value_type>` is `true` - * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from - * `InputIt`s `value_type`. - * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from - * the map's `value_type`. - * @tparam atomicT Type of atomic storage - * @tparam viewT Type of device view allowing access of hash map storage - * @tparam PairEqual Binary callable type - * @param first Beginning of the sequence of keys - * @param last End of the sequence of keys - * @param probe_output_begin Beginning of the sequence of the matched probe pairs - * @param contained_output_begin Beginning of the sequence of the matched contained pairs - * @param num_matches Size of the output sequence - * @param view Device view used to access the hash map's slot storage - * @param pair_equal The binary function to compare two pairs for equality - */ -template -__global__ void pair_retrieve(InputIt first, - InputIt last, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - atomicT* num_matches, - viewT view, - PairEqual pair_equal) -{ - using pair_type = typename viewT::value_type; - - auto tile = cg::tiled_partition(cg::this_thread_block()); - auto tid = block_size * blockIdx.x + threadIdx.x; - auto pair_idx = tid / tile_size; - - constexpr uint32_t num_cgs = block_size / tile_size; - const uint32_t cg_id = threadIdx.x / tile_size; - const uint32_t lane_id = tile.thread_rank(); - - __shared__ pair_type probe_output_buffer[num_cgs][buffer_size]; - __shared__ pair_type contained_output_buffer[num_cgs][buffer_size]; - __shared__ uint32_t cg_counter[num_cgs]; - - if (lane_id == 0) { cg_counter[cg_id] = 0; } - - while (first + pair_idx < last) { - typename viewT::value_type pair = *(first + pair_idx); - if constexpr (is_outer) { - view.pair_retrieve_outer(tile, - pair, - &cg_counter[cg_id], - probe_output_buffer[cg_id], - contained_output_buffer[cg_id], - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); - } else { - view.pair_retrieve(tile, - pair, - &cg_counter[cg_id], - probe_output_buffer[cg_id], - contained_output_buffer[cg_id], - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); - } - pair_idx += (gridDim.x * block_size) / tile_size; + pair_idx += (gridDim.x * block_size) / probing_cg_size; } // Final flush of output buffer - if (cg_counter[cg_id] > 0) { - view.flush_output_buffer(tile, - cg_counter[cg_id], - probe_output_buffer[cg_id], - contained_output_buffer[cg_id], + if (flushing_cg_counter[flushing_cg_id] > 0) { + view.flush_output_buffer(flushing_cg, + flushing_cg_counter[flushing_cg_id], + probe_output_buffer[flushing_cg_id], + contained_output_buffer[flushing_cg_id], num_matches, probe_output_begin, contained_output_begin); diff --git a/include/cuco/detail/static_multimap/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl index 7f65482b7..00160b18c 100644 --- a/include/cuco/detail/static_multimap/static_multimap.inl +++ b/include/cuco/detail/static_multimap/static_multimap.inl @@ -375,62 +375,34 @@ static_multimap::pair_retrieve( // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr auto block_size = 128; constexpr bool is_outer = false; - auto constexpr block_size = 128; - auto const grid_size = [&]() { - if constexpr (uses_vector_load()) { - return detail::get_grid_size(detail::vectorized_pair_retrieve, - block_size); - } - if constexpr (not uses_vector_load()) { - return detail::get_grid_size(detail::pair_retrieve, - block_size); - } + auto const flushing_cg_size = [&]() { + if constexpr (uses_vector_load()) { return warp_size(); } + return cg_size(); }(); + auto const grid_size = detail::get_grid_size(detail::pair_retrieve, + block_size); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - if constexpr (uses_vector_load()) { - detail::vectorized_pair_retrieve - <<>>(first, - last, - probe_output_begin, - contained_output_begin, - d_counter_.get(), - view, - pair_equal); - } else { - detail::pair_retrieve - <<>>(first, - last, - probe_output_begin, - contained_output_begin, - d_counter_.get(), - view, - pair_equal); - } + detail::pair_retrieve + <<>>( + first, last, probe_output_begin, contained_output_begin, d_counter_.get(), view, pair_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -458,62 +430,34 @@ static_multimap::pair_retrieve_oute // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); + constexpr auto block_size = 128; constexpr bool is_outer = true; - auto constexpr block_size = 128; - auto const grid_size = [&]() { - if constexpr (uses_vector_load()) { - return detail::get_grid_size(detail::vectorized_pair_retrieve, - block_size); - } - if constexpr (not uses_vector_load()) { - return detail::get_grid_size(detail::pair_retrieve, - block_size); - } + auto const flushing_cg_size = [&]() { + if constexpr (uses_vector_load()) { return warp_size(); } + return cg_size(); }(); + auto const grid_size = detail::get_grid_size(detail::pair_retrieve, + block_size); + cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; - if constexpr (uses_vector_load()) { - detail::vectorized_pair_retrieve - <<>>(first, - last, - probe_output_begin, - contained_output_begin, - d_counter_.get(), - view, - pair_equal); - } else { - detail::pair_retrieve - <<>>(first, - last, - probe_output_begin, - contained_output_begin, - d_counter_.get(), - view, - pair_equal); - } + detail::pair_retrieve + <<>>( + first, last, probe_output_begin, contained_output_begin, d_counter_.get(), view, pair_equal); + CUCO_CUDA_TRY(cudaMemcpyAsync( &h_counter, d_counter_.get(), sizeof(atomic_ctr_type), cudaMemcpyDeviceToHost, stream)); CUCO_CUDA_TRY(cudaStreamSynchronize(stream)); @@ -766,18 +710,18 @@ template template __device__ void static_multimap::device_view::pair_retrieve( - warpT const& warp, - CG const& g, + FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, value_type const& pair, - uint32_t* warp_counter, + uint32_t* flushing_cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, @@ -786,16 +730,29 @@ static_multimap::device_view::pair_ PairEqual pair_equal) noexcept { constexpr bool is_outer = false; - impl_.pair_retrieve(warp, - g, - pair, - warp_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); + if constexpr (uses_vector_load()) { + impl_.pair_retrieve(flushing_cg, + probing_cg, + pair, + flushing_cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } else // In the case of scalar load, flushing CG is the same as probing CG + { + impl_.pair_retrieve(probing_cg, + pair, + flushing_cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } } template template -__device__ void -static_multimap::device_view::pair_retrieve_outer( - warpT const& warp, - CG const& g, - value_type const& pair, - uint32_t* warp_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept -{ - constexpr bool is_outer = true; - impl_.pair_retrieve(warp, - g, - pair, - warp_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); -} - -template -template -__device__ void -static_multimap::device_view::pair_retrieve( - CG const& g, - value_type const& pair, - uint32_t* cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept -{ - constexpr bool is_outer = false; - impl_.pair_retrieve(g, - pair, - cg_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); -} - -template -template __device__ void static_multimap::device_view::pair_retrieve_outer( - CG const& g, + FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, value_type const& pair, - uint32_t* cg_counter, + uint32_t* flushing_cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, @@ -897,15 +781,29 @@ static_multimap::device_view::pair_ PairEqual pair_equal) noexcept { constexpr bool is_outer = true; - impl_.pair_retrieve(g, - pair, - cg_counter, - probe_output_buffer, - contained_output_buffer, - num_matches, - probe_output_begin, - contained_output_begin, - pair_equal); + if constexpr (uses_vector_load()) { + impl_.pair_retrieve(flushing_cg, + probing_cg, + pair, + flushing_cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } else // In the case of scalar load, flushing CG is the same as probing CG + { + impl_.pair_retrieve(probing_cg, + pair, + flushing_cg_counter, + probe_output_buffer, + contained_output_buffer, + num_matches, + probe_output_begin, + contained_output_begin, + pair_equal); + } } template - __device__ void pair_retrieve(warpT const& warp, - CG const& g, + __device__ void pair_retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, value_type const& pair, uint32_t* warp_counter, value_type* probe_output_buffer, @@ -1005,8 +1005,8 @@ class static_multimap { PairEqual pair_equal) noexcept; /** - * @brief Retrieves all the matches of a given pair contained in multimap using vector - * loads with per-warp shared memory buffer. + * @brief Retrieves all the matches of a given pair contained in multimap with per-flushing-CG + * shared memory buffer. * * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in @@ -1014,18 +1014,18 @@ class static_multimap { * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output. * * @tparam buffer_size Size of the output buffer - * @tparam warpT Warp (Cooperative Group) type - * @tparam CG Cooperative Group type + * @tparam FlushingCG Type of Cooperative Group used to flush output buffer + * @tparam ProbingCG Type of Cooperative Group for parallel retrieval * @tparam atomicT Type of atomic storage * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from * `InputIt`s `value_type`. * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from * the map's `value_type`. * @tparam PairEqual Binary callable type - * @param warp The Cooperative Group (or warp) used to flush output buffer - * @param g The Cooperative Group used to retrieve + * @param flushing_cg The Cooperative Group used to flush output buffer + * @param probing_cg The Cooperative Group used to retrieve * @param pair The pair to search for - * @param warp_counter Pointer to the warp counter + * @param flushing_cg_counter Pointer to the flushing CG counter * @param probe_output_buffer Buffer of the matched probe pair sequence * @param contained_output_buffer Buffer of the matched contained pair sequence * @param num_matches Size of the output sequence @@ -1035,107 +1035,16 @@ class static_multimap { * @param pair_equal The binary callable used to compare two pairs for equality */ template - __device__ void pair_retrieve_outer(warpT const& warp, - CG const& g, - value_type const& pair, - uint32_t* warp_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; - - /** - * @brief Retrieves all the matches of a given pair contained in multimap using scalar - * loads with per-CG shared memory buffer. - * - * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. - * - * @tparam cg_size The number of threads in CUDA Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from - * `InputIt`s `value_type`. - * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from - * the map's `value_type`. - * @tparam PairEqual Binary callable type - * @param g The Cooperative Group used to retrieve - * @param pair The pair to search for - * @param cg_counter Pointer to the CG counter - * @param probe_output_buffer Buffer of the matched probe pair sequence - * @param contained_output_buffer Buffer of the matched contained pair sequence - * @param num_matches Size of the output sequence - * @param probe_output_begin Beginning of the output sequence of the matched probe pairs - * @param contained_output_begin Beginning of the output sequence of the matched contained - * pairs - * @param pair_equal The binary callable used to compare two pairs for equality - */ - template - __device__ void pair_retrieve(CG const& g, - value_type const& pair, - uint32_t* cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; - - /** - * @brief Retrieves all the matches of a given pair contained in multimap using scalar - * loads with per-CG shared memory buffer. - * - * For pair `p`, if pair_equal(p, slot[j]) returns true, copies `p` to unspecified locations - * in `[probe_output_begin, probe_output_end)` and copies slot[j] to unspecified locations in - * `[contained_output_begin, contained_output_end)`. If `p` does not have any matches, copies - * `p` and a pair of `empty_key_sentinel` and `empty_value_sentinel` into the output. - * - * @tparam cg_size The number of threads in CUDA Cooperative Groups - * @tparam buffer_size Size of the output buffer - * @tparam CG Cooperative Group type - * @tparam atomicT Type of atomic storage - * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from - * `InputIt`s `value_type`. - * @tparam OutputIt2 Device accessible output iterator whose `value_type` is constructible from - * the map's `value_type`. - * @tparam PairEqual Binary callable type - * @param g The Cooperative Group used to retrieve - * @param pair The pair to search for - * @param cg_counter Pointer to the CG counter - * @param probe_output_buffer Buffer of the matched probe pair sequence - * @param contained_output_buffer Buffer of the matched contained pair sequence - * @param num_matches Size of the output sequence - * @param probe_output_begin Beginning of the output sequence of the matched probe pairs - * @param contained_output_begin Beginning of the output sequence of the matched contained - * pairs - * @param pair_equal The binary callable used to compare two pairs for equality - */ - template - __device__ void pair_retrieve_outer(CG const& g, + __device__ void pair_retrieve_outer(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, value_type const& pair, - uint32_t* cg_counter, + uint32_t* flushing_cg_counter, value_type* probe_output_buffer, value_type* contained_output_buffer, atomicT* num_matches, From 772d74c80d72f9abd3fa5a577040a88d6e3ad94e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 26 Oct 2021 12:20:12 -0400 Subject: [PATCH 251/267] Forinline device functions --- include/cuco/detail/probe_sequences.cuh | 17 +- .../static_multimap/device_view_impl.inl | 163 +++++++++--------- .../static_multimap/static_multimap.inl | 30 ++-- include/cuco/static_multimap.cuh | 155 +++++++++-------- 4 files changed, 194 insertions(+), 171 deletions(-) diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/detail/probe_sequences.cuh index b377398ee..8b725f325 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/detail/probe_sequences.cuh @@ -88,17 +88,20 @@ class probe_sequence_base { /** * @brief Returns the capacity of the hash map. */ - __host__ __device__ std::size_t get_capacity() const noexcept { return capacity_; } + __host__ __device__ __forceinline__ std::size_t get_capacity() const noexcept + { + return capacity_; + } /** * @brief Returns slots array. */ - __device__ iterator get_slots() noexcept { return slots_; } + __device__ __forceinline__ iterator get_slots() noexcept { return slots_; } /** * @brief Returns slots array. */ - __device__ const_iterator get_slots() const noexcept { return slots_; } + __device__ __forceinline__ const_iterator get_slots() const noexcept { return slots_; } protected: iterator slots_; ///< Pointer to beginning of the hash map slots @@ -161,7 +164,7 @@ class linear_probing : public probe_sequence_base { * @return Pointer to the initial slot for `k` */ template - __device__ iterator initial_slot(CG const& g, Key const k) noexcept + __device__ __forceinline__ iterator initial_slot(CG const& g, Key const k) noexcept { auto const hash_value = [&]() { auto const tmp = hash_(k); @@ -190,7 +193,7 @@ class linear_probing : public probe_sequence_base { * @param s The slot to advance * @return The next slot after `s` */ - __device__ iterator next_slot(iterator s) noexcept + __device__ __forceinline__ iterator next_slot(iterator s) noexcept { std::size_t index = s - slots_; std::size_t offset; @@ -270,7 +273,7 @@ class double_hashing : public probe_sequence_base { * @return Pointer to the initial slot for `k` */ template - __device__ iterator initial_slot(CG const& g, Key const k) noexcept + __device__ __forceinline__ iterator initial_slot(CG const& g, Key const k) noexcept { std::size_t index; auto const hash_value = hash1_(k); @@ -296,7 +299,7 @@ class double_hashing : public probe_sequence_base { * @param s The slot to advance * @return The next slot after `s` */ - __device__ iterator next_slot(iterator s) noexcept + __device__ __forceinline__ iterator next_slot(iterator s) noexcept { std::size_t index = s - slots_; return &slots_[(index + step_size_) % capacity_]; diff --git a/include/cuco/detail/static_multimap/device_view_impl.inl b/include/cuco/detail/static_multimap/device_view_impl.inl index ad0df9fe9..26c2502e3 100644 --- a/include/cuco/detail/static_multimap/device_view_impl.inl +++ b/include/cuco/detail/static_multimap/device_view_impl.inl @@ -66,14 +66,17 @@ class static_multimap::device_view_ * * @return Slots array */ - __device__ pair_atomic_type* get_slots() noexcept { return probe_sequence_.get_slots(); } + __device__ __forceinline__ pair_atomic_type* get_slots() noexcept + { + return probe_sequence_.get_slots(); + } /** * @brief Gets slots array. * * @return Slots array */ - __device__ pair_atomic_type const* get_slots() const noexcept + __device__ __forceinline__ pair_atomic_type const* get_slots() const noexcept { return probe_sequence_.get_slots(); } @@ -89,7 +92,7 @@ class static_multimap::device_view_ * @return Pointer to the initial slot for `k` */ template - __device__ iterator initial_slot(CG const& g, Key const& k) noexcept + __device__ __forceinline__ iterator initial_slot(CG const& g, Key const& k) noexcept { return probe_sequence_.initial_slot(g, k); } @@ -105,7 +108,7 @@ class static_multimap::device_view_ * @return Pointer to the initial slot for `k` */ template - __device__ const_iterator initial_slot(CG g, Key const& k) const noexcept + __device__ __forceinline__ const_iterator initial_slot(CG g, Key const& k) const noexcept { return probe_sequence_.initial_slot(g, k); } @@ -119,7 +122,10 @@ class static_multimap::device_view_ * @param s The slot to advance * @return The next slot after `s` */ - __device__ iterator next_slot(iterator s) noexcept { return probe_sequence_.next_slot(s); } + __device__ __forceinline__ iterator next_slot(iterator s) noexcept + { + return probe_sequence_.next_slot(s); + } /** * @brief Given a slot `s`, returns the next slot. @@ -130,7 +136,7 @@ class static_multimap::device_view_ * @param s The slot to advance * @return The next slot after `s` */ - __device__ const_iterator next_slot(const_iterator s) const noexcept + __device__ __forceinline__ const_iterator next_slot(const_iterator s) const noexcept { return probe_sequence_.next_slot(s); } @@ -140,7 +146,7 @@ class static_multimap::device_view_ * * @return The maximum number of elements the hash map can hold */ - __host__ __device__ std::size_t get_capacity() const noexcept + __host__ __device__ __forceinline__ std::size_t get_capacity() const noexcept { return probe_sequence_.get_capacity(); } @@ -150,14 +156,17 @@ class static_multimap::device_view_ * * @return The sentinel value used to represent an empty key slot */ - __host__ __device__ Key get_empty_key_sentinel() const noexcept { return empty_key_sentinel_; } + __host__ __device__ __forceinline__ Key get_empty_key_sentinel() const noexcept + { + return empty_key_sentinel_; + } /** * @brief Gets the sentinel value used to represent an empty value slot. * * @return The sentinel value used to represent an empty value slot */ - __host__ __device__ Value get_empty_value_sentinel() const noexcept + __host__ __device__ __forceinline__ Value get_empty_value_sentinel() const noexcept { return empty_value_sentinel_; } @@ -168,7 +177,8 @@ class static_multimap::device_view_ * @param arr The pair array to be loaded * @param current_slot The given slot to load from */ - __device__ void load_pair_array(value_type* arr, const_iterator current_slot) noexcept + __device__ __forceinline__ void load_pair_array(value_type* arr, + const_iterator current_slot) noexcept { if constexpr (sizeof(value_type) == 4) { auto const tmp = *reinterpret_cast(current_slot); @@ -214,7 +224,8 @@ class static_multimap::device_mutab * equality * @return An insert result from the `insert_resullt` enumeration. */ - __device__ insert_result packed_cas(iterator current_slot, value_type const& insert_pair) noexcept + __device__ __forceinline__ insert_result packed_cas(iterator current_slot, + value_type const& insert_pair) noexcept { auto expected_key = this->get_empty_key_sentinel(); auto expected_value = this->get_empty_value_sentinel(); @@ -241,8 +252,8 @@ class static_multimap::device_mutab * @param insert_pair The pair to insert * @return An insert result from the `insert_resullt` enumeration. */ - __device__ insert_result back_to_back_cas(iterator current_slot, - value_type const& insert_pair) noexcept + __device__ __forceinline__ insert_result back_to_back_cas(iterator current_slot, + value_type const& insert_pair) noexcept { using cuda::std::memory_order_relaxed; @@ -281,8 +292,8 @@ class static_multimap::device_mutab * @param insert_pair The pair to insert * @return An insert result from the `insert_resullt` enumeration. */ - __device__ insert_result cas_dependent_write(iterator current_slot, - value_type const& insert_pair) noexcept + __device__ __forceinline__ insert_result + cas_dependent_write(iterator current_slot, value_type const& insert_pair) noexcept { using cuda::std::memory_order_relaxed; auto expected_key = this->get_empty_key_sentinel(); @@ -321,8 +332,8 @@ class static_multimap::device_mutab * @return void. */ template - __device__ std::enable_if_t insert(CG g, - value_type const& insert_pair) noexcept + __device__ __forceinline__ std::enable_if_t insert( + CG g, value_type const& insert_pair) noexcept { auto current_slot = initial_slot(g, insert_pair.first); while (true) { @@ -372,7 +383,7 @@ class static_multimap::device_mutab * @return void. */ template - __device__ std::enable_if_t insert( + __device__ __forceinline__ std::enable_if_t insert( CG g, value_type const& insert_pair) noexcept { auto current_slot = initial_slot(g, insert_pair.first); @@ -457,11 +468,11 @@ class static_multimap::device_view_ * @param output_begin Beginning of the output sequence of key/value pairs */ template - __inline__ __device__ void flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept + __device__ __forceinline__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept { std::size_t offset; const auto lane_id = g.thread_rank(); @@ -514,13 +525,13 @@ class static_multimap::device_view_ * pairs */ template - __inline__ __device__ void flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin) noexcept + __device__ __forceinline__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin) noexcept { std::size_t offset; const auto lane_id = g.thread_rank(); @@ -559,9 +570,8 @@ class static_multimap::device_view_ * containing `k` was inserted */ template - __device__ std::enable_if_t contains(CG g, - Key const& k, - KeyEqual key_equal) noexcept + __device__ __forceinline__ std::enable_if_t contains( + CG g, Key const& k, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -608,9 +618,8 @@ class static_multimap::device_view_ * containing `k` was inserted */ template - __device__ std::enable_if_t contains(CG g, - Key const& k, - KeyEqual key_equal) noexcept + __device__ __forceinline__ std::enable_if_t contains( + CG g, Key const& k, KeyEqual key_equal) noexcept { auto current_slot = initial_slot(g, k); @@ -651,9 +660,8 @@ class static_multimap::device_view_ * @return Number of matches found by the current thread */ template - __device__ std::enable_if_t count(CG const& g, - Key const& k, - KeyEqual key_equal) noexcept + __device__ __forceinline__ std::enable_if_t count( + CG const& g, Key const& k, KeyEqual key_equal) noexcept { std::size_t count = 0; auto current_slot = initial_slot(g, k); @@ -702,9 +710,8 @@ class static_multimap::device_view_ * @return Number of matches found by the current thread */ template - __device__ std::enable_if_t count(CG const& g, - Key const& k, - KeyEqual key_equal) noexcept + __device__ __forceinline__ std::enable_if_t count( + CG const& g, Key const& k, KeyEqual key_equal) noexcept { std::size_t count = 0; auto current_slot = initial_slot(g, k); @@ -751,7 +758,7 @@ class static_multimap::device_view_ * @return Number of matches found by the current thread */ template - __device__ std::enable_if_t pair_count( + __device__ __forceinline__ std::enable_if_t pair_count( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { std::size_t count = 0; @@ -804,7 +811,7 @@ class static_multimap::device_view_ * @return Number of matches found by the current thread */ template - __device__ std::enable_if_t pair_count( + __device__ __forceinline__ std::enable_if_t pair_count( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { std::size_t count = 0; @@ -871,14 +878,14 @@ class static_multimap::device_view_ typename atomicT, typename OutputIt, typename KeyEqual> - __device__ void retrieve(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - Key const& k, - uint32_t* flushing_cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept + __device__ __forceinline__ void retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, + Key const& k, + uint32_t* flushing_cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept { const uint32_t cg_lane_id = probing_cg.thread_rank(); @@ -981,13 +988,13 @@ class static_multimap::device_view_ typename atomicT, typename OutputIt, typename KeyEqual> - __device__ void retrieve(CG const& g, - Key const& k, - uint32_t* cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal) noexcept + __device__ __forceinline__ void retrieve(CG const& g, + Key const& k, + uint32_t* cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal) noexcept { const uint32_t lane_id = g.thread_rank(); @@ -1085,16 +1092,16 @@ class static_multimap::device_view_ typename OutputIt1, typename OutputIt2, typename PairEqual> - __device__ void pair_retrieve(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - value_type const& pair, - uint32_t* flushing_cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept + __device__ __forceinline__ void pair_retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, + value_type const& pair, + uint32_t* flushing_cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept { const uint32_t cg_lane_id = probing_cg.thread_rank(); @@ -1209,15 +1216,15 @@ class static_multimap::device_view_ typename OutputIt1, typename OutputIt2, typename PairEqual> - __device__ void pair_retrieve(CG const& g, - value_type const& pair, - uint32_t* cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept + __device__ __forceinline__ void pair_retrieve(CG const& g, + value_type const& pair, + uint32_t* cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept { const uint32_t lane_id = g.thread_rank(); diff --git a/include/cuco/detail/static_multimap/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl index 00160b18c..2445db8dc 100644 --- a/include/cuco/detail/static_multimap/static_multimap.inl +++ b/include/cuco/detail/static_multimap/static_multimap.inl @@ -27,7 +27,7 @@ namespace { template struct slot_is_filled { slot_is_filled(Key s) : empty_key_sentinel{s} {} - __device__ bool operator()(Key const& k) { return k != empty_key_sentinel; } + __device__ __forceinline__ bool operator()(Key const& k) { return k != empty_key_sentinel; } Key empty_key_sentinel; }; } // anonymous namespace @@ -471,7 +471,7 @@ template template -__device__ void +__device__ __forceinline__ void static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair) noexcept { @@ -484,7 +484,7 @@ template template -__device__ static_multimap::device_view +__device__ __forceinline__ static_multimap::device_view static_multimap::device_view::make_copy( CG g, pair_atomic_type* const memory_to_use, device_view source_device_view) noexcept { @@ -523,7 +523,7 @@ template template -__inline__ __device__ void +__device__ __forceinline__ void static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, @@ -540,7 +540,7 @@ template template -__inline__ __device__ void +__device__ __forceinline__ void static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, @@ -565,7 +565,8 @@ template template -__device__ bool static_multimap::device_view::contains( +__device__ __forceinline__ bool +static_multimap::device_view::contains( CG g, Key const& k, KeyEqual key_equal) noexcept { return impl_.contains(g, k, key_equal); @@ -577,7 +578,7 @@ template template -__device__ std::size_t +__device__ __forceinline__ std::size_t static_multimap::device_view::count( CG const& g, Key const& k, KeyEqual key_equal) noexcept { @@ -591,7 +592,7 @@ template template -__device__ std::size_t +__device__ __forceinline__ std::size_t static_multimap::device_view::count_outer( CG const& g, Key const& k, KeyEqual key_equal) noexcept { @@ -605,7 +606,7 @@ template template -__device__ std::size_t +__device__ __forceinline__ std::size_t static_multimap::device_view::pair_count( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { @@ -619,7 +620,7 @@ template template -__device__ std::size_t +__device__ __forceinline__ std::size_t static_multimap::device_view::pair_count_outer( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { @@ -638,7 +639,8 @@ template -__device__ void static_multimap::device_view::retrieve( +__device__ __forceinline__ void +static_multimap::device_view::retrieve( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, Key const& k, @@ -676,7 +678,7 @@ template -__device__ void +__device__ __forceinline__ void static_multimap::device_view::retrieve_outer( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, @@ -716,7 +718,7 @@ template -__device__ void +__device__ __forceinline__ void static_multimap::device_view::pair_retrieve( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, @@ -767,7 +769,7 @@ template -__device__ void +__device__ __forceinline__ void static_multimap::device_view::pair_retrieve_outer( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index f4e81ce80..b55abf489 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -184,7 +184,8 @@ class static_multimap { * * @return Boolean indicating if concurrent insert/find is supported. */ - __host__ __device__ static constexpr bool supports_concurrent_insert_find() noexcept + __host__ __device__ __forceinline__ static constexpr bool + supports_concurrent_insert_find() noexcept { return cuco::detail::is_packable(); } @@ -194,7 +195,10 @@ class static_multimap { * * @return The CG size. */ - static constexpr uint32_t cg_size() noexcept { return ProbeSequence::cg_size(); } + __host__ __device__ __forceinline__ static constexpr uint32_t cg_size() noexcept + { + return ProbeSequence::cg_size(); + } /** * @brief Construct a statically-sized map with the specified initial capacity, @@ -620,7 +624,7 @@ class static_multimap { * @return void. */ template - __device__ void insert(CG g, value_type const& insert_pair) noexcept; + __device__ __forceinline__ void insert(CG g, value_type const& insert_pair) noexcept; private: device_mutable_view_impl impl_; @@ -667,28 +671,34 @@ class static_multimap { * * @return Slots array */ - __device__ pair_atomic_type* get_slots() noexcept { return impl_.get_slots(); } + __device__ __forceinline__ pair_atomic_type* get_slots() noexcept { return impl_.get_slots(); } /** * @brief Gets slots array. * * @return Slots array */ - __device__ pair_atomic_type const* get_slots() const noexcept { return impl_.get_slots(); } + __device__ __forceinline__ pair_atomic_type const* get_slots() const noexcept + { + return impl_.get_slots(); + } /** * @brief Gets the maximum number of elements the hash map can hold. * * @return The maximum number of elements the hash map can hold */ - __host__ __device__ std::size_t get_capacity() const noexcept { return impl_.get_capacity(); } + __host__ __device__ __forceinline__ std::size_t get_capacity() const noexcept + { + return impl_.get_capacity(); + } /** * @brief Gets the sentinel value used to represent an empty key slot. * * @return The sentinel value used to represent an empty key slot */ - __host__ __device__ Key get_empty_key_sentinel() const noexcept + __host__ __device__ __forceinline__ Key get_empty_key_sentinel() const noexcept { return impl_.get_empty_key_sentinel(); } @@ -698,7 +708,7 @@ class static_multimap { * * @return The sentinel value used to represent an empty value slot */ - __host__ __device__ Value get_empty_value_sentinel() const noexcept + __host__ __device__ __forceinline__ Value get_empty_value_sentinel() const noexcept { return impl_.get_empty_value_sentinel(); } @@ -717,9 +727,8 @@ class static_multimap { * @return Copy of passed `device_view` */ template - __device__ static device_view make_copy(CG g, - pair_atomic_type* const memory_to_use, - device_view source_device_view) noexcept; + __device__ __forceinline__ static device_view make_copy( + CG g, pair_atomic_type* const memory_to_use, device_view source_device_view) noexcept; /** * @brief Flushes per-CG buffer into the output sequence. @@ -741,11 +750,11 @@ class static_multimap { * @param output_begin Beginning of the output sequence of key/value pairs */ template - __inline__ __device__ void flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin) noexcept; + __device__ __forceinline__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin) noexcept; /** * @brief Flushes per-CG buffer into the output sequences. @@ -771,13 +780,13 @@ class static_multimap { * pairs */ template - __inline__ __device__ void flush_output_buffer(CG const& g, - uint32_t const num_outputs, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin) noexcept; + __device__ __forceinline__ void flush_output_buffer(CG const& g, + uint32_t const num_outputs, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin) noexcept; /** * @brief Indicates whether the key `k` exists in the map. @@ -798,7 +807,9 @@ class static_multimap { * containing `k` was inserted */ template > - __device__ bool contains(CG g, Key const& k, KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ __forceinline__ bool contains(CG g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap. @@ -815,9 +826,9 @@ class static_multimap { * @return Number of matches found by the current thread */ template > - __device__ std::size_t count(CG const& g, - Key const& k, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ __forceinline__ std::size_t count(CG const& g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap. If no @@ -835,9 +846,9 @@ class static_multimap { * @return Number of matches found by the current thread */ template > - __device__ std::size_t count_outer(CG const& g, - Key const& k, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ __forceinline__ std::size_t count_outer(CG const& g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap. @@ -854,9 +865,9 @@ class static_multimap { * @return Number of matches found by the current thread */ template - __device__ std::size_t pair_count(CG const& g, - value_type const& pair, - PairEqual pair_equal) noexcept; + __device__ __forceinline__ std::size_t pair_count(CG const& g, + value_type const& pair, + PairEqual pair_equal) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap. @@ -874,9 +885,9 @@ class static_multimap { * @return Number of matches found by the current thread */ template - __device__ std::size_t pair_count_outer(CG const& g, - value_type const& pair, - PairEqual pair_equal) noexcept; + __device__ __forceinline__ std::size_t pair_count_outer(CG const& g, + value_type const& pair, + PairEqual pair_equal) noexcept; /** * @brief Retrieves all the matches of a given key contained in multimap with per-flushing-CG @@ -908,14 +919,14 @@ class static_multimap { typename atomicT, typename OutputIt, typename KeyEqual = thrust::equal_to> - __device__ void retrieve(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - Key const& k, - uint32_t* flushing_cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ __forceinline__ void retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, + Key const& k, + uint32_t* flushing_cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Retrieves all the matches of a given key contained in multimap with per-flushing-CG @@ -948,14 +959,14 @@ class static_multimap { typename atomicT, typename OutputIt, typename KeyEqual = thrust::equal_to> - __device__ void retrieve_outer(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - Key const& k, - uint32_t* flushing_cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ __forceinline__ void retrieve_outer(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, + Key const& k, + uint32_t* flushing_cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Retrieves all the matches of a given pair contained in multimap with per-flushing-CG @@ -993,16 +1004,16 @@ class static_multimap { typename OutputIt1, typename OutputIt2, typename PairEqual> - __device__ void pair_retrieve(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - value_type const& pair, - uint32_t* warp_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; + __device__ __forceinline__ void pair_retrieve(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; /** * @brief Retrieves all the matches of a given pair contained in multimap with per-flushing-CG @@ -1041,16 +1052,16 @@ class static_multimap { typename OutputIt1, typename OutputIt2, typename PairEqual> - __device__ void pair_retrieve_outer(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - value_type const& pair, - uint32_t* flushing_cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; + __device__ __forceinline__ void pair_retrieve_outer(FlushingCG const& flushing_cg, + ProbingCG const& probing_cg, + value_type const& pair, + uint32_t* flushing_cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; private: device_view_impl impl_; From 61437411cfc1a0fa7dacceaf137a1fc29c68e0c4 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 26 Oct 2021 12:51:09 -0400 Subject: [PATCH 252/267] Change template parameter order: allocator before probe sequence --- .../static_multimap/find_all_bench.cu | 1 + .../static_multimap/device_view_impl.inl | 18 +- .../static_multimap/static_multimap.inl | 164 +++++++++--------- include/cuco/static_multimap.cuh | 4 +- tests/static_multimap/static_multimap_test.cu | 5 + 5 files changed, 99 insertions(+), 93 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index d98aac8d4..f498d0016 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -75,6 +75,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( cuco::static_multimap, cuco::detail::double_hashing> map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); diff --git a/include/cuco/detail/static_multimap/device_view_impl.inl b/include/cuco/detail/static_multimap/device_view_impl.inl index 26c2502e3..77b8465e5 100644 --- a/include/cuco/detail/static_multimap/device_view_impl.inl +++ b/include/cuco/detail/static_multimap/device_view_impl.inl @@ -21,9 +21,9 @@ namespace cuco { template -class static_multimap::device_view_impl_base { + typename Allocator, + class ProbeSequence> +class static_multimap::device_view_impl_base { private: ProbeSequence probe_sequence_; ///< Probe sequence used to probe the hash map Key empty_key_sentinel_{}; ///< Key value that represents an empty slot @@ -194,9 +194,9 @@ class static_multimap::device_view_ template -class static_multimap::device_mutable_view_impl + typename Allocator, + class ProbeSequence> +class static_multimap::device_mutable_view_impl : public device_view_impl_base { public: using value_type = typename device_view_impl_base::value_type; @@ -429,9 +429,9 @@ class static_multimap::device_mutab template -class static_multimap::device_view_impl + typename Allocator, + class ProbeSequence> +class static_multimap::device_view_impl : public device_view_impl_base { public: using value_type = typename device_view_impl_base::value_type; diff --git a/include/cuco/detail/static_multimap/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl index 2445db8dc..5fe5e95f1 100644 --- a/include/cuco/detail/static_multimap/static_multimap.inl +++ b/include/cuco/detail/static_multimap/static_multimap.inl @@ -37,9 +37,9 @@ namespace cuco { template -static_multimap::static_multimap( + typename Allocator, + class ProbeSequence> +static_multimap::static_multimap( std::size_t capacity, Key empty_key_sentinel, Value empty_value_sentinel, @@ -69,10 +69,10 @@ static_multimap::static_multimap( template + typename Allocator, + class ProbeSequence> template -void static_multimap::insert(InputIt first, +void static_multimap::insert(InputIt first, InputIt last, cudaStream_t stream) { @@ -91,10 +91,10 @@ void static_multimap::insert(InputI template + typename Allocator, + class ProbeSequence> template -void static_multimap::insert_if( +void static_multimap::insert_if( InputIt first, InputIt last, StencilIt stencil, Predicate pred, cudaStream_t stream) { auto num_elements = std::distance(first, last); @@ -113,10 +113,10 @@ void static_multimap::insert_if( template + typename Allocator, + class ProbeSequence> template -void static_multimap::contains( +void static_multimap::contains( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -134,10 +134,10 @@ void static_multimap::contains( template + typename Allocator, + class ProbeSequence> template -std::size_t static_multimap::count( +std::size_t static_multimap::count( InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -165,10 +165,10 @@ std::size_t static_multimap::count( template + typename Allocator, + class ProbeSequence> template -std::size_t static_multimap::count_outer( +std::size_t static_multimap::count_outer( InputIt first, InputIt last, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -196,10 +196,10 @@ std::size_t static_multimap::count_ template + typename Allocator, + class ProbeSequence> template -std::size_t static_multimap::pair_count( +std::size_t static_multimap::pair_count( InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { auto num_keys = std::distance(first, last); @@ -228,10 +228,10 @@ std::size_t static_multimap::pair_c template + typename Allocator, + class ProbeSequence> template -std::size_t static_multimap::pair_count_outer( +std::size_t static_multimap::pair_count_outer( InputIt first, InputIt last, PairEqual pair_equal, cudaStream_t stream) const { auto num_keys = std::distance(first, last); @@ -260,10 +260,10 @@ std::size_t static_multimap::pair_c template + typename Allocator, + class ProbeSequence> template -OutputIt static_multimap::retrieve( +OutputIt static_multimap::retrieve( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -309,10 +309,10 @@ OutputIt static_multimap::retrieve( template + typename Allocator, + class ProbeSequence> template -OutputIt static_multimap::retrieve_outer( +OutputIt static_multimap::retrieve_outer( InputIt first, InputIt last, OutputIt output_begin, cudaStream_t stream, KeyEqual key_equal) const { auto num_keys = std::distance(first, last); @@ -358,11 +358,11 @@ OutputIt static_multimap::retrieve_ template + typename Allocator, + class ProbeSequence> template std::pair -static_multimap::pair_retrieve( +static_multimap::pair_retrieve( InputIt first, InputIt last, OutputIt1 probe_output_begin, @@ -413,11 +413,11 @@ static_multimap::pair_retrieve( template + typename Allocator, + class ProbeSequence> template std::pair -static_multimap::pair_retrieve_outer( +static_multimap::pair_retrieve_outer( InputIt first, InputIt last, OutputIt1 probe_output_begin, @@ -468,11 +468,11 @@ static_multimap::pair_retrieve_oute template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ void -static_multimap::device_mutable_view::insert( +static_multimap::device_mutable_view::insert( CG g, value_type const& insert_pair) noexcept { impl_.insert(g, insert_pair); @@ -481,11 +481,11 @@ static_multimap::device_mutable_vie template + typename Allocator, + class ProbeSequence> template -__device__ __forceinline__ static_multimap::device_view -static_multimap::device_view::make_copy( +__device__ __forceinline__ static_multimap::device_view +static_multimap::device_view::make_copy( CG g, pair_atomic_type* const memory_to_use, device_view source_device_view) noexcept { #if defined(CUCO_HAS_CUDA_BARRIER) @@ -520,11 +520,11 @@ static_multimap::device_view::make_ template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ void -static_multimap::device_view::flush_output_buffer( +static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, value_type* output_buffer, @@ -537,11 +537,11 @@ static_multimap::device_view::flush template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ void -static_multimap::device_view::flush_output_buffer( +static_multimap::device_view::flush_output_buffer( CG const& g, uint32_t const num_outputs, value_type* probe_output_buffer, @@ -562,11 +562,11 @@ static_multimap::device_view::flush template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ bool -static_multimap::device_view::contains( +static_multimap::device_view::contains( CG g, Key const& k, KeyEqual key_equal) noexcept { return impl_.contains(g, k, key_equal); @@ -575,11 +575,11 @@ static_multimap::device_view::conta template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ std::size_t -static_multimap::device_view::count( +static_multimap::device_view::count( CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = false; @@ -589,11 +589,11 @@ static_multimap::device_view::count template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ std::size_t -static_multimap::device_view::count_outer( +static_multimap::device_view::count_outer( CG const& g, Key const& k, KeyEqual key_equal) noexcept { constexpr bool is_outer = true; @@ -603,11 +603,11 @@ static_multimap::device_view::count template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ std::size_t -static_multimap::device_view::pair_count( +static_multimap::device_view::pair_count( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = false; @@ -617,11 +617,11 @@ static_multimap::device_view::pair_ template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ std::size_t -static_multimap::device_view::pair_count_outer( +static_multimap::device_view::pair_count_outer( CG const& g, value_type const& pair, PairEqual pair_equal) noexcept { constexpr bool is_outer = true; @@ -631,8 +631,8 @@ static_multimap::device_view::pair_ template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ void -static_multimap::device_view::retrieve( +static_multimap::device_view::retrieve( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, Key const& k, @@ -670,8 +670,8 @@ static_multimap::device_view::retri template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ void -static_multimap::device_view::retrieve_outer( +static_multimap::device_view::retrieve_outer( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, Key const& k, @@ -709,8 +709,8 @@ static_multimap::device_view::retri template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ void -static_multimap::device_view::pair_retrieve( +static_multimap::device_view::pair_retrieve( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, value_type const& pair, @@ -760,8 +760,8 @@ static_multimap::device_view::pair_ template + typename Allocator, + class ProbeSequence> template __device__ __forceinline__ void -static_multimap::device_view::pair_retrieve_outer( +static_multimap::device_view::pair_retrieve_outer( FlushingCG const& flushing_cg, ProbingCG const& probing_cg, value_type const& pair, @@ -811,9 +811,9 @@ static_multimap::device_view::pair_ template -std::size_t static_multimap::get_size( + typename Allocator, + class ProbeSequence> +std::size_t static_multimap::get_size( cudaStream_t stream) const noexcept { auto begin = thrust::make_transform_iterator( @@ -826,9 +826,9 @@ std::size_t static_multimap::get_si template -float static_multimap::get_load_factor( + typename Allocator, + class ProbeSequence> +float static_multimap::get_load_factor( cudaStream_t stream) const noexcept { auto size = get_size(stream); diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index b55abf489..cdc699d35 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -134,13 +134,13 @@ namespace cuco { template , class ProbeSequence = cuco::detail::double_hashing, cuco::detail::MurmurHash3_32, - Scope>, - typename Allocator = cuco::cuda_allocator> + Scope>> class static_multimap { static_assert( cuco::is_bitwise_comparable_v, diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 4e92d7eae..1444c3b21 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -256,6 +256,7 @@ TEMPLATE_TEST_CASE_SIG("User defined key and value type", cuco::static_multimap, cuco::detail::linear_probing> map{capacity, sentinel_key, sentinel_value}; test_custom_key_value_type(map, insert_pairs, insert_keys.begin(), num_pairs); @@ -406,6 +407,7 @@ TEMPLATE_TEST_CASE_SIG("Multiplicity equals two", cuco::static_multimap, cuco::detail::linear_probing> map{5, -1, -1}; test_multiplicity_two( @@ -534,6 +536,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of non-matches", cuco::static_multimap, cuco::detail::linear_probing> map{num_keys * 2, -1, -1}; test_non_matches(map, d_pairs.begin(), d_keys.begin(), num_keys); @@ -588,6 +591,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", cuco::static_multimap, cuco::detail::linear_probing> map{num_keys * 2, -1, -1}; test_insert_if(map, d_pairs.begin(), d_keys.begin(), num_keys); @@ -687,6 +691,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of pair functions", cuco::static_multimap, cuco::detail::linear_probing> map{num_pairs * 2, -1, -1}; test_pair_functions(map, d_pairs.begin(), num_pairs); From 14621e19842ce5006675dac5505428a14cb1889e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 26 Oct 2021 13:42:28 -0400 Subject: [PATCH 253/267] Move linear probing and double hashing to a new public header --- .../static_multimap/find_all_bench.cu | 2 +- include/cuco/detail/probe_sequence_base.cuh | 112 ++++++++++++++++++ include/cuco/{detail => }/probe_sequences.cuh | 105 ++-------------- include/cuco/static_multimap.cuh | 14 +-- tests/static_multimap/static_multimap_test.cu | 10 +- 5 files changed, 134 insertions(+), 109 deletions(-) create mode 100644 include/cuco/detail/probe_sequence_base.cuh rename include/cuco/{detail => }/probe_sequences.cuh (68%) diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index f498d0016..eeddb39b4 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -76,7 +76,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::detail::double_hashing> + cuco::double_hashing> map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); diff --git a/include/cuco/detail/probe_sequence_base.cuh b/include/cuco/detail/probe_sequence_base.cuh new file mode 100644 index 000000000..0da624177 --- /dev/null +++ b/include/cuco/detail/probe_sequence_base.cuh @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +#include +#include + +namespace cuco { +namespace detail { + +/** + * @brief Base class for a hash map probe sequence. This class should not be used directly. + * + * Hash map operations are generally memory-bandwidth bound. A vector-load loads two consecutive + * slots instead of one to fully utilize the 16B memory load supported by SASS/hardware thus + * improve memory throughput. This method (flagged by `uses_vector_load` logic) is implicitly + * applied to all hash map operations (e.g. `insert`, `count`, and `retrieve`, etc.) when pairs + * are packable (see `cuco::detail::is_packable` logic). + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam CGSize Number of threads in CUDA Cooperative Groups + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + */ +template +class probe_sequence_base { + protected: + using value_type = cuco::pair_type; + using key_type = Key; + using mapped_type = Value; + using atomic_key_type = cuda::atomic; + using atomic_mapped_type = cuda::atomic; + using pair_atomic_type = cuco::pair_type; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + + public: + /** + * @brief Returns the size of the CUDA cooperative thread group. + */ + __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } + + /** + * @brief Returns the number of elements loaded with each vector-load. + */ + __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + + /** + * @brief Indicates if vector-load is used. + * + * Users have no explicit control on whether vector-load is used. + * + * @return Boolean indicating if vector-load is used. + */ + __host__ __device__ static constexpr bool uses_vector_load() noexcept + { + return cuco::detail::is_packable(); + } + + /** + * @brief Constructs a probe sequence based on the given hash map features. + * + * @param slots Pointer to beginning of the hash map slots + * @param capacity Capacity of the hash map + */ + __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) + : slots_{slots}, capacity_{capacity} + { + } + + /** + * @brief Returns the capacity of the hash map. + */ + __host__ __device__ __forceinline__ std::size_t get_capacity() const noexcept + { + return capacity_; + } + + /** + * @brief Returns slots array. + */ + __device__ __forceinline__ iterator get_slots() noexcept { return slots_; } + + /** + * @brief Returns slots array. + */ + __device__ __forceinline__ const_iterator get_slots() const noexcept { return slots_; } + + protected: + iterator slots_; ///< Pointer to beginning of the hash map slots + const std::size_t capacity_; ///< Total number of slots +}; // class probe_sequence_base + +} // namespace detail +} // namespace cuco diff --git a/include/cuco/detail/probe_sequences.cuh b/include/cuco/probe_sequences.cuh similarity index 68% rename from include/cuco/detail/probe_sequences.cuh rename to include/cuco/probe_sequences.cuh index 8b725f325..4e84a47ab 100644 --- a/include/cuco/detail/probe_sequences.cuh +++ b/include/cuco/probe_sequences.cuh @@ -16,97 +16,9 @@ #pragma once -#include - -#include -#include +#include namespace cuco { -namespace detail { - -/** - * @brief Base class for a hash map probe sequence. This class should not be used directly. - * - * Hash map operations are generally memory-bandwidth bound. A vector-load loads two consecutive - * slots instead of one to fully utilize the 16B memory load supported by SASS/hardware thus - * improve memory throughput. This method (flagged by `uses_vector_load` logic) is implicitly - * applied to all hash map operations (e.g. `insert`, `count`, and `retrieve`, etc.) when pairs - * are packable (see `cuco::detail::is_packable` logic). - * - * @tparam Key Type used for keys - * @tparam Value Type of the mapped values - * @tparam CGSize Number of threads in CUDA Cooperative Groups - * @tparam Scope The scope in which multimap operations will be performed by - * individual threads - */ -template -class probe_sequence_base { - protected: - using value_type = cuco::pair_type; - using key_type = Key; - using mapped_type = Value; - using atomic_key_type = cuda::atomic; - using atomic_mapped_type = cuda::atomic; - using pair_atomic_type = cuco::pair_type; - using iterator = pair_atomic_type*; - using const_iterator = pair_atomic_type const*; - - public: - /** - * @brief Returns the size of the CUDA cooperative thread group. - */ - __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } - - /** - * @brief Returns the number of elements loaded with each vector-load. - */ - __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } - - /** - * @brief Indicates if vector-load is used. - * - * Users have no explicit control on whether vector-load is used. - * - * @return Boolean indicating if vector-load is used. - */ - __host__ __device__ static constexpr bool uses_vector_load() noexcept - { - return cuco::detail::is_packable(); - } - - /** - * @brief Constructs a probe sequence based on the given hash map features. - * - * @param slots Pointer to beginning of the hash map slots - * @param capacity Capacity of the hash map - */ - __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) - : slots_{slots}, capacity_{capacity} - { - } - - /** - * @brief Returns the capacity of the hash map. - */ - __host__ __device__ __forceinline__ std::size_t get_capacity() const noexcept - { - return capacity_; - } - - /** - * @brief Returns slots array. - */ - __device__ __forceinline__ iterator get_slots() noexcept { return slots_; } - - /** - * @brief Returns slots array. - */ - __device__ __forceinline__ const_iterator get_slots() const noexcept { return slots_; } - - protected: - iterator slots_; ///< Pointer to beginning of the hash map slots - const std::size_t capacity_; ///< Total number of slots -}; // class probe_sequence_base /** * @brief Cooperative Groups based Linear probing scheme. @@ -129,9 +41,9 @@ template , cuda::thread_scope Scope = cuda::thread_scope_device> -class linear_probing : public probe_sequence_base { +class linear_probing : public detail::probe_sequence_base { public: - using probe_sequence_base_type = probe_sequence_base; + using probe_sequence_base_type = detail::probe_sequence_base; using iterator = typename probe_sequence_base_type::iterator; using probe_sequence_base_type::capacity_; using probe_sequence_base_type::cg_size; @@ -149,7 +61,7 @@ class linear_probing : public probe_sequence_base { __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity, Hash hash = Hash{}) - : probe_sequence_base{slots, capacity}, hash_(hash) + : detail::probe_sequence_base{slots, capacity}, hash_{hash} { } @@ -233,9 +145,9 @@ template , typename Hash2 = cuco::detail::MurmurHash3_32, cuda::thread_scope Scope = cuda::thread_scope_device> -class double_hashing : public probe_sequence_base { +class double_hashing : public detail::probe_sequence_base { public: - using probe_sequence_base_type = probe_sequence_base; + using probe_sequence_base_type = detail::probe_sequence_base; using iterator = typename probe_sequence_base_type::iterator; using probe_sequence_base_type::capacity_; using probe_sequence_base_type::cg_size; @@ -257,7 +169,9 @@ class double_hashing : public probe_sequence_base { std::size_t capacity, Hash1 hash1 = Hash1{}, Hash2 hash2 = Hash2{1}) noexcept - : probe_sequence_base{slots, capacity}, hash1_{hash1}, hash2_{hash2} + : detail::probe_sequence_base{slots, capacity}, + hash1_{hash1}, + hash2_{hash2} { } @@ -311,5 +225,4 @@ class double_hashing : public probe_sequence_base { std::size_t step_size_; ///< The step stride when searching for the next slot }; // class double_hashing -} // namespace detail } // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index cdc699d35..c7959b1f3 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -23,6 +23,7 @@ #include #include +#include #include #if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ @@ -41,7 +42,6 @@ #include #include -#include #include namespace cuco { @@ -135,12 +135,12 @@ template , - class ProbeSequence = cuco::detail::double_hashing, - cuco::detail::MurmurHash3_32, - Scope>> + class ProbeSequence = cuco::double_hashing, + cuco::detail::MurmurHash3_32, + Scope>> class static_multimap { static_assert( cuco::is_bitwise_comparable_v, diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 1444c3b21..619256220 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -257,7 +257,7 @@ TEMPLATE_TEST_CASE_SIG("User defined key and value type", value_pair, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::detail::linear_probing> + cuco::linear_probing> map{capacity, sentinel_key, sentinel_value}; test_custom_key_value_type(map, insert_pairs, insert_keys.begin(), num_pairs); } @@ -408,7 +408,7 @@ TEMPLATE_TEST_CASE_SIG("Multiplicity equals two", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::detail::linear_probing> + cuco::linear_probing> map{5, -1, -1}; test_multiplicity_two( map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); @@ -537,7 +537,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of non-matches", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::detail::linear_probing> + cuco::linear_probing> map{num_keys * 2, -1, -1}; test_non_matches(map, d_pairs.begin(), d_keys.begin(), num_keys); } @@ -592,7 +592,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::detail::linear_probing> + cuco::linear_probing> map{num_keys * 2, -1, -1}; test_insert_if(map, d_pairs.begin(), d_keys.begin(), num_keys); } @@ -692,7 +692,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of pair functions", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::detail::linear_probing> + cuco::linear_probing> map{num_pairs * 2, -1, -1}; test_pair_functions(map, d_pairs.begin(), num_pairs); } From 7d5b8e8d9ba3ebd9270ba8e3c81e40f3b8673e7f Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Tue, 26 Oct 2021 14:44:38 -0400 Subject: [PATCH 254/267] Update comment --- include/cuco/probe_sequences.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/probe_sequences.cuh b/include/cuco/probe_sequences.cuh index 4e84a47ab..a65724ece 100644 --- a/include/cuco/probe_sequences.cuh +++ b/include/cuco/probe_sequences.cuh @@ -81,7 +81,7 @@ class linear_probing : public detail::probe_sequence_base Date: Wed, 27 Oct 2021 15:28:55 -0400 Subject: [PATCH 255/267] Avoid public access to probe sequence key, value and scope types --- .../static_multimap/find_all_bench.cu | 4 +- include/cuco/detail/probe_sequence_base.cuh | 291 +++++++++++++++++- .../static_multimap/device_view_impl.inl | 29 +- include/cuco/probe_sequences.cuh | 228 -------------- include/cuco/static_multimap.cuh | 31 +- tests/static_multimap/static_multimap_test.cu | 10 +- 6 files changed, 316 insertions(+), 277 deletions(-) delete mode 100644 include/cuco/probe_sequences.cuh diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/find_all_bench.cu index eeddb39b4..483e01bf7 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/find_all_bench.cu @@ -76,7 +76,9 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::double_hashing> + cuco::double_hashing, + cuco::detail::MurmurHash3_32>> map{size, -1, -1}; map.insert(d_pairs.begin(), d_pairs.end()); diff --git a/include/cuco/detail/probe_sequence_base.cuh b/include/cuco/detail/probe_sequence_base.cuh index 0da624177..3a9cafbd1 100644 --- a/include/cuco/detail/probe_sequence_base.cuh +++ b/include/cuco/detail/probe_sequence_base.cuh @@ -25,23 +25,23 @@ namespace cuco { namespace detail { /** - * @brief Base class for a hash map probe sequence. This class should not be used directly. + * @brief Cooperative Groups based Linear probing scheme. * - * Hash map operations are generally memory-bandwidth bound. A vector-load loads two consecutive - * slots instead of one to fully utilize the 16B memory load supported by SASS/hardware thus - * improve memory throughput. This method (flagged by `uses_vector_load` logic) is implicitly - * applied to all hash map operations (e.g. `insert`, `count`, and `retrieve`, etc.) when pairs - * are packable (see `cuco::detail::is_packable` logic). + * Linear probing is efficient only when few collisions are present. Performance hints: + * - Use linear probing only when collisions are rare. e.g. low occupancy or low multiplicity. + * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. + * + * `Hash` should be callable object type. * * @tparam Key Type used for keys * @tparam Value Type of the mapped values - * @tparam CGSize Number of threads in CUDA Cooperative Groups + * @tparam Hash Unary callable type * @tparam Scope The scope in which multimap operations will be performed by * individual threads */ -template -class probe_sequence_base { - protected: +template +class linear_probing { + public: using value_type = cuco::pair_type; using key_type = Key; using mapped_type = Value; @@ -51,11 +51,154 @@ class probe_sequence_base { using iterator = pair_atomic_type*; using const_iterator = pair_atomic_type const*; + /** + * @brief Returns the size of the CUDA cooperative thread group. + */ + static constexpr std::size_t cg_size = CGSize; + + /** + * @brief Returns the number of elements loaded with each vector-load. + */ + __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + + /** + * @brief Indicates if vector-load is used. + * + * Users have no explicit control on whether vector-load is used. + * + * @return Boolean indicating if vector-load is used. + */ + __host__ __device__ static constexpr bool uses_vector_load() noexcept + { + return cuco::detail::is_packable(); + } + + /** + * @brief Constructs a linear probing scheme based on the given hash map features. + * + * @param slots Pointer to beginning of the hash map slots + * @param capacity Capacity of the hash map + * @param hash Unary function to hash each key + */ + __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) + : slots_{slots}, capacity_{capacity}, hash_{Hash{}} + { + } + + /** + * @brief Returns the capacity of the hash map. + */ + __host__ __device__ __forceinline__ std::size_t get_capacity() const noexcept + { + return capacity_; + } + + /** + * @brief Returns slots array. + */ + __device__ __forceinline__ iterator get_slots() noexcept { return slots_; } + + /** + * @brief Returns slots array. + */ + __device__ __forceinline__ const_iterator get_slots() const noexcept { return slots_; } + + /** + * @brief Returns the initial slot for a given key `k`. + * + * If vector-load is enabled, the return slot is always even to avoid illegal memory access. + * + * @tparam CG CUDA Cooperative Groups type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @return Pointer to the initial slot for `k` + */ + template + __device__ __forceinline__ iterator initial_slot(CG const& g, Key const k) noexcept + { + auto const hash_value = [&]() { + auto const tmp = hash_(k); + if constexpr (uses_vector_load()) { + // initial hash value is always even + return tmp + tmp % 2; + } + if constexpr (not uses_vector_load()) { return tmp; } + }(); + + auto const offset = [&]() { + if constexpr (uses_vector_load()) { return g.thread_rank() * vector_width(); } + if constexpr (not uses_vector_load()) { return g.thread_rank(); } + }(); + + // Each CG accesses to a window of (`cg_size` * `vector_width`) + // slots if vector-load is used or `cg_size` slots otherwise + return &slots_[(hash_value + offset) % capacity_]; + } + + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. + * + * @param s The slot to advance + * @return The next slot after `s` + */ + __device__ __forceinline__ iterator next_slot(iterator s) noexcept + { + std::size_t index = s - slots_; + std::size_t offset; + if constexpr (uses_vector_load()) { + offset = cg_size * vector_width(); + } else { + offset = cg_size; + } + return &slots_[(index + offset) % capacity_]; + } + + protected: + iterator slots_; ///< Pointer to beginning of the hash map slots + const std::size_t capacity_; ///< Total number of slots + Hash hash_; +}; // class linear_probing + +/** + * @brief Cooperative Groups based double hashing scheme. + * + * Default probe sequence for `cuco::static_multimap`. Double hashing shows superior + * performance when dealing with high multiplicty and/or high occupancy use cases. Performance + * hints: + * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. + * + * `Hash1` and `Hash2` should be callable object type. + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam Hash1 Unary callable type + * @tparam Hash2 Unary callable type + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + */ +template +class double_hashing { public: + using value_type = cuco::pair_type; + using key_type = Key; + using mapped_type = Value; + using atomic_key_type = cuda::atomic; + using atomic_mapped_type = cuda::atomic; + using pair_atomic_type = cuco::pair_type; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + /** * @brief Returns the size of the CUDA cooperative thread group. */ - __host__ __device__ static constexpr uint32_t cg_size() noexcept { return CGSize; } + static constexpr std::size_t cg_size = CGSize; /** * @brief Returns the number of elements loaded with each vector-load. @@ -75,13 +218,17 @@ class probe_sequence_base { } /** - * @brief Constructs a probe sequence based on the given hash map features. + * @brief Constructs a double hashing scheme based on the given hash map features. + * + * `hash2` takes a different seed to reduce the chance of secondary clustering. * * @param slots Pointer to beginning of the hash map slots * @param capacity Capacity of the hash map + * @param hash1 First hasher to hash each key + * @param hash2 Second hasher to determine step size */ - __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) - : slots_{slots}, capacity_{capacity} + __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) + : slots_{slots}, capacity_{capacity}, hash1_{Hash1{}}, hash2_{Hash2{}}, step_size_{} { } @@ -102,11 +249,125 @@ class probe_sequence_base { * @brief Returns slots array. */ __device__ __forceinline__ const_iterator get_slots() const noexcept { return slots_; } + /** + * @brief Returns the initial slot for a given key `k`. + * + * If vector-load is enabled, the return slot is always a multiple of (`cg_size` * `vector_width`) + * to avoid illegal memory access. + * + * @tparam CG CUDA Cooperative Groups type + * @param g the Cooperative Group for which the initial slot is needed + * @param k The key to get the slot for + * @return Pointer to the initial slot for `k` + */ + template + __device__ __forceinline__ iterator initial_slot(CG const& g, Key const k) noexcept + { + std::size_t index; + auto const hash_value = hash1_(k); + if constexpr (uses_vector_load()) { + // step size in range [1, prime - 1] * cg_size * vector_width + step_size_ = + (hash2_(k) % (capacity_ / (cg_size * vector_width()) - 1) + 1) * cg_size * vector_width(); + index = hash_value % (capacity_ / (cg_size * vector_width())) * cg_size * vector_width() + + g.thread_rank() * vector_width(); + } else { + // step size in range [1, prime - 1] * cg_size + step_size_ = (hash2_(k) % (capacity_ / cg_size - 1) + 1) * cg_size; + index = (hash_value + g.thread_rank()) % capacity_; + } + return slots_ + index; + } + + /** + * @brief Given a slot `s`, returns the next slot. + * + * If `s` is the last slot, wraps back around to the first slot. + * + * @param s The slot to advance + * @return The next slot after `s` + */ + __device__ __forceinline__ iterator next_slot(iterator s) noexcept + { + std::size_t index = s - slots_; + return &slots_[(index + step_size_) % capacity_]; + } protected: iterator slots_; ///< Pointer to beginning of the hash map slots const std::size_t capacity_; ///< Total number of slots -}; // class probe_sequence_base + Hash1 hash1_; + Hash2 hash2_; + std::size_t step_size_; ///< The step stride when searching for the next slot +}; // class double_hashing + +/** + * @brief Base class for a hash map probe sequence. This class should not be used directly. + * + * Hash map operations are generally memory-bandwidth bound. A vector-load loads two consecutive + * slots instead of one to fully utilize the 16B memory load supported by SASS/hardware thus + * improve memory throughput. This method (flagged by `uses_vector_load` logic) is implicitly + * applied to all hash map operations (e.g. `insert`, `count`, and `retrieve`, etc.) when pairs + * are packable (see `cuco::detail::is_packable` logic). + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + */ +template +class probe_sequence_base : public ProbeImpl::template impl { + public: + using value_type = cuco::pair_type; + using key_type = Key; + using mapped_type = Value; + using atomic_key_type = cuda::atomic; + using atomic_mapped_type = cuda::atomic; + using pair_atomic_type = cuco::pair_type; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + static constexpr std::size_t cg_size = ProbeImpl::cg_size; + + /** + * @brief Constructs a probe sequence based on the given hash map features. + * + * @param slots Pointer to beginning of the hash map slots + * @param capacity Capacity of the hash map + */ + __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) + : ProbeImpl::template impl{slots, capacity} + { + } +}; // class probe_sequence_base } // namespace detail + +template +class linear_probing { + public: + static constexpr std::size_t cg_size = CGSize; + + /** + * @brief Returns the number of elements loaded with each vector-load. + */ + __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + + template + using impl = typename detail::linear_probing; +}; + +template +class double_hashing { + public: + static constexpr std::size_t cg_size = CGSize; + + /** + * @brief Returns the number of elements loaded with each vector-load. + */ + __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + + template + using impl = typename detail::double_hashing; +}; + } // namespace cuco diff --git a/include/cuco/detail/static_multimap/device_view_impl.inl b/include/cuco/detail/static_multimap/device_view_impl.inl index 77b8465e5..c4e520446 100644 --- a/include/cuco/detail/static_multimap/device_view_impl.inl +++ b/include/cuco/detail/static_multimap/device_view_impl.inl @@ -24,18 +24,14 @@ template class static_multimap::device_view_impl_base { - private: - ProbeSequence probe_sequence_; ///< Probe sequence used to probe the hash map - Key empty_key_sentinel_{}; ///< Key value that represents an empty slot - Value empty_value_sentinel_{}; ///< Initial Value of empty slot - protected: // Import member type definitions from `static_multimap` - using value_type = value_type; - using key_type = Key; - using mapped_type = Value; - using iterator = pair_atomic_type*; - using const_iterator = pair_atomic_type const*; + using value_type = value_type; + using key_type = Key; + using mapped_type = Value; + using iterator = pair_atomic_type*; + using const_iterator = pair_atomic_type const*; + using probe_sequence_type = probe_sequence_type; /** * @brief Indicates if vector-load is used. @@ -44,12 +40,15 @@ class static_multimap::device_view_ * * @return Boolean indicating if vector-load is used. */ - static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + static constexpr bool uses_vector_load() noexcept + { + return probe_sequence_type::uses_vector_load(); + } /** * @brief Returns the number of pairs loaded with each vector-load */ - static constexpr uint32_t vector_width() noexcept { return ProbeSequence::vector_width(); } + static constexpr uint32_t vector_width() noexcept { return probe_sequence_type::vector_width(); } __host__ __device__ device_view_impl_base(pair_atomic_type* slots, std::size_t capacity, @@ -189,7 +188,11 @@ class static_multimap::device_view_ } } -}; // class device_view_impl_base + private: + probe_sequence_type probe_sequence_; ///< Probe sequence used to probe the hash map + Key empty_key_sentinel_{}; ///< Key value that represents an empty slot + Value empty_value_sentinel_{}; ///< Initial Value of empty slot +}; // class device_view_impl_base template - -namespace cuco { - -/** - * @brief Cooperative Groups based Linear probing scheme. - * - * Linear probing is efficient only when few collisions are present. Performance hints: - * - Use linear probing only when collisions are rare. e.g. low occupancy or low multiplicity. - * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. - * - * `Hash` should be callable object type. - * - * @tparam Key Type used for keys - * @tparam Value Type of the mapped values - * @tparam CGSize Number of threads in CUDA Cooperative Groups - * @tparam Hash Unary callable type - * @tparam Scope The scope in which multimap operations will be performed by - * individual threads - */ -template , - cuda::thread_scope Scope = cuda::thread_scope_device> -class linear_probing : public detail::probe_sequence_base { - public: - using probe_sequence_base_type = detail::probe_sequence_base; - using iterator = typename probe_sequence_base_type::iterator; - using probe_sequence_base_type::capacity_; - using probe_sequence_base_type::cg_size; - using probe_sequence_base_type::slots_; - using probe_sequence_base_type::uses_vector_load; - using probe_sequence_base_type::vector_width; - - /** - * @brief Constructs a linear probing scheme based on the given hash map features. - * - * @param slots Pointer to beginning of the hash map slots - * @param capacity Capacity of the hash map - * @param hash Unary function to hash each key - */ - __host__ __device__ explicit linear_probing(iterator slots, - std::size_t capacity, - Hash hash = Hash{}) - : detail::probe_sequence_base{slots, capacity}, hash_{hash} - { - } - - /** - * @brief Returns the initial slot for a given key `k`. - * - * If vector-load is enabled, the return slot is always even to avoid illegal memory access. - * - * @tparam CG CUDA Cooperative Groups type - * @param g the Cooperative Group for which the initial slot is needed - * @param k The key to get the slot for - * @return Pointer to the initial slot for `k` - */ - template - __device__ __forceinline__ iterator initial_slot(CG const& g, Key const k) noexcept - { - auto const hash_value = [&]() { - auto const tmp = hash_(k); - if constexpr (uses_vector_load()) { - // initial hash value is always even - return tmp + tmp % 2; - } - if constexpr (not uses_vector_load()) { return tmp; } - }(); - - auto const offset = [&]() { - if constexpr (uses_vector_load()) { return g.thread_rank() * vector_width(); } - if constexpr (not uses_vector_load()) { return g.thread_rank(); } - }(); - - // Each CG accesses to a window of (`cg_size` * `vector_width`) - // slots if vector-load is used or `cg_size` slots otherwise - return &slots_[(hash_value + offset) % capacity_]; - } - - /** - * @brief Given a slot `s`, returns the next slot. - * - * If `s` is the last slot, wraps back around to the first slot. - * - * @param s The slot to advance - * @return The next slot after `s` - */ - __device__ __forceinline__ iterator next_slot(iterator s) noexcept - { - std::size_t index = s - slots_; - std::size_t offset; - if constexpr (uses_vector_load()) { - offset = cg_size() * vector_width(); - } else { - offset = cg_size(); - } - return &slots_[(index + offset) % capacity_]; - } - - private: - Hash hash_; ///< The unary callable used to hash the key -}; // class linear_probing - -/** - * @brief Cooperative Groups based double hashing scheme. - * - * Default probe sequence for `cuco::static_multimap`. Double hashing shows superior - * performance when dealing with high multiplicty and/or high occupancy use cases. Performance - * hints: - * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. - * - * `Hash1` and `Hash2` should be callable object type. - * - * @tparam Key Type used for keys - * @tparam Value Type of the mapped values - * @tparam CGSize Number of threads in CUDA Cooperative Groups - * @tparam Hash1 Unary callable type - * @tparam Hash2 Unary callable type - * @tparam Scope The scope in which multimap operations will be performed by - * individual threads - */ -template , - typename Hash2 = cuco::detail::MurmurHash3_32, - cuda::thread_scope Scope = cuda::thread_scope_device> -class double_hashing : public detail::probe_sequence_base { - public: - using probe_sequence_base_type = detail::probe_sequence_base; - using iterator = typename probe_sequence_base_type::iterator; - using probe_sequence_base_type::capacity_; - using probe_sequence_base_type::cg_size; - using probe_sequence_base_type::slots_; - using probe_sequence_base_type::uses_vector_load; - using probe_sequence_base_type::vector_width; - - /** - * @brief Constructs a double hashing scheme based on the given hash map features. - * - * `hash2` takes a different seed to reduce the chance of secondary clustering. - * - * @param slots Pointer to beginning of the hash map slots - * @param capacity Capacity of the hash map - * @param hash1 First hasher to hash each key - * @param hash2 Second hasher to determine step size - */ - __host__ __device__ explicit double_hashing(iterator slots, - std::size_t capacity, - Hash1 hash1 = Hash1{}, - Hash2 hash2 = Hash2{1}) noexcept - : detail::probe_sequence_base{slots, capacity}, - hash1_{hash1}, - hash2_{hash2} - { - } - - /** - * @brief Returns the initial slot for a given key `k`. - * - * If vector-load is enabled, the return slot is always a multiple of (`cg_size` * `vector_width`) - * to avoid illegal memory access. - * - * @tparam CG CUDA Cooperative Groups type - * @param g the Cooperative Group for which the initial slot is needed - * @param k The key to get the slot for - * @return Pointer to the initial slot for `k` - */ - template - __device__ __forceinline__ iterator initial_slot(CG const& g, Key const k) noexcept - { - std::size_t index; - auto const hash_value = hash1_(k); - if constexpr (uses_vector_load()) { - // step size in range [1, prime - 1] * cg_size * vector_width - step_size_ = (hash2_(k) % (capacity_ / (cg_size() * vector_width()) - 1) + 1) * cg_size() * - vector_width(); - index = hash_value % (capacity_ / (cg_size() * vector_width())) * cg_size() * vector_width() + - g.thread_rank() * vector_width(); - } else { - // step size in range [1, prime - 1] * cg_size - step_size_ = (hash2_(k) % (capacity_ / cg_size() - 1) + 1) * cg_size(); - index = (hash_value + g.thread_rank()) % capacity_; - } - return slots_ + index; - } - - /** - * @brief Given a slot `s`, returns the next slot. - * - * If `s` is the last slot, wraps back around to the first slot. - * - * @param s The slot to advance - * @return The next slot after `s` - */ - __device__ __forceinline__ iterator next_slot(iterator s) noexcept - { - std::size_t index = s - slots_; - return &slots_[(index + step_size_) % capacity_]; - } - - private: - Hash1 hash1_; ///< The first unary callable used to hash the key - Hash2 hash2_; ///< The second unary callable used to determine step size - std::size_t step_size_; ///< The step stride when searching for the next slot -}; // class double_hashing - -} // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index c7959b1f3..7d595a116 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -23,7 +23,6 @@ #include #include -#include #include #if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ @@ -42,6 +41,7 @@ #include #include +#include #include namespace cuco { @@ -135,12 +135,8 @@ template , - class ProbeSequence = cuco::double_hashing, - cuco::detail::MurmurHash3_32, - Scope>> + class ProbeSequence = + cuco::double_hashing<2, detail::MurmurHash3_32, detail::MurmurHash3_32>> class static_multimap { static_assert( cuco::is_bitwise_comparable_v, @@ -151,12 +147,13 @@ class static_multimap { cuco::is_bitwise_comparable_v, "Value type must have unique object representations or have been explicitly declared as safe " "for bitwise comparison via specialization of cuco::is_bitwise_comparable_v."); - - static_assert(std::is_base_of_v< - cuco::detail::probe_sequence_base, - ProbeSequence>, - "ProbeSequence must be a specialization of either cuco::detail::double_hashing or " - "cuco::detail::linear_probing"); + /* + static_assert(std::is_base_of_v< + cuco::detail::probe_sequence_base, + ProbeSequence>, + "ProbeSequence must be a specialization of either cuco::detail::double_hashing or + " "cuco::detail::linear_probing"); + */ public: using value_type = cuco::pair_type; @@ -171,6 +168,7 @@ class static_multimap { typename std::allocator_traits::rebind_alloc; using counter_allocator_type = typename std::allocator_traits::rebind_alloc; + using probe_sequence_type = detail::probe_sequence_base; static_multimap(static_multimap const&) = delete; static_multimap& operator=(static_multimap const&) = delete; @@ -197,7 +195,7 @@ class static_multimap { */ __host__ __device__ __forceinline__ static constexpr uint32_t cg_size() noexcept { - return ProbeSequence::cg_size(); + return ProbeSequence::cg_size; } /** @@ -517,7 +515,10 @@ class static_multimap { * * @return Boolean indicating if vector-load is used. */ - static constexpr bool uses_vector_load() noexcept { return ProbeSequence::uses_vector_load(); } + static constexpr bool uses_vector_load() noexcept + { + return cuco::detail::is_packable(); + } /** * @brief Returns the number of pairs loaded with each vector-load diff --git a/tests/static_multimap/static_multimap_test.cu b/tests/static_multimap/static_multimap_test.cu index 619256220..8191ab0d9 100644 --- a/tests/static_multimap/static_multimap_test.cu +++ b/tests/static_multimap/static_multimap_test.cu @@ -257,7 +257,7 @@ TEMPLATE_TEST_CASE_SIG("User defined key and value type", value_pair, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::linear_probing> + cuco::linear_probing<1, hash_key_pair>> map{capacity, sentinel_key, sentinel_value}; test_custom_key_value_type(map, insert_pairs, insert_keys.begin(), num_pairs); } @@ -408,7 +408,7 @@ TEMPLATE_TEST_CASE_SIG("Multiplicity equals two", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::linear_probing> + cuco::linear_probing<1, cuco::detail::MurmurHash3_32>> map{5, -1, -1}; test_multiplicity_two( map, d_pairs.begin(), d_keys.begin(), d_results.begin(), num_items); @@ -537,7 +537,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of non-matches", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::linear_probing> + cuco::linear_probing<1, cuco::detail::MurmurHash3_32>> map{num_keys * 2, -1, -1}; test_non_matches(map, d_pairs.begin(), d_keys.begin(), num_keys); } @@ -592,7 +592,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of insert_if", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::linear_probing> + cuco::linear_probing<1, cuco::detail::MurmurHash3_32>> map{num_keys * 2, -1, -1}; test_insert_if(map, d_pairs.begin(), d_keys.begin(), num_keys); } @@ -692,7 +692,7 @@ TEMPLATE_TEST_CASE_SIG("Tests of pair functions", Value, cuda::thread_scope_device, cuco::cuda_allocator, - cuco::linear_probing> + cuco::linear_probing<1, cuco::detail::MurmurHash3_32>> map{num_pairs * 2, -1, -1}; test_pair_functions(map, d_pairs.begin(), num_pairs); } From 9c80eb691f45218fda0399b048939568920e91e9 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 27 Oct 2021 16:06:50 -0400 Subject: [PATCH 256/267] Cleanups: rename classes, create probe_sequence_base class, move double hashing and linear probing to a new public header --- ...uence_base.cuh => probe_sequence_impl.cuh} | 78 +++++++------------ include/cuco/probe_sequences.cuh | 57 ++++++++++++++ include/cuco/static_multimap.cuh | 15 ++-- 3 files changed, 91 insertions(+), 59 deletions(-) rename include/cuco/detail/{probe_sequence_base.cuh => probe_sequence_impl.cuh} (85%) create mode 100644 include/cuco/probe_sequences.cuh diff --git a/include/cuco/detail/probe_sequence_base.cuh b/include/cuco/detail/probe_sequence_impl.cuh similarity index 85% rename from include/cuco/detail/probe_sequence_base.cuh rename to include/cuco/detail/probe_sequence_impl.cuh index 3a9cafbd1..a67463426 100644 --- a/include/cuco/detail/probe_sequence_base.cuh +++ b/include/cuco/detail/probe_sequence_impl.cuh @@ -39,8 +39,13 @@ namespace detail { * @tparam Scope The scope in which multimap operations will be performed by * individual threads */ -template -class linear_probing { +template +class linear_probing_impl { public: using value_type = cuco::pair_type; using key_type = Key; @@ -52,14 +57,14 @@ class linear_probing { using const_iterator = pair_atomic_type const*; /** - * @brief Returns the size of the CUDA cooperative thread group. + * @brief Returns the number of elements loaded with each vector-load. */ - static constexpr std::size_t cg_size = CGSize; + static constexpr uint32_t vector_width = VectorWidth; /** - * @brief Returns the number of elements loaded with each vector-load. + * @brief Returns the size of the CUDA cooperative thread group. */ - __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + static constexpr std::size_t cg_size = CGSize; /** * @brief Indicates if vector-load is used. @@ -80,7 +85,7 @@ class linear_probing { * @param capacity Capacity of the hash map * @param hash Unary function to hash each key */ - __host__ __device__ explicit linear_probing(iterator slots, std::size_t capacity) + __host__ __device__ explicit linear_probing_impl(iterator slots, std::size_t capacity) : slots_{slots}, capacity_{capacity}, hash_{Hash{}} { } @@ -126,7 +131,7 @@ class linear_probing { }(); auto const offset = [&]() { - if constexpr (uses_vector_load()) { return g.thread_rank() * vector_width(); } + if constexpr (uses_vector_load()) { return g.thread_rank() * vector_width; } if constexpr (not uses_vector_load()) { return g.thread_rank(); } }(); @@ -148,7 +153,7 @@ class linear_probing { std::size_t index = s - slots_; std::size_t offset; if constexpr (uses_vector_load()) { - offset = cg_size * vector_width(); + offset = cg_size * vector_width; } else { offset = cg_size; } @@ -181,10 +186,11 @@ class linear_probing { template -class double_hashing { +class double_hashing_impl { public: using value_type = cuco::pair_type; using key_type = Key; @@ -196,14 +202,14 @@ class double_hashing { using const_iterator = pair_atomic_type const*; /** - * @brief Returns the size of the CUDA cooperative thread group. + * @brief Returns the number of elements loaded with each vector-load. */ - static constexpr std::size_t cg_size = CGSize; + static constexpr uint32_t vector_width = VectorWidth; /** - * @brief Returns the number of elements loaded with each vector-load. + * @brief Returns the size of the CUDA cooperative thread group. */ - __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } + static constexpr std::size_t cg_size = CGSize; /** * @brief Indicates if vector-load is used. @@ -227,7 +233,7 @@ class double_hashing { * @param hash1 First hasher to hash each key * @param hash2 Second hasher to determine step size */ - __host__ __device__ explicit double_hashing(iterator slots, std::size_t capacity) + __host__ __device__ explicit double_hashing_impl(iterator slots, std::size_t capacity) : slots_{slots}, capacity_{capacity}, hash1_{Hash1{}}, hash2_{Hash2{}}, step_size_{} { } @@ -268,9 +274,9 @@ class double_hashing { if constexpr (uses_vector_load()) { // step size in range [1, prime - 1] * cg_size * vector_width step_size_ = - (hash2_(k) % (capacity_ / (cg_size * vector_width()) - 1) + 1) * cg_size * vector_width(); - index = hash_value % (capacity_ / (cg_size * vector_width())) * cg_size * vector_width() + - g.thread_rank() * vector_width(); + (hash2_(k) % (capacity_ / (cg_size * vector_width) - 1) + 1) * cg_size * vector_width; + index = hash_value % (capacity_ / (cg_size * vector_width)) * cg_size * vector_width + + g.thread_rank() * vector_width; } else { // step size in range [1, prime - 1] * cg_size step_size_ = (hash2_(k) % (capacity_ / cg_size - 1) + 1) * cg_size; @@ -316,7 +322,7 @@ class double_hashing { * individual threads */ template -class probe_sequence_base : public ProbeImpl::template impl { +class probe_sequence : public ProbeImpl::template impl { public: using value_type = cuco::pair_type; using key_type = Key; @@ -335,39 +341,11 @@ class probe_sequence_base : public ProbeImpl::template impl { * @param slots Pointer to beginning of the hash map slots * @param capacity Capacity of the hash map */ - __host__ __device__ explicit probe_sequence_base(iterator slots, std::size_t capacity) + __host__ __device__ explicit probe_sequence(iterator slots, std::size_t capacity) : ProbeImpl::template impl{slots, capacity} { } -}; // class probe_sequence_base -} // namespace detail - -template -class linear_probing { - public: - static constexpr std::size_t cg_size = CGSize; - - /** - * @brief Returns the number of elements loaded with each vector-load. - */ - __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } - - template - using impl = typename detail::linear_probing; -}; - -template -class double_hashing { - public: - static constexpr std::size_t cg_size = CGSize; - - /** - * @brief Returns the number of elements loaded with each vector-load. - */ - __host__ __device__ static constexpr uint32_t vector_width() noexcept { return 2u; } - - template - using impl = typename detail::double_hashing; -}; +}; // class probe_sequence +} // namespace detail } // namespace cuco diff --git a/include/cuco/probe_sequences.cuh b/include/cuco/probe_sequences.cuh new file mode 100644 index 000000000..cb064a280 --- /dev/null +++ b/include/cuco/probe_sequences.cuh @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +namespace cuco { + +template +class probe_sequence_base { + public: + /** + * @brief Returns the size of the CUDA cooperative thread group. + */ + static constexpr std::size_t cg_size = CGSize; + + /** + * @brief Returns the number of elements loaded with each vector load. + */ + static constexpr uint32_t vector_width() noexcept { return 2u; } +}; + +template +class linear_probing : public probe_sequence_base { + public: + using probe_sequence_base::cg_size; + using probe_sequence_base::vector_width; + + template + using impl = detail::linear_probing_impl; +}; + +template +class double_hashing : public probe_sequence_base { + public: + using probe_sequence_base::cg_size; + using probe_sequence_base::vector_width; + + template + using impl = detail::double_hashing_impl; +}; + +} // namespace cuco diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 7d595a116..b5c8a9d42 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -23,6 +23,7 @@ #include #include +#include #include #if defined(CUDART_VERSION) && (CUDART_VERSION >= 11000) && defined(__CUDA_ARCH__) && \ @@ -41,7 +42,6 @@ #include #include -#include #include namespace cuco { @@ -147,13 +147,10 @@ class static_multimap { cuco::is_bitwise_comparable_v, "Value type must have unique object representations or have been explicitly declared as safe " "for bitwise comparison via specialization of cuco::is_bitwise_comparable_v."); - /* - static_assert(std::is_base_of_v< - cuco::detail::probe_sequence_base, - ProbeSequence>, - "ProbeSequence must be a specialization of either cuco::detail::double_hashing or - " "cuco::detail::linear_probing"); - */ + + static_assert(std::is_base_of_v, ProbeSequence>, + "ProbeSequence must be a specialization of either cuco::double_hashing or " + "cuco::linear_probing"); public: using value_type = cuco::pair_type; @@ -168,7 +165,7 @@ class static_multimap { typename std::allocator_traits::rebind_alloc; using counter_allocator_type = typename std::allocator_traits::rebind_alloc; - using probe_sequence_type = detail::probe_sequence_base; + using probe_sequence_type = detail::probe_sequence; static_multimap(static_multimap const&) = delete; static_multimap& operator=(static_multimap const&) = delete; From 1b62dc1f0404a43dd471ce62022bb0bd29396956 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 27 Oct 2021 16:36:21 -0400 Subject: [PATCH 257/267] Create probe_sequence_impl_base class --- include/cuco/detail/probe_sequence_impl.cuh | 160 ++++++++++---------- 1 file changed, 83 insertions(+), 77 deletions(-) diff --git a/include/cuco/detail/probe_sequence_impl.cuh b/include/cuco/detail/probe_sequence_impl.cuh index a67463426..d3c2b427d 100644 --- a/include/cuco/detail/probe_sequence_impl.cuh +++ b/include/cuco/detail/probe_sequence_impl.cuh @@ -24,29 +24,13 @@ namespace cuco { namespace detail { -/** - * @brief Cooperative Groups based Linear probing scheme. - * - * Linear probing is efficient only when few collisions are present. Performance hints: - * - Use linear probing only when collisions are rare. e.g. low occupancy or low multiplicity. - * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. - * - * `Hash` should be callable object type. - * - * @tparam Key Type used for keys - * @tparam Value Type of the mapped values - * @tparam Hash Unary callable type - * @tparam Scope The scope in which multimap operations will be performed by - * individual threads - */ template -class linear_probing_impl { - public: + uint32_t CGSize> +class probe_sequence_impl_base { + protected: using value_type = cuco::pair_type; using key_type = Key; using mapped_type = Value; @@ -79,14 +63,13 @@ class linear_probing_impl { } /** - * @brief Constructs a linear probing scheme based on the given hash map features. + * @brief Constructs a probe sequence based on the given hash map features. * * @param slots Pointer to beginning of the hash map slots * @param capacity Capacity of the hash map - * @param hash Unary function to hash each key */ - __host__ __device__ explicit linear_probing_impl(iterator slots, std::size_t capacity) - : slots_{slots}, capacity_{capacity}, hash_{Hash{}} + __host__ __device__ explicit probe_sequence_impl_base(iterator slots, std::size_t capacity) + : slots_{slots}, capacity_{capacity} { } @@ -108,6 +91,63 @@ class linear_probing_impl { */ __device__ __forceinline__ const_iterator get_slots() const noexcept { return slots_; } + iterator slots_; ///< Pointer to beginning of the hash map slots + const std::size_t capacity_; ///< Total number of slots +}; // class probe_sequence_impl_base + +/** + * @brief Cooperative Groups based Linear probing scheme. + * + * Linear probing is efficient only when few collisions are present. Performance hints: + * - Use linear probing only when collisions are rare. e.g. low occupancy or low multiplicity. + * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. + * + * `Hash` should be callable object type. + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam Hash Unary callable type + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + */ +template +class linear_probing_impl + : public probe_sequence_impl_base { + public: + using probe_sequence_impl_base_type = + probe_sequence_impl_base; + using value_type = typename probe_sequence_impl_base_type::value_type; + using key_type = typename probe_sequence_impl_base_type::key_type; + using mapped_type = typename probe_sequence_impl_base_type::mapped_type; + using atomic_key_type = typename probe_sequence_impl_base_type::atomic_key_type; + using atomic_mapped_type = typename probe_sequence_impl_base_type::atomic_mapped_type; + using pair_atomic_type = typename probe_sequence_impl_base_type::pair_atomic_type; + using iterator = typename probe_sequence_impl_base_type::iterator; + using const_iterator = typename probe_sequence_impl_base_type::const_iterator; + + using probe_sequence_impl_base_type::capacity_; + using probe_sequence_impl_base_type::cg_size; + using probe_sequence_impl_base_type::slots_; + using probe_sequence_impl_base_type::uses_vector_load; + using probe_sequence_impl_base_type::vector_width; + + /** + * @brief Constructs a linear probing scheme based on the given hash map features. + * + * @param slots Pointer to beginning of the hash map slots + * @param capacity Capacity of the hash map + * @param hash Unary function to hash each key + */ + __host__ __device__ explicit linear_probing_impl(iterator slots, std::size_t capacity) + : probe_sequence_impl_base_type{slots, capacity}, hash_{Hash{}} + { + } + /** * @brief Returns the initial slot for a given key `k`. * @@ -160,9 +200,7 @@ class linear_probing_impl { return &slots_[(index + offset) % capacity_]; } - protected: - iterator slots_; ///< Pointer to beginning of the hash map slots - const std::size_t capacity_; ///< Total number of slots + private: Hash hash_; }; // class linear_probing @@ -190,38 +228,25 @@ template -class double_hashing_impl { +class double_hashing_impl + : public probe_sequence_impl_base { public: - using value_type = cuco::pair_type; - using key_type = Key; - using mapped_type = Value; - using atomic_key_type = cuda::atomic; - using atomic_mapped_type = cuda::atomic; - using pair_atomic_type = cuco::pair_type; - using iterator = pair_atomic_type*; - using const_iterator = pair_atomic_type const*; - - /** - * @brief Returns the number of elements loaded with each vector-load. - */ - static constexpr uint32_t vector_width = VectorWidth; - - /** - * @brief Returns the size of the CUDA cooperative thread group. - */ - static constexpr std::size_t cg_size = CGSize; + using probe_sequence_impl_base_type = + probe_sequence_impl_base; + using value_type = typename probe_sequence_impl_base_type::value_type; + using key_type = typename probe_sequence_impl_base_type::key_type; + using mapped_type = typename probe_sequence_impl_base_type::mapped_type; + using atomic_key_type = typename probe_sequence_impl_base_type::atomic_key_type; + using atomic_mapped_type = typename probe_sequence_impl_base_type::atomic_mapped_type; + using pair_atomic_type = typename probe_sequence_impl_base_type::pair_atomic_type; + using iterator = typename probe_sequence_impl_base_type::iterator; + using const_iterator = typename probe_sequence_impl_base_type::const_iterator; - /** - * @brief Indicates if vector-load is used. - * - * Users have no explicit control on whether vector-load is used. - * - * @return Boolean indicating if vector-load is used. - */ - __host__ __device__ static constexpr bool uses_vector_load() noexcept - { - return cuco::detail::is_packable(); - } + using probe_sequence_impl_base_type::capacity_; + using probe_sequence_impl_base_type::cg_size; + using probe_sequence_impl_base_type::slots_; + using probe_sequence_impl_base_type::uses_vector_load; + using probe_sequence_impl_base_type::vector_width; /** * @brief Constructs a double hashing scheme based on the given hash map features. @@ -234,27 +259,10 @@ class double_hashing_impl { * @param hash2 Second hasher to determine step size */ __host__ __device__ explicit double_hashing_impl(iterator slots, std::size_t capacity) - : slots_{slots}, capacity_{capacity}, hash1_{Hash1{}}, hash2_{Hash2{}}, step_size_{} - { - } - - /** - * @brief Returns the capacity of the hash map. - */ - __host__ __device__ __forceinline__ std::size_t get_capacity() const noexcept + : probe_sequence_impl_base_type{slots, capacity}, hash1_{Hash1{}}, hash2_{Hash2{}}, step_size_{} { - return capacity_; } - /** - * @brief Returns slots array. - */ - __device__ __forceinline__ iterator get_slots() noexcept { return slots_; } - - /** - * @brief Returns slots array. - */ - __device__ __forceinline__ const_iterator get_slots() const noexcept { return slots_; } /** * @brief Returns the initial slot for a given key `k`. * @@ -299,9 +307,7 @@ class double_hashing_impl { return &slots_[(index + step_size_) % capacity_]; } - protected: - iterator slots_; ///< Pointer to beginning of the hash map slots - const std::size_t capacity_; ///< Total number of slots + private: Hash1 hash1_; Hash2 hash2_; std::size_t step_size_; ///< The step stride when searching for the next slot From f1ff196362059f545e2472cab3c04a123a686992 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 27 Oct 2021 17:17:01 -0400 Subject: [PATCH 258/267] Update comments + minor cleanups --- include/cuco/detail/probe_sequence_impl.cuh | 70 +++++++++++---------- include/cuco/probe_sequences.cuh | 32 ++++++++++ 2 files changed, 69 insertions(+), 33 deletions(-) diff --git a/include/cuco/detail/probe_sequence_impl.cuh b/include/cuco/detail/probe_sequence_impl.cuh index d3c2b427d..107120956 100644 --- a/include/cuco/detail/probe_sequence_impl.cuh +++ b/include/cuco/detail/probe_sequence_impl.cuh @@ -24,6 +24,22 @@ namespace cuco { namespace detail { +/* + * @brief Base class of probe sequence implementation. + * + * Hash map operations are generally memory-bandwidth bound. A vector-load loads two consecutive + * slots instead of one to fully utilize the 16B memory load supported by SASS/hardware thus + * improve memory throughput. This method (flagged by `uses_vector_load` logic) is implicitly + * applied to all hash map operations (e.g. `insert`, `count`, and `retrieve`, etc.) when pairs + * are packable (see `cuco::detail::is_packable` logic). + * + * @tparam Key Type used for keys + * @tparam Value Type of the mapped values + * @tparam Scope The scope in which multimap operations will be performed by + * individual threads + * @tparam VectorWidth Length of vector load + * @tparam CGSize Size of CUDA Cooperative Groups + */ template class probe_sequence : public ProbeImpl::template impl { public: - using value_type = cuco::pair_type; - using key_type = Key; - using mapped_type = Value; - using atomic_key_type = cuda::atomic; - using atomic_mapped_type = cuda::atomic; - using pair_atomic_type = cuco::pair_type; - using iterator = pair_atomic_type*; - using const_iterator = pair_atomic_type const*; - - static constexpr std::size_t cg_size = ProbeImpl::cg_size; + using impl_type = typename ProbeImpl::template impl; /** * @brief Constructs a probe sequence based on the given hash map features. @@ -347,8 +350,9 @@ class probe_sequence : public ProbeImpl::template impl { * @param slots Pointer to beginning of the hash map slots * @param capacity Capacity of the hash map */ - __host__ __device__ explicit probe_sequence(iterator slots, std::size_t capacity) - : ProbeImpl::template impl{slots, capacity} + __host__ __device__ explicit probe_sequence(typename impl_type::iterator slots, + std::size_t capacity) + : impl_type{slots, capacity} { } }; // class probe_sequence diff --git a/include/cuco/probe_sequences.cuh b/include/cuco/probe_sequences.cuh index cb064a280..05129b0b9 100644 --- a/include/cuco/probe_sequences.cuh +++ b/include/cuco/probe_sequences.cuh @@ -20,6 +20,11 @@ namespace cuco { +/** + * @brief Base class of public probe sequence. This class should not be used directly. + * + * @tparam CGSize Size of CUDA Cooperative Groups + */ template class probe_sequence_base { public: @@ -34,6 +39,18 @@ class probe_sequence_base { static constexpr uint32_t vector_width() noexcept { return 2u; } }; +/** + * @brief Public linear probing scheme class. + * + * Linear probing is efficient when few collisions are present. Performance hints: + * - Use linear probing when collisions are rare. e.g. low occupancy or low multiplicity. + * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. + * + * `Hash` should be callable object type. + * + * @tparam CGSize Size of CUDA Cooperative Groups + * @tparam Hash Unary callable type + */ template class linear_probing : public probe_sequence_base { public: @@ -44,6 +61,21 @@ class linear_probing : public probe_sequence_base { using impl = detail::linear_probing_impl; }; +/** + * + * @brief Public double hashing scheme class. + * + * Default probe sequence for `cuco::static_multimap`. Double hashing shows superior + * performance when dealing with high multiplicty and/or high occupancy use cases. Performance + * hints: + * - `CGSize` = 1 or 2 when hash map is small (10'000'000 or less), 4 or 8 otherwise. + * + * `Hash1` and `Hash2` should be callable object type. + * + * @tparam CGSize Size of CUDA Cooperative Groups + * @tparam Hash1 Unary callable type + * @tparam Hash2 Unary callable type + */ template class double_hashing : public probe_sequence_base { public: From 689a9c3847eb17500e9cb6a89bb1fc5dd4ee4616 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 27 Oct 2021 17:23:20 -0400 Subject: [PATCH 259/267] Minor update --- include/cuco/probe_sequences.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/probe_sequences.cuh b/include/cuco/probe_sequences.cuh index 05129b0b9..05bf0280c 100644 --- a/include/cuco/probe_sequences.cuh +++ b/include/cuco/probe_sequences.cuh @@ -27,7 +27,7 @@ namespace cuco { */ template class probe_sequence_base { - public: + protected: /** * @brief Returns the size of the CUDA cooperative thread group. */ From c6c3aee1c175a7dc9b22b63e7249d474debde108 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Wed, 27 Oct 2021 18:06:10 -0400 Subject: [PATCH 260/267] Move probe_sequence_base to detail namespace --- include/cuco/detail/probe_sequence_impl.cuh | 19 ++++++++++++ include/cuco/probe_sequences.cuh | 33 +++++---------------- include/cuco/static_multimap.cuh | 7 +++-- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/include/cuco/detail/probe_sequence_impl.cuh b/include/cuco/detail/probe_sequence_impl.cuh index 107120956..3145e8fa5 100644 --- a/include/cuco/detail/probe_sequence_impl.cuh +++ b/include/cuco/detail/probe_sequence_impl.cuh @@ -24,6 +24,25 @@ namespace cuco { namespace detail { +/** + * @brief Base class of public probe sequence. This class should not be used directly. + * + * @tparam CGSize Size of CUDA Cooperative Groups + */ +template +class probe_sequence_base { + protected: + /** + * @brief Returns the size of the CUDA cooperative thread group. + */ + static constexpr std::size_t cg_size = CGSize; + + /** + * @brief Returns the number of elements loaded with each vector load. + */ + static constexpr uint32_t vector_width() noexcept { return 2u; } +}; + /* * @brief Base class of probe sequence implementation. * diff --git a/include/cuco/probe_sequences.cuh b/include/cuco/probe_sequences.cuh index 05bf0280c..f923f9df6 100644 --- a/include/cuco/probe_sequences.cuh +++ b/include/cuco/probe_sequences.cuh @@ -20,25 +20,6 @@ namespace cuco { -/** - * @brief Base class of public probe sequence. This class should not be used directly. - * - * @tparam CGSize Size of CUDA Cooperative Groups - */ -template -class probe_sequence_base { - protected: - /** - * @brief Returns the size of the CUDA cooperative thread group. - */ - static constexpr std::size_t cg_size = CGSize; - - /** - * @brief Returns the number of elements loaded with each vector load. - */ - static constexpr uint32_t vector_width() noexcept { return 2u; } -}; - /** * @brief Public linear probing scheme class. * @@ -52,10 +33,11 @@ class probe_sequence_base { * @tparam Hash Unary callable type */ template -class linear_probing : public probe_sequence_base { +class linear_probing : public detail::probe_sequence_base { public: - using probe_sequence_base::cg_size; - using probe_sequence_base::vector_width; + using probe_sequence_base_type = detail::probe_sequence_base; + using probe_sequence_base_type::cg_size; + using probe_sequence_base_type::vector_width; template using impl = detail::linear_probing_impl; @@ -77,10 +59,11 @@ class linear_probing : public probe_sequence_base { * @tparam Hash2 Unary callable type */ template -class double_hashing : public probe_sequence_base { +class double_hashing : public detail::probe_sequence_base { public: - using probe_sequence_base::cg_size; - using probe_sequence_base::vector_width; + using probe_sequence_base_type = detail::probe_sequence_base; + using probe_sequence_base_type::cg_size; + using probe_sequence_base_type::vector_width; template using impl = detail::double_hashing_impl; diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index b5c8a9d42..944018981 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -148,9 +148,10 @@ class static_multimap { "Value type must have unique object representations or have been explicitly declared as safe " "for bitwise comparison via specialization of cuco::is_bitwise_comparable_v."); - static_assert(std::is_base_of_v, ProbeSequence>, - "ProbeSequence must be a specialization of either cuco::double_hashing or " - "cuco::linear_probing"); + static_assert( + std::is_base_of_v, ProbeSequence>, + "ProbeSequence must be a specialization of either cuco::double_hashing or " + "cuco::linear_probing"); public: using value_type = cuco::pair_type; From 32ff8adf420df9e35806729969b6c61ff18edb60 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 29 Oct 2021 17:42:20 -0400 Subject: [PATCH 261/267] Set default CG size to 8 --- include/cuco/static_multimap.cuh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 944018981..840af103a 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -136,7 +136,7 @@ template , class ProbeSequence = - cuco::double_hashing<2, detail::MurmurHash3_32, detail::MurmurHash3_32>> + cuco::double_hashing<8, detail::MurmurHash3_32, detail::MurmurHash3_32>> class static_multimap { static_assert( cuco::is_bitwise_comparable_v, From cdba4805a2850fd235612efecefa399a1c4af43a Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 29 Oct 2021 17:58:56 -0400 Subject: [PATCH 262/267] Revert back to manual grid size calculation --- .../static_multimap/static_multimap.inl | 111 ++++++------------ 1 file changed, 33 insertions(+), 78 deletions(-) diff --git a/include/cuco/detail/static_multimap/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl index 5fe5e95f1..53fb37799 100644 --- a/include/cuco/detail/static_multimap/static_multimap.inl +++ b/include/cuco/detail/static_multimap/static_multimap.inl @@ -58,9 +58,8 @@ static_multimap::static_multimap( slots_{slot_allocator_.allocate(capacity_, stream_), delete_slots_} { auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail::initialize, - block_size); + auto constexpr stride = 4; + auto const grid_size = (get_capacity() + stride * block_size - 1) / (stride * block_size); detail::initialize<<>>( slots_.get(), empty_key_sentinel, empty_value_sentinel, get_capacity()); @@ -80,8 +79,8 @@ void static_multimap::insert(InputI auto view = get_device_mutable_view(); auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail::insert, block_size); + auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); detail::insert <<>>(first, first + num_keys, view); @@ -101,9 +100,9 @@ void static_multimap::insert_if( auto view = get_device_mutable_view(); auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail::insert_if_n, - block_size); + auto constexpr stride = 1; + auto const grid_size = + (cg_size() * num_elements + stride * block_size - 1) / (stride * block_size); detail::insert_if_n <<>>(first, stencil, num_elements, view, pred); @@ -123,8 +122,8 @@ void static_multimap::contains( auto view = get_device_view(); auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail::contains, block_size); + auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); detail::contains <<>>(first, last, output_begin, view, key_equal); @@ -143,12 +142,11 @@ std::size_t static_multimap::count( auto num_keys = std::distance(first, last); auto view = get_device_view(); - constexpr bool is_outer = false; + bool constexpr is_outer = false; auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail::count, - block_size); + auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -174,12 +172,11 @@ std::size_t static_multimap::count_ auto num_keys = std::distance(first, last); auto view = get_device_view(); - constexpr bool is_outer = true; + bool constexpr is_outer = true; auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail::count, - block_size); + auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -205,13 +202,11 @@ std::size_t static_multimap::pair_c auto num_keys = std::distance(first, last); auto view = get_device_view(); - constexpr bool is_outer = false; + bool constexpr is_outer = false; auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail:: - pair_count, - block_size); + auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -237,13 +232,11 @@ std::size_t static_multimap::pair_c auto num_keys = std::distance(first, last); auto view = get_device_view(); - constexpr bool is_outer = true; + bool constexpr is_outer = true; auto constexpr block_size = 128; - auto const grid_size = cuco::detail::get_grid_size( - detail:: - pair_count, - block_size); + auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -272,24 +265,15 @@ OutputIt static_multimap::retrieve( // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); constexpr auto block_size = 128; - constexpr bool is_outer = false; + constexpr auto is_outer = false; + constexpr auto stride = 1; auto const flushing_cg_size = [&]() { if constexpr (uses_vector_load()) { return warp_size(); } return cg_size(); }(); - auto const grid_size = detail::get_grid_size(detail::retrieve, - block_size); + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -321,24 +305,15 @@ OutputIt static_multimap::retrieve_ // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); constexpr auto block_size = 128; - constexpr bool is_outer = true; + constexpr auto is_outer = true; + constexpr auto stride = 1; auto const flushing_cg_size = [&]() { if constexpr (uses_vector_load()) { return warp_size(); } return cg_size(); }(); - auto const grid_size = detail::get_grid_size(detail::retrieve, - block_size); + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -376,25 +351,15 @@ static_multimap::pair_retrieve( // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); constexpr auto block_size = 128; - constexpr bool is_outer = false; + constexpr auto is_outer = false; + constexpr auto stride = 1; auto const flushing_cg_size = [&]() { if constexpr (uses_vector_load()) { return warp_size(); } return cg_size(); }(); - auto const grid_size = detail::get_grid_size(detail::pair_retrieve, - block_size); + auto const grid_size = (cg_size() * num_pairs + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -431,25 +396,15 @@ static_multimap::pair_retrieve_oute // Using per-warp buffer for vector loads and per-CG buffer for scalar loads constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); constexpr auto block_size = 128; - constexpr bool is_outer = true; + constexpr auto is_outer = true; + constexpr auto stride = 1; auto const flushing_cg_size = [&]() { if constexpr (uses_vector_load()) { return warp_size(); } return cg_size(); }(); - auto const grid_size = detail::get_grid_size(detail::pair_retrieve, - block_size); + auto const grid_size = (cg_size() * num_pairs + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; From 9bf100b1e4be69a18e070bf9e91510f436c76d19 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Fri, 29 Oct 2021 22:08:28 -0400 Subject: [PATCH 263/267] Use get_grid_size for retrieve for better runtime performance --- .../static_multimap/static_multimap.inl | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/include/cuco/detail/static_multimap/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl index 53fb37799..bbc92af78 100644 --- a/include/cuco/detail/static_multimap/static_multimap.inl +++ b/include/cuco/detail/static_multimap/static_multimap.inl @@ -266,14 +266,23 @@ OutputIt static_multimap::retrieve( constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); constexpr auto block_size = 128; constexpr auto is_outer = false; - constexpr auto stride = 1; auto const flushing_cg_size = [&]() { if constexpr (uses_vector_load()) { return warp_size(); } return cg_size(); }(); - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = detail::get_grid_size(detail::retrieve, + block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; @@ -306,14 +315,23 @@ OutputIt static_multimap::retrieve_ constexpr auto buffer_size = uses_vector_load() ? (warp_size() * 3u) : (cg_size() * 3u); constexpr auto block_size = 128; constexpr auto is_outer = true; - constexpr auto stride = 1; auto const flushing_cg_size = [&]() { if constexpr (uses_vector_load()) { return warp_size(); } return cg_size(); }(); - auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); + auto const grid_size = detail::get_grid_size(detail::retrieve, + block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); std::size_t h_counter; From 7e17741712f77da1c4893124b4ff8f439f79261c Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Sun, 31 Oct 2021 14:18:31 -0400 Subject: [PATCH 264/267] Rename multimap benchmarks --- benchmarks/CMakeLists.txt | 4 +-- .../{find_all_bench.cu => retrieve_bench.cu} | 8 ++--- .../static_multimap/static_multimap_bench.cu | 36 +++++++++---------- 3 files changed, 24 insertions(+), 24 deletions(-) rename benchmarks/hash_table/static_multimap/{find_all_bench.cu => retrieve_bench.cu} (96%) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 7b02316d9..21e84c2fc 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -72,8 +72,8 @@ set(STATIC_MULTIMAP_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_mul ConfigureNVBench(STATIC_MULTIMAP_BENCH "${STATIC_MULTIMAP_BENCH_SRC}") ################################################################################################### -set(FIND_ALL_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_multimap/find_all_bench.cu") -ConfigureNVBench(FIND_ALL_BENCH "${FIND_ALL_BENCH_SRC}") +set(RETRIEVE_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/hash_table/static_multimap/retrieve_bench.cu") +ConfigureNVBench(RETRIEVE_BENCH "${RETRIEVE_SRC}") ################################################################################################### set(RBK_BENCH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/reduce_by_key/reduce_by_key.cu") diff --git a/benchmarks/hash_table/static_multimap/find_all_bench.cu b/benchmarks/hash_table/static_multimap/retrieve_bench.cu similarity index 96% rename from benchmarks/hash_table/static_multimap/find_all_bench.cu rename to benchmarks/hash_table/static_multimap/retrieve_bench.cu index 483e01bf7..5856ed7c5 100644 --- a/benchmarks/hash_table/static_multimap/find_all_bench.cu +++ b/benchmarks/hash_table/static_multimap/retrieve_bench.cu @@ -46,7 +46,7 @@ static void generate_multikeys(OutputIt output_begin, * */ template -std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_retrieve( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { @@ -91,7 +91,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_find_all( } template -std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_find_all( +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_retrieve( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { @@ -103,7 +103,7 @@ using value_type = nvbench::type_list; using cg_size = nvbench::enum_type_list<1, 2, 4, 8, 16, 32>; using buffer_size = nvbench::enum_type_list<1, 2, 4, 8, 16>; -NVBENCH_BENCH_TYPES(nvbench_find_all, +NVBENCH_BENCH_TYPES(nvbench_retrieve, NVBENCH_TYPE_AXES(key_type, value_type, cg_size, nvbench::enum_type_list<2>)) .set_type_axes_names({"Key", "Value", "CGSize", "BufferSize"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. @@ -113,7 +113,7 @@ NVBENCH_BENCH_TYPES(nvbench_find_all, .add_int64_power_of_two_axis("Multiplicity", nvbench::range(0, 8, 1)); NVBENCH_BENCH_TYPES( - nvbench_find_all, + nvbench_retrieve, NVBENCH_TYPE_AXES(key_type, value_type, nvbench::enum_type_list<8>, buffer_size)) .set_type_axes_names({"Key", "Value", "CGSize", "BufferSize"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index c6d3fd58a..494e8e1a3 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -124,12 +124,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_c } /** - * @brief A benchmark evaluating multi-value `find_all` performance: + * @brief A benchmark evaluating multi-value `retrieve` performance: * - Total number of insertions: 100'000'000 * - CG size: 8 */ template -std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_find_all( +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_retrieve( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { @@ -170,7 +170,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_f } template -std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_find_all( +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_retrieve( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { @@ -178,12 +178,12 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_f } /** - * @brief A benchmark evaluating multi-value retrieve (`count` + `find_all`) performance: + * @brief A benchmark evaluating multi-value query (`count` + `retrieve`) performance: * - Total number of insertions: 100'000'000 * - CG size: 8 */ template -std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_retrieve( +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_query( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { @@ -225,7 +225,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r } template -std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_retrieve( +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_query( nvbench::state& state, nvbench::type_list, nvbench::enum_type>) { @@ -291,12 +291,12 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_count, .add_float64_axis("Occupancy", {0.8}) .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, +NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, NVBENCH_TYPE_AXES(key_type, value_type, nvbench::enum_type_list, multiplicity)) - .set_name("staic_multimap_find_all_uniform_multiplicity") + .set_name("staic_multimap_retrieve_uniform_multiplicity") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -304,9 +304,9 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, .add_float64_axis("Occupancy", {0.8}) .add_float64_axis("MatchingRate", {0.5}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, +NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) - .set_name("staic_multimap_find_all_occupancy") + .set_name("staic_multimap_retrieve_occupancy") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -314,9 +314,9 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_float64_axis("MatchingRate", {0.5}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, +NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) - .set_name("staic_multimap_find_all_matching_rate") + .set_name("staic_multimap_retrieve_matching_rate") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -324,12 +324,12 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_find_all, .add_float64_axis("Occupancy", {0.8}) .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, +NVBENCH_BENCH_TYPES(nvbench_static_multimap_query, NVBENCH_TYPE_AXES(key_type, value_type, nvbench::enum_type_list, multiplicity)) - .set_name("staic_multimap_retrieve_uniform_multiplicity") + .set_name("staic_multimap_query_uniform_multiplicity") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -337,9 +337,9 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, .add_float64_axis("Occupancy", {0.8}) .add_float64_axis("MatchingRate", {0.5}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, +NVBENCH_BENCH_TYPES(nvbench_static_multimap_query, NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) - .set_name("staic_multimap_retrieve_occupancy") + .set_name("staic_multimap_query_occupancy") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. @@ -347,9 +347,9 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, .add_float64_axis("Occupancy", nvbench::range(0.1, 0.9, 0.1)) .add_float64_axis("MatchingRate", {0.5}); -NVBENCH_BENCH_TYPES(nvbench_static_multimap_retrieve, +NVBENCH_BENCH_TYPES(nvbench_static_multimap_query, NVBENCH_TYPE_AXES(key_type, value_type, d_type, nvbench::enum_type_list<8>)) - .set_name("staic_multimap_retrieve_matching_rate") + .set_name("staic_multimap_query_matching_rate") .set_type_axes_names({"Key", "Value", "Distribution", "Multiplicity"}) .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. From ff407f79b4486c14040629c5e9e2eb278947d1b0 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Sun, 31 Oct 2021 18:30:19 -0400 Subject: [PATCH 265/267] Add pair_retrieve benchmark + function renaming --- .../static_multimap/static_multimap_bench.cu | 98 ++++++++++++++++++- benchmarks/key_generator.hpp | 6 +- 2 files changed, 98 insertions(+), 6 deletions(-) diff --git a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu index 494e8e1a3..4ba873147 100644 --- a/benchmarks/hash_table/static_multimap/static_multimap_bench.cu +++ b/benchmarks/hash_table/static_multimap/static_multimap_bench.cu @@ -17,11 +17,24 @@ #include #include +#include #include #include #include +namespace { +// Custom pair equal +template +struct pair_equal { + __device__ bool operator()(const cuco::pair_type& lhs, + const cuco::pair_type& rhs) const + { + return lhs.first == rhs.first; + } +}; +} // anonymous namespace + /** * @brief A benchmark evaluating multi-value `insert` performance: * - Total number of insertions: 100'000'000 @@ -100,7 +113,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_c h_pairs[i].second = val; } - generate_prob_keys(matching_rate, h_keys.begin(), h_keys.end()); + generate_probe_keys(matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -151,7 +164,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_r h_pairs[i].second = val; } - generate_prob_keys(matching_rate, h_keys.begin(), h_keys.end()); + generate_probe_keys(matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -205,7 +218,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_q h_pairs[i].second = val; } - generate_prob_keys(matching_rate, h_keys.begin(), h_keys.end()); + generate_probe_keys(matching_rate, h_keys.begin(), h_keys.end()); thrust::device_vector d_keys(h_keys); thrust::device_vector> d_pairs(h_pairs); @@ -232,6 +245,72 @@ std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_q state.skip("Key should be the same type as Value."); } +/** + * @brief A benchmark evaluating `pair_retrieve` performance: + * - CG size: 8 + */ +template +std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> nvbench_static_multimap_pair_retrieve( + nvbench::state& state, nvbench::type_list>) +{ + auto constexpr matching_rate = 0.5; + auto constexpr occupancy = 0.5; + auto constexpr dist = dist_type::UNIFORM; + + auto const num_input = state.get_int64("NumInputs"); + + std::size_t const size = num_input / occupancy; + + std::vector h_keys(num_input); + std::vector> h_pairs(num_input); + + generate_keys(h_keys.begin(), h_keys.end()); + + for (auto i = 0; i < num_input; ++i) { + Key key = h_keys[i]; + Value val = h_keys[i]; + h_pairs[i].first = key; + h_pairs[i].second = val; + } + + thrust::device_vector> d_pairs(h_pairs); + auto const pair_begin = d_pairs.begin(); + + cuco::static_multimap map{size, -1, -1}; + map.insert(pair_begin, pair_begin + num_input); + + generate_probe_keys(matching_rate, h_keys.begin(), h_keys.end()); + thrust::device_vector d_keys(h_keys); + + thrust::transform( + thrust::device, d_keys.begin(), d_keys.begin() + num_input, pair_begin, [] __device__(Key i) { + return cuco::pair_type{i, i}; + }); + + state.add_element_count(num_input, "NumInputs"); + + auto const output_size = + map.pair_count(pair_begin, pair_begin + num_input, pair_equal{}); + thrust::device_vector> d_results(output_size); + + auto out1_begin = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + auto out2_begin = thrust::make_zip_iterator( + thrust::make_tuple(thrust::make_discard_iterator(), thrust::make_discard_iterator())); + + state.exec(nvbench::exec_tag::sync, [&](nvbench::launch& launch) { + auto [out1_end, out2_end] = map.pair_retrieve( + pair_begin, pair_begin + num_input, out1_begin, out2_begin, pair_equal{}); + }); +} + +template +std::enable_if_t<(sizeof(Key) != sizeof(Value)), void> nvbench_static_multimap_pair_retrieve( + nvbench::state& state, nvbench::type_list>) +{ + state.skip("Key should be the same type as Value."); +} + using key_type = nvbench::type_list; using value_type = nvbench::type_list; using d_type = @@ -356,3 +435,16 @@ NVBENCH_BENCH_TYPES(nvbench_static_multimap_query, .add_int64_axis("NumInputs", {100'000'000}) // Total number of key/value pairs: 100'000'000 .add_float64_axis("Occupancy", {0.8}) .add_float64_axis("MatchingRate", {0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}); + +NVBENCH_BENCH_TYPES(nvbench_static_multimap_pair_retrieve, + NVBENCH_TYPE_AXES(key_type, value_type, multiplicity)) + .set_name("staic_multimap_pair_retrieve_uniform_multiplicity") + .set_type_axes_names({"Key", "Value", "Multiplicity"}) + .set_timeout(100) // Custom timeout: 100 s. Default is 15 s. + .set_max_noise(3) // Custom noise: 3%. By default: 0.5%. + .add_int64_axis("NumInputs", + {1'000, + 100'000, + 1'000'000, + 10'000'000, + 100'000'000}); // Total number of key/value pairs: 100'000'000 diff --git a/benchmarks/key_generator.hpp b/benchmarks/key_generator.hpp index 9f0d8d8a6..09edb2654 100644 --- a/benchmarks/key_generator.hpp +++ b/benchmarks/key_generator.hpp @@ -89,9 +89,9 @@ static void generate_keys(OutputIt output_begin, OutputIt output_end) } template -static void generate_prob_keys(double const matching_rate, - OutputIt output_begin, - OutputIt output_end) +static void generate_probe_keys(double const matching_rate, + OutputIt output_begin, + OutputIt output_end) { auto const num_keys = std::distance(output_begin, output_end); auto const max = std::numeric_limits::max(); From 0e80e146aa79ca7676b38e4a29f45396767162f7 Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Sun, 31 Oct 2021 19:04:47 -0400 Subject: [PATCH 266/267] Update performance notebook --- .../analysis/notebooks/StaticMultimap.ipynb | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/benchmarks/analysis/notebooks/StaticMultimap.ipynb b/benchmarks/analysis/notebooks/StaticMultimap.ipynb index 9b6675a43..0269c5690 100644 --- a/benchmarks/analysis/notebooks/StaticMultimap.ipynb +++ b/benchmarks/analysis/notebooks/StaticMultimap.ipynb @@ -97,13 +97,13 @@ "staic_multimap_insert_occupancy\n", "staic_multimap_count_uniform_multiplicity\n", "staic_multimap_count_occupancy\n", - "staic_multimap_count_matching_rate\n", - "staic_multimap_find_all_uniform_multiplicity\n", - "staic_multimap_find_all_occupancy\n", - "staic_multimap_find_all_matching_rate\n", "staic_multimap_retrieve_uniform_multiplicity\n", "staic_multimap_retrieve_occupancy\n", - "staic_multimap_retrieve_matching_rate\n" + "staic_multimap_retrieve_matching_rate\n", + "staic_multimap_query_uniform_multiplicity\n", + "staic_multimap_query_occupancy\n", + "staic_multimap_query_matching_rate\n", + "staic_multimap_count_matching_rate\n" ] } ], @@ -134,7 +134,7 @@ "outputs": [ { "data": { - "image/png": "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Ax98APffX/V918hEOXw4tG4NW2xh98OHV9++mzVrxmeffcakSZMYP348ffv2Zd68eYAlyh9//JHvvvuO1atXM3To0EqXU7duXV599dUNP7Ty9OvXj0mTJjFp0iSuuuoqAC688EJ22WUXpk+fzvTp02nTpg0XXXTRhufsuuuuTJo0ie+++47CwkJeeumlDev23ntvXnzxxQ2PX3jhBfbZZ59Kv5aqGjEC9toL8vLsfsSI6t1/r1696NOnD1OmTOGLL75g++2337Bu4sSJLF26tMpl+OdZdQMGwKBB9psG2HlneOwxW15VNS5RDh8OvXvDrFlWVZ81yx5XV7KsU6cOdevWBWDt2rWUxNX7jzvuOEQEEaFLly4UFhZWupxatWrRu3dvHnzwwQo/t6CggC+//JKbb755w7JbbrmFiRMnMn369E22zcvLo0uXLsydO3fDspYtW7JmzRrmz5+PqvLOO+9w7LHHVvq1VMWIEXDTTfDII3Zu6pFH7HF1JcsffviB4uJijjrqKMBqmg0aNABg/fr19OnTh3//+99VLsc/z6qbMwf23BOKizcu69AB5s2r+uF31l3rnczVV8OkSWWvHzcO1q7ddNmqVXDhhfD444mf06kTPPRQ6jHMmTOH448/noKCAvr168dOO+20yfqioiKeffZZBlTxX93ll19Ox44duf7668vdrk+fPtx1110APPvss/z888906tSJvLy8Ddvk5eXRqVMnJk+eTMeOHTcsX7NmDePHj98s1tNOO42XX36Zzp07s++++2745xCGbt02X3bGGXDZZXDnndCoEdx++8Z1jRpBnz7QowcsXAinnbbpc8eMSb3sadOm0bhxY0455RR+/vlnjjzySPr27UteXh4DBw7kxBNPpFmzZpV5WZupKZ9nWA44AN58E8aPt8/4yy/hrbcgP9+OHquixtUoSyfJZMsrY+edd+bbb7+loKCAp59+mvnz52+y/rLLLuOQQw7h4IMPLnMfIpJ0+VZbbUWvXr02nKcqS/yh2t57742qJtx//PLp06fTqVMnmjRpQsuWLTf5sQGcccYZvPzyy4wYMYIePXqUW36Ypk6FrbfedNnWW1stojoUFxczduxY+vfvz4QJE5gxYwZPPfUU8+bN4+WXX+bKK69MaT/+eYbv9tvhqqvg5ZehXj0YNsyOFu+8s+r7zrkaZbKaX+vWdrhdWqtWFatppGKnnXZizz33ZOzYsZwWVGtuv/12FixYwGOPPVbuc5s0acIvv/yyybLly5fTuHHjTZZdffXV7Lvvvpx//vkpx7Xnnnvy9ddfU1JSwhbBv9qSkhK++eYb2rdvD2w8p/XLL7/QrVs3Ro4cyYknnrhhHzvuuCO1a9fm/fffZ8CAAXz22Wcpl19R5X0u7dvbD+SwwzYu+/BDiOWvpk2r9rm2aNGCzp07s8suuwDQvXt3xo0bx4477khBQQFt27YFYNWqVbRt25aCgoKE+/HPM3zdusHTT8Nxx8G6dVabfOUV+OMfq77vGlejvPtuCE4xbdCggS2vDoWFhawOOnAtWbKETz/9lHbt2gEwdOhQ3n33XUaMGLHhC12WQw45hJEjR7J8+XIAXn31VfbZZ59NDq8Att12W84444xNWi2Tadu2LZ07d95w+AZw1113se+++2744cc0a9aMvn37cu+99262nzvuuIP77rtvs5jS6aab7LTJhx9CUZHdX3ihLa8O+++/P0uWLGHBggUAjB49mg4dOnD88cfz66+/MnPmTGbOnEmDBg3KTJLgn2e6/P673b/5prWAV0eShBqYKHv2hCFDrAYpYvdDhtjy6jBlyhQOOOAA9tlnHw499FCuu+469t57bwAuueQS5s+fT9euXenUqRN33HFHmfvp2LEjV1xxBQcddBCdOnVi8ODBZbaSX3vttSm1lsZ74oknmDZtGm3btmXXXXdl2rRpZf44u3fvzqpVqxg7duwmyw888EC6d+9eoXKrW48e9k/uyivtcOvKK+1xdR095uXl0b9/f4444ogNh7kXX3xxhffjn2d6jB4NW20F++1XvfsVVa3ePYYsPz9ffeBe51wib7xhV+X8/e8Vf66IfKmq+YnW5dw5SudczXXSSeHs1xNlxJ588snNumr88Y9/5NFHH40oIlcV/nlG58cf7XTa7rvbfXXyQ2/nXE445xx4/3349dfKJcryDr1rXGOOcy73qFpDzuGHV39tEjxROudywI8/wi+/WKIMgydK51zWGzXK7o84Ipz9e6J0zmW90aOtT3SbNuHs31u9nXNZb8gQG4MyjPOT4InSOZcDmja1W1j80Ns5l9VeeQX697eW77B4onTOZbXHH4cnnwzvsBs8UTrnsti6dTB2bHit3TGeKJ1zWWvcOJuhwBOlc86VYfRom+bh0EPD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88/t9t131oAyezasW2edvT/80B736wfXXWc1xnvusRpjfn7V5r1evNhmOxw/3g7N16zZdP26dVbDrFVr08S2++5lJ73Y39tsk3on7379Nj9H6YNSZD9PlDlsyhTrfN25c3gtqj/+aNccFxbabeRIa+mtX9+Sxa672jnGunUtYfTrZ1eXgCWjf/yj4mWuW2cNOuPHb7z99JOtE7FabXnPDXM0oNjhvQ9KkVs8Ueag+fOtUWH6dEta339vCen66yu+rzFj7DB67tyNyXCXXWDwYFt/3HHWLSemUaON88Q0aADPPWfdcu65x+aY+etfK1a+qu0/Pil+/bWd8wO7lvuAA+D88+0+P9+6CCUawLZVq/QMmdazpyfGXJPziXLpUmtlTPfI1LNm2bm5r7+2xHLllTZbXzr06mWXwI0aZYeMc+bYdcN77GG1ucWLN7YCv/66JZ9YEiwstNrnhAm2/pZbrLFliy0sKbVosel4h489ZucXW7Sw7i4rVtggtx98YNO1nnkmvP++9ReMJdfyLF268RA6dou1ItevbwPUXnGFJcUDDoCdd948+d19tx/+uuqVs4nyq68sOX37rdVKjjsOBg60vnZhmzrVGiXOPRf+9S+L5eijrXZ19NFV33+su4yI1R4LC63FdsUKq3199pn1G8zLs/NyI4Nu/medZQ0WDRpYNxyAl1+2W/Pmluz222/T0byHDbNEuOOOia9sOeqoTR/XrWv7O/VUG3173TqL48Yb7VxfvHXr7PMZP35jcpw61daJbEzssaS4116pda3xw19X3XIyUf76q7Wm/vvf9uNYtcr65J1wgl3uFvbh1+23w9//bjPflZTA/vvDDjtY4h4+3BJI587WX3DyZKtxrVhht1jCu+8+S07PPmvn9WLrV6yw1txff7V9DhwId921eQzFxXY/daol6i23tNtFF1lCLCmxWuLjj1sZibrugF1FUlHz5lljyrp19nj9epsDu0kTOyyP1RS/+mrjIfQOO1gy7NULunSx92zrrStedowf/rrqlJOJctgwuyqjVi077J0zx679LSmxIatatoRu3SxZ/fqrHSIXFdlt3Tq7P/98GzV6yhRLePHriorsnNthh1nfv/PP33T9kiWWlIcPt9be+A7I++9v959/bofH48dbUgXrwtKokSW033+3RLnVVvYaYsu33NL+jo0o06OH7TO2vE4d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\n", + "image/png": "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e6q+7xqZKJ9/Hjp0gFq17O/zz1ffvlu1asUXX3zBxIkT+eqrrxgwYAALFiwALFH++OOPTJ48mXXr1vHEE09Uupz69evzyiuvbPmilWfgwIFMnDiRiRMncsUVVwBw8cUXs8suuzB9+nSmT59Ox44d+eMf/7jlMbvuuisTJ05k8uTJzJs3jxdffHHLur333pv//ve/W+6PGDGCffbZp9LPpaqGD4e99oLate3v8OHVu//zzz+fa6+9lh9++IGxY8eyww47bFk3fvx4VqxYUeUy/P2sugcegEcfte80QNu28NhjtryqalyifP556NsXZs+2qvrs2Xa/upJlvXr1qF+/PgAbNmxgc1y9/7jjjkNEEBF69OjBvHnzKl1OnTp16Nu3L/fdd1+FH1tQUMCECRO4+eabtyy75ZZbGD9+PNOnTy+xbe3atenRowfz58/fsqxdu3asX7+exYsXo6q8++67HHvssZV+LlUxfDjceCM89JCdm3roIbtfXcny+++/p6ioiKOOOgqwmmajRo0A2LRpE9deey3//ve/q1yOv59VN3cudO0Ko0bB2WfDokXQpQssWFD1w++su9Y7mSuvhIkTy17/5ZewYUPJZWvXwsUXw+OPJ35MXh7cf3/qMcydO5fjjz+egoICBg4cSOvWrUusLyws5LnnnuOBKv7U9evXj27dunHdddeVu921117LnXfeCcBzzz3HzJkzycvLo3bt2lu2qV27Nnl5eUyZMoVu3bptWb5+/Xq++uqrrWI944wzeOmll9h3333p3r37lh+HMPTuvfWys86CSy+FO+6AbbeF/v2L1227LVx7LZxzDixdCmecUfKxY8akXva0adNo0qQJp512GjNnzuTII49kwIAB1K5dm4cffpiTTjqJVq1aVeZpbaWmvJ9hOeAAeOMN+OoreP11GDoU3noL8vPt6LEqalyNsnSSTLa8Mtq2bcukSZMoKCjgmWeeYfHixSXWX3rppRxyyCEcfPDBZe5DRJIu32677Tj//PO3nKcqS/yh2t57742qJtx//PLp06eTl5dH8+bNadeuXYkvG8BZZ53FSy+9xPDhwznnnHPKLT9MU6fC9tuXXLb99laLqA5FRUV8+umnDBo0iHHjxjFjxgyGDh3KggULeOmll7j88stT2o+/n+Hr3x+uuAJeeskqN8OG2dHiHXdUfd85V6NMVvPr0MEOt0tr375iNY1UtG7dmq5du/Lpp59yRlCt6d+/P0uWLOGxxx4r97HNmzdn4cKFJZatWrWKJk2alFh25ZVX0r17dy666KKU4+ratSvffPMNmzdvplbwU7t582a+/fZb9txzT6D4nNbChQvp3bs3I0eO5KSTTtqyj5122om6devywQcf8MADD/DFF1+kXH5Flfe+7LmnfUEOO6x42UcfQSx/tWhRtfe1TZs27Lvvvuyyyy4AnHLKKXz55ZfstNNOFBQU0KlTJwDWrl1Lp06dKCgoSLgffz/D17s3PPMMHHccbNxotcmXX4YDD6z6vmtcjfKuuyA4xbRFo0a2vDrMmzePdUEHruXLl/P555/TuXNnAJ544gnee+89hg8fvuUDXZZDDjmEkSNHsmrVKgBeeeUV9tlnnxKHVwDNmjXjrLPOKtFqmUynTp3Yd999txy+Adx555107959yxc/plWrVgwYMIC77757q/3cfvvt/Otf/9oqpnS68UY7bfLRR1BYaH8vvtiWV4f999+f5cuXs2TJEgBGjx5Nly5dOP7441m0aBGzZs1i1qxZNGrUqMwkCf5+psuvv9rfN9+0FvDqSJJQAxNlnz4wZIjVIEXs75Ahtrw6/PDDDxxwwAHss88+HHrooVxzzTXsvffeAFxyySUsXryYnj17kpeXx+23317mfrp168Zll13GQQcdRF5eHoMHDy6zlfzqq69OqbU03pNPPsm0adPo1KkTu+66K9OmTSvzy3nKKaewdu1aPv300xLLe/XqxSmnnFKhcqvbOefYj9zll0ODBvb3rrtseXWoXbs2gwYN4ogjjthymPunP/2pwvvx9zM9GjSAI46A7t2rd7+iqtW7x5Dl5+erD9zrnKtuIjJBVfMTratxNUrnXG5au9ZuYfBEGbGnn356y1UWsVu/fv2iDstVkr+f0RkxApo2hZkzq3/ffujtnMsJv/+9XbK4cKG1P1SUH3o753Kaql2Rc/jhlUuSyXiidM5lvR9+sEsWjzginP17onTOZb3Ro+3v4YeHs39PlM65rHfUUfDgg9CxYzj7z7lLGJ1zNU/nznYLi9conXNZbeZMeO216p36oTRPlM65rPbii3DqqcXXeYfBE6VzLquNGmUj2++4Y3hleKJ0zmWtDRvgs8/Ca+2O8UTpnMtaX35p5ybD6j8ZE2qiFJFjRGSqiBSIyPVlbNNbRCaKyBQR+TjMeJxzueXzz22ah0MPDbec0BKliNQGHgGOBboA54hIl1LbNAEeBU5S1a7AmWHF45zLPTfcAD/9tPV0INUtzBplD6BAVWeo6kZgBHByqW3OBV5R1TkAqvpziPE453KMCASzdIQqzES5MzA37v68YFm83YGmIjJGRCaIyPkhxuOcyyEffwwXXQSl5u4LRZiJMtEYHqXHdKsD7AccDxwN3Cwiu2+1I5G+IjJeRMbH5i5xztVsI0fa/O3bbRd+WWEmynlA27j7bYDSk4jOA95V1TWquhT4BNin9I5UdYiq5qtqfsuWLUML2DmXPUaPhl69oGHD8MsKM1GOA3YTkY4iUg84GxhZapvXgYNFpI6INAIOAH4IMSbnXA5YuhQmTgy/W1BMaINiqGqRiFwGvAfUBp5S1SkickmwfrCq/iAi7wKTgM3AE6r6XVgxOedyQ2yu9qxPlACq+jbwdqllg0vdHwgMDDMO51xu2bgR8vIgP+HEDdXPr8xxzmWdc8+Fb76BOmkaKNITpXMuqxQWwubN6S3TE6VzLqu88IKNFDR3bvJtq4snSudcVhk1yq7I2bn05Ssh8kTpnMsaqtZ/8vDDbTCMdPFE6ZzLGtOmwfz54Y8/WZonSudc1hg1yv6mq/9kjCdK51zW6NEDbrklPSMGxfPpap1zWSM/P32dzON5jdI5lxXmzbMRzYuK0l+2J0rnXFYYPhwOOgiiGGnRE6VzLiuMHg177gmtWqW/bE+UzrmMt3EjfPJJ+lu7YzxROucy3ldfwdq1niidc65MH32Unmlpy+KJ0jmX8f7+d/jyS2jaNJryPVE65zJe/fqw//7Rle+J0jmX0b780mqUv/wSXQyeKJ1zGe2VV+D++6FBg+hi8ETpnMtoo0ZBz57QqFF0MXiidM5lrF9+sblx0j2sWmmeKJ1zGWvMGBusN6r+kzGeKJ1zGWvpUmjTxoZXi5InSudcxurbF+bMgbp1o43DE6VzLiOp2l+RaOMAT5TOuQw1bJiNFrRgQdSReKJ0zmWoUaNs7Mmddoo6Ek+UzrkMpGqJ8rDD0jstbVkyIATnnCvpp59s6oeouwXFeKJ0zmWcqKalLYsnSudcxtljD+jXDzp1ijoS49PVOucyzmGH2S1TeI3SOZdRfv7ZzlHG+lFmglATpYgcIyJTRaRARK5PsL63iKwUkYnB7ZYw43HOZb7nnoPdd4eFC6OOpFhoh94iUht4BDgKmAeME5GRqvp9qU0/VdUTworDOZddRo+Gzp2hdeuoIykWZo2yB1CgqjNUdSMwAjg5xPKcc1musDDaaWnLEmai3BmYG3d/XrCstJ4i8q2IvCMiXUOMxzmX4caOhdWrox9/srQwW70TXcpe+vTs10B7VV0tIscBrwG7bbUjkb5AX4B27dpVc5jOuUwxapQNgpFJLd4Qbo1yHtA27n4boMTl7ar6q6quDv5/G6grIi1K70hVh6hqvqrmt2zZMsSQnXNRuvRSeOcdaNYs6khKCjNRjgN2E5GOIlIPOBsYGb+BiOwkYoMoiUiPIJ5lIcbknMtgLVrA0UdHHcXWQjv0VtUiEbkMeA+oDTylqlNE5JJg/WDgDOAvIlIErAPOVs2k3lPOuXT5+mtr8e7bF7bbLupoSpJsy0v5+fk6fvz4qMNwzlWz66+He++F5cuhceP0ly8iE1Q1P9E6vzLHOZcRRo2C3/wmmiSZjCdK51zkli+HCRMyr1tQjCdK51zkMmVa2rJ4onTORW7GDNh+ezjggKgjScwTpXMucldfDYsXQ716UUeSmCdK51xGqF8/6gjK5onSORepF1+EQw6xGmWm8kTpnIvUu+/Cd9/ZVTmZyhOlcy4y8dPS1q4ddTRl80TpnIvMjBkwZ07mdguK8UTpnItMbFraTO1oHuOJ0jkXmVat4OyzbeqHTObT1TrnInPiiXbLdF6jdM5FYsUKWJYlo896onTORWLoUGjZEhYtijqS5DxROuciMWoUdOoEO+0UdSTJpXSOUkTygYOB1thI5N8BH6rqLyHG5pzLUUVF8PHHcO65UUeSmnJrlCJyoYh8DdwANASmAj8DBwEfiMgzIuLTIjrnKmTcOFi1KvP7T8Ykq1E2Bg5U1XWJVopIHja97Jxqjss5l8Ni/SczbVraspSbKFX1kSTrJ1ZrNM65GqFPH9hll8y+vjteSo05wSF2k7j7TUXkqdCics7ltI4ds+f8JKTe6t1NVVfE7qjqcmDfUCJyzuW0776DZ5+FtWujjiR1qSbKWiLSNHZHRJrhV/U45yrhhRfg4oth06aoI0ldqsnuHuALEfkfoMBZwF2hReWcy1mjRkGPHrDttlFHkrqUapSq+ixwOrAYWAKcpqrPhRmYcy73rFwJ48dnT7egmIpcmdMMWKOqDwFLRKRjSDE553LUxx/D5s05mihF5Fbg71jHc4C6wLCwgnLO5aaJE6FhQ/jNb6KOpGJSrVGeCpwErAFQ1QVAFp1hcM5lgltugblzM3vGxURSTZQbVVWxhhxEpHF4ITnnclnz5lFHUHGpJsoXReQxoImI/An4EHg8vLCcc7nm9dfh9NOzZwzKeCl1D1LVQSJyFPAr0Bm4RVU/CDUy51xOeeMNGD0amjSJOpKKS3WYtcbAaFX9QEQ6A51FpK6qFoYbnnMuV4waBb17Z/a0tGVJ9dD7E6C+iOyMHXZfBAxN9iAROUZEpopIgYhcX852+4vIJhE5I8V4nHNZZOZMmDUr82dbLEuqiVJUdS1wGvCQqp4KdCn3ASK1gUeAY4NtzxGRrR4TbPcv4L2KBO6cyx6xYdWyrf9kTMqJUkR6An2At4JlyQ7bewAFqjpDVTcCI4CTE2x3OfAyNiCwcy4HNWoERx0Fe+4ZdSSVk2qi/CvW2fxVVZ0iIrsAHyV5zM7A3Lj784JlWwSH8qcCg1OMwzmXhc49F95/H0SijqRyUm31/gQ7Txm7PwO4IsnDEr0kWur+/cDfVXWTlPMKikhfoC9Au3Y+84Rz2WTNGqhbF+rVizqSyks2Z84QEdm7jHWNReQPItKnjIfPA9rG3W8DLCi1TT4wQkRmAWcAj4rIKaV3pKpDVDVfVfNbtmxZXsjOuQzzxBPQtCksWRJ1JJWXrEb5KHBzkCy/w0YOaoDNk7Md8BTwfBmPHQfsFgyeMR84GygxprGqbhlYQ0SGAm+q6msVfhbOuYw1ejS0amVzeGerZHPmTATOEpFtsNpfK2y62h9UdWqSxxaJyGVYa3Zt4Kng/OYlwXo/L+lcjisqgjFj4He/izqSqkn1HOVqYExFd66qbwNvl1qWMEGq6oUV3b9zLrNNmAC//pq93YJiKjIepXPOVcjo0fY3W6alLYvPe+OcC83xx9uUDzvsEHUkVVOhRCkijVV1TVjBOOdyS7dudst2qY5w3ktEvgd+CO7vIyKPhhqZcy6rTZsG77wDGzZEHUnVpXqO8j7gaGAZgKp+CxwSVlDOuez37LNw4ok1K1GiqnNLLcqiWXmdc+k2ahTsvz9st13UkVRdqolyroj0AlRE6onINQSH4c45F++nn+Dee2HsWDj44KijqR6pJspLgH7YoBbzgLzgvnPOAaAK118PBx4I775r09I+/jh8/nnUkVVdSolSVZeqah9V3VFVd1DV36tqFs584ZwLy7vvwmuvwdSp0L07NGgATz9tV+UUZvlcCKm2encUkXtF5BURGRm7hR2ccy57jBgBV1xhA2D8858weTKccgq0bg2ffRZ1dFWTaj/K14AngTeAzaFF45zLWoWFVotUhVq1oFMnW96wIWzcGG1sVZVqolyvqg+GGolzLquddBLccw8MGwbHHAPXXQdffw1TpmR/o06qjTkPiMitItJTRLrHbqFG5pzLKmeeabXHjz6yBpwrroDf/hYee8ymgshmqdYo9wbOAw6n+NBbg/vOOUetWrB6Ney0E+y6KzRrBuPHQ4cOUUdWdakmylOBXYJJwpxzbiuvvgrffANDh8IFF0QdTfVK9dD7W6BJiHE457KYKtx2G3TuDH3Kmhwmi6Vao9wR+FFExgFbrtxU1ZNCico5l1VEYPhwWL4c6uTg4I2pPqVbQ43COZf1unaNOoLwpDoVxMdhB+Kcy05Dh9pwak88YYP05qJyE6WIfKaqB4nIKkrOyS2AqmoOjAvinKusDRvg1lthxx1hm22ijiY8yWqU1wKoao7+TjjnquLJJ2HOHBv8QiTqaMKTrNX7kbRE4ZzLOuvWwZ132lU3Rx0VdTThSlajzOHfCOdcVfznP7BwoQ2Gkcu1SUieKDuWN0qQdw9yrub6/e9tEIxDasCkMMkS5RLgnnQE4pzLLjvsAJdeGnUU6ZEsUa7yrkHOuXgrVsDZZ8Ndd8F++0UdTXoka8yZlY4gnHPZ45574L33oHbtqCNJn3ITpaqelq5AnHOZb8kSuP9+G1ItLy/qaNIn5elqnXPu3/+GtWuhf/+oI0kvT5TOuZQsXAgPP2yt3XvuGXU06ZXsEsbSo5grsFRV54YXknMuEzVtCgMGwAknRB1J+iVr9U7UNaiZiNQDzlHVidUfknMuEzVoAH/9a9RRJPf883DjjXZpZbt21jpf1TEyy02UqnpYouUikg88CNSArqbOuVtugd12g/POizqS8j3/PPTta+dRAWbPtvtQtWRZqXOUqjoeSDpWiIgcIyJTRaRARK5PsP5kEZkkIhNFZLyIHFSZeJxz4SkosHm6x4+POpLkbryxOEnGrF1ry6uiUmMRi8iOlBx2LdE2tbFBNY4C5gHjRGSkqn4ft9koYKSqqoh0A14E9qhMTM65cPTvD/XqwQ03RB1JcnPmVGx5qpI15jzE1gmxGdALSHa2ogdQoKozgn2NAE4GtiRKVV0dt33jBGU55yL0/fd2OHvttTa7YqbbYQdYvHjr5e3aVW2/yWqUpSvbCiwD/qaqPyd57M5AfOv4POCA0huJyKnA3cAOwPFJ9umcS6Nbb7UBea+7LupIktuwwa4WErHJzmIaNbIGnapIdmXOM8AkYA0wVlWfVdW3UkiSkHiItq1qjKr6qqruAZwC3JFwRyJ9g3OY45csWZJC0c656nDuuTBoEDRvHnUkyf3rX7BgAVxzDbRvbwmzfXsYMqTqrd6iWvbRrojcDJwHTMBqg3er6uMp7VikJ3Cbqh4d3L8BQFXvLucxM4H9VXVpWdvk5+fr+Gw4q+ycS5tp02DvveG002w2yMoQkQmqmp9oXbJW77OBPFU9B9gf6FuBcscBu4lIx6Df5dlAibEtRaSTiA35GXRur4cd2jvnIvTVVzZP9+rVSTeNnCpccokdYt93XzhlJDtHuV5V11owukxEUu5OpKpFInIZ8B5QG3hKVaeIyCXB+sHA6cD5IlIIrAN+p+VVcZ1zaXHjjTBpkh3GZrpnnoGPPoLHHguvwSnZofcK4JPYXeDguPuRjHDuh97Oheujj+Dww+Hee+Gqq6KOpnxLl8Iee9jtk0+gVhVGryjv0DtZjfLkUvcHVT4M51ymU4Wbb4bWre1wNtNdfTX8+qvVJquSJJNJdgmjj27uXA3y/vvw+efw6KPQsGHU0ZRv1Ch49lk7TdC1a7hllZuDg0sM+8Xd/0pEZgS3M8INzTmXbq1awQUXwMUXRx1J+davtxpvp05VvzwxFckOva/DWqtj6mOt342Bp4H/hRSXcy4C3brB0KFRR5HcXXfZNegffpiemm+yo/p6pcae/ExVl6nqHCxZOudywObNcNNNMGtW1JEk9/331rn8vPPgiCPSU2ayRNk0/o6qXhZ3t2X1h+Oci8KLL1ot7csvo46kfJs3w5//DNtua5OcpUuyRPmViPyp9EIR+TMwNpyQnHPpVFRk13TvtRecdVbU0ZTvySfhs8/sssqWaayqJTtHeRXwmoicC3wdLNsPO1d5SohxOefSZNgwuwTw1VfD7WJTVYsX2+Achx4KF16Y3rKTdQ/6GeglIocDsQb4t1R1dOiROedCt3GjjTe5335wcule0xnmqqtsEN7HHrMBL9IppYF7g8ToydG5HLNuHRx9NJx6avqTT0W8+64NdnHbbdC5c/rLL/cSxkzklzA6V7OsXWvnT+vVg2+/hfr1wymnKpcwOudy1Kuv2iASPXtGHUn5br8dZs6EMWPCS5LJeKJ0rgZavdq62XTrZp22M9XkydYN6A9/sEacqGRwG5dzLiwPPQRLlsCdd0YdSdk2b7apZps0gX//O9pYvEbpXA2zciUMHAgnnAC/+U3U0ZRt8GDrAP/cc9FPReE1SudqmPvug+XL7dxfplqwwKbHPfLIqs93Ux08UTpXwzRtCn/8I+y7b9SRlO2vf7U+nv/5T2Z0W/JDb+dqmL/+NeoIyvfmm/C//9m15506RR2N8RqlczXEokU2+MXmzVFHUrbVq6FfPxuIN5Pm6/FE6VwNcffdNk/37NlRR1K2W2+FOXPsMsV69aKOppgnSudqgLlzrRX5oougY8eoo0nsm2/g/vutf+eBB0YdTUmeKJ2rAWL9JW++Odo4yrJpk/WZbNnSar6ZxhtznMtx06fDU0/ZHDPt2kUdTWIPPwzjx8OIEdYqn2m8Rulcjlu40Oa9/sc/oo4ksblzbRqKY4/N3IGDvUbpXI476CCYNCkz+iMmcvnlduj9yCOZG6PXKJ3LYa+/bsOUZWoCevVVi7F//8xtZAJPlM7llNWr4W9/gx13hMaN4ZRT4JZboo4qsV9/tdpkt25w5ZVRR1M+T5TO5QhVOP1061j+f/8HBx8MDRpYJ/OVK6OObms33WTXdD/+ONStG3U05fNE6VyOGDfOWrife86GUHvvPUtGvXrBs89GHV1JY8daS3e/ftCjR9TRJOeJ0rkcMWWKddRessRmKWzRAq64wga8/e67qKMrVlRkfSZbtbLrubOBJ0rnckTnzjZ+Y926do7y5Zdh223hiy+se1CmuP9+m/vmoYdgu+2ijiY13j3IuRyx666www5w/fU2Y+F229k0CqNHwwMPRB2dmTXLruc+6SSb+TFbhFqjFJFjRGSqiBSIyPUJ1vcRkUnB7QsR2SfMeJzLVQsX2iF28+ZQqxbstptNofDxx/DRR9CsWdQRWmNTv37WVemhhzK3y1IiodUoRaQ28AhwFDAPGCciI1X1+7jNZgKHqupyETkWGAIcEFZMzuWihQuhd2+YPx+eeMI6mA8ebImpVgadXHvpJXj7bRthPVMvpSxLmC9jD6BAVWeo6kZgBHBy/Aaq+oWqLg/ufgm0CTEe53LOggWWJBcsgHfftSQJVlvLpCS5YoUNGNy9O1x2WdTRVFyY5yh3BubG3Z9H+bXFi4F3QozHuZyiCmeeWZwkM21osng33AA//wxvvQV1srBlJMyQE52B0IQbihyGJcqDyljfF+gL0C7b6uzOhUQEHn3UrsbJ5CT5xRd2KuCqq6xGmY3CrJzPA9rG3W8DLCi9kYh0A54ATlbVZYl2pKpDVDVfVfNbtmwZSrDOZYv58+HBB+3/ffbJ7CRZWGgD8bZtm9mzPiYTZo1yHLCbiHQE5gNnA+fGbyAi7YBXgPNUdVqIsTiXE+bPh8MOs8sUTz3VElAmGzTIOruPHAnbbBN1NJUXWqJU1SIRuQx4D6gNPKWqU0TkkmD9YOAWoDnwqFhfgSJVzQ8rJueyWXySfO+9zE+S06dbLfK00+DEE6OOpmpCPa2qqm8Db5daNjju/z8CfwwzBudywfz51rq9eLElyZ49o46obM8/b4MEz5lj51F79446oqrLwvYn52qeL7+EpUvh/ffhN7+JOpqyPf+8Xce9dq3dV7UrhZo1gz59oo2tKkQ1YUN0xsrPz9fx48dHHYZzaVFUVNydZvnyzJxPJl6HDomnw23f3i5fzGQiMqGsU38Z1CXVORdv3jzIy4N3gt7FmZ4koew5w+fMSW8c1c0PvZ3LQHPnWsPNkiWZcZ12MkVF1k+yLNne/dlrlM5lmLlzrQFkyRI7J3lAho9+sHw5HHecDcR73HHQsGHJ9Y0aZc+4k2XxROlcBlm61JLk0qXwwQeZnySnTbPGpTFjbO7wt96yqR3at7cW7/btYciQ7G7IAT/0di6jNGtmHcnPOivzp0j48EO71rxOHRg1yuboAUuK2Z4YS/NE6VwGmDPHzvPtsotdzZLpHn3UppnYc0+76iaTp5qtDn7o7VzEZs+2w+1TT4XNm6OOpnyFhTb4br9+cOyx8PnnuZ8kwWuUzkVq9mxr3f7lF/jvfzNrDMnSli+3Q+1Ro+Daa+Huu6F27aijSg9PlM5FJFaTXL7czvflZ/AoB1On2vXas2bB00/bLI81iSdK5yLy97/byN+ZniQ/+MAal+rWtfl3MnlYt7BkcEXfudz22GM2+VcmJ8lHHrFzkW3bwtixNTNJgidK59Jq1iw7bF27FrbfHrp1izqixAoL4dJLbX6b446zRpsOHaKOKjqeKJ1Lk1mz7JzkyJEwc2bU0ZTtl1/gmGPgP/+x0wOvvgrbbht1VNHyc5TOpcHMmZYkV62yc5Jdu0YdUWI//miNNnPmwDPPwPnnRx1RZvBE6Vw1U4Vx4yw55uVBvXolk2SmTrD1/vvWaFO/vjXa9OoVdUSZwxOlc9Vo2TI45RSbriEvz65eOeAAGyjitddg330jDjABVRvQ4sorYa+97NRA+/ZRR5VZ/Bylc9Xossusxjh1qk3ROnMmrFtnDTiZmCQLC+Evf7GEfuKJ1mjjSXJrniidqyZr1sAbb9iEWp9+aonxnnvgjjtg2LCoo9vasmVw9NHWTen66+GVV7J7psQw+aG3c9Vk/Xq7VvvEEy1RtmoFJ5wAjRvb+clM8sMPFufcufDss3DeeVFHlNm8RulcNRkwwA6zv/sOHnjApmvdd1944gnri5gp3n3XxpBctcrGkfQkmZzXKJ2rJFWbOrZrV7ty5YwzbPnQoZYkR4ywluSxY62GGTVVePBB+NvfYO+9rdEm26doSBevUTpXQarw5pvWmn3ssXaZH9j9gQPh66+hSROrrR1wAEyYAK1bRxkxbNwIf/6ztWyfdBJ89pknyYrwGqVzFfDmm3DrrZYMO3SwaQ9Kd8pu2xb6948kvISWLYPTT7fryv/xD2tcyuTh3DKRJ0rnklC1+V/AWoZXrIAnn7Rze3XrRhpaQs8/DzfeaFfX7LQTbNoEK1day3uuTdGQLv674lwZNm+G//3POo6PG2fL7r3XLvP7wx8yN0n27WtjXarCwoXw889www2eJKvCE6VzpWzaZKONd+tmI3pv2ACrV9u6Jk0yM0HG3HijjUxU2tNPpz+WXOKH3s7FUbXZBP/v/6BLFxg+3JJlpk95sGmTtcDPnp14/Zw56Y0n13iN0tV4RUV27nHzZjsXedFF8OKLMHkynH12ZifJpUvh3/+G3XaD448vO1Zv4a4aT5SuxiostEPSPfawVuEPPrDlf/qT1SIztWVY1Wq8550HO+9sY0a2b2+nC558Eho1Krl9o0Zw113RxJor/NDb1ThFRdYp/J//tEEr9t3XRvY56qioIyvfmjXwwgs2p/bEiTaYbt++cMklJce3rFOnuNW7XTtLkt6QUzWiqlHHUCH5+fk6fvz4qMNwGezXX61m9fnn1j2mb9+SUy4UFtqhasuW1ify+OOLu/9koh9+sNHGn3nGnlu3bjZNQ58+PohFdRKRCaqacAajUA8uROQYEZkqIgUicn2C9XuIyP+JyAYRuSbMWFzN8Msv0LOnHZqeeaYlyiOPtGTZs6cNXFG3riXRsWNt0IpMTJKFhdY16fDDrVHpsceKh0GbONGusvEkmT6hJUoRqQ08AhwLdAHOEZEupTb7BbgCGBRWHK5muf9+u2zwxRfh5JOtOw/YFTQisHix3d9558xMkPPnw2232TnHM8+EGTPg7rttlJ9hw2zU8UyMO9eFeY6yB1CgqjMARGQEcDLwfWwDVf0Z+FlEjg8xDldDFBXBO+/AoEGwZAnsuaddvnfwwTa9weDBmTkorSqMHm3nHl9/3Vrfjz3Wkvsxx2R2q3tNEWai3BmYG3d/HnBAiOW5GmbduuKReT79FL74who4Fi+GQw6Bc86x1uxevaBNm+LaZaZYscLOO/7nPzYievPmcPXVdli9yy5RR+fihZkoEx0gVKrlSET6An0B2nmHsBpr5UqYNg3239/u9+pl5+vA5no57zxLlHfcYZN5PfSQ1c7697cGkEz56Hz9tdUeX3jBkn3PnjZ47plnQoMGUUfnEgkzUc4D2sbdbwMsqMyOVHUIMASs1bvqoblssHgxfPKJ3T79FCZNgu22s8Pp2rXh5putYebAA6FZM3uMqh1md+5s5yoLCqBFC+tQni7xg1LEuuecfrqdN330UfjqK+vb+Pvf23w1mTiXjisptO5BIlIHmAYcAcwHxgHnquqUBNveBqxW1aSNOt49KHssXWp/W7RIvq2qJbVPP7VD5oYNbUiwu++2pNKrl51rPPhgO6xOdt5u8WIbyKJVK5vsK10NILFBKeKvt65Tx2qKq1db5/a//MWGZsu0UwE1XXndg0LtRykixwH3A7WBp1T1LhG5BEBVB4vITsB4YDtgM7Aa6KKqv5a1T0+UmW/qVDvPNnGiJcDu3a17y+67l9xu4ULrAhM7x7hokS0fMwYOPdRafJcutRpXJg9EEa9dO2uhLq1RIxvLsndvb7XOVJElyjB4osxsa9ZYrenvf7dkqWqtzYMG2dUwY8daEoz1dezVywa6ja8t7rFH5l4+GG/lSjvfOGFC8e2nnxJvK2LnS13mKi9R+iWMrlq9+KI1rFx2mXXuvvNOqy3Onw9HHGHb/POflijz82HWrMzsslNasqTYti3st5+N/bhy5daPz5SGJFc5nihz1OTJ1g9v0SKrqV14obUIV8WGDZbwNm60Wh/ATTfZQLbz5tlt4UJrSAFrVHnqKeuas99+dtngAw8Un7OsWzczk+SKFVsnxYKC4vXt2tnzueAC+7vffnY5JCQ+R+mDUmQ/T5QhWr7czte1b2+NCunyyivWYHDZZTYt6csvW9L85JOyGxBWr7YkOG+eJcTY9KpXXmmPmzfPOnGDtTJ/9pn9/9FH9jzbtIHf/ra4b+PmzXb4PHu2Nbx0724NGKk07FSHRC3PiQaGWL5866Q4fXrx+vbtLRFedJH97d69OCkmEivDB6XILTl7jlIVRo2Ct96yX/Rzzy05wkqYVK3ryiOPQKdO9sU74QRr0GjYMNyyCwtt0qtXXrHuMapWQ4q1sh56qB0aXn21bX/ppdafL/5wsV274gFgL7/cRthp08Yu+2vTxmqGBx2UuPxNm+Cww+yH4dprrfyBA+2QdPTo9Jx7LKtWd9991pE7PinOmFG8TYcOxTXEWFJMV2J30atxjTmqNqfJl1/a4dHKlXYIeOedNtZg2B57zCa9f+MNG5Rh9Wqrkey4Izz8cPlxb9hgDSLbb2/dSubPt1rp6tV2W7PG/v75z/blf/11ePXV4uWLF8P339tzrl/fapWx6VRj6tWzml+tWtbQMmWKJcBYMmzbFnbdtfLPf/VqS44vvWSNGGeeaUmzcePK7zNVRUXQsaPVgMvTsePWSbF58/Djc5mrxjXmvPee9aGbMKF4ENM//tG+EKeeunUtYdMmO+9WWFh82247e+yaNVYjjF+3caNNIL/DDnYO8OOPS6674w645x5LkpMnW41t++1hyBDbfu1aG7xh991hxAi45priRLhpk8X04492ru+//y2u/cU74wyLr6DADn8bN7bRZBo0sIS7bp0lypNPtqQ3e7Z1dH7xRYsrVrO75JLqf/232cae29q1dvg5dKjVQit7+FlUZDXSxYu3vi1aVPL+0qX2/MvywQeWFGMd1J1LRU4mypEjrUbZqJHVyA47zJLYhg2WNGrVggEDrFY2eXLJsQpjnn7aGkC+/dbOyZX20kuWrCZNsukCStuwwf4WFFjXmG22sS/8pEmWNNevt/Vt2sDRR9v6bbYpTnix2s0ZZ1iCj1+3zTaWyMGSaOlEGrt876abbDDavDx7DW691WqLYSt96Dt7tt2H4mRZWLh18iud9OKTXyKNGlnS33FHO8Vx4IHFtfZfftl6+/btbcg15yoqJw+9r7rKagy77ALXX2+HYY0b2yHn/vtbTe300+183ZIldvhZt27J22GHWcvusmXWATp+Xb16NkZgixZWC5wzp3h53brQrx/06GHn+v7xD+uA3LKlrZ8zJ/wOx/PmWX/EuXMtOdeqBSedZOctq6vsjRstEa5Zs/XtvPOKG37i1a9vP1SLFiVOZGA/AjvuuPUtlhDjb2WNx1jWOcohQ7xRxZWtxp2jHDfOamnr1hXX3GKefNJqm2H68UdrSFm71hJVTP36Vn5YX1ZVK2/YMGukiX/uDRrYj8ZBB1kyKyvJpbo8/nlVxGmnJU56sVt1ncdMtdXbuZgalygBmja11t7SWrQoHlWmrNumTeWvT2W7Rx+1hFJa48Z23rCoyG6FhcX/x98qs7wqV37UqmWxxW6NGpW8X9ayRMvPOMP6U5bWvr11MHcuE9W4xhxIfHUE2Pmuc86p3rJELNHE39atS7ztmjXWz7BOHbvVrVv8f+zWsOHWy8raNtGym24qO9aPP06c6OrXr77D8oEDvdO1yy05myjj+wLGa9WquD9febfatZNvE7slSjAdOiQuv337sq8Hri6PP1522YccEm7Z4J2uXe7J2UR5112JazUDBxZffhdF+emoVUVZdkyfPp4YXe7IgjFaKqdPH2vlbN/eanzt26e31TPK8qN+7s7lmpxtzHHOuYqIbF5v55zLBZ4onXMuCU+UzjmXhCdK55xLwhOlc84l4YnSOeeS8ETpnHNJeKJ0zrkksq7DuYgsAWJXMm8PlB7+ItGyjsDMkEMrT3WVn+i5VVfZqey7vG3KWpeo/Mo8j8qqzuefivj9VOR9T7X8ZNuVV35Zj63o8lRV9/euovGUV36ifbVX1cRTx6lq1t6AISkuWxNxnNVSfqLnVl1lp7Lv8rYpa12i8ivzPMJ+7asrpvj9VOR9T7X8ZNuVV34571GFllf3a1/dr1Eq5Vd0X9l+6P1GistyRZjPLZV9l7dNRWLLxPeoumKq7H5SfVyy7SrzHlV0eVSqM54K7SvrDr0rQ0TWqGoa5gDMvPJr8nOPuvya/Nxzrfxsr1Gm6pUaXH5Nfu5Rl1+Tn3tOlV8japTOOVcVNaVG6ZxzlZbTiVJEponIZhFZn3zrai+7h4gsF5ENIrJeRF5OdwxBHHVFZK2ILE5zua8Fz3u9iMwWke1DLi/hey0iL4nIxiCOr0Isf3sRWS0i64KyxgTLxwafgXUiskBE2odUfnsRmReUtUFE/hS37g0RURHZvRrL2+r1Luu5ikhDESkIXpcNIvJuNZSf8PslImNEZFMQwzoRuSXuMaeLyKq4z2XKn8mcTpTAg8DvIyp7A9BPVetj/blOFJETI4jjf8DP6SxQRPYDjgdaqWoD7HN2T8jFbvVei8hVwOFA8yCOi0Is/1dgV1VtCDQF8kXkYuw82XbB8jnAf0MqfxTwYfB5awa8D5ZQgJ7ApmouL9F3q6znOhCoG7wHrYEjReSgKpZf3vfrbVVtGNxuBxCR+sAw4A9BHHsBaxPtOJGcTpSq+jD2hkVR9req+kLw/0JgGdAlnTGISD5wMPahTjcBmgYf0HpAQZiFlfFe/w0YoKqrgm2+D7F8VdVYrb0R9t1SVR2gqhuC5WOAHau7bBHZGWhP8EOgqmtUNXZRxivAX6q7zESvdznPVYH6wWehKbAZWFDF8iv6/fo7sFBVXwoeU6CqhamWl9OJMlMEv54tsV+0dHoNuBz7YKaNqk4AXgemA+uAtao6IJ0xBFoAxweHxCtE5IIwCwtOc6wDlgKTVPWpUptcCLwTQtEHYTWsn4LTLD+KSEsRuRNYEksOaXYhxc/1uiC+dcBPwH9VdUZ1FZTg+3VscNg9TUQ6BMv2DbZdGrxGb1WkDE+UIRORHYH3gHtUdX4ay+0PrFDV59NVZlzZHYDDgD2BxkADEXk03XFgtdomwLbAlcATItU1e/nWVLUwOOzsAHQWkVO2BCLyPvaD1S+Eouthr/M/VbURlpDewp7zSSGUV64Ez/WC4H5joCvwOxE5tJrKKv396gc0BLbBTjm9H2xaB2gL9Ar+HiIi16RcUHVeYpSJN+zXdn1EZTfEahevR1D2F0BRcNuEHf7MSFPZ9wBT4+4/BnyX7vcaWAJcGXe/ENgjTa/BaOCN4P8hwCrsXGkYZe0NFMXd7wf8giWn2GdAg797h/V6l/VcgcnA4Lj704D7qqH8cr9f8fEBDwAFces+BN5MtSyvUYYkqLl8B8xV1ZPTXb6q9lLVOqpaB7ga+FlVd0lT8VOA9iLSPHgdjgB+SFPZ8d4HTgUQkd9iNcypYRQkInvEtfI2BfYDvhaRG7Ea1f6quiyMslV1MrBGRI4JFp2JJYVacZ+BTUCXYNtQlPNc5wJHiGmJnU/9rIplJfx+icg+cZtdA8TOG98HtA4+k/WxQ/HUp3NNx69rVDdslKFYbaoIeDqNZf8lKHdd3O2WiF6HK4HFaS5zDHZeaj0wA9g23e81dqg3I4hhLfC3EMs/PShjXVDeqGD5xiCe2GdgSkjl/w5YE5SxEOhQan0RsHvIr3fC54o16swNXpcNVKAmV075Cb9fce/3OmARsE/cYx4N1q0HvqpIeX5ljnPOJeGH3s45l4QnSuecS8ITpXPOJeGJ0jnnkvBE6ZxzSXiidGkXjGTzXNz9OiKyRETeTOGxq4O/HUTk3Ljl+SJS7jXtwWO+q8D2b4tIk+B2abLYXO7yROmisAbYS0QaBvePAip6eWcHYEuiVNXxqnpFqg9OZXtVPU5VV2CXQXqirME8UbqovIMNxQZwDjA8tkJEbou/DldEvosb3CBmAHCwiEwUkatEpHesRho8/jkRGS0iP8WPzRi3z/jttxGRp0VksohMEpHTg+WzRKRFUNauQVkDg33HXw3yvIik/Zpqlz6eKF1URgBni0gDoBtQ0UF1rwc+VdU8Vb0vwfpuWCLuCdwiIq3L2dfNwEpV3VtVu2HXaZcua3pQ1rXAEwRDmgWDv/YC3q5g/C6LeKJ0kVDVSdjh8zmEk2ReV9V1qroU+AjoUc62RwKPxMW2vLwdq+rHQCcR2QGL/2VVLaqGmF2GqhN1AK5GGwkMAnoDzeOWF1HyR7xBJfZd+trc8q7VlSTrE3kO6AOcDfyhgo91WcZrlC5KTwG369Yj2swCugOISHdsqP/SVmHjTJblZBFpICLNsUQ8rpxt3wcui90JRv9JVtZQbLARVHVKOft2OcATpYuMqs5T1QcSrHoZaCYiE7FRYqYl2GYSUCQi3wZz45Q2Fhu89kvgDlUtb+qBO7FpK74TkW+xQYfj41wGfB6sHxgsW4wNHfd0uU/S5QQfPcjlHBG5DVitqoNCLKMRNiBtd1VdGVY5LjN4jdK5ChKRI4EfgYc8SdYMXqN0zrkkvEbpnHNJeKJ0zrkkPFE651wSniidcy4JT5TOOZeEJ0rnnEvi/wHuFA3W0gAXcAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -174,7 +174,7 @@ "outputs": [ { "data": { - "image/png": "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z7iJTNetg4iwHb9LRLw2diwEtESk23TmbJxLs1rNaFa7aeHvPfnk/JfHx8OTTxbr8JUrV856fujQITIyMrJeDxo0KOt5nz59SEpKKnA/jz32GHfeeScdO3bMWjZkyJAijz9hwgTuvPNOfP5Rm30+H3fccQePP/44b7zxBgAXX3wx7777Lpdeeinfffcdxx9/PJ999lmxPl9Rjj32WB5//PE8y7/99lsqVarEqFGjspbFx8eXyjHzyO93vOACGD264PWZtm+HYcNyLvvuu2Ifevny5aSlpXH66acDOVsI09PTGTduHG+//TbTpk0rdD/6/fMXzLOLJCCws2UzYGNpv9daO9lam2CtTWjQoEGJAjx4EH7/vURvEZHyL+RzE5UqwYYNsGlTyd4nIhJEESaStPRUDqSllNkx169fT7du3WjevDn//Oc/adKkSY71qampvPHGGwwYMKDAfSxbtoyePXsWepxx48ZldcsbPnx41vt69eqVY7uEhASWLVuW9bpt27Zs27aN5ORkpk6dykUXXZRj+wMHDuToDvjuu+8W63OD68J4zjnn5Fm+dOnSPHFVRH/++SfR0dGcd9559OjRg3HjxpGeng7As88+y5AhQ4iNjS1yP/r98xfMlsA5QFtjjA/YAFwEXFIG7y22uDhYpZGORcJNyOemHNNENC3iaruISLDkarEzwA2TetCkVhM+veRTd/9XQUrQ4lOY5s2bs3jxYjZu3Mg555zDsGHDaNSoUdb60aNH069fP0488cRi7W/Hjh3079+flJQURo4cya23ugGgH3/8cYblarWy1mJyfcb8lp133nm88847/Prrr0yaNCnHumrVquW4r6s4hg8fzv79+0lPT2f+/Pklem+pK+p3zG995vdTv/5R/TtIS0tj9uzZLFiwgBYtWnDhhRfy6quvMnDgQN5//32+O4J96/fPFrSWQGttGnA9MAtYAbxnrV1mjBlljBkFYIxpbIxJAv4B3G2MSTLG1C7ovaUdY+Zcgba4HcFEpNwrD7lJE8aLSKjyRftYnVz200Q0adKEzp07M3v27KxlDzzwANu2beM///lPoe/t3Llz1sl0vXr1WLhwISNHjmTfvn1Fvm/u3Lk5ls2fP59OnXIOCn3RRRdxzz33cPrppxNRCl3433rrLVavXs0ll1zCmDFj8o1r3rx5R32cUNesWTN69OhBq1at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\n", + "image/png": "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mt+KiEgelByKiES3SsC9wGZ8M7yG+JFK02/Ct5jZLOfcTuAafJKwFX8zPjmnAwaaY56G7x+4CkjG91krTg/h+yBuwDcFfC2PbSfg++htM7P3i3LSEL+H9YF1awNxjXbOLS7KebO5EFhhZjvwzSkvCMQ2A9/v8PHA+ZcCF+dzrHuAfwS+mxtz28g5tyRwnsfw/1ZOww9kcyCv39s59zYwDl/TtxNfE1c3cNhrA/ttw48o+3620+b1PV4J3GVmO4F/kll7Gor/BLafgk+uJ+D7T6abCHRFTUpFRIqdOVdsrXlERESimpkdA7zqnGse4VBKtUh+j2Y2AN+8tHWgb6WIiBQT1RyKiIhIqRBoMnst8LwSQxGR4qfkUEREADCzp81Ptp799XSkYysJ5ieQz+n6h+e/d/gF+jLmFN+CSMdWEgLzIG4DmgAPRzQYEZEySs1KRURERERERDWHIiIiIiIiouRQREREREREUHIoIiIiIiIiKDkUERERERERlByKiIiIiIgISg5FREREREQEJYciIiIiIiKCkkMRERERERFByaGIiIiIiIig5FBERERERERQcigiIiIiIiIoORQRERERERGUHIqIiIiIiAhKDkVERERERAQlhyIiIiIiIoKSQxEREREREUHJoYiIiIiIiKDkUERERERERFByKCIiIiIiIig5FBEREREREZQcioiIiIiICEoORUREREREBIiLdAAloX79+q5169aRDkNEitHMmTM3O+caRDqOolDZJFI2qXwSkWgUStlULpLD1q1bM2PGjEiHISLFyMxWRjqGolLZJFI2qXwSkWgUStmkZqUiIiIiIiKi5FBERERERESUHIqIiIhEPTM72cyWmNlSM7slh/UJZvaTme03sxuzrXvBzDaa2fySi1hESiMlhyIiIiJRzMxigSeAQUAnYJiZdcq22Z/ANcD4HA7xEnByOGMUkbJByaGIiIhIdOsLLHXOLXfOHQDeAM4I3sA5t9E5Nx04mH1n59y3+ORRRCRPSg5FREREolszYHXQ5+TAMhGRYlUuprII1aZNsHcvtGgBZpGORkRERASAnO5KXLGfxGwUMAqgZcuWuW63P2U/q7avynFdmzptiIvR7aVIaaX/eoG1a+Hyy+GHH6ByZahXD558Eo4+OtKRiUi5V7cubN166PI6deBPtRITKSeSgRZBn5sDa4v7JM65Z4FnAXr37p1r8vnszGe58fMbaVkrawL5x9Y/mDhkIsO7DS/u0ESkhJT7ZqXOwWmnQc+esG6df91zD5xzDqxYEenoRKTc27rVF1TZXzkljCJSVk0HOphZGzOrCAwFJkcqmGFdh1G9YnW+uPALfr/6d36/+nfePfdd6letz5CEIWE9d/Xq1QFYuXIlvXr1Iikpic6dO/P0009nbDN8+HDi4+Pp0qULl1xyCQcPHtINM4tPP/2Uvn37kpCQQFJSEueddx6rVmXWjKakpFC/fn3+/ve/Z9mvdevWbN68OePzN998w6mnngrAhg0bOPXUU+nevTudOnVi8ODBAKSlpXHNNdfQpUsXunbtSp8+ffjjjz9yPN57772HmbF48eKMZStWrMDMeOyxxzKWXXXVVbz00kshfX+lXfrvD7Bq1SpOPPFEEhMT6dSpEyuy3bhfffXVWbbPjX7/rMp9cvjDD7BvH9x1F1Sp4puTnn46XHghTJgQ6ehERESkvHPOpQBXAZ8Bi4C3nHMLzGy0mY0GMLPGZpYM/A34h5klm1nNwLpJwE9AfGD5pUWJp37V+lzR6wru+f6ejGV3fXsXY/uNpVrFahnLXnsNWreGmBj//tprRTlrVk2aNOHHH39kzpw5/Pzzz9x7772sXesrU4cPH87ixYuZN28ee/fu5fnnn8/1OPPnz+fqq69m4sSJLF68mDlz5jB8+PAsicaUKVOIj4/nrbfewrnQWvP+85//5IQTTuDXX39l4cKF3HvvvQC8+eabrF27lrlz5zJv3jzee+89ateuneMxJk2axFFHHcUbb7yRZXnDhg155JFHOHDgQEixRMqkSdClC8TG+vdJk4r3+CNGjGDs2LEsWrSIX375hYYNG2asmzFjBtu2bcv3GPr9D1Xuk8PVq6FzZ58UvvMODB3ql3fu7NeJiETcpk1wwQXw5ZeRjkREIsQ594lzrqNzrp1zblxg2dPOuacDf693zjV3ztV0ztUO/L0jsG6Yc66Jc65CYHmRH3//7Yi/8fbCt7n9q9sZ+f5Ivlv5HaN7j85Y/9prMGoUrFzpGzusXOk/F1eCWLFiRSpVqgTA/v37SUtLy1g3ePBgzAwzo2/fviQnJ+d6nPvuu49bb72VxMTEjGWnn346AwYMyPg8adIkrr32Wlq2bMm0adNCim/dunU0b94843O3bt0yljdp0oSYGH8L3rx5c+rUqXPI/rt27eKHH35gwoQJhyQHDRo0YODAgUycODGkWCJh0iS47TZ47DFfCfPYY/5zcSWICxcuJCUlhRNOOAHwNYpVq1YFIDU1lbFjx3L//ffnexz9/ocq98lhnz7wzTewe7dPBt98EzZvho8+gsMOi3R0IiJAtWrw+uu+qYOISBT49631qf7adB684lQmXj+Saq9P55QTq3HMMXDMMXDppbBnT9Z99uzxy9O3yf667rqCxbB69Wq6detGixYtuPnmm2natGmW9QcPHuSVV17h5JNzn+JxwYIF9OzZM9f1e/fu5csvv+TUU09l2LBhTAoxuxkzZgyXXnopxx57LOPGjcuo1Tz33HP58MMPSUpK4oYbbmD27Nk57v/+++9z8skn07FjR+rWrcusWbOyrL/lllt48MEHSU1NDSmecMjpN3zySb/u7ruhRg2480444QT/XqMGjB3r12/efOi+BfHbb79Ru3ZtzjrrLHr06MHYsWMzvovHH3+c008/nSZNmuR7HP3+hyr3yWH79jBkCJx8cmYhdumlsGSJb1oqIhJxVatCq1YQ1O9ARCTSmtdqwb6U/TiXRqNqjbKs278/531yW14YLVq0YO7cuSxdupSJEyeyYcOGLOuvvPJKBgwYQP/+/UM63pYtW0hKSqJjx46MHz8egI8++ohjjz2WqlWrcvbZZ/Pee+9l3JBbDkPbpy876aSTWL58OZdffjmLFy+mR48ebNq0iebNm7NkyRLuueceYmJiGDhwIF/m0Cpk0qRJDA00Zxs6dOghSUmbNm3o27cvr7/+ekjXVtKWLIFatbIuq1XLDwJZHFJSUvjuu+8YP34806dPZ/ny5bz00kusXbuWt99+m6uvvrrAx9Tv72m0UuCpp+CZZ+C55/znffvg228hhD6sIiLhVadO5tw6K1ZktsnJoRmKiEhJefhhgApc8sFLvDjnRR67fAa9mvbKWN+6tW9Kml2rVr7FVnFq2rQpnTt35rvvvuOcc84B4M4772TTpk0888wzee7buXNnZs2aRffu3alXrx5z5sxh/Pjx7Nq1C/A36T/88AOtW7cGfALx9ddfc/zxx1OvXj22bt1K/fr1Afjzzz8z/gaoW7cu559/Pueffz6nnnoq3377LWeffTaVKlVi0KBBDBo0iEaNGvH+++8zcODAjP22bNnCV199xfz58zEzUlNTMbNDmkneeuutnHPOOVmaQJakvH7HxERfW3jssZnLvv4a0nO2+vWL9u+gefPm9OjRg7Zt2wIwZMgQpk2bRuPGjVm6dCnt27cHYM+ePbRv356lS5fmeBz9/ocq9zWH4DvKXnklzJzpB6Xp3Nn/oxURibg///Qddq6/3hdQqan+s6axEJEocMMRNwCwZMuSLMvHjfONHoJVreqXF4fk5GT27t0LwNatW/nhhx+Ij48H4Pnnn+ezzz5j0qRJGX27cnPTTTcxbtw4Fi1alLFsT6Ap2Y4dO/j+++9ZtWoVK1asYMWKFTzxxBMZtTjHHHMMr7zyCuD7ub366qscG8iGvvrqq4zj7Ny5k2XLltGyZUtmzZqV0cQwLS2NuXPn0qpVqywxvfPOO4wYMYKVK1eyYsUKVq9eTZs2bfj++++zbJeQkECnTp346KOPCv4Fhtltt/mWeF9/DQcP+vdLL/XLi0OfPn3YunUrmzZtAvz33alTJ0455RTWr1+f8XtVrVo118QQ9PvnRMlhkJgYOPJInyyKiESV7t2hXTslhSISVdrVbUfLWi05kJp15MThw+HZZ31NoZl/f/ZZv7w4LFq0iMMOO4zu3btz9NFHc+ONN9K1a1cARo8ezYYNGzjiiCNISkrirrvuyvU4Xbt25ZFHHmHEiBEkJCRw5JFHsmjRIs4//3zeffddjjvuuIyBbwDOOOMMJk+ezP79+7n99ttZunQp3bt3p0ePHrRv354LLrgAgJkzZ9K7d2+6devGEUccwWWXXUafPn3YuHEjp512Gl26dKFbt27ExcVx1VVXZYlp0qRJnHnmmVmWnX322Tk2IbztttvyHHAnUoYN8w8Crr7azyF+9dX+87BhxXP82NhYxo8fz8CBA+natSvOOS6//PICH0e//6Es1CFZS7PevXu7GTNmRDoMESlGZjbTOdc70nEUhcomkbJJ5ZOIRKNQyibVHIqIiIiIiIiSw+ymTYOkJJg7N9KRiIhkc/bZcMstkY5CRCSLCbMm0POZnqS5tPw3jpAXX3yRpKSkLK8xY8ZEOiwpIfr9Q6fRSrOpVg1+/RUWLIDAfJUiItFh40YIdL4XEYkWB9MOMnv9bNbsWEOLWi0iHU6ORo4cyciRIyMdhkSIfv/QqeYwmw4d/MA0mk5MRKJOQoIKJxGJOh3rdQQOHbFUREofJYfZVK4MbdpA0Ii2IiLRITHR1xxu2RLpSEREMsTX81NILNms5FCktFNymIPERD2cF5EolJDg31VAiUgUaVqjKdUrVlfNoUgZoD6HOTjxRJg9O9JRiIhk06ULDBqkyVhFJKqYGed0OodWtVrlv7GIRLWw1hya2clmtsTMlprZIUPsmVmCmf1kZvvN7MZQ9jWzumb2uZn9HnivU9xxX301vPBCcR9VRKJFaS2baNkSPvkEDj+82A8tIlIUL57xIjf0uyFzQePGYHboq3HjIp2nevXqAKxcuZJevXqRlJRE586defrppzO2GT58OPHx8XTp0oVLLrmEgwcP5nnMTz/9lL59+5KQkEBSUhLnnXceq1atAuDiiy+mTZs2GSNc9uvXL2O/999/n27dupGQkEDXrl15//33M9ZdfPHFVK1alZ07d2Ysu/baazEzNm/eDPiJ3INHz7z33ns588wzSUpKon379tSqVStj3Y8//sgxxxxDfHw83bt3p0+fPsyZMyfj2K1bt8447vr16xk6dCjt2rWjU6dODB48mN9++61wX3hhtW6d8+/funWRDpv++wOsWrWKE088kcTERDp16sSKFSuybHv11Vdn2T43+v2zcc6F5QXEAsuAtkBF4FegU7ZtGgJ9gHHAjaHsC9wP3BL4+xbgvvxi6dWrlyuotDTnUlIKvJuIlBBghiuHZZNzToWTSJQrbPkUTa/C3TulubS0tPQvIfdXEVSrVs0559z+/fvdvn37nHPO7dy507Vq1cqtWbPGOefcxx9/nBHL0KFD3ZNPPpnr8ebNm+fat2/vFi5cmLHsgw8+cFOnTnXOOXfRRRe5t99++5D95syZ49q1a+eWL1/unHNu+fLlrl27du7XX3/N2K9r167ulVdecc45l5qa6rp27eqaNWvmNm3alOVacvL111+7U045Jcuyo48+2k2fPt0559wLL7zgjj/++Ix1rVq1cps2bXJpaWnu8MMPd0899VTGutmzZ7tvv/0213OFRW6/czH9/s7572PKlCnOOf9vYPfu3Rnrpk+f7i644II8v2Pnyt/vH0rZFM6aw77AUufccufcAeAN4IzgDZxzG51z04Hsj3Ty2vcMYGLg74nAkOIOfPduaNAAHnqouI8sIlGg1JZNAFx7re8YLSISSdddB8cck/H687BufN8ujt1H9vXL8hK0X5bXddeFfPqKFStSqVIlAPbv309aWuYc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\n", "text/plain": [ "
" ] @@ -217,7 +217,7 @@ "outputs": [ { "data": { - "image/png": "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e8mX/cMPP1CvXj3OP/98fvrpJ04++WQGDhxITk4OjzzyCOeccw777rtvRV7WDnaWzzMsRx4Jb7xhv/HXXoOnnoKxYyE3144eK2OnuzKnZJJMtLwi9t9/f7755htmzpzJM888w5IlS7Zbf+2113L88cdz3HHHlboP6zFV9vI99tiDnj17bjtPVZrYQ7V27dqhqnH3H7t81qxZdOjQgQYNGtC0adPtfmwAF154IaNGjeKFF16ge/fuZZYfphkzoG7d7ZfVrWu1iFQoKCjgww8/ZNCgQUycOJHZs2fz9NNPs3DhQkaNGkXfvn2T2o9/nuH7+9+hXz8YNcoqN88/b0eLd99d+X1n3ehBiSSq+TVvbofbJTVrVr6aRjIaN27MIYccwocffsgFQbXm73//O8uWLWP48OFlPrdBgwYsWrRou2Vr1qyhXr162y27/vrr6dixI1dckfxFTYcccghff/01hYWFVAv+1RYWFjJlyhTatGkDFJ/TWrRoESeccAJjxozhnHPO2baPffbZhxo1avD2228zePBgPvnkk6TLL6+yPpc2bewH8qtfFS97910oyl8NG1buc91vv/04/PDDOeCAAwDo1q0bn332Gfvssw8zZ86kVatWAKxfv55WrVoxc+bMuPvxzzN8J5xgNcq77oLp0602+corcMwxld/3TlejHDAAglNM29SubctTIT8/nw1BB66ff/6Zjz/+mNatWwPw+OOPM378eF544YVtX+jSHH/88YwZM4Y1a9YAMHr0aNq3b7/d4RVA/fr1ufDCC7drtUykVatWHH744dsO3wDuueceOnbsuO2HX2Tfffdl4MCB/POf/9xhP3fddRf33nvvDjGl02232WmTd9+FLVvs/qqrbHkqHHHEEfz8888UdUt75513aNu2LWeeeSaLFy9mzpw5zJkzh9q1a5eaJME/z3Q58khLkLNnWwt4KpIk7ISJskcPGDHCapAidj9ihC1PhenTp3PkkUfSvn17unbtyo033ki7du0A6N27N0uWLOHoo4+mQ4cO3HXXXaXu57DDDqNPnz4ce+yxdOjQgWHDhpXaSn7DDTck1Voa64knnuCHH36gVatWtGzZkh9++KHUH2e3bt1Yv349H3744XbLu3TpQrdu3cpVbqp1727/5Pr2hV12sfsBA2x5KuTk5DBo0CBOOumkbYe511xzTbn3459nejz6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\n", + "image/png": "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87Z69eCGG6B7d1i0CM44Y8vHfvpp8mX/+OOP1K9fn9NOO42ff/6ZY445hgcffJCcnByeeOIJTj75ZBo3blyRp7WV6vJ+huXAA+Hdd2H0aHjnHXjuORg+HPLy7OyxMqpdjbJkkky0viKaNWvGxIkTKSgo4Pnnn+fXX3/dYvsVV1zB4YcfzmGHHVbqMexmpbLX77DDDlxwwQWbrlOVJvZUrX379qhq3OPHrp8+fTq5ubk0bNiQ5s2bb/FlAzjrrLMYOnQor7zyCt27dy+z/DBNmwY77rjluh13tFpEKhQVFTFq1Cj69evHmDFjmDFjBs899xzz5s1j6NChXHXVVUkdx9/P8N11F1x9NQwdapWbl16ys8V77qn8satcjTJRza9lSzvdLqlFi/LVNJKx++67s++++zJq1CjOCKo1d911FwsXLuSpp54q87ENGzZk/vz5W6xbvnw59evX32LdtddeS6dOnbj44uTHE9l333357rvv2LhxI9sE/2o3btzIhAkT2GeffYDN17Tmz5/PEUccwbBhwzj55JM3HWO33XajRo0afPTRR/Tv35+vvvoq6fLLq6z3ZZ997Aty5JGb133yCRTnr513rtz72rRpUzp27Mgee+wBwKmnnsrXX3/NbrvtRkFBAW3atAFg1apVtGnThoKCgrjH8fczfEccAc8/DyeeCOvWWW3yzTfhkEMqf+xqV6O87z4ILjFtUreurU+FwsJCVgcduJYsWcKXX35J27ZtARg8eDAjRozglVde2fSBLs3hhx/OsGHDWL58OQBvvfUW+++//xanVwANGjTgrLPO2qLVMpE2bdrQsWPHTadvAPfeey+dOnXa9MUv1rhxYx588EEeeOCBrY5z991389BDD20VUzrdeqtdNvnkE1i/3n5feqmtT4UDDjiAJUuWUHzr7MiRI2nXrh0nnXQSv/zyCzNnzmTmzJnUrVu31CQJ/n6mS+PG0KED/O9/1gKeiiQJVbBGmUiPHvb71lth9mxo3tySZPH6ypo6dSrXXXcdIoKqcv3119O+fXsAevXqRYsWLTj44IMBOO200+jTp0/c43To0IErr7ySQw89FBFhl112KbWV/LrrruOJJ54oV5xPP/00V111FW3atEFVOfjgg0v9cp566qnceeedjBo1aov1Xbt2LVeZYSg+S7zqKpg61WqY9923eX1l5eTk0K9fP44+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\n", "text/plain": [ "
" ] @@ -258,7 +258,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4EAAAFhCAYAAADOca9nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACgVElEQVR4nOzdd3hUxdfA8e+k0HsvofceIDSRJqCAShORJgIiIqKogPWHoK+oKBawoSKiiICgJFTpYADpVXrooZdQE0LKvH/MJoSQkN1kd+8mOZ/nyZPk7i1nszjec2fmjNJaI4QQQgghhBAic/CyOgAhhBBCCCGEEO4jSaAQQgghhBBCZCKSBAohhBBCCCFEJiJJoBBCCCGEEEJkIpIECiGEEEIIIUQmIkmgEEIIIYQQQmQikgQKIUQGopRqppQ6YHUccZRSWilV8T6v71FKtXRfREIIIYRQsk6gEEJ4LqXUGKCi1rqP1bGkhlJKA5W01iFKqalAqNb6fxaH5VHk7yKEEMLdpCdQCCGEEEIIITIRSQKFEMJDKKXeUEqdUkpdV0odUEo9CrwNPKWUuqGU2mnbr79Sap9tvyNKqecTnKOlUio0we+llFJ/KaUuKKUuKaW+TiGGfkqpdUqpL5RSV2znf8C2/aRS6rxS6pkE+69WSg1MdPzaJM47COgNvG57L/Nt248ppdrYfh6jlJqtlPrN9t52K6UqK6Xesl33pFLq4QTnTPHvoJR6Wyl10Xad3nZ8BtmVUp8ppY4rpa4qpdYqpbLbXutoG756xfa+qyU47q5hr0qpqUqpDxLFMtz2Ps4opfrf7+9yn/iq2a59xRZLRztjf1Aptd523EmlVD97Pj/b+3rZ9ve9qJT6VCnlZXutglJqpe3f1UWl1HSlVL4Exx5TSo1QSu2yxTNLKZUtweudlFI7lFLXlFKHlVLtlFJPKqW2JnrPw5VSgSl9dkIIIewnSaAQQngApVQVYCjQQGudG3gE2A98CMzSWufSWtex7X4eeAzIA/QHvlBK1UvinN7AAuA4UBYoCcy0I5xGwC6gIPC77ZgGQEWgD/C1UiqXI+9Pa/0DMB34xPZeHk9m18eBaUB+YDuwBPP/qpLA+8D3CfZN6e9QDChkO/YZ4Afb3/l+xgP1gQeAAsDrQKxSqjIwA3gFKAwsAuYrpbKk+ObvxJLXFsuzwDdKqfwO/F1QSvkC84GlQBHgJWB6gveUXOylgcXAV7bY/YEddsYN0AUIAOoBnYABcSEBHwElgGpAKWBMomO7A+2AckBtoJ/tvTQEfgVGAvmA5sAxYB5QLmGCjfk3N82BeIUQQqRAkkAhhPAMMUBWoLpSyldrfUxrfTipHbXWC7XWh7WxBpMUNEti14aYG/SRWuubWutbWut7eumScFRr/bPWOgaYhbm5f19rHam1XgrcxiSErhCstV6itY4GZmOSlo+11lGYZLRsXG+TnX+HUba41wALMUlJkmw9XAOAYVrrU1rrGK31eq11JPAUsFBrvcwWy3ggOybhskcU5m8YpbVeBNwAUkpIE2sM5ML8PW5rrVdikvyeKcTeG1iutZ5hu/4lrfUOB647Tmt9WWt9AvgS6AmgtQ6x/T0itdYXgM+BFomOnai1Pq21voxJYP1t258FptiOj7XFvN8W7yxM4odSqgbmAcYCR/5QQggh7k+SQCGE8ABa6xBML9MY4LxSaqZSqkRS+yql2iulNiilLiulrgAdMD1eiZUCjtsSKkecS/BzhC2+xNsc6glMw7Uv2pLR+Fjirm3H3yFMa30zwe/HMUlxcgoB2YCkku8StuMB0FrHAicxPXv2uJTocwjH8b9hCeCk7dpxjttiuF/spZLZbq+Tia5XAkApVcT27/SUUuoa8Bv3/js8m+DnhO/5fjH9AvRSSingaeAPW3IohBDCSSQJFEIID6G1/l1r/SBQBtDAONv3eEqprMCfmJ6oolrrfJihiSqJU54ESiulfFwY9k0gR4Lfi91nX6eVo7bz75BfKZUzwe+lgdP3Oe1F4BZQIYnXTmM+l7jrK0wic8q2KRz7/w6J2ft3OQ2UipuTZ1PaFsP9Yj+ZzHaw7/Mrleh6cX/DjzCx19Za58H03iX17zApycaktd6A6W1uBvRChoIKIYTTSRIohBAeQClVRSn1kC25uYXp9YrB9IyVTXDjnwUzbPQCEK2Uag88nNQ5gU3AGeBjpVROpVQ2pVRTJ4e+A+iqlMphK4zy7H32PQeUd9J17f07vKeUyqKUaoaZPzg7uRPaetimAJ8rpUoopbyVUk1sn8kfwKNKqda2uXnDgUhgve3wHZjeK2+lVDvuHRZ5P/b+XTZikrbXlVK+yqyv+DgwM4XYpwNtlFLdlVI+SqmCSin/BHGn9PmNVErlV0qVAoZhhmsC5MYMa72ilCqJmd9nr5+A/ra/p5dSqqRSqmqC138Fvgai7RzCLIQQwgGSBAohhGfICnyM6dE5iyn88TZ3kpZLSqltWuvrwMuYpCQM01MyL6kT2oZRPo6Zv3cCCMXMbXOmLzC9Nucww/im32ffnzBzHq+ktdqjnX+Hs7bXTtviGqy13p/CqUcAu4HNwGVMb6yX1voApqfrK8xn9DjwuNb6tu24YbZtVzBz8AIdeDt2/V1s1+oItLfF8C3QN8F7Si72E5ihssNt23cAcUWG7Pn8goCttuMW2uIFeA9TLOaqbftf9r5hrfUmbMV8bMevIUFPK6b3rybSCyiEEC4hi8ULIYTIcGy9ZL9prf0sDiVdU0ppoJJtzqo7r5sdU/21ntb6kDuvLYQQmYH0BAohhBDC07wAbJYEUAghXEOSQCGEyGSUUpOUWZg88dckq2NzB2UWWU/q/ae4mLwbYiudTGw3bOv9ZXhKqWOY4bXDLQ5FCCEyLBkOKoQQQgghhBCZiPQECiGEEEIIIUQmIkmgEEIIIYQQQmQikgQKIYQQQgghRCYiSaAQQgghhBBCZCKSBAohhBBCCCFEJiJJoBBCCCGEEEJkIpIECiGEEEIIIUQmIkmgEEIIIYQQQmQikgQKIYQQQgghRCYiSaAQQgghhBBCZCKSBAohhBBCCCFEJiJJoBBCCCGEEEJkIpIECiGEEEIIIUQmIkmgEEIIIYQQQmQikgQKIYQQQgghRCYiSaAQQgghhBBCZCKSBAohhBBCCCFEJiJJoBBCCCGEEEJkIpIECiGEEEIIIUQmIkmgEEIIIYQQQmQikgQKIYQQQgghRCYiSaAQQgghhBBCZCI+VgfgTIUKFdJly5a1OgwhhBNt3br1ota6sNVxpIW0TUJkPNI2CSE8lT3tU4ZKAsuWLcuWLVusDkMI4URKqeNWx5BW0jYJkfFI2ySE8FT2tE8uHQ6qlGqnlDqglApRSr2ZxOtKKTXR9voupVS9BK+9qpTao5T6Tyk1QymVzZWxCiGEEEIIIURm4LIkUCnlDXwDtAeqAz2VUtUT7dYeqGT7GgR8Zzu2JPAyEKC1rgl4Az1cFasQQgghhBBCZBau7AlsCIRorY9orW8DM4FOifbpBPyqjQ1APqVUcdtrPkB2pZQPkAM47cJYhRBCCCGEECJTcGUSWBI4meD3UNu2FPfRWp8CxgMngDPAVa310qQuopQapJTaopTacuHCBacFL4QQQgghhBAZkSuTQJXENm3PPkqp/JhewnJACSCnUqpPUhfRWv+gtQ7QWgcULpyui3QJIYQQQgghhMu5MgkMBUol+N2Pe4d0JrdPG+Co1vqC1joK+At4wIWxCiGEEEIIIUSm4MolIjYDlZRS5YBTmMIuvRLtMw8YqpSaCTTCDPs8o5Q6ATRWSuUAIoDWgNQwFiKdi4yEU6egaFHImdPqaIQQQgghPFPotVAioiLu2Z4/e34K5SiU5vO7LAnUWkcrpYYCSzDVPadorfcopQbbXp8ELAI6ACFAONDf9tpGpdQcYBsQDWwHfnBVrEII19IaPvsMxo0zyd/VqzBoEHz4IXh7Wx2dECJTK1AAwsLu3Z4/P1y+7P54hBCZ3q3oW5SfUJ4iOYuQ3Td7/PbLEZepUrAK659dn+ZruHSdQK31Iq11Za11Ba31WNu2SbYEEFtV0Bdtr9fSWm9JcOxorXVVrXVNrfXTWutIV8YqhHCdqVPhl19g/Xo4dgz27IFNm+D//s/qyIQQmV5YmHlSlfgrqcRQuEWuXLkAOH78OPXr18ff358aNWowadKk+H169+5NlSpVqFmzJgMGDCAqKuq+5/z7779p2LAhVatWxd/fn6eeeooTJ07Evx4dHU2hQoV466237jqubNmyXLx4Mf731atX89hjjwFw7tw5HnvsMerUqUP16tXp0KEDALGxsbz88svUrFmTWrVq0aBBA44ePZrk+ebOnYtSiv3798dvO3bsGEopvvrqq/htQ4cOZerUqXb9/dK7uM8f4MSJEzz88MNUq1aN6tWrc+zYsbv2femll+7aPznp7fPP7pudgNAA+vn349BLh3jkwCO8k/sdahWpxfP1n0/x/drDpUmgEEIATJgAEydCpUrm9xIlYPJk+OYbiImxNjYhhBCpN306lC0LXl7m+/Tpzjt38eLFWb9+PTt27GDjxo18/PHHnD5tykv07t2b/fv3s3v3biIiIpg8eXKy5/nvv/946aWX+OWXX9i/fz87duygd+/edyUUS5cupUqVKvzxxx9onbiOYdLeffdd2rZty86dO9m7dy8ff/wxALNmzeL06dPs2rWL3bt3M3fuXPLly5fkOWbMmMGDDz7IzJkz79pepEgRJkyYwO3bt+2KxSozZkDNmmZUT82a5ndn6tu3LyNHjmTfvn1s2rSJIkWKxL+2ZcsWrly5kuI50uvnf3rZab7d8C2Xwi8BsP/ifkKvhdK7dm+74kuJJIFCCJc7eRJq1ICNG6F7d9MbWL483LgBt25ZHZ0QQgB9+8Kvv1odRboyfboZ2n/8uOk8PX7c/O6sRDBLlixkzZoVgMjISGJjY+Nf69ChA0oplFI0bNiQ0NDQZM8zbtw43n77bapVqxa/rWPHjjRv3jz+9xkzZjBs2DBKly7Nhg0b7IrvzJkz+Pn5xf9eu3bt+O3FixfHy8vcZvv5+ZE/f/57jr9x4wbr1q3jp59+uicJKFy4MK1bt+aXX36xKxYrzJgB77wDX31l/l/+1Vfmd2clgnv37iU6Opq2bdsCpocwR44cAMTExDBy5Eg++eSTFM+TXj//R9o+Qs3TNfliwxcABO4PZFTzUfh4OWc2nySBQgiXa9QI5s+HZctg9mzIkwdWrjSJoK09F0II62gNDzwAyTytz6xeeQVatkz+69lnITz87mPCw8325I555RXHYjh58iS1a9emVKlSvPHGG5QoUeKu16Oiopg2bRrt2rVL9hx79uyhXr16yb4eERHBihUreOyxx+jZsycz7MxiXnzxRZ599llatWrF2LFj43spu3fvzvz58/H392f48OFs3749yeMDAwNp164dlStXpkCBAmzbtu2u1998800+++wzYiwcMpPUZ/jtt+a1//s/yJ0b3nsP2rY133PnhpEjzesXL957rCMOHjxIvnz56Nq1K3Xr1mXkyJHxf4uvv/6ajh07Urx48RTPk54//1NLTzHh3wkcuHiAyxGXndYLCJIECiHcYPRoePNN83S4UiWTED79NIwdCyqp1UKFEMKdlILBg6FjR6sjSVcik6nWkNz21ChVqhS7du0iJCSEX375hXPnzt31+pAhQ2jevDnNmjWz63yXLl3C39+fypUrM378eAAWLFhAq1atyJEjB0888QRz586NTzZUEv+Titv2yCOPcOTIEZ577jn2799P3bp1uXDhAn5+fhw4cICPPvoILy8vWrduzYoVK+45z4wZM+jRowcAPXr0uCf5KFeuHA0bNuT333+3672524EDkDfv3dvy5oXTiReES6Xo6GiCg4MZP348mzdv5siRI0ydOpXTp08ze/ZsXnrpJYfPmd4+/yaNmhC+LZzlR5fTsUpHp/UCgmuXiBBCCMD0BC5cCE2bQq5cMGeOSQhbtbI6MiFEppc/f9JPo5IYvpXZfPnl/V8vW9YMAU2sTBlYvdq5sZQoUYIaNWoQHBxMt27dAHjvvfe4cOEC33///X2PrVGjBtu2baNOnToULFiQHTt2MH78eG7cuAGYm/F169ZRtmxZwCQKq1atok2bNhQsWJCwsDAKFTIl+S9fvhz/M0CBAgXo1asXvXr14rHHHuOff/7hiSeeIGvWrLRv35727dtTtGhRAgMDad26dfxxly5dYuXKlfz3338opYiJiUEpdc/wxrfffptu3brdNXTRne73OVarZnr/Ev6/fNUqiMvNChVK278DPz8/6tatS/ny5QHo3LkzGzZsoFixYoSEhFCxYkUAwsPDqVixIiEhIUmeJz1//o/0e4TpPadTtEZRmvg1Sf0fMwnSEyiEcIsCBczQz2+/NT2BkgAKITzC5ctmKGiTJndXB5XlIVI0duy9Q/pz5DDbnSE0NJSICLNOWlhYGOvWraNKlSoATJ48mSVLljBjxoz4uVfJef311xk7diz79u2L3xZuG8d67do11q5dy4kTJzh27BjHjh3jm2++ie+VadmyJdOmTQPMPLTffvuNVrb/ga1cuTL+PNevX+fw4cOULl2abdu2xQ8NjI2NZdeuXZQpU+aumObMmUPfvn05fvw4x44d4+TJk5QrV461a9fetV/VqlWpXr06CxYscPwP6GLvvGOG/q5aBVFR5vuzz5rtztCgQQPCwsK4cOECYP7e1atX59FHH+Xs2bPxn1eOHDmSTQAhfX/+B9QBVBGFb4gv3l7OXVNLkkAhhFtUrGjuqZ54wupIhBAigVu3YMsWePBBqyNJd3r3hh9+MD1/SpnvP/xgtjvDvn37aNSoEXXq1KFFixaMGDGCWrVqATB48GDOnTtHkyZN8Pf35/3330/2PLVq1WLChAn07duXqlWr0rRpU/bt20evXr3466+/eOihh+IL0AB06tSJefPmERkZyahRowgJCaFOnTrUrVuXihUr0qdPHwC2bt1KQEAAtWvXpkmTJgwcOJAGDRpw/vx5Hn/8cWrWrEnt2rXx8fFh6NChd8U0Y8YMunTpcte2J554Ismhn++88859C99YpWdPk/C/9BJky2a+jx1rtjuDt7c348ePp3Xr1tSqVQutNc8995zD50nPn/+yI8uo/WRtTp065fD7TomytwxqehAQEKC3bNmS8o5C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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -299,7 +299,7 @@ "outputs": [ { "data": { - "image/png": "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GIK/s2dde1z73Hvv5cWwe/du6tSpQ9myZXnooYcoVapUtPUXL15kypQptGvXLs5jbNy4kfr168e5/ty5cyxatIiOHTvSu3dvpicy8xk2bBi33347LVu2ZOzYsVFPQ3v06MFXX31FSEgII0eOZM2aNbHuP2fOHNq1a8eVV15JoUKFWL16dbT1Dz/8MC+//DLh4d7N+hTbZ/j2227dM89AvnyuB1GbNu5nvnwwapRb/88/l+57Of744w8KFChAt27dqFevHqNGjYr6W7z55pt07tyZkiVLJnic9Pr5jx49mqBfgjgdepr9p/YTUiIkxZ42giWOxpg05vffoXlzdyeyQAE4fBg2bHD/c5k0CR54wOsIjTGZUmio+wJq29Yt//ADJGKclIkuNPTy2pOibNmyrF+/nm3btvHRRx9x8ODBaOvvuusumjdvTrNmzRJ1vCNHjhASEsKVV17J+PHjAfj6669p2bIluXPn5uabb2b27NlRCYp/YZJIkW033HADO3bsYPDgwWzZsoV69epx+PBhypQpw9atW3n++efJkiULrVq1YtGiRZccZ/r06fTq1QuAXr16XZKwVKxYkcaNGzNt2rREnVtq27rVFbzzd8UVsC9m+cwkCgsLY+nSpYwfP54VK1awY8cOPvzwQ/bt28dnn33GiBEjLvuY6eXzD9dwylcoT9vmbcm3JR9b/tlCpys7Xfb5xseK2xtj0ox334W773YJ47x5cO4cvPWW67p69dXw009QsaLXURpjMp1z5+Daa2H1ale5a/p0CAm5dLtYupZlNq++Gv/6ChVc99SYypeHxYtTNpZSpUoRHBzM0qVL6d69OwBPPfUUhw8f5p133ol33+DgYFavXk3dunUpXLgwa9euZfz48Zz2PWWePn06P//8MxUqVABccvHDDz/QunVrChcuzLFjxyhSpAgAR48ejfodoFChQtx6663ceuutdOzYkSVLlnDzzTeTI0cO2rdvT/v27SlevDhz5syhVatWUfsdOXKE77//nt9//x0RITw8HBG5pOvlI488Qvfu3aN1q0xN8X2ONWq4G8EtW/7b9sMProo6QJEiyft3UKZMGerVq0elSpUA6Nq1K8uXL6dEiRJs27aNKlXc07ezZ89SpUoVtm3bFutx0tvnf/z8cXYe28mIeSN49NFHWdJ5CXVq1KF43uJJ/2PGwp44GmPSjKxZoXVrWL8e2reHbt1g0SLYtAneew+qpFxvC2OMSbxcuaBDB/jyS9fnLq6qqjYVR4LGjoXcMaaTy53btaeEPXv2cO7cOQCOHTvGzz//TLVq1QB47733WLBgAdOnT48aSxaXBx98kLFjx7J58+aotrO+PrYnT57kp59+4u+//2bXrl3s2rWLt956K+rpT4sWLZgyZQrgxtV98skntPRlSt9//33UcU6dOsX27dspV64cq1evjuq2GBERwfr16ylfvny0mD7//HP69evHX3/9xa5du9i9ezcVK1bkp59+irZd9erVqVmzJl9//fXl/wED7NFHXbfkH36Aixfdz9tvd+0poVGjRhw7dozDhw8D7u9ds2ZNbrzxRg4cOBD1eeXOnTvOpBHS1+e/4PsF9J/dnwvhF+hWoxvVq1enSUgTDq85nBJ/0uhUNdO+GjRooMYYb33zjeq0ae73iAj3Si5gpaaB75jkvOz7yRiPHTmi2qOH6vLlKXZI+25yPvlEtXx5VRH385NPkn1IzZMnj6qqLly4UGvXrq116tTR2rVr6zvvvBO1TVBQkFaqVEnr1q2rdevW1aeeeireY3799dfasGFDrVatml599dXaq1cv3bp1q37wwQfas2fPaNseOXJEixQpoufPn9fjx49r7969o2IYNWqUhoeHq6rqiy++qDVq1NDatWtrcHCwjh8/XlVV//e//2n9+vU1ODhYg4ODdeDAgXru3DlVVS1fvrwePnxYr7vuOv3f//4X7X1fe+01HTp0qO7cuVODg4Oj2teuXasioh988EHS/qABNG2aanCwapYs7mfkNUByRH7+qv/+G6hVq5b2799fQ0ND490+Lunh83/pvy9pyZYlNcu9WbRc1XJR7Zf7+Sf2u0nctplTw4YNdeXKlV6HYUymdO4cPPggvPnmv91QYxkWkCQiskpVG6bM0bxh30/GeOiHH+C22+DQIZg4EQalzBxo9t1kjElJN828iS+3fMnUblPpXbt3ko+T2O8m66pqjEl169dDo0YuabzvPvj++5RLGo0xJskuXoTRo6FVK8iTB5YvT7Gk0RhjUtrwRsN5r/N7yUoaL4cVxzHGpKq//3ZTahQsCAsW/Fug0BhjPPf++zBuHPznP67KS548XkdkAuyDDz7gtddei9Z2zTXX8NZbb3kUkUlN6fHzj9AIfv77Z5qVb0arSq0S3iEFWVdV625hTKoIDQXfnMxMmgRdu0LRooF5L+sOZoxJNFVXurlUKQgLcyUdW7cOyFvZd5MxJjlUlWHzhjFh5QRWDF5Bw1Ip83ViXVWNMWnGV1+5aTRWrHDLgwcHLmk0xphEO34cevWC+vXdzOORpZ2NMSaNUVUe/u5hJqycwINXP0iDkg1SPQZLHI0xAXP2LNx1F3TuDMWK2VzZxpg0ZOlSqFsXvvgC7r3X5mA0xqRpY5eO5cVlL3JXw7sY13oc4kFxCEscjTEpIizM9fiKtHYtNGwIEybAyJHw669u4l9jjPFUeDiMGQMtWkD27LBsGTz8MAQFeR2ZMcbE6tc9v/L4D4/Tr24/3ujwhidJI1jiaIxJpsWLoWlTN36xeHF44gmXRM6d63qBLVwI48f/O77RGGM8lSULbNgA/frB6tWuxLMxxqRhTco0YU7POUzuPJks4l36ZomjMSbJ1qyBHj3g/vtd8ZvZs+F//3PLjzzirs3atPE6SmNMplSokJvnJ+arcGGYORM++ADy5fM6ysynRInYP5cSJZJ12Ly+sRB//fUXDRo0ICQkhODgYCZOnBi1TZ8+fahWrRq1atVi0KBBXLx4Md5jzp8/n8aNG1O9enVCQkLo2bMnf//9NwADBgygYsWKhISEEBISwtVXXx2135w5c6hTpw7Vq1endu3azJkzJ2rdgAEDyJ07N6dOnYpqu+eeexAR/vnnHwCCgoKijhsSEsK4ceO46aabCAkJoUqVKlxxxRVR65YtW0aLFi2oVq0adevWpVGjRqxduzbq2BUqVIg67oEDB+jVqxeVK1emZs2adOjQgT/++CNpf/CkqlAh9s+/QoVkHTav31iYv//+m7Zt21KjRg1q1qzJrl27om07YsSIaNvHJS18/hWqV2D4I8O56aabeKLXE1S/srq3n7+qZtpXgwYN1BiTdP36qY4f737/8kvVwoVVK1RQveIK1SNHvIsLWKlp4DsmOS/7fjImmcD9PH5ctU8ftzx8+L/tnoRk303qRjXE/kqGPHnyqKpqaGionj9/XlVVT506peXLl9e9e/eqquo333yjERERGhERob169dK33347zuNt2LBBq1Spops2bYpq+/LLL/XHH39UVdX+/fvrZ599dsl+a9eu1cqVK+uOHTtUVXXHjh1auXJlXbduXdR+tWvX1ilTpqiqanh4uNauXVtLly6thw8fjnYusfnhhx/0xhtvjNZ23XXX6YoVK1RV9f3339fWrVtHrStfvrwePnxYIyIi9KqrrtIJEyZErVuzZo0uWbIkzvcKiLg+5xT6/FXd32PhwoWq6v4NnDlzJmrdihUrtG/fvvH+jVXTxuc/d8tczfp0Vu00rVPU8QP1+Sf2u8nmcTTGJNnWrTBgAIwYAW++CfXqwbRp0LMn/PWXu+FvjDGeWb4cbr3VTSD7zDMwerT7sjKBc++9bpB7UrRoEXt7SIibVzMRsmfPHvV7aGgoERERUcsdOnSI+r1x48bs2bMnzuO88MILPPLII9TwG5zfuXPnBN9//PjxPPLII1SsWBGAihUrMnr0aF566SWmTJkCQO/evZk5cyZ9+/Zl8eLFXHPNNfzvf/9L1PklpGnTprz00kuXtP/www9ky5aNoUOHRrWFhISkyHteIrbPsUcPVy0vrvWR/vkHuneP3rZ4caLfetOmTYSFhdHG193J/8lieHg4o0aNYtq0acyePTve43j9+S/asYhbPruF+iXrM7Xb1MSdPIH//K2rqjEmyapWhT593HXYfffBL7+4woR//eWm3zDGGE9de617lrVkCTz2mBXAySR2795NnTp1KFu2LA899BClSpWKtv7ixYtMmTKFdu3axXmMjRs3Ur9+/XjfZ9SoUVFdBvv06RO1X4MG0adJaNiwIRs3boxarlq1KocPH+bYsWNMnz6dXr16Rdv+3Llz0bqqzpw5M1HnDa57ZdeuXS9p//333y+JKyP6448/KFCgAN26daNevXqMGjWK8PBwAN588006d+5MyZIlEzyO159/m2vaIO8IZ18/y7w58xJ17hD4z9+eOBpjkuyhh+Czz9wTxyeegN9/h7vvhjvugAIFvI7OGJMpqboxU+DuaD32GFxxhbcxZSYJPRmMrxrkZTxZik/ZsmVZv349+/bto2vXrnTv3p3ixYtHrb/rrrto3rw5zZo1S9Txjhw5QqtWrTh79ixDhgzhgQceAOCll16ie4ynY6p6ScXL2Nq6devGjBkz+PXXX3nnnXeircuVK1e0cWqJ0adPH86cOUN4eDirV6++rH1TXEKfY2zrI/8+RYok699BWFgYS5cuZc2aNZQrV46ePXvy4Ycf0r59ez777DMWJ+HYqf35Z8mehUqPVmLJgCUUz1ucxEitz9+eOBpjLsupUy4x3LkTatVyN/K3boVSpVxPlG7d4PnnvY7SGJMpzZ7tnjKeOeOWX3rJksZMrFSpUgQHB7N06dKotqeeeorDhw/z3//+N959g4ODoy7ACxcuzNq1axkyZAinT59OcL+VK1dGa1u9ejU1a9aM1tarVy8ef/xx2rRpQ5Ysyb8cnzp1Kjt37uTWW29l2LBhsca1atWqZL9PWlemTBnq1atHpUqVyJo1K127dmX16tWsWbOGbdu2UaVKFSpUqMDZs2epUqVKnMfx8vPPEZTjspJGSL3P3xJHY0yirVoF9evDe++5hBGgcWNYsMBdp23f7uZsTIH/BxpjTOKdPQt33unuXJ0/D0ePun7zsVVvLFjQ62gzt+JxXAzH1X6Z9uzZw7lz5wA4duwYP//8M9WqVQPgvffeY8GCBUyfPj3BZO3BBx9k7NixbN68Oart7NmzCb7/Aw88wPPPPx9VyXPXrl0899xzjBw5Mtp25cqVY+zYsdwVOe4vBWTLlo1nn32W5cuXR4sb4Prrryc0NJRJkyZFta1YsYIff/wxxd4/UcqXj/2/y/LlU+TwjRo14tixYxw+fBiA77//npo1a3LjjTdy4MABdu3axa5du8idOzfbtm2L8ziB/Px/P/g7y08t56ZhN1G+dXk+3fgpp0JP0ebjNhw8fRDgspLGSKnx+VtXVWNMglThtdfgwQfd/9sXL4ZE9vAxxpjAWr8eeveGTZvggQdg7FjInt0ljybtOXAgoIffvHkzI0eORERQVR544AFq164NwNChQylfvjxNmzYFXHfBMWPGxHqc2rVr89prr9GvXz9OnTpF4cKFKVeuHE899VTUNqNGjeLZZ5+NWv7tt98ICQnhhRdeoFOnTly8eJFs2bLx4osvxlqI5I477oj1vSPHOEZq164d48aNS9T558qVi5EjRzJ+/HgmT54c1S4izJ49m3vvvZdx48aRM2dOKlSowKuJLDqUYmJMjZHSgoKCGD9+PK1atYqsAszgwYMv+ziB/PzfX/s+hbMWpmqtqvx0+ifOrjvL0fNHOXbwGEfOHUnTn7+4CqyZU8OGDTXm42RjzKXeeMONXezSBSZPdtOgpWUiskpVG8azvh3wGhAEvKeq42KsF9/6DsBZYICqrvat2wWcAsKBsMj3EZGXgE7ABWA7MFBVj4tIBWAzsNV3+OWq+m9ZszjY95MxidSiBWzZAh9/DG3beh1NvBL6bkoP7LvJmOSZsm4Kk1ZP4scBP3L47GGaf9Cc7ce2c99V9/Fimxc9iSmx300B7VAmIu1EZKuIbBORh2NZLyLyum/9ehGp77dul4hsEJG1IrLSr/1JEdnra18rIh381o32HWuriNwQyHMzJjMIDXU/Bw1yc2XPnp32k8aEiEgQ8BbQHqgJ9BaRmjE2aw9U9b2GABNirG+pqiExvmS/BWqpah3gD2C037rtvu1DEpM0GmMS8M8//z5R/Phj99QxjSeNxhgD0Lt2bw6cPsDcrXNpO6Utu47vokCOAjzd8mmvQ0tQwBLHAF6cAbzidxE2z/d+NYFeQDDQDnjbF4Mx5jKFhbkqqQ0auLGLefK4+RrjK4aXjjQGtqnqDlW9AMwAusTYpgvwsW+O3OVAARGJt363qi5U1TDf4nKgTEoHbowBvvsO6tRxYxoBypWDYsW8jcmkWx988EG0qS9CQkJiLS5iMiYvPv+sWbLyePPHeW7pcwCElAjhyRZPkjNrzoC+b0oI5BjHqIszABGJvDjb5LdN1MUZsFxECohISVXdn4T36wLMUNVQYKeIbPPF8EuyzsKYTGb3bjc349Kl0L+/G9+YwZQGdvst7wGaJGKb0sB+QIGFIqLAO6r6bizvMQjwn3irooisAU4Cj6nq0lj2McbE58IFePxxVym1enV45BGvIzIZwMCBAxk4cKDXYRiPePH5Xwi/QI/gHjyz5BkG1RvEm7+9ye31b0/VGJIqkIljIC/OhotIP2AlMFJVj/n2Wx7LsaIRkSG4p5uUK1cuCadlTMY1dy4MHOi6qE6ZAn37eh1RQMT23DRmehzfNteo6j4RKQZ8KyJbVHVJ1I4ijwJhwFRf036gnKoeEZEGwBwRCVbVk5cEZt9PxsRu1y645RZYuRKGDIFXXoHcub2OyhhjLktYRBi9Pu9Fzqw5eazZY/T/sj9vtn8zXTxthMCOcUyJi7P6uO6sw0Skua99AlAZCMFdkL18Ge+Hqr6rqg1VtWHRokXjPwNjMpGICHjuOVcRe/XqDJs0grupVNZvuQywL7HbqGrkz0PAbFzPBgBEpD/QEejj60mBqoaq6hHf76twhXOujC0w+34yJg65crl+87NmwTvvWNJojEl3IjSCwV8NZvaW2TQp3YRb69zKmOZj0s3TRghs4hiQizNVPaiq4aoaAUzi34u2xLyfMSaGP/5wNSayZIE5c+CXX+DKWNOaDGMFUFVEKopIdtzY6LkxtpkL9PMV8LoKOKGq+0Ukj4jkAxCRPEBb4HffcjvgIaCzqkZN9iQiRSPHW4tIJdyY7h2BPUVjMoCTJ93UGuHhbh6gDRvcPI3GGJPOqCr3zb+PD9d+yFMtnuKeq+4ha5asPNXyqXTztBECmzgG6uLMv0DFTZHtvmP1EpEcIlIRd3H2W6BOzpj05tgx+PBDmDgR/vrLtX38MdSvD/ff75ZLlIAcOTwLMVX4CtgMBxbgpsn4VFU3ishQEYmseDoPl9xtw92gipyhuTjwk4isw32/fKOq833r3gTy4bqvrhWRib725sB63z6fA0NV1SaYMyY+y5dDSIir0vXzz64tyOrdGWPSp7FLx/L6b69z31X38Xjzx70OJ8kCljgG8OLsRd80HeuBlsB9vvfbCHyKK74zHximquGBOj9j0pOvv4bKld3PX3+FevVcxdT+/d1Pv/lrMwVVnaeqV6pqZVUd62ubqKoTfb+rqg7zra+tqit97TtUta7vFRy5r29dFVUtG3PaDVWd5du2rqrWV9WvvDhnY9KsQoVcyWb/V9Om7g7XkiXQvHnCxzDpRr136iFPySWveu/US9Zx8+bNC8Bff/1FgwYNCAkJITg4mIkTJ0Zt06dPH6pVq0atWrUYNGgQFy9ejPN4Tz75JOPHj4/WVqFCBf755x/ATag+cuTIqHXjx4/nySefvGTfAQMGULFixaiKna+//joAJ06coF+/flSuXJnKlSvTr18/Tpw4AcCuXbvIlSsXISEh1KxZk379+kXFunjxYkQk2uTua9asQUQuiTctuvb9a2P9/K99/9pkHTfy8wf4+++/adu2LTVq1KBmzZrs2rUr2rYjRoyItn1sUvrz/+jOjyjycRHKbymPiKTbzz+g8zgG6OLsNt+2dVS1s38FVlUd6ztWNVX9XyDPzZj04uRJ6NcP5s+Hzz+HUaOgQAE3jnHIEPj+eyhjE0cYY7xy7Jgr36zqJo0F6NXLDby++mpvYzMprmmZpmQPyh6tLXtQdq4ukzKfdcmSJVm2bBlr167l119/Zdy4cezb50Yu9enThy1btrBhwwbOnTvHe++9l+T3yZEjB1988UVUIhGfl156ibVr17J27VruvvtuAG6//XYqVarE9u3b2b59OxUrVuQ///lP1D6VK1dm7dq1bNiwgT179vDpp59GratduzYzZ/5buHvGjBnUrVs3yeeSmhqVasS9Te5Fn9Co171N7qVx6cYJ75xI/fr1Y9SoUWzevJnffvuNYn7T9axcuZLjx48n+z0S+/mfDD3JSy+9xJ8b/+Tw9sPcc889QPr9/ANZVdUYkwbMmwfXXAONfd/JhQq513XXQf781vvLGJMGRES4gdZ33AHNmrnuEDNmeB2VSYJ759/L2gNr41wfGhZKWERYtLawiDDWHFhDiw9bxLpPSIkQXm33aqLeP3v2f5PS0NBQIiIiopY7dOgQ9Xvjxo3Zs2dPoo4Zm6xZszJkyBBeeeUVxo4dm/AOfrZt28aqVauiXfyPGTOGKlWqsH37doL8/sccFBRE48aN2bt3b1RbuXLlOHnyJAcPHqRYsWLMnz8/2rl5LbbPsUdwD+5qdBfDmwyn+pvVWb5nOTmy5iA0LJSV+1cyvo17WvbP2X/o/mn3aPsuHrA40e+9adMmwsLCaNOmDRD9SWR4eDijRo1i2rRpzJ49+/JPzE9iPv9Zm2YxZ8scKu6uSHf+Paf0/PkH9ImjMcZ7Fy+6nl+PPeZqTJQoAStWQLVqbp0xxnjm9Gn389573c/GjWHAAPelZTKkHFlzUDxPccRXDF8QSuQpcclTyOTYvXs3derUoWzZsjz00EOUKlUq2vqLFy8yZcoU2rVrl6z3GTZsGFOnTo3qYhiXUaNGRXVV3bBhA5s2bSIkJOSSBCEkJISNGzdG2/f8+fP8+uuvl8TavXt3PvvsM5YtW0b9+vXJkU4KFJTMW5LieYqz+6SbjW/3yd0Uz1OcK3JekSLH/+OPPyhQoADdunWjXr16jBo1ivBwN3LtzTffpHPnzpQsWTKBoyROfJ//1n+20ntWb4rkLsKs12ZlmM/fnjgak8Hlzu3GNi5YAJ07u+uy06fh/ffh3dimrjfGmNSwYgX06eN+z5vXdVW1hDHdS8yTwf2n9lPp9UqcDztPzqw5WXXHKkrkLZFiMZQtW5b169ezb98+unbtSvfu3SlevHjU+rvuuovmzZvTrFmzOI8hcfxb9G/Pnz8//fr14/XXXydXrlxxHuull16ie/d/nzjt2LEj1uOralT79u3bCQkJ4c8//6R79+7UqVMn2rY9evSgZ8+ebNmyhd69e7Ns2bI43z+1xfeEMHe23KwYvILgt4N55YZXaD2lNRvv2hj1+RfJXeSynjDGFBYWxtKlS1mzZg3lypWjZ8+efPjhh7Rv357PPvuMxYsTd+zkfP5/n/ibKVumENwlmJqVatLtvm4Z5vO3J47GZFAXL8Ijj7g5s4sXhzx5YOZMePJJV6ywbVvXXdUYY1JVeDg8/7wbv3j+vGt77jlLGjORkvlKMjBkIFkkCwNDBqZo0uivVKlSBAcHs3Tp0qi2p556isOHD/Pf//433n0LFy7MsWPHorWdOnWKAgUKRGu79957mTx5MmfOnEl0XMHBwaxZsyZaN9qIiAjWrVtHjRo1gH/HuG3bto3ly5czd270iQlKlChBtmzZ+Pbbb2nVqlWi3zstKJmvJP3r9qfVx63oX7d/in7+ZcqUoV69elSqVImsWbPStWtXVq9ezZo1a9i2bRtVqlShQoUKnD17lipVqsR5nKR+/ofPHGbahmkUyFGABX0XxPokPT1//pY4GpNB9evnrs1uvx22bXPzM+bP767TPv4Y3njDrtOMMR74+29Xyvnmm2HdOihY8NKqqiKu3WRYjzd/nGvLXcvj16Xs1AR79uzh3LlzABw7doyff/6ZatWqAfDee++xYMECpk+fTpYs8V8CN2/enLlz53Lq1CkAvvjiC+rWrRuteyFAoUKF6NGjR7QqlwmpUqUK9erV41m/kubPPvss9evXvySZKVmyJOPGjeP555+/5DhPP/00L7zwwiUxpQcPXvMgjUs35sFrHkzR4zZq1Ihjx45x+PBhAL7//ntq1qzJjTfeyIEDB9i1axe7du0id+7cbNu2Lc7jJPXzL5qnKO2qtGNIwyEUz1v8kuNC+v78rauqMRlMZI2Je++Fm26CHj1ce7Vqbko0Y4zxxE8/uUpdFSu6hLFyZZcgHrVpTTOjkvlK8uOAH1P8uJs3b2bkyJGICKrKAw88QO3atQEYOnQo5cuXp2nTpgB069aNMWPGxHqcOnXqMHz4cK699lpEhGLFisVZhXXkyJG8+eablxXn5MmTGTFiBFWqVEFVadq0aZzJZ9euXXnyySejPTkFuDodVx0uma8k8/vOT3jDyxQUFMT48eNp1aoVqkqDBg0YPHjwZR/ncj//N958gz0nXbGlkBIh5M0Z/3Qf6fXzF1VN9TdNKxo2bKgrV670OgxjUsTp03D33ZAvH7z2mtfReEtEVqlqQ6/jSA77fjIZxsmTMHw4TJkCs2dD165eR+SZQHw3iUg74DUgCHhPVcfFWC++9R2As8AAVV3tW3cPMBgQYJKqvprQ+9l3kzHRHTpziGYfNOP0hdNsv3s7ObPm9Dqky5bY7ybrqmpMBrBmDTRoAB9+6LqjZuL7QcaYtGTZMjeoeupU1+WhY0evI8pQRCQIeAtoD9QEeotIzRibtQeq+l5DgAm+fWvhksbGQF2go4hUTaXQjckQjp8/zg2f3MDuE7v5tPun6TJpvByWOBqTjqnCq6/CVVe5J47ffw/PPGNjF40xacB//+vmZARYutRV5spqI2RSWGNgm6ruUNULwAygS4xtugAfq7McKCAiJYEawHJVPauqYcCPwE2pGXxa8MEHH0RNlRD5GjZsmNdhmVSSnM//7MWzdJzWkY2HNjK752yuKXdNgKP1nn2DG5OO/f03PPootGsHkydDkSJeR2SMMT6VK0Pfvq4SV/78XkeTUZUGdvst7wGaJGKb0sDvwFgRKQycw3VlzXR9UAcOHMjAgQO9DsN4JDmf/xu/vsEve35hZveZ3FDlhhSOLG2yxNGYdGjDBqhVC8qXd1Oh1ahhTxmNMR5TdSWbT5xwA667dHEvE0ixffPHHKwQ6zaqullEXgC+BU4D64CwWN9EZAiumyvlypVLerTGZCAPXP0ATcs2pXn55l6Hkmqsq6ox6cjFizB6NNStC5995tpq1rSk0RjjsWPHoFcvGDAAvv7alXc2qWEPUNZvuQywL7HbqOpkVa2vqs2Bo8Cfsb2Jqr6rqg1VtWHRokVTLHhj0htV5anFT7H35F6CsgRlqqQR7ImjMenGjh3Quzf89hsMHgw33uh1RMYYAyxeDLfdBgcOuMljR41ycwKZ1LACqCoiFYG9QC/g1hjbzAWGi8gMXDfWE6q6H0BEiqnqIREpB3QDmqZe6MakXSdDT/LHkT+itakqry5/lWm/TyN/jvzc1/Q+j6LzjiWOxqRBqtGfIs6aBQMHumuxTz+FW27xLjZjjImyeze0bQsVKsAvv0DDdD0LTrqjqmEiMhxYgJuO431V3SgiQ33rJwLzcOMXt+Gm4/Af0DXLN8bxIjBMVY+l6gkYk0ZNXDmRp358ihpFakS17T+1n32n99Gxakfuvepe74LzkN0SNCYNmToVgoMhKMiNYZw+3bUHBUHt2m7ObEsajTGprlAhdzcr5qtuXfj8czcnkCWNnlDVeap6papWVtWxvraJvqQRXzXVYb71tVV1pd++zVS1pqrWVdVFXp2DMWnNwJCB5Myak9k9Z7NyyEr61+3PvtP7yJs9L5/3+BzJpGOELHE0Jo345BMYMwbefhsuXHC1Je6+2yWPXbu6avbly3sdpTEmUzp2zHWFiIiAd96BPHlg4ULX3rmzWzbGmAyiaJ6i/Kfefxj30zguhF9g8prJFMldhFfavkKOrDm8Ds8zljgak0Y89xy8/76b9uyNN2D4cDfl2dixbr0NGTLGeOrIEejWDe64A66+2nWPMMaYDOqBqx9gxsYZHDx9kGdbPkve7HnpH9Lf67A8ZWMcjUkDVGHLFqhSxRW9mT/f3cR/+203dMgYYzwXEgIHD8LLL8O999rdLGNMhvbLnl8omrsoY5eM5Y+jfzCm+RiyBWXzOixPWeJoTBogAlde6YYLnTkDb70Fd94J33/v5mg0xhjP5czpCuA0aOB1JMYYE1ALty/kls9uIbhoMNN+n0bRPEXpW6ev12F5zhJHYzwWHu6K34wZ48Y0vvUW9O0LP/wA//kPjBvndYTGmExpzx7XFaJ1a7e8dq2NZTTGZHg/7vqRrjO6Ur1Idb7r9x3TNkyj3BXlMv3TRrDE0RhPbdgAffq4nl+33uqePD73HAwZAjVruqSxZ0+vozTGZDpffQUDBrinjDt2QMGCkDfvpdsVLJjqoRljTKD8svsXOk7vSIUCFfj2tm8plKsQwxsP9zqsNCOgAxREpJ2IbBWRbSLycCzrRURe961fLyL1/dbtEpENIrJWRFb6tb8kIlt8288WkQK+9goics63/VoRmRjIczMmOVRdAZxGjeDQoX/nbOzd2yWTYWGwfr0ljcaYVBYa6sYvdu7syjj/8APkyAFHj7ovrpivo0e9jtgYY1JM1ixZqVGkBt/1+45ieYp5HU6aE7AnjiISBLwFtAH2ACtEZK6qbvLbrD1Q1fdqAkzw/YzUUlX/iXHob4HRvklvXwBGAw/51m1X1ZAUPxljUtChQzBwIMyb5wrhvP8+FLPvJmOM106fhubN3ZyM99wDL7zgkkZjjMngjpw9QuHchWlUuhG//ufXTDtPY0IC+cSxMbBNVXeo6gVgBtAlxjZdgI99k9MuBwqISMn4DqqqC1U1zLe4HCiT0oEbE0hz5sCiRe6J41dfWdJojEkj8uaFVq1g7lx49VVLGo0xmcIfR/4g+O1gXl3+KoAljfEIZOJYGtjtt7zH15bYbRRYKCKrRGRIHO8xCPif33JFEVkjIj+KSLOkh25Myjp/Hlb6OlwPHgybNrl5Gu27yRjjqVOn4PbbYd06t/zSS9Cpk7cxGWNMKtl5bCetPm5FhEZwQ+UbvA4nzQtk4hjbJbFexjbXqGp9XHfWYSLSPNqOIo8CYcBUX9N+oJyq1gPuB6aJSP5LghIZIiIrRWTl4cOHE382xiTRxo3QpIkrTHjsmEsWK1XyOqrMLUDjrwuJyLci8qfvZ0G/daN9x9oqIvZ/JpM2rFoF9evDhx/C8uVeR2OMMalqz8k9tPq4FWcunOG7ft9Ro6jNf5aQQCaOe4CyfstlgH2J3UZVI38eAmbjur4CICL9gY5AH1VV33ahqnrE9/sqYDtwZcygVPVdVW2oqg2LFi2arBM0Jj6q8Pbb0LAh7N8P06ZZAcK0wG/8dXugJtBbRGrG2Mx//PUQ3Phrfy1VNURVG/q1PQwsUtWqwCLfMr5j9wKCgXbA274YjPGGKrzyCjRt6rpDLF4Md9zhdVTGGJNqQsNCaTOlDUfOHWHhbQupU7yO1yGlC4FMHFcAVUWkoohkx104zY2xzVygn+/u/lXACVXdLyJ5RCQfgIjkAdoCv/uW2+GK4XRW1bORBxKRopEXYyJSCXfBtyOA52dMnC5cgC5dYNgwaNHCVUjt0MHrqIxPQMZf+/b5yPf7R0BXv/YZvptbO4Ft+N0IMybVffAB3H+/+1Jauxaa2cgOY0zmkiNrDh6+5mHm3TqPhqUaJryDAQJYVdVX9XQ4sAAIAt5X1Y0iMtS3fiIwD+iAu5A6Cwz07V4cmO0bnJoVmKaq833r3gRyAN/61i9X1aFAc+BpEQkDwoGhqmp1wo0nsmeH0qVdfYkRIyBLQCe+MZcptrHVTRKxTWlcl/jI8dcKvKOq7/q2Ka6q+wF8N8CK+R1reSzHuoRvPPcQgHLlyl3maRmTgDNnIE8euO02yJULevWygdbGmEzl+PnjbDy0kWvKXUP/kP5eh5PuBCxxBFDVebjk0L9tot/vCgyLZb8dQN04jlkljvZZwKzkxGtMcoSGwmOPQd++ULcuTIjZudGkFSkx/nqfLzH8VkS2qOqSZL6fa3RJ6LsADRs2jHUbYy5bWBg89RRMmeLGNRYu7CaNNcaYTORU6CnaT23PpsOb2HnPTgrlKuR1SOlOQBNHYzKiEyfc8KBvvnE37fv2hauvdj/XrYOiRV3iaNKsFBt/LSKR46+XAAdFpKTvaWNJ4NBlvJ8xyVeokKvAFVNQEISHw4ABNsWGMSZTOnvxLJ2md2LF3hV8dstnljQmkXWgM+YynD8P118P27a55PHhh90c2SEhsHevm5fxwQe9jtIkICDjr337RPZ76Q986dfeS0RyiEhF3Pjr3wJ1ciYTO3bMFb6JfH3xBRQo4JLGqVPd2Ma8eb2O0hhjUlVoWCg3zbyJJX8tYcpNU7ipxk1eh5Ru2RNHYy7DjBnupv6UKW5o0EcfwY4dbkzjF19YjYn0IIDjr8cBn4rI7cDfwC2+420UkU+BTbgphIapanjgz9RkaqrwzjtQubLrnnrrrV5HZIwxnpi0ehILty9kcufJ9K5t3fSTwxJHYy7D8uXQtaurMZE3rxsmJAILFrgE0hLH9CFA46+PAK3iWDcWGJuMkI1JnHXr3Lw/5crB9OmuGI51TzXGZGJ3NbqLWsVq0aJCC69DSfesq6oxl6F4cTdXdq1acPSoe9LYrx9s3QqlSnkdnTEm04qIcD8bN4ZRo9zvBQu6LyljjMlkIjSC0d+N5q/jf5FFsljSmEIscTQmkXbudGMYV66EatXc9djFi/Dii3D2rBv7aIwxqW73bmjd2v1+443w1lvexmOMMR5SVe78+k7G/TyO2Vtmex1OhmJdVY1JhBkz4I47XLfUMWNg5kyoWdMljLVrw7x5rnChMcakql9+gQ4d3F2s3Llh9mz38lewoDexGWNMAJ04f4KBXw4kNDw0qk1V2fzPZnYd38XD1zzMPU3u8TDCjMcSR2MSoOqKEQYHw7RpUKECPPmkq6yaKxeUKeN1hMaYTCs4GNq2heeec4VwjDEmk8idLTdrDqyhb+2+XFXmKgA+Xvcxu47vomHJhjzX6jl8xexMCrGuqsbEYc0a2LPHPWWcMQOWLHFJI7i2qlUtaTTGeGDpUujc2c0PlD+/6wJhSaMxJpPJFpSNx5o9xvK9y7nxyhu5vuL1bP5nMzmCcjCvzzxLGgPAEkdjYlCFV1+Fq66KXmMiqz2fN8Z46cIFeOQRuO462LTJ3dkyxphMrF/dfmw7uo2lfy0lV7ZcNCjZgPuuuo+ieYp6HVqGZImjMX4OHYKOHeG++6BdO3jjDa8jMsYYYMsWuPpqeP55GDTIdYmoUsXrqIwxxlPZgrLRvFxzbpp5E1sOb2HuH3MZefVIr8PKsOwZijE+a9a4GhPHjrmihHfe6bqkGmOMp1Th9tth1y744gu46SavIzLGmDRh+obpTFk/hZxZczLgywHc0eAOiuQu4nVYGZYljsb4VKoEDRq4G/q1a3sdjTEm0zt4EHLkgAIF4KOPIE8eKFnS66iMMSZNmLt1LrfNvo3m5ZvTM7gnD373IF/f+rXXYWVo1lXVZGrbt7teX+fPwxVXwNdfW9JojEkDvvrKfRndd59brlLFkkZjjPFZtGMRPT7rQf2S9Znbey53NLyDdUPX2dPGALPE0WRaU6dCvXpuyrPNm72OxhhjgDNnYOhQVzW1VCl44AGvIzLGmDSncO7CXFvuWub3nU/+HPnJIlmoVLCS12FleJY4mkzn1Cno1w/69oW6dWHdOpdAGmOMp37/HerXh3ffdSWdf/3VzdNojDEGgIOnDwIQUiKE7/p9R6FchTyOKHOxxNFkWBcuwNy5MGlS9CeKAwa4p41PPAE//ADlynkWojEmMypUyFXeivm69lrIlQsWLYIXX3TjG40xxgCw+fBmak2oxYs/v+h1KJmWJY4mQ9q8GapVg5dfhmXLoGVLV5QwIgKefdYljE8+aXMzGmM8cOyYq5SqCjt2uO6o4eFw4oQr79yypdcRGmNMmrLz2E7aTGlDkARxU3WrLO0Vu2w2GY4q9Onj5skePBgOHIDdu2HOHGjeHPr3hxo1vI7SGJOpqcKUKTB8uHvaOGiQa7c5gIwxJpq9J/fS6uNWnL14lh8H/EjVwlW9DinTsieOJsPZuhX++cc9YVywwI1j/Pln6N4dpk3zOjpjjAFuu83dxapXD9avt7tZxhgTi4vhF2k3tR2Hzx5mft/51C5upe+9ZImjyXBCQ93QoFGjoF07KFYMVq50c2aHhnodnTHGANOnw9NPw/ffQ/nyXkdjjDFpUragbDzW7DG+6v0VjUs39jqcTC+giaOItBORrSKyTUQejmW9iMjrvvXrRaS+37pdIrJBRNaKyEq/9kIi8q2I/On7WdBv3WjfsbaKyA2BPDeTdtWq5eZlnDQJ7roLfvvN3cx/+21X4d4YY1KdKoSF/bu8eDE8/jgEBXkWkjHGpFVnLpxh6V9LAehZqyctKrTwNiADBDBxFJEg4C2gPVAT6C0iNWNs1h6o6nsNASbEWN9SVUNUtaFf28PAIlWtCizyLeM7di8gGGgHvO2LwWQSqjB/vhsi9MEHkC2ba58wAZo1c3Un7rzT2xiNMZnQkSPQpQs8+qhbLljQDbiOWVW1YMH4j2OMMZnA+bDzdJ3ZlbaftGX/qf1eh2P8BPKJY2Ngm6ruUNULwAygS4xtugAfq7McKCAiJRM4bhfgI9/vHwFd/dpnqGqoqu4EtvliMJnAyZNuXsb27V0PsNat3fyMpUvDrl1w333w3Xeu0r0xxqSaJUvcQOsFC6BMGdd29Oi/VVX9X0ePehurMcZ47GL4RXp93ovvdnzHhBsnUDJfQmmBSU2BrKpaGtjtt7wHaJKIbUoD+wEFFoqIAu+o6ru+bYqr6n4AVd0vIsX8jrU8lmOZDO7XX+HWW12C+PTT0KuXay9TxlVWNcaYVBceDmPHwlNPQaVK8MsvUL9+wvsZY0wmFaERDPhyAF9u/ZI32r/BgJABXodkYkhU4igiDYFmQCngHPA78J2qxnd7NLaa4noZ21yjqvt8ieG3IrJFVZck8/0QkSG4brGUs5nf07133nHV7EuVcjf2r7nG64hMalq5ciVLly5l37595MqVi1q1atG6dWuvwzIGtm2D556D3r1df/l8+byOyKRxSbzWMibDmPH7DKZtmMZz1z/H8MbDvQ7HxCLerqoiMkBEVgOjgVzAVuAQcC0umftIROLKvvYAZf2WywD7EruNqkb+PATM5t9upwcju7P6fh66jPdDVd9V1Yaq2rBo0aJxnbpJJ6pXh5tvhrVrLWnMTD788EPq16/P888/z7lz56hWrRrFihXjp59+ok2bNgAV4vluMiZwNmxwP6tVc9NsTJliSaOJVzKvtYzJMHrX6s28W+cxutlor0MxcUjoiWMe3JO/c7GtFJEQXGGbv2NZvQKoKiIVgb24wjW3xthmLjBcRGbgurGe8HU/zQNkUdVTvt/bAk/77dMfGOf7+aVf+zQR+S/ubl1V4LcEzs+kQ/Pmueuxhx+G665zL5O5nDlzhp9//plccQxaFZGDxP3dZEzKu3DB9Y1/+WX48ktXwvnKK72OyqQPybnWMibde/3X12lfpT1VC1elfdX2Xodj4hHvE0dVfSuuLzLf+rWquiiOdWHAcGABsBn4VFU3ishQERnq22wesANXyGYScJevvTjwk4iswyV/36jqfN+6cUAbEfkTaONbRlU3Ap8Cm4D5wDBVDY/37E26EhoK994LN94IM2fanIyZ2bBhw+JMGn3OxfXdZEyK27EDrr3WJY133QXuqbcxiZKcay1I9tRn94nIRhH5XUSmi0jO5J+RMYn36vJXuWf+PUxYGXNiBZMWJaqqqq+bRAG/5YIi8n5C+6nqPFW9UlUrq+pYX9tEVZ3o+11VdZhvfW1VXelr36GqdX2v4Mh9feuOqGorVa3q+3nUb91Y37Gqqer/Ev1XMGneli1w1VXw2mtw992uzkSOHF5HZbzWv39/jh8/HrV87NgxBg0alOB+ybnQ8q0PEpE1IvK1X9tM37yza33z0K71tVcQkXN+6yYm/YxNmvPFF1CvHvzxB3z+Obz1lpVvNkmSlGut5Ex9JiKlgbuBhqpaCwjC9Q4zJlW8t/o97ltwH91rdufFNi96HY5JhMRWVa2jqscjF1T1mIjUC0xIxkR36pQbvygCc+dCp05eR2TSivXr11OgQIGo5YIFC7JmzZp49/G70GqDGxu9QkTmquomv838L7Sa4C60/KtC34PrSZE/skFVe/q9x8vACb/tt6tqyGWcmkkvLl6EmjXdPEAVKngdjUnfknKtFTX1GYBv6E8XXO+rSFFTnwHLRcR/6rOsQC4RuQjkJpbaEMYk133z7+N/26I/zzkZepL9p/fTskJLpnabStYsgZzowaSUxM7jmEVEomYmFpFCBHYqD2M45+u4ky8fTJ7sxjVa0mj8RUREcOzYsajlo0ePEhYWltBuyZpjVkTKADcC78V2cBERoAcwPQmnZNKDjRthxgz3e8+e8NNPljSalJCUa624pjVLcBtV3QuMx42d3I+rM7EwibEbE6dKBStRKFch5vSaw5xec5jdczZ5suchV9ZcfNnrS7IHZfc6RJNIiU0cXwaWicgzIvI0sAywZ8omYH75xd3EnznTLXft6qbcMMbfyJEjufrqq3n88ccZM2YMV199NQ8++GBCuyX5Qsv3+6vAg0BEHMdvBhxU1T/92ir6urb+KCLNEgrQpFGqMGkSNGoEDz0E58+79qAgb+MyGUVSrrWSPPWZL0ntAlTEFRXMIyJ9Y30TkSEislJEVh4+fDiBkIyJbnCDwfx14i/OXjxL9SLVqV6kOoVzFeaN9m+QL4dVnU5PEpU4qurHwM3AQeAw0E1VpwQyMJM5LFkCzZtDtmxQvjy88IKbM7tZM9c1tXx5ryM0aVm/fv2YNWsWxYsXp2jRonzxxRfcdtttCe2WnAutjsAhVV0Vz/F7E/1p436gnKrWA+7HVX/OH9uOdnGWhhQq5L6E/F9ZssCQIa7v/K+/Qk6rI2JSThKvtZIz9VlrYKeqHlbVi8AXwNVxxGZTmZkky5k1Jw9f8zD3zL+HTtM7MXfrXE6EnmBAyACvQzOXKbFPHAEKAWdU9Q3gsG+aDWOSbNUq6N7dFSE8dcrdyH/uOXjsMbjlFlizxhXEMSY+R48eJU+ePIwYMYKiRYuyc+fOhHZJzoXWNUBnEdmF6+J6vYh8ErmRiGQFugEzI9tUNVRVj/h+XwVsB2Kdp8EuztKQY8fcE0ZVOH0aKlf+98niggVQooS38ZmM6nKvtaKmPhOR7LjiNnNjbDMX6Ocr+nUVvqnPcF1UrxKR3L4u9q1wY7eNSXGNSzfm579/Zt2BdTy79FnGNB9DUBbrrZHeJLaq6hPAQ7jJaQGyAZ/EvYcxCXv5ZZck9urlbtwfOwZhYa4g4TvvwBVXeB2hSeueeuopXnjhBZ5//nkALl68SN++sfa08pfkCy1VHa2qZVS1gm+/71XV/w1bA1tUdU9kg4gU9RXkQUQq4Qru7EjqORsP5MkDd97pukiAe/JoTApLyrVWcqY+U9Vfgc+B1cAG3DXhuyl5TsYAbPlnC52md6JAzgJkkSycvnCaHsE9vA7LJEFi/+93E9AZOAOgqvsA65RskmXzZmjY8N9rsZ49Yft2KFcO9uyJf19jAGbPns3cuXPJkycPAKVKleLUqVPx7pPMOWYT0otLi+I0B9aLm5f2c2Co/zRCJg3r1Al+/NH9PnIkXB1rLz5jUkqSrrWSOvWZb90TqlpdVWup6m2qajMkmxS189hOWn/cmiyShSUDlxCu4Txx3RP2tDGdSmxl1AuqqiKiACKSJ4AxmUyiZEnXJfXoUdi50/X8UoWDB6Fs2YT3NyZ79uyICK6XFZw5cyZR+6nqPFxy6N820e93BYYlcIzFwOIYbQNi2W4WMCtRgZm04bvv3M9vv3V3tIxJHXatZTKc82HnKZirINO6TaNWsVpsGbaFPNntn3Z6ldgnjp+KyDu4kvSDge9wd+GNuWyqbnqNH36A/fvh7ruhYEE33cYtt8DQoW4KDmMS0qNHD+644w6OHz/OpEmTaN26NYMHD/Y6LJNeXbwIo0dD27ZuecUKSLjrszEpxa61TIZx+sJpVJUaRWuwbug6ahevDWBJYzqX2Kqq43FdrGYB1YAxvoHbxlyWiAjo0wf+8x/X6+uzz2DZMjeEqGNH6NzZVVU1JjEeeOABunfvzs0338zWrVt5+umnGTFihNdhmfRq+nQYN859QRUoAHXqXFpZtWDBBA9jTFLYtZbJKE6cP8F1H17Hw989DEAWsXHhGUWiuqr6ukt8r6rfikg1oJqIZPOVbzYm0bJkcfNkP/ccPPigK1J4881eR2XSqzNnznD99dfTpk0btm7dytatW7l40b6WzGU6cMD1le/b1/WTb9kS3rUaISZ12bWWyQjOXDjDjdNuZMPBDTzb8lmvwzEpLLG3AJYAOUSkNK7rxEDgw0AFZTKW8HB4/nn46Se3/NxzrjeYzZltkqt58+aEhoayd+9eWrduzQcffMCAAQO8DsukF2fPwuDBEBwMe/e6O1stW3odlcm87FrLpGuhYaHcNPMmftnzC9Nunkb7qu29DsmksMQmjqKqZ3Hzk72hqjcBNQMXlsko9u1zw4UeeQRmWXkQk8JUldy5c/PFF18wYsQIZs+ezaZNm7wOy6QHGza4ss6TJ8Mdd0CxYl5HZIxda5l07bbZt/Htjm+Z3Hky3Wt29zocEwCJraoqItIU6APcfpn7mkzqm29gwAB3U3/yZBg40OuITEajqvzyyy9MnTqVyZMnAxAWFuZxVCZNU4UJE+D++914xYULoXVrr6MyBuxay6Rzt9a+levKX8eAkAFeh2ICJLFfSPfgJqSd7ZvvrBLwQ+DCMund99+7Yjd167p6EzVqeB2RyYhee+01nn/+eW666SaCg4PZsWMHLVu25Pfff/c6NJOW/fST65L60Uf2pNGkJXatZdIdVWXtgbXUK1mPrtW7eh2OCTBx05VlTg0bNtSVK1cmvKFJtAsXIHt2Vz11wgS4/XbImdPrqExmIyKrVLWh13Ekh30/pbClS6FIEXcX69w5yJHDjWk0JhXZd5PJSFSVB799kFeWv8Jvg3+jfsn6Xodkkiix303x/l9TRN4VkdpxrMsjIoNEpE9SgzQZhyp8+CFceeW/NSaGDbOk0QTGkCFD2LBhQ6zrzpw5A1DYvpsM4KpzPf00tGjhBlsD5MplSaNJM+xay6RXY5eOZfwv47mjwR3UK1HP63BMKkioq+rbwOO+L7TfgcNATqAqkB94H5ga0AhNmnfyJAwd6rqktmjhpjozJpDuuusunnnmGTZs2ECtWrUoWrQo58+f588//+TkyZMAQbj50ExmtmePm2Ljxx/dBLJvv+11RMbExq61TLrz6vJXefyHx+lXtx9vdHgDsYu/TCHexFFV1wI9RCQv0BAoCZwDNqvq1sCHZ9K6336D3r3hr7/g2Wfh4Ydtmg0TeCEhIXz66aecPn2alStXsn//fnLlykWNGjWoVq0aInJIVUO9jtN4aN06aNUKzp933SH69bO7WiZNsmstk94s37Oc+xbcR7ca3ZjceTJZxHpwZBaJKo6jqqeBxYENxaRl27fDp5+6MYydO0M9X4+EN96AsDBYsgSuvtrbGE3mkzdvXlq0aOF1GCYtqlYNOnSAxx5zfeiNSePsWsukF01KN+Gjrh/RM7gnWbNY4d/MxG4RmAS99x40aQL797upNTp0gDvvdOvefBPWrrWk0RjjgUKF3FPEmK+CBd0A648/tqTRGGNSyPxt89l0eBMiQr+6/ciRNYfXIZlUZomjideBAzBqFPz6K7z+uqtgHx4O77/v2q64wl2jGWNMqjt2zFXmioiADz6APHmgcGE4ftzryIwxJkP5YecPdJ3RlZELR3odivHQZSWOIpLnMrdvJyJbRWSbiDwcy3oRkdd969eLSP0Y64NEZI2IfO3XNlNE1vpeu0Rkra+9goic81s38XJiNbH75hto3x7KlnUJZPv2ULy4m2Zj9myvozPG8VVSNZnRqVOuAM7AgdCokRvbaEw6drnXWsYE2vI9y+k0vRNVClXhk5s+8Toc46FEJY4icrWIbAI2+5briki85elEJAh4C2gP1AR6i0jNGJu1x1UNqwoMASbEWH9P5HtGUtWeqhqiqiHALOALv9XbI9ep6tDEnJuJX1CQuy679loYP951Uf3tNyhQwIrgGO8tW7aMmjVrUqNGDQDWrVvHXXfd5XFUJlWNGAEzZrgpN777DkqX9joiY5IkKddaxgTaugPraD+1PSXyluDb276lcO7CXodkPJTYEa2vADcAcwFUdZ2INE9gn8bANlXdASAiM4AuwCa/bboAH6uqAstFpICIlFTV/SJSBrgRGAvcH/Pg4ur+9gCuT+Q5mCTo2BHuuw8qV4bPP4ebb4Z9+1yvsPnzvY7OZHb33XcfCxYsoHPnzgDUrVuXJUuWeByVCThVN+AaYOxYGDQImif0vyRj0rykXGsZkyIW7VhEh2kdLmkPiwgjX/Z8LOq3iJL5SnoQmUlLEt1VVVV3x2gKT2CX0oD/Pnt8bYnd5lXgQSAijuM3Aw6q6p9+bRV9XVt/FJFmse0kIkNEZKWIrDx8+HACp5B5nTsHY8ZA9uwwcaKrqjpnDgwZAnXquGSybl2vozQGypYtG205yB6FZ2xHj8JNN0G3bm65dGlLGk2GkYRrLWNSROPSjbkixxX8+p9fOfnwSU4+fJIDIw9QOFdhpt08jfIFynsdokkDEps47haRqwEVkewi8gAxupDGIrYJszQx24hIR+CQqq6K5/i9gel+y/uBcqpaD/eEcpqI5L/k4KrvqmpDVW1YtGjR+M8gk9qyxVVRfeYZ+N//oGdP13bNNVCrluuq+uCDXkdpjEsaly1bhohw4cIFxo8fH9Vt1WRAP/8MISEwbx60a+f6zMdVVdWY9Ccp11rGpIh8OfJxf9P7efHnFzly7giD5g5iwooJXFvuWjpUvfRJpMmcEps4DgWG4Z4G7gFCfMvx2QP4PwooA+xL5DbXAJ1FZBcwA7heRKJG44pIVqAbMDOyTVVDVfWI7/dVwHbA6rBfBlU3T3aDBq6aamTSCK4gztChcPfdUKmSp2EaE2XixIm89dZb7N27lzJlyrB27Vreeustr8MyKS0iAp5/Hq67DrJlg2XLXLeHyKqqMV9Hj3odsTFJkZRrLWNSzLBGw1i4fSHNP2jOl1u+5L/L/8uY68Z4HZZJQxI1xlFV/wH6XOaxVwBVRaQisBfoBdwaY5u5wHDf+McmwAlV3Q+M9r0QkRbAA6ra12+/1sAWVd0T2SAiRYGjqhouIpVwBXd2XGbMmdoLL8Do0dCiBUydCqVKeR2RMfErUqQIU6dO9ToME2gnTsDbb0P37vDOO24eIGMymCReaxmTYsI1nBxZc7Dr+C6GNBjCgdMHCCkR4nVYJg1JVOLoS/5GABX891HVznHto6phIjIcWAAEAe+r6kYRGepbPxGYB3QAtgFngYGJjLsX0bupAjQHnhaRMNyYgKGqaredE0HV9e7q08f9/uCDVjHVpA87d+7kjTfeYNeuXYSFhXkdjklpy5a5KTYKFoQVK1zXB4lthIMx6V9SrrWMSSmnQk/Rfmp7Dp85TN7sefl046d81+87r8MyaUxiq6rOASYDXxF3sZpLqOo8XHLo3zbR73clgW4YqroYWByjbUAs283CTc9hEkkV3noLFi2CWbPcXI2jR3sdlTGJ17VrV26//XY6depEliz/9rz/6quvPIzKJFtYGDzxhOueOm6cu5tVooTXURkTaHNIwrWWMSnhyLkjHD5zmJndZ/LXib/4be9v9rTRXCKxieN5VX09oJGYVHXsGNx+O8yeDR06uMr2efN6HZUxlydnzpzcfffdXodhUtLff8Ott7pCOLffDsOHex2RManFrrVMqrsYfpGsWbJSoUAFNt61kRxZcwDgnu0YE11iE8fXROQJYCEQGtmoqqsDEpUJqF9+gV693HyML78M994LWRI9MYsxacc999zDU089Rdu2bcmRI4fX4Zjk+vZbV5Hr4kWYNg169/Y6ImNSk11rmVQVFhFGz897UjR3USZ2nBiVNAKIDQswsUhs4lgbuA24nn+7T6hv2aQjFy+6m/lBQe6GfuPGXkdkTNJt2LCBKVOm8P3330d1VbX/2aVjxYtDzZquvHOVKl5HY0xqs2stk2rCI8LpP6c/s7fM5tUbXrX/d5pESWzieBNQSVUvBDIYEziHD7spz7Jlgy+/hHLl3LIx6dns2bPZsWMH2bNnj9ae0P8ARaQd8BqucNd7qjouxnrxre+AK9w1wP+uv4gEASuBvara0df2JDAYOOzb7BHfOG9EZDRwO65w192quiAp55sh/fmnG2T98MNQpw4sXWoFcExmZddaJlWoKnd+cyfTNkzjueuf456r7vE6JJNOJLaD4jqgQADjMAH0/ffueuzJJ91ynTqWNJqMoW7duhw/fvyy9vElfW8B7YGaQG8RqRljs/a4KX2qAkOACTHW30PsE3O/oqohvldk0lgTVwk6GGgHvO2LwUybBvXrw4svur7zYEmjyczsWsukige/fZBJqyfxaLNHGd3MqiKaxEvsE8fiwBYRWUH0fvdWIjoN+eUX+O9/4Y8/oFYtN3bxq6/g2WehWjU3rtGYjOTgwYNUr16dRo0aXc4Yx8bANlXdAeCbR7YLsMlvmy7Ax77Kz8tFpICIlFTV/SJSBrgRGAvcn4j36wLMUNVQYKeIbPPF8EtiA073ChVyFblic801LoG0iWONsWstkypaVWpFUJYgnmn5jNehmHQmsYnjEwGNwiTbggXQrx889RQ88ojrjnr11a6q/cCB8MYbkCeP11Eak7KeeuqpWNsTmI6jNLDbb3kP0CQR25QG9gOvAg8C+WI59nAR6YfrxjpSVY/59lsey7Eyj2PH3Pw/4H5ecw0sX+5+X7wYsib2f0XGZGh2rWUCatPhTdQsWpN2VdrRrko7r8Mx6VCi/m+tqj8GOhCTPI8+Cu+9B506uWURVzG1QgV4/31PQzMmYK677rqk7BZbX8iYdcdj3UZEOgKHVHWViLSIsX4C8IzvWM8ALwODEvl+7k1FhuC6xlKuXLk4wk+nIhNHETcvY9680KaNJY3G+Ni1lgmkV5e/yv0L7mdRv0W0rNjS63BMOhXvGEcR+cn385SInPR7nRKRk6kToknIxYuwZg20betqTACEhMCWLbBrl5eRGRMY1157LQD58uUjf/78Ua/I5QTsAcr6LZcB9iVym2uAziKyC5gBXC8inwCo6kFVDVfVCGASrjtqYt8P3zHeVdWGqtqwaNGiCZ1H+tK3L7z9tvu9a1do3drTcIxJK+xaywTapFWTuG/BfXSr0Y1m5Zt5HY5JxxIqjjMKQFXzqWp+v1c+VU3w6sykjqxZoWBBaNoUuneHlStd++7dUDpzdYgzmcRLL70EwKlTpzh58mTUK3I5ASuAqiJSUUSy4wrXzI2xzVygnzhXASdUdb+qjlbVMqpawbff96raF0BESvrtfxPwu9+xeolIDhGpiCu481tSzz3d2bDB/ZwxA06f9jYWY9Imu9YyAfPJ+k+44+s76FC1A9NunkbWLNbLwyRdQonjW6kShUmW+fPh3DlYvx4mToSGDeHvv2HECBg+3OvojEl5w4YNS/K+qhoGDAcW4CqjfqqqG0VkqIgM9W02D9gBbMM9PbwrEYd+UUQ2iMh6oCVwn+/9NgKf4orvzAeGqWp4kk8gvVCFyZP/nSz2u+/goYe8jcmYtMmutUxAbDq8iQFzBtCyYks+v+VzsgdlT3gnY+KR0G0Hq4uexj37LDz+ONStC40auanQXn4Z/vkH7rkHknF9bUyapRrrEMHL2X8eLjn0b5vo97sC8f7Xo6qLgcV+y7fFs+1YXBXWzGPDBvjPf6BVK9cN4vpY5jAvWDD14zIm7bFrLRMQNYvWZHLnydxc82ZyZcvldTgmA0gocawoIjG7cEWxEtHeq1wZBg+G116DXLncdBx790LZslZF1WRcO3fupHNn+/pJk44dcwlhnTqwaBFcdx0E2bSVxsTDrrVMilq8azEFchYgpEQI/UP6ex2OyUASShwP4yoDmjRk4UI4cMBNv9G7t3tFypcPqlf3LjZjUkPRokUZOXJknOsTmI7DBMrHH7v+8V995RLG2J4yGmNismstk2KW7V5Gx2kdqVeyHksGLEHEHmiblJNQ4njKykOnHeHhbp7GZ5+F+vWhTx+7kW8yp3z58iV1Kg4TCGfPukHV77/vEsaqVb2OyJj0xK61TIpYvX817ae2p1S+Unx2y2eWNJoUl1BxnF2pEYRJ2IEDbsqzZ56BAQNgyRJLGk3mVaFCBa9DMJG2bIEmTeCDD9yEst99B6VKeR2VMenJLq8DMOnfxkMbaTulLQVzFmRRv0WUyFvC65BMBhTvE0dV7ZZagZi4HT8O9erBiRPw4YfQ37qrm0zuiy++8DoEE+mbb9ydrf/9D264wetojEl37FrLXI6F2xdy5OyRS9o/WPsBObLmYFG/RZS9omwsexqTfDaZSzpQoACMHu2GC9Wq5XU0xphM79w596SxXj247z647TYoVszrqIwxJsMb8b8R5M+RnyqFqkS1bTu6jWPnjvHTwJ+oWLCih9GZjC6hrqrGI4cOQYcOsHSpW777bksajTFpwB9/QNOmru/8yZOQJYsljcYYk0oeuuYhCuQswPSbp/Ny25cJiwgjV9ZcjL52tCWNJuDifeIoIvVjNCnwj6ruDlxIZskSVyn16FF3I98YE93q1aujLYsIRYoUoWxZ654TUDNnurkZs2eHKVMgf36vIzIm3UvutZaItANeA4KA91R1XIz14lvfATgLDFDV1SJSDZjpt2klYIyqvpqkEzGp4rY6t/Hskmf56o+veOjbh9h1fBcFchagX91+XodmMoGEuqrGVh66kIhkB3qr6tqUDynzioiAF1+Exx6DSpXckKE6dbyOypi0J7apOI4ePcqFCxeYPn26BxFlcGFhrtvDhAnuaePMmW6yWGNMSkjytZaIBAFvAW2APcAKEZmrqpv8NmsPVPW9mgATgCaquhUI8TvOXmB2ss/GBFS2oGzc3/R++szqw8WIi9QsUpO7Gt1FtqBsXodmMoGEiuO0jK1dRBoCrwPN49s/qXfB/NYHASuBvara0df2JDAYN+8RwCOqOs+3bjRwOxAO3K2qC+KLL6359FM3lrFXL3j3XTcnozHmUj/88EOs7StXruTuu+9O5WgygaAg1y31gQfguecgm12gGJNSknmt1RjYpqo7fPvMALoA/oljF+BjVVVguYgUEJGSqrrfb5tWwHZV/SsZp2JSwdmLZ5n5+0xOXThF/7r9+fGvH+1po0k1SSqOo6orRSRvfNsk5y6Y3/p7gM1AzP5Qr6jq+BjvVxPoBQQDpYDvRORKVQ2/3PMLpNOn4e23Yf58yJMH+vWD9u0hb17o0QNy54ZOncCm3jHm8jVs2JDTp097HUb6VKgQHDt2aXv+/K6k88cfu/GMxphUkZhrLaA04N+ldQ/Rr6Pi2qY04J849gLi7K4hIkOAIQDlypVLICQTSEfPHeXw2cPc0eAO3ln1Du91es+eNppUk6TEUUSK4/rgxydZd8FEpAxwIzAWuD8RYXUBZqhqKLBTRLb5Yvjlcs4tkM6fh1atoEwZePBBOHLE9f46dQo2b3Y9vzp39jpKY9KvgwcP2oTHSXXsGKjvaz00FEaNgjfecE8awZJGY1JZIq+1YvvCi7lPvNv4usR2BkbH9Saq+i7wLkDDhg0TiskEQHhEOCJCmfxlWH/negShZN6S9rTRpKqEiuO8waVfQIWAq3FPA+OT3LtgrwIPArF12BwuIv1w3VhHquox337LYzlWmjF9OlxxBXz+ubtGGzDATX+WLdu/12bGmISNGDHikgTx6NGjLFu2jNdee43Odgcm6XbsgJ49YeVKuPdeePVVryMyJkNL5rXWHsB/wHEZYN9lbtMeWK2qBxMbs0ldqsqwecM4c/EMH3X9iOxB2QF4osUTHkdmMpuEnjiujLGswBHgflU9lMC+Sb4LJiIdgUOqukpEWsRYPwF4xnesZ3CDygcl8v087W6xZAnccgv8+qsbx7hvH7z+OixeDBs2QHBwqoZjTLrVsGHDaMsiQuHChfnvf/9LMZsaIul++811iwgKgi++gJtussTRmMBLzrXWCqCqiFTEFbfpBdwaY5u5uBvuM3A38E/EGN/Ym3i6qRrvPbLoEd5Z9Q4PXfMQWcR6fxjvJFQc5yMRqQdUBjaq6ubLOHZy7oJ1BzqLSAcgJ5BfRD5R1b7+d8REZBLw9WW8n6fdLYoVg5074ccf3RjGn36CRo3ggw+gePHUjMSY9K1///6sWbOG7du3ExwcTI0aNbwOKX2L7KJaty706QOPPAI2jsmYVJGcay1VDROR4cACXCHC91V1o4gM9a2fCMzDFSHchitEODByfxHJjatFcUdKnY9JWS/+/CLjfh7HHQ3u4PlWz3sdjsnk4r1tISKP4+b4uRn4RkQGX8axo+6C+frP98Ld9fI3F+gnzlX47oKp6mhVLaOqFXz7fa+qfX0xlfTb/ybgd79j9RKRHL47b1WB3y4j3oD65x9o2xbee891UV2zBho0cE8cz52D667zOkJj0o9nnnmGnj17MmvWLG688UYmTZrkdUjp14IFcO217vccOWDiREsajUlFybzWQlXnqeqVqlpZVcf62ib6kkbUGeZbX1tVV/rte1ZVC6vqiRQ8JZNCJq2axEPfPUSvWr14q8NbNobfeC6hrqq9gBBVPSsihYH5QKKu0JJ7FyweL4pICK4rxy58d8l8x/4UV3wnDBiWViqqLlkCvXu74jfvvgv9+0PBgq5QYcmS8PXXVnfCmMsxY8YM1q5dS+7cuTly5Ajt2rVj8ODLutYy5865Kl1vvun6yefPH3s554IFUz82YzKXJF9rmYytSqEq9AzuycddPyYoS5DX4RiTYOJ4XlXPAqjqEZHL61jtm19xXoy2iX6/KzAsgWMsBhb7Ld8Wz7ZjcVVY04TwcHj+eXjiCahc2d3IDwmBG2+E9evddBzVq3sdpTHpT86cOcmdOzcAhQsXJiIiwuOI0pnVq6FvX1fO+Z573BdVrlxeR2VMZpWsay2T8ew/tZ+S+UrSsmJLWlaMdZpPYzyRUOJYWUQiu5dKjGVU1UoX+mzYAOvWQdWq0LgxHD3qChMuWgS33uqSxny++rDZsrluqsaYpNm+fXtU5VRVjbZs/MQ1N2PWrG7Q9cKF0KZN6sdljPFn11omytK/ltJuajsmdZrErbVj1jkyxlsJJY5dYiyPD1Qg6dX5866WxG+/QbNmsGIFlCoFM2bAmTNuTOOgQbH3ADPGJM2XX34ZbfmBBx6ItvzVV1+lZjhpl//cjH/9Bdmzu/7xIq7bQ+HC3sZnjAG71jI+q/evpuP0jpTNX5Y2leymnkl7Eqqq+mNqBZJePfec65K6Y4e7Fnv1Vdf765FH4OefbeyiMYFwnVWTujwzZsAdd7ini59/7tosaTQmTbBrLQOw9Z+ttPukHQVyFuDb276laJ6iXodkzCUSqqraRUSG+S3/KiI7fK/ugQ8v7fv4Y3jmGVc1tXVrGDXK1Zn49FOXUBpjUt6XX37JW2+9FbXcpEkTKlWqRKVKlfg8MjEyzgMPuOpctWvDeHuQYUxaY9da5mToSdpMaYOI8O1t31L2irIJ72SMBxJ6HvYg0afQyAE0AloAdwYopnTl7FnYuhXq1XPdVD/6CIYNg7AwSxyNCZQXX3wx2pjG0NBQVqxYweLFi5kwYYKHkaUhkWMbX34Zhg+HH36AChU8DckYEyu71srk8ufIz8PXPsyCvgu4svCVXodjTJwSGuOYXVV3+y3/pKpHgCMikieAcaUb1atDjx6uKM6iRe5p47vvumnRcub0OjpjMqYLFy5Qtuy/d2SvvfZaChcuTOHChTlz5oyHkaUhkXeuJk2C//zH21iMMfGxa61M6vj54+w8tpN6JetxV6O7vA7HmAQl9MQx2gReqjrcb9E6XwMvveSm1ahdG375xQ0jGjMGXnnF68iMybiOxagU+uabb0b9fvjw4dQOJ21ZvBguXIAiRaBAARg82A3A9n/Z3IzGpCV2rZUJnb14lk7TO9F6SmtOhp70OhxjEiWhxPFXEblkVm0RuQP4LTAhpT3r17vaEmvWuOXff3c9vyIioEkT2L3bVVRdtsz1BFu3DurU8TRkYzK0Jk2aMGnSpfNjv/POOzRu3NiDiNKAiAh4+mlo2dJV6YJ/q6rGfB096mmoxpho7Fork7kQfoGbP72ZZbuXMfHGieTPkd/rkIxJFNHIUu2xrRQpBswBQoHVvuYGuP73XVX1YKADDKSGDRvqypUr41x/9iz06uUSxqZN4ddf3Q38bdsgf36XKFasmHrxGmOcQ4cO0bVrV3LkyEH9+vUBWLVqFaGhocyZM4cSJUqsUtWGce0vIu2A14Ag4D1VHRdjvfjWdwDOAgNUdbXf+iBgJbBXVTv62l4COgEXgO3AQFU9LiIVgM3AVt/uy1V1aELnmND3U5xzNGbPDidOWF95Y9IgEbnkuym9XWsl+N1k4hUeEc6tX9zKpxs/ZVKnSfynvg0lMN6L7bspNglNx3EIuFpErgeCfc3fqOr3KRBjmjdmDOTK5abaUIX77oO333bzNK5c6aZDM8akvmLFirFs2TK+//57Nm7cCMCNN97I9ddfn+C+vqTvLaANsAdYISJzVXWT32btgaq+VxNggu9npHtwyaD/beJvgdGqGiYiLwCjgYd867arashln2h8Ip8m7tgBXbrApk2uaur991vSaEw6ktmvtTKbSasn8enGT3mpzUuWNJp0J6HiOAD4vrwy3RfYxx+7cYvZssHNN8MXX8CQIa7baokSXkdnjLn++usTlSzG0BjYpqo7AERkBm4Cbv/EsQvwsbouGctFpICIlFTV/SJSBrgRGAvcH7mDqi702385kDpl9E+fhuPHYf58N0/j/fcnuIsxJu3JrNdaGdHZi2fZc3JPrOsG1RtE0dxFubnmzakclTHJl6jEMbM6c8b1BgN3Lda7N7RvD++/721cxphkKQ34VzDcQ/SniXFtUxrYD7yKK5+fL573GATM9FuuKCJrgJPAY6q6NEmRx6ZOHdd/PkeOFDukMcaYpHvp55cY9/M4yub/t/r3idATHDpziHm3zrOk0QRMmf+WYe+pvZe0l85Xmj33x34z43IkVBwnU2vf3lWyB7jmGujeHd57D9q1c4UJjTHpUmz/9cYc7B3rNiLSETikqqviPLjIo0AYMNXXtB8op6r1cE8op4lIrJUQRGSIiKwUkZWXVR3WkkZjjEkzBtYbSO5suVl2+zL+GPEH9111H4fOHOKKHFfQulJrr8MzGVjnap3JHpQ9Wlv2oOx0qdYlRY5vTxzj8fzz0KIFbN4MzZu7Yjhffw3fW0cSY9KzPUBZv+UywL5EbtMd6CwiHYCcQH4R+URV+wKISH+gI9DK180VVQ3FFb1AVVeJyHbgSlxxnWhU9V3gXXAFKJJ5nsYYYzxQ7opy9KjZg5eXvUyd4nUYNm8YhXMV5vlWz5MtKJvX4ZkM7PHmj/P+muhdI4MkiMevezxFjm+JYzyqVnVTa0ye7KZGq17dLRcr5nVkxphkWAFUFZGKwF6gF3BrjG3mAsN94x+bACdUdT+u4M1oABFpATzglzS2wxXDuU5Vz0YeSESKAkdVNVxEKuEK7uxI9lkULBh71webo9EYYzw3utlogt8O5nzYeeoWr8vx0OMMCBngdVgmgzp38Rzz/pzHjI0zCIsIi2rPliUbA0MGUiJvyhRnscQxAUWKwEMPJbydMSZ98FU9HQ4swE3H8b6qbhSRob71E4F5uKk4tuGm4xiYiEO/iSuf/62bzSNq2o3mwNMiEgaEA0NVNfkTKdpcjMYYk2aVyV+GnFlzkjd7XvLnzM/dTe62p40mRV0Mv8iinYuY/vt0Zm+ezakLpyiWpxj96vZj6oapXAi/QNYsWVPsaSNY4miMyYRUdR4uOfRvm+j3uwLDEjjGYmCx33KVOLabBcxKerTGGGPSmyyShW9v+5Zr37+WPSf30LdOX69DMhlAhEbw098/MX3DdD7f/Dn/nP2HK3JcwS01b6FXrV60rNiSrFmykjNrTt5Z9U6KPm0ESxyNMcYYY4xJEZsPb+bV5a/yRoc3CCkRwkPXPEStYrXsaaNJMlVl1f5VTN8wnZkbZ7L31F5yZc1F52qd6V2rN+2qtCNH1uhF8h5v/jgLti9I0aeNYImjMcYYY4wxybbr+C7aTGlDWEQYjzR7hPIFyqf4hbvJPDYd3sSM32cw/ffpbDu6jWxZstGuSjteavMSnap1Im/2vHHuWzJfSbbfvT3FY7LE0RhjjDHGmGQ4cPoAbaa04czFM/w44EfKFyjvdUgmDYtrvsXieYpz71X3Mv336aw/uJ4skoWWFVry8DUP061GNwrm8rYAniWOxhhjjDHGJNGxc8e44ZMb2H9qP9/1+446xet4HZJJ4zpX68zkNZO5EH4hqk0QDp45yOhFo2lapimvt3udW4JvSdExismVJZAHF5F2IrJVRLaJyMOxrBcRed23fr2I1I+xPkhE1ojI135tL4nIFt/2s0WkgK+9goicE5G1vtdEjDHGGGOMCaCdx3dy8PRB5vSaw1VlrvI6HJMO3NXwLiI04pL2R5s9ys57drLs9mWMaDIiTSWNEMAnjiISBLwFtMFNpr1CROaq6ia/zdrj5jSripsrbYLvZ6R7gM1Afr+2b4HRvpL6L+DmVIucMGO7qoYE4HSMMcYYY4yJEqERZJEs1C9Zn+13bydP9jxeh2TSsENnDvHF5i/4bNNnLN61OFrimC1LNgbXH8yz1z/rYYQJC+QTx8bANlXdoaoXgBlAlxjbdAE+Vmc5UEBESgKISBngRuA9/x1UdaGqRs5suRwoE8BzMMYYY4wxJpqwiDB6fNaDF356AcCSRhOrg6cPMmHFBK7/6HpKvlySO7+5k70n9/LItY/w3W3fkSPIVUNN6fkWAyWQYxxLA7v9lvcQ/WliXNuUBvYDrwIPAvnieY9BwEy/5YoisgY4CTymqkuTFLkxxhhjjDGxiNAIhnw1hFmbZ3FtuWu9DsekMQdOH4h6srjkryVEaATVi1Tn0WaPckvNW6hVrBYiAsCgeoMCMt9ioAQycZRY2jQx24hIR+CQqq4SkRaxHlzkUSAMmOpr2g+UU9UjItIAmCMiwap6MsZ+Q4AhAOXKlUvsuRhjjDHGOPnzw6lTl7bnywcnT17abjIMVeWBhQ/wwdoPeOK6J7j3qnu9DsmkAQdOH2DWpllRyaKi1ChSg8eaPcYtwbcQXDQ4Kln0F6j5FgMlkInjHqCs33IZYF8it+kOdBaRDkBOIL+IfKKqfQFEpD/QEWilqgqgqqFAqO/3VSKyHbgSWOn/hqr6LvAuQMOGDWMmssYYY4wx8YstaYyv3WQYzy55lleWv8Ldje/mieue8Doc46H9p/Yza7NLFpf+tTQqWXy8+eP0CO5BcLHgBI8RqPkWAyWQieMKoKqIVAT2Ar2AW2NsMxcYLiIzcN1YT6jqflzBm9EAvieOD/glje1wxXCuU9WzkQcSkaLAUVUNF5FKuII7OwJ3esYYY4zJdMLDvY7AeKh43uIMChnEK+1eifUJksk44ppr8YocV1C3RN2oZLFm0ZqMuW4Mt9S8JVHJYnoWsMTRV/V0OLAACALeV9WNIjLUt34iMA/oAGwDzgIDE3HoN4EcwLe+/2CXq+pQoDnwtIiEAeHAUFU9msKnZYwxxpjMaO9emDwZ3nsv4W1NhnPk7BEK5y7MkAZDGFx/sCWNmUBscy0CnAg9wZGzR3jiuie4JfgWahat6VGEqS+QTxxR1Xm45NC/baLf7woMS+AYi4HFfstV4thuFjAr6dEaY4wxxviJiIBvv4WJE+Grr9zTxjZtYPfuhPc1GcacLXPoN7sf8/vO5+qyV1vSmAmcvnCaGkVqEBYRFq09a5asLOq3iOblm3sUmbcCmjgaY4wxxqQ7Bw/CBx/Au+/Czp1QtCiMHAmDB0OVKmCJQ6axaMcien7ek3ol6lGneB2vwzEBFB4Rznc7vuOTDZ/wxeYvOHvxLPmy5+PMxTNEaATZg7Lzn3r/ybRJI1jiaIwxxhgDqvDDD+7p4pw5cPEitGgBzz8PXbtCjhz/bpsvX9xVVU2GsXzPcrrM6MKVha9kXp955M2e1+uQTApTVdYdXMeUdVOY9vs0Dpw+QIGcBehbuy+31b2NigUqUuWNKpwPO0+QBKWb6qeBYomjMcYYYzKvf/6Bjz6Cd96BP/+EQoVg+HAYMgSqV499H5tyI8PbeWwnHaZ2oHje4izsu5BCuQp5HZJJQXtO7mHahmlMWT+F3w/9TrYs2ehQtQO31bmNG6+8kZxZc0ZtOzBkYLqaazGQLHE0xhhjTOaiCj/95J4ufv45XLgA11wDY8ZA9+6QM2fCxzAZWrkryjGkwRCGNBhCyXwlvQ7HpIBToaeYtXkWU9ZP4YedP6AoTcs05e0Ob9MjuAeFcxeOdb/0NtdiIFniaIxJs6ZOhUcfhb//hnLlYOxY6NPH66iMMelC/vyxdyfNkQMqV4ZNm+CKK+COO9zTxVq1Uj9Gk+bsO7WP8Ihwyl5RlnGtx3kdjkmmsIgwvt3+LVPWT2HOljmcCztH5YKVGXPdGPrW6UuVQrHW3Iwmvc21GEiWOBpj0qSpU9213FnfbK1//eWWwZJHY0wixJY0AoSGurGI778PPXtC7typG5dJE/ad2kf1N6tzMeJiVJuqciH8AlfkvIJ/Rv1DUJYgDyM0iRHXXItFcxfl1tq3Mv336Rw6c4hCuQoxIGQAfev0pWmZplYZN4kscTTGpDkRETBq1L9JY6SzZ90TSEscjTHxOn8+/vXLl6dOHCbNKpm3JNWLVGdE4xF0r9mdU6Gn6DCtA6v3r2Zog6GWNKYTcc21ePjsYSasnEDHKztyW53b6FC1A9mDsnsUZcaRxesAjDEmPBxWr4ZXX4WbboJixWD//ti3/fvvVA3NGJNe7N7tCtx06QKFYx+rZEwkEeHJFk/y4rIXUZRes3qx5sAaSuQtwTPXP+N1eCaR7mx4JxEaEa0tC1l4ofULHBh5gFk9ZtG1eldLGlOIPXE0xqS6sDCXKP74o3v99BOcOOHWVaoEnTvD3Llw5Mil+5Yrl7qxGmPSqLAw9+Twm2/ca8MG116+PAwYAG+/7Wl4Ju1rX6U9Ty5+kl6f9+KHXT9QrXA1Hmn2CFmz2OVxWnb8/HFmb57NjI0zWLRjEeEajiAoSrYs2RhcfzAPXvOg12FmSPbE0RiTbFOnQoUKkCWL+zl1avT1Fy7Azz+76dDatYOCBaFJE3jwQVf9vkcP+OQT9zRx+3Y39Oi11y4depQ7tyuQY4zJpA4fhilToHdv1zWhWTMYP949YXzxRdi4EXbuhLfe8jpSkw5EPnXcdnQbY5qPIVzDubX2rV6HZWJx5sIZZvw+gy4zulB8fHEGzR3EtqPbeOiah1h026KoJ4pZs2S16qcBZLdUjDHJElsRm8GDYfNmyJ7dPVH85Rc4d86tDw6Gfv3guuugeXMoEceUSJHjGK2qqjEZXFzVT/Plg+PHYc0amDfPPVX87Tc3lUbx4q5L6o03Qps2rjpqbPvHdVxjgE/Wf0K36t3Imz0vE1ZOYHzb8fa0MQ05H3ae+dvmM+P3GXz1x1ecvXiW0vlKM7zRcHrV6kXDUg2jitwMqjfI5lpMBaKqXsfgmYYNG+rKlSu9DsOYdK1CBZcsxkYE6tRxSeJ117mHA0WLBj4mEVmlqg0D/06BY99PJtOIr7phiRJw4IDbplEjlyh26AD167suDulMIL6bRKQd8BoQBLynquNirBff+g7AWWCAqq72rSsAvAfUAhQYpKq/xPd+GeW76b+//JeRC0fyyg2vULNoTR767iFWDF5hiaPHLoZf5Pud3zNj4wy+2PwFJ0NPUiR3EW6peQu9avXi2nLXkkUu/W9//6n9XPvBtfw86GdLHJMgsd9N9l+HMeayqLrupb/84l5xJY3gxigWLJh6sRljMpjrrnOJYrt2rmuqiUZEgoC3gDbAHmCFiMxV1U1+m7UHqvpeTYAJvp/gEsr5qtpdRLIDmWJuko/XfczIhSPpXrM7IxqPIChLEG0qtbEpGjwSoRH89PdPTN8wnc83f84/Z//hihxXcHONm+lVqxfXV7w+wYTe5lpMHZY4GmPideYMrFgBy5a5RHH5cvjnH7cuf37ImTP2yvfly6fdpDE5d+h964OAlcBeVe3oaysEzAQqALuAHqp6zLduNHA7EA7craoLAnl+xqRZqrBtG/z6q/sy+fXX+LefMSN14kq/GgPbVHUHgIjMALoA/oljF+BjdV3MlotIAREpCZwBmgMDAFT1AhB9ToMM6Os/vmbQl4NoVbEVn9z0SdS0G5Y0BlZc8y3myZaHAjkLsPfUXnJny03nap3pFdyLdlXakSNrDg8iNfGxxNEYE0XV1ZX45Zd/E8X16910GQDVq0OnTtC0KVx9NdSoAdOnRx/jCGm7iE0K3KEHuAfYDOT3a3sYWKSq40TkYd/yQyJSE+gFBAOlgO9E5EpVDQ/ICRqTlhw96sYlRiaKv/3m2gDy5HHdT01ylAZ2+y3vIfp3VVzblAbCgMPAByJSF1gF3KOqZ2K+iYgMAYYAlEvHpa1Dw0K585s7qVeyHrN7zrbEJBV1rtaZ91a/x8WIi9Haz4Wdo03pNrwc/DIdr+xInux5PIrQJIYljsZkElOnXlpopls3WLny326ny5bBoUNu+7x5oXFjGD3aJYpXXQWFCl163HRYxCbJd+hVdb+IlAFuBMYC98fYp4Xv94+AxcBDvvYZqhoK7BSRbb4Y4h1HZEyaEl8Bm5Mn3e8XLrg7Tf5PE//8060TcZWxbrrJlVRu0sQtBwXFP8bRJCS2P17M4hVxbZMVqA+MUNVfReQ13A2vS0pSquq7wLvgxjgmK2IP5ciag29v+5bCuQqTL4cVSUoNqsq6g+vIliUbYRFh0dZly5KNDXduoFqRah5FZy6XJY7GZAKxVT7t1w/69//3aWKVKnDDDe5JYtOmUKuWu6ZLjD590nSiGFNy7tDvB14FHgRiXnUUV9X9AL4EM3JAVmlgeSzHukRGuatvMqDYksbI9vvuc0ni6tUQGuraS5RwyeHAge5nw4Yu+YyNVT9Njj1AWb/lMsC+RG6jwB5Vjewv/Dkuccxwdh7byazNsxjZdCTVi1T3OpwMT1VZtX8Vn2/6nM83fc72Y9sJkiBK5yvN/tP7Cddwsgdl5z/1/mNJYzpjiaMxGZgqrFsHw4ZF70oKEBHhruOmTHGJYmpUO00jknyHXkQ6AodUdZWItEjB93ONGeSuvslkJk6EBg3cF03k08Ry5RL/JDHyiaVJihVAVRGpCOzFdYuPORHhXGC4r3dFE+BE5E0uEdktItVUdSvQiug9LzKEg6cP0vaTthw5e4Rba99KqXylvA4pQ1JVftv7m0sWN3/OruO7yJolK60qtuLhax+ma/WuXAy/SKXXKxEeFk6QBNl8i+mQJY7GZDDnz8MPP8BXX8HXX8Pu3XFve+oUdO6cerGlEcm5Q98d6CwiHYCcQH4R+URV+wIH/bqzlgQOXcb7GZM2HTkCn38e/zYnT0K2bKkTj4lGVcNEZDiwAFfs631V3SgiQ33rJwLzcIW+tuGKfQ30O8QIYKqvouqOGOvSvRPnT9B+anv2ndrHd7d9Z0ljCovQCJbvWR71ZHH3yd1ky5KNNpXbMKb5GLpU70KhXNHHuAwMGWjzLaZjljgakwEcOODmxv7qK/j2W/d0MXduaNsWnnwSnngC9uy5dL9M2hsyOXfoR/te+J44PuBLGiP36Q+M8/380q99moj8F1ccpyrwW0DOzJiUcPo0fPmlq3y1YAGEhcW/vSWNnlLVebjk0L9tot/vCgyLY9+1QLqe8zYu58PO02VGFzYc2sDcXnNpWrap1yFlCOER4fy8+2c+3/Q5szbPYt+pfWQPys4NlW9g7PVj6VStEwVyFohz/8ebP86C7QvsaWM6ZYmjMemQqqtB8dVX7vWbLw0pW9aNW+zUCVq2dFNlAOTIkb4qnwZSCtyhj8s44FMRuR34m/+3d+dhUlXX3se/q7sZBQGFKNpMMsgktEKIgoCAKN3KoCLgcMEWIRpN7qt5Y4yz0RiHK0n05ipGDAEVYxygFVC8IM5wGZTBGZCZKyACIlMP+/6xq+mpqrrArlNVze/zPPV01aldp1cX1rLWOfusDZeG9veJmb2AnwJWAFyvjqqSdA4cgNdf98ViXh7s2+cTyo03wuWXw+mnJzpCkcPy/vr3+WDDB0weOpnsttmJDiclRFoy46R6J/HMxc/w4qcv8vLnL/O/e/6XWum1yG6bzaUdL+XCdhdybK0I1zCXo/UWU5v5A1FHp+7du7vFixcnOgyRQ8J1Pi1uOrN/P8yfXzIFdf16v71HD18oDh4MXbpEvqwo2r6rGzNb4pxL6aPoyk8Sd4WF8Pbb8Nxz8NJLsHMnNG4Ml17qi8WePSEtzY+NpauqVEq5KVjrdq6jRcMWiQ4jZfxi5i+Y9NEkDhaWLOeZZmnUSq/FvoJ91MmowwXtLmB4h+HktM1RZ9pqJNbcFNczjlpkWyR24Tqfjhvnv9dt2+anoP7wgz9TOHAg3HknXHCBb14YixTrfCoi8eCcn6IwbRq88AJs2eLX3rnoIl8sDhgQfuqpikNJEXfPv5usE7MY1n6YisbDdHvv25n00aQy24pcEee1Po8ru1xJdptsrbN4lItb4ahFtkUOz223Vex8um8f/O1vkJnpl8+48ELo379kCqqIyCHRzgouWODPLE6bBmvWQM2a/sjT5Zf7n3XqBB+vSBX704d/4p637+G67tcxrP2wRIeTMjbt3sQzy59h8rLJZc42ZqRlkNs1lyeHPJnA6CSZxPOMoxbZFqlEURF88gnMnevPMEayfr3WyBaRSkRba7FTJz/tdMAAuP12f4axYcNAwxOJp6nLpnLTnJu4pMMlPJb9WKLDSXr7C/Yz4/MZTF42mTmr51DkiujVrBcPD3yY2+fdzoHCA9RIq8Hv+/8+0aFKEoln4ZiUi2xrgW1JJOdg1SqYN8/f3nrLT0MFyMgI37ywRQsVjSLyIz36KIwYASeckOhIRKrczC9nkjsjl/6t+vPsxc+Snpae6JCSknOORZsXMfnjyUxbOY2d+3eSeWwmvzv7d4zpOoa2x7cFYM13a7RkhoQVz8IxKRfZ1gLbErSNG0sKxXnzStZVPOkkGDTITz3t3x/efVedT0XkMO3Z46cszJ4dfdwvfxlMPCIJ8Pa6t8k6MYvpI6dTK6NWosNJOpu/3+ynon48mc+2f0btjNpc3OFicrNy6deyX4VCW0tmSCTxLBy1yLZUW9E6lG7b5rufzpvnv8999ZXffvzxfomMW2/1hWLbtmXPJBa//mjpfCoiR8A5+OILmDXLF4vvvAMHD/oGNyJHGeccZsaD5z7I3vy9atxSyv6C/eR9kcfkjyfzxuo3KHJF9GzWkycvfJIRnUbQoHaDiK/VkhkSSTwLRy2yLdVSuO6nY8fCM8/A5s1+fUXw3+P69oVrr/WXFZ12Wkln+0jU+VREKvjhBz+vffZsXzCuXeu3d+oEv/oV5ORAr15+wVaRo8TanWsZ8a8R/H3o3+n0k05HVdEYbb3F6aOmH5qK+t3+78g8NpNbet3CmKwxtDu+XQKileokboWjFtmW6up3v6vY/bR47ez+/f1Zwv79oVu38F3tRUSics5PVSguFN9+2yeZY47xR6FuuQWys/20hNLq14/cVVUkRX267VPW7lxbZtvO/Tu5+c2b2Zu/N/yLqrkhpw6psN5iuqWzr2AfPZ7qcWgq6lVdr6J/q/665lOqTFzXcXTOzcIXh6W3PVHqvgOur2Qf8/GdU4sffwsMiDD2D/gurCJVJj8fFi2qeI1iOHPnBheXiKSoSMtm1Knjpy/Mng2rQ9PE2reH66/3hWLv3tHPKmqtRamGbpt3Gx9t+YiOTToCkF+Uz4cbPuSH/B+YfcVsOv2kU4IjDN4dfe7g6Y+eLrOt0BXSulFrxnUbx4hOI2hYu2FigpNqLa6Fo0gqKiry002Lr1F85x3ffwIgKyvyQf0WWmdYRGIRadmMfftg0iR/VvGmm3yx2KpVsLGJJJmbzryJ0dNHM2PUDApdIdnPZrOvYB/ZbbIZ1GZQosMLVJEr4r317zF12VRcqf6PaZbGyE4jee6S5xIYnRwNVDjKUa94VtjcuSVLZHz7rX+uXTv4t3/zU0/POQcaN654jSOo+6mIxKCwEBYsiD5mxw6oXTuYeERSQO8WvWndqDVTlk1hRKcRFBUVUSejDo9f8HiiQwvM59s/Z+qyqTy74lnW7VpH3Rp1GdxuMHlf5JFflE+t9FpMOH9CosOUo4AKR6m2onU+3bCh5IzivHmwKXSNeWYmXHhhyRIZmZkV96vupyISsz17YM4cyMuDmTNh+/bo41U0ilRwZ587GT19NKO7jqZXs150aNKBFg2r9zSfrT9sZdqKaUxdPpUlW5aQZmkMPGUg9/W/j2Hth1GvZj1+MfMXWm9RAqXCUaqlcJ1Pr74ann7aF43FS2Q0buyXyBgwwBeKbdqUXSIjEnU/FZGINmyAV1/1t3nz/HIZjRr57qeDB8OoUYmOUCSlLNy0kJ37d/LH9/7IxKUTWTp+aaJDiou9+XuZ8fkMpi6fypzVcyh0hZx+4uk8ct4jXNb5MprWb1pmvNZblKCpcJRqKVzn04MH/TTUCy6A667zxWLnzpUvkSEiElVRESxd6gvFvDz4+GO/vU0buOEGGDLEL5eREfpfrgpHkZhNWzGNm//7Zvq37M9d8+/i591+Xq3ONhYWFTJ/7XymLp/KS5+9xJ6De2h2bDN+0/M3XNnlyqjNf7TeogRNhaNUC4WFsHgx/Pd/w5tvRu586pz/biciElWkzqf16/vupfv2+bOJeXnw2mt+Ede0NOjZEx56yJ9ZPPXU8FMYtGyGSEzmr53PVTOuok+LPsy8YiYPvPcA15xxTaLDqhIrvlnB1OVTeW7Fc2z6fhP1a9ZnRMcRXNnlSvq27Eua6ai2JB8VjpKSnINVq0oKxbfegp07/XNZWf47X7jO9Op8KiIxidT59PvvYdgwn3j27oV69WDQIF8o5uT4+e+V0bIZIpX6ZOsnDHt+GK0btWb6yOnUzqjN3efcneiwYpY5IZNN32+qsP3YWsfSqmErln2zjIy0DAa1GcQj5z3CkFOHUKdGnQREKhI7FY6SMrZt881siovF9ev99ubN4ZJLYOBAf51ikybqfCoicfTRR5Cb66eg9u0bfW1FETkiNdJr0PknnXn24mdpVKdRosM5bENOHcKkjyZxsPBgme27D+ymVkYtHst+jJGdRtLkmCYJilDk8KlwlISL1P103z54992SQrH4sqEGDXyBeMstcO654RvaqPOpiBwR52DZsuhj1q6NrYuWiBy2/QX7qZVei3bHt+Pd3HexFPysFRYV0rdFXyYumVhme4Zl8NZVb3F287MTFJnIj6PCURIqXPfT3Fy4/35YvRoOHIAaNXxfifvu82cVzzijpMdENOp8KiIxcQ4WLYKXXoIXX4Q1a6KPT8EvsiKpIL8wnyHThtCqYSsmDp6YckXjZ9s+Y8qyKTyz4hk27t5IzfSaFBQVUOSKqJFWg3FnjFPRKClNhaMk1M03V+x+mp/vl8v45S99odi7NxxzTGLiE5FqqqgIPvjAF4svveQ7amVk+GkMv/sdjBuX6AhFjirOOca9Oo4317zJ00OeTnQ4Mdu+dzvPr3yeKcumsGjzItIt/dB1i92bdqfT453YX7CfjLQMLZshKU+FowRqxw7fiPDNN/0U1M2bw48rKIBHHgk2NhGp5goK/Pz3F1+EV16BLVv89Ynnn++nNAwe7NdbBLjpJnU+FYmDwqJCHl/8OHvzyx41nrN6DnO/nsvdfe8m9/TcBEUXm4OFB5n55UymLJ/CzC9nkl+UT9aJWUw4bwKXnXYZJ9Y78dDY3KxcJi6ZSG5WbpntIqlIhaPE1YED8P77JdcpLlniZ4XVrw/9+sF33/lbec2bBx+riFRD+fn+aNWLL8L06bB9O9Sp4zugDh/uF3YNVwyq86lIXBS6Qu595156NetFm+PaALD8m+XM/XouzRs0586+dyY4wvCccyzavIgpy6YwbeU0duzbwQnHnMCvfvYrRncdTZcTuoR93R197uCN1W/obKNUCyocpUoVFcHy5SWF4rvv+iY3GRlw5plw991+JliPHn6bup+KyBGLtNZivXrw3HN+CuqMGX6tnnr1/BnFSy7xy2do/rtIQtRMr8nNPW9mwaYFPDTwIQBe++I13ln3DtMumZZ01zVu2LWBZ5Y/w5TlU/h8++fUSq/FsPbDGNN1DANbDyQjLfpX6ab1m7L6V6sDilYkvlQ4SkwidT4Ff2nQm2/629y5ftkMgI4d/WVCAwf6jvXhDuqr+6mIHLFIay3u2eOXymjY0P8cPtwnotq1Aw1PRMK7tvu1PPzBwyzcuJCfZf6M9bvX069VP3o26xloHJHWWmxarykPnPsAU5ZNYd7X83A4zm5+Nn8b/DeGdxxOw9oNA41TJFmocJRKhet8evXV8I9/+Ptffum3n3iiv1Ro4EAYMABOPjm2/av7qYhUuddf9/Pha9ZMdCQiUs4xNY/hmtOvod8/+vHnQX/mj+/9kZdGvBR4HOHWWkyzNLbt3caY6WM4pdEp3NX3Lq7sciWtj2sdeHwiyUaFo1Tq1lsrdj49eNBPR83Ohmuv9cVip07qUi+pwcwGAX8B0oGnnHMPlHveQs/nAHuBq5xzS82sNvAOUAufP190zt0Ves0/gVNDu2gI7HTOZZlZS+Az4IvQcwucc9fG8c+r3r780k8/zcuLPu7884OJR0QO2679u3jli1fYX7CfuWvm0uWELvQ4uUfgcfym5294aulTZbYVuSJGdR7Fdd2vo1ezXkk3dVYkkVQ4SgWFhfDRR37a6dy5fgppOM7BzJnBxibyY5lZOvBXYCCwEVhkZnnOuU9LDcsG2oZuPwMeD/08APR3zu0xsxrAe2Y22zm3wDk3stTveATYVWp/q51zWfH8u6qtwkJYuLCkWPz8c789KyuhYYnIkckvzOfSf13Kl99+yfgzxjNx6UQWXrMwsN+/ftd6Zn01i1lfzWLu13PJL8o/9Fy6pTP29LFMHDwxsHhEUokKR8E5fxC/uFB8662STqedOvlrE8NdStSiRbBxilSRHsAq59waADN7HhgKlC4chwJTnHMOWGBmDc2sqXNuC7AnNKZG6OZK7zx0tnIE0D++f0Y1tnevn9IwYwa89hps3eq7aZ1zDlx/vb9usXlzTXEQSTHOOa6bed2htRpHdh7J2S3OjuvZxvzCfD7Y8AEzv5rJrK9m8cm2TwBo2bAluVm5nJV5FmPzxnKg8AA102tyT7974haLSKpT4XiU2rSppFCcO9c/Bl8MXnSRv0axf39/3aI6n0o1czKwodTjjfiziZWNORnYEjpjuQRoA/zVOVf+UHlv4Bvn3FeltrUys4+A3cDtzrl3f/yfUc1s3eqLxBkzfKetfft819ScHBg61M+Lb9Cg7GsiHdXSWosiSatD4w7c0eeOQ2s1Xtnlyir/HVu+38Lrq15n1qpZzFk9h90HdlMjrQZ9WvTh6tOvJqdtDqcef+qhaajvb3hfay2KxECFYzUSrfPpjh0wf35JofhF6Gqrxo19gThggL+dckrFg/jqfCrVTLjTVC7WMc65QiDLzBoCr5hZZ+fcylLjLgOmlXq8BWjunPvWzLoB082sk3OuwkKBZjYeGA/QvDotZhpp2Yy6deGuu3yx+OGHfvpD8+YwdqwvFvv0id7cRmstiqSMvfl7qVujLr/u+esq33dhUSGLNi9i5pczmbVqFku3LAXgpPonMaLjCHLa5jDglAEcW+vYsK/XWosisYlr4agGFMEJ1/l07Fh4/nnYsgWWLvXfyY45xi+NMX68LxRPOw3S0irfvzqfSjWyEWhW6nEmsPlwxzjndprZfGAQsBLAzDKAi4FupcYdwF8biXNuiZmtBtoBi8sH5px7EngSoHv37uWL2dQVadmMvXvht7+FM87wi7wOGQJdu2oKqkgK8zP8y3pv/XsM/9dwZoyawZmZZx72PiMtm9GodiNy2ubw+qrX+Xbft6RZGj2b9eT+/veT0zaHLid0iam5jdZaFIlN3ApHNaAI1m23Vex8euCAn/nVp4//TjZgAPToATVqJCREkWSxCGhrZq2ATcAo4PJyY/KAG0LXP/4M2OWc22JmTYD8UNFYBzgXeLDU684FPnfObSzeEHrNDudcoZmdgs93a+L1xyWdAweiP79+PTRrFn2MiKSEnft3cuJ/nMiBwoqf+7o16tL2uLZHtN9wy2YAfLf/O95Y/QY5bXPIaZvDea3P47g6xx3R7xCRysXzjKMaUMRZQQG8/z68+qo/wxjJ228HF5NIsnPOFZjZDcAb+NkQTzvnPjGza0PPPwHMws+EWIWfDZEbenlT4B+hA2NpwAvOuddK7X4UZaepAvQBfm9mBUAhcK1zbkd8/roksWePX0fx5Zcrb72solGk2mhYuyHntDyHiztczPhu49m+dztnTTqLdTvXcevZt3J83eOPaL9juo5h4pKynU4zLIO8y/I4v835pFkMU6dE5EeLZ+GoBhRxsHu3/z726qv++9h33/lLgGrXhv37K45X51ORipxzs/DFYeltT5S674Drw7xuOXB6lP1eFWbbS0DwK1sHbccOn5hefhnmzPEJqXFjuPRSmDQp0dGJSEDu6nsXo14axajOoxj6/FDW71rPcXWO4ze9fnPY+9q1fxf3v3s/f17450PFYZEromZ6Ta45/Rqy22ZXdfgiEkU8D9H86AYUoWmnmUAPM+tcblykBhSnAzcBz5lZhaugzWy8mS02s8Xbtm2L7S9JsLVr4bHH4Lzz/PewkSNh9mx/OdCLL8L27fDUU77PRGnqfCoicbVpE/z1r3DuufCTn8BVV/lFYMeP9924tmzxyUlEjhpnNTuLDo07MHXZVNoc14b2jdtzb797qZkepdFVOQVFBTy+6HHaPNaGhz54iMs6X8bCsQsP7SPd0tXIRiQB4nnGMSkbUKRC84miIli0yB+8z8uDFSv89vbt4cYbfcF45pmQnl7yGnU+FZFArFrlzyq+8gosWOC3nXoq3HwzXHwxdOtWsbmNls0QOaoUn3WcMmwKY6aPYUzWmJhf+/qq1/n1nF/z6bZP6dOiDxPOm0C3k/zXvdysXC2bIZJA8Swc1YAignDLZlx0kV/vOi/PN7T55htfGPbuDY88AoMHQ9tKrilX51MROWKRlsyoVw/ee6+kWCw+ktWtG9x3ny8WO3SIvm8tmyFyVCk+63jRPy/iwXMfrHC2MVKX1FrptThQeIDWjVrz8oiXGdZ+WJmuqFo2QySx4lY4qgFFeOGWzRg92heJ+fn+u1t2ti8Us7PhODUHE5EgRFoyY88eyMryZxF794Y//ckf6dIF1CISxT3n3MMNs28Ie7YxUpdUgAnnTeD6HteHndqqZTNEEsvCrbdztOjevbtbvLjCUmpx4xxkZsLm8hN28TO2Xn658vWuRaRyZrbEOdc90XH8GEHnp6hrJz75pJ8jf8IJwcUjUg0pN3lbvt9Cy7+0LFM4pls6y69bTscmHX9siCJymGLNTepfHINnn4WWLSEtzf989tnYxxQVwYcf+jWu27cPXzSCP6h/7rkqGkUkRsce64u98rdjj419zI4dMHUqDB8e/XeNG6eiUURikjkhE7vHKtwyJ2Sy5+AeJi2dxMUvXFymaKyRVoOfd/u5ikaRJKfCsRLFU0vXrfNnDNet849LF4/hxowdCwMGwMknQ8+eMGGCn9kVaepp8+bB/D0iUk1Emlpaenu0Mf37+06oo0f7BWFFJCWZ2SAz+8LMVpnZLWGeNzN7NPT8cjM7o9Rza81shZl9bGZVMsVhyKlDKkwzzUjLoEGtBjR9pCnXvHoNu/bv4q6+d1Ervdah53Xdokjyi2dznGrhtttKrkcstnev725avPzFjTdWHHPgALz1lj+QP2wY5ORAw4YVr3EELZshIlXs0UehVq3oY7Zu9Z1Qhw6Fn/60bJtmEUkJoV4QfwUG4jvVLzKzPOfcp6WGZeMbBrbFNyJ8nLLravdzzm2vqpju6HMHf//472W2FRQV8PXOrxnZeSTjzhjHWZlnYWZs/WGruqSKpBAVjpVYvz789m3bfDPBaJyDF14ou03LZohI3P37v1c+ZuXKso+1ZIZIKuoBrHLOrQEIdakfCpQuHIcCU5xvarHAzBqaWVPn3JZ4BNS0flNys3J5csmTFLpCDKNPiz7MGDWDBrUblBmrLqkiqUVTVSsRaQpp06bw8cf+1rRp+DGRmg5ecQWsXeuvf1y7VkWjiFSx7dthU8VW91Ht3u2PdpW/aSkNkWR2MrCh1OONoW2xjnHAHDNbYmbjqyqoO/rcQUaaPzdRO6M2zw9/vkLRCCVdUnW2USQ1qHCsxB/+UDIltVjduvDww9C1q789/HD4MZp+KiIJcfzxcNJJiY5CROIvXDvk8u3yo43p5Zw7Az+d9Xoz6xP2l5iNN7PFZrZ427ZtlQbVtH5Trj79atIsTdNQRaoRFY6VuOIK34m+RQvfjLBFC/+49FnCWMaIiFSpSFNIS2+PZYyIpLKNQLNSjzOB8v3bI45xzhX/3Aq8gp/6WoFz7knnXHfnXPcmTZrEFNgdfe6gZcOWmoYqUo3oGscYXHFF5UVgLGNERKpMLFNINc1UpLpbBLQ1s1bAJmAUcHm5MXnADaHrH38G7HLObTGzY4A059z3ofvnAb+vqsCKp6GKSPWhwlFEREQkBTnnCszsBuANIB142jn3iZldG3r+CWAWkAOsAvYCuaGXnwC8Ymbgvw8+55x7PeA/QURSiApHERERkRTlnJuFLw5Lb3ui1H0HXB/mdWuArnEPUESqDV3jKCIiIiIiIlGpcBQREREREZGoVDiKiIiIiIhIVCocRUREREREJCoVjiIiIiIiIhKVCkcRERERERGJynyX5qOTmW0D1lUyrDGwPYBwqlIqxgypGbdiDsbhxtzCOdckXsEEQfkpqSjm4KRi3IcTs3JT8krFmCE141bMwajy3HRUF46xMLPFzrnuiY7jcKRizJCacSvmYKRizEFIxfdFMQcjFWOG1Iw7FWOOt1R8T1IxZkjNuBVzMOIRs6aqioiIiIiISFQqHEVERERERCQqFY6VezLRARyBVIwZUjNuxRyMVIw5CKn4vijmYKRizJCacadizPGWiu9JKsYMqRm3Yg5GlcesaxxFREREREQkKp1xFBERERERkahUOIaY2SAz+8LMVpnZLWGeNzN7NPT8cjM7IxFxloupspivCMW63Mw+MLOuiYizXExRYy417qdmVmhmw4OML5JY4jazc8zsYzP7xMzeDjrGMPFU9t9HAzN71cyWhWLOTUScpeJ52sy2mtnKCM8n3WcwCKmYm0D5KSjKTcFQfgovFfOTclMwUjE3Qerlp8Bzk3PuqL8B6cBq4BSgJrAM6FhuTA4wGzDgTGBhCsTcE2gUup+dCjGXGjcPmAUMT5H/PhoCnwLNQ49/kgIx3wo8GLrfBNgB1ExgzH2AM4CVEZ5Pqs9gEv07Jt37ovyUPDErN1VZ3MpPR/ZvmVTvi3JT8sScbLnpMOJOqvwUdG7SGUevB7DKObfGOXcQeB4YWm7MUGCK8xYADc2sadCBllJpzM65D5xz34UeLgAyA46xvFjeZ4BfAi8BW4MMLopY4r4ceNk5tx7AOZfo2GOJ2QH1zcyAevjkVxBsmKWCce6dUAyRJNtnMAipmJtA+Skoyk0BUX4KKxXzk3JTMFIxN0EK5qegc5MKR+9kYEOpxxtD2w53TJAON56x+CMOiVRpzGZ2MnAR8ESAcVUmlve6HdDIzOab2RIzGx1YdOHFEvN/Ah2AzcAK4N+dc0XBhHdEku0zGIRUzE2g/BQU5abkkYyfw3hLxfyk3BSMVMxNUD3zU5V+BjN+dDjVg4XZVr7dbCxjghRzPGbWD5/8zo5rRJWLJeY/A791zhX6gzlJIZa4M4BuwACgDvChmS1wzn0Z7+AiiCXm84GPgf5Aa+BNM3vXObc7zrEdqWT7DAYhFXMTKD8FRbkpeSTj5zDeUjE/KTcFIxVzE1TP/FSln0EVjt5GoFmpx5n4IwmHOyZIMcVjZl2Ap4Bs59y3AcUWSSwxdweeDyW+xkCOmRU456YHEmF4sf73sd059wPwg5m9A3QFEpUAY4k5F3jA+Unwq8zsa6A98D/BhHjYku0zGIRUzE2g/BQU5abkkYyfw3hLxfyk3BSMVMxNxTFVt/xUtZ/BH3OBZHW54QvoNUArSi6G7VRuzAWUvbj0f1Ig5ubAKqBnot/jWGMuN34yydEcJ5b3ugMwNzS2LrAS6JzkMT8O3B26fwKwCWic4Pe6JZEv8E6qz2AS/Tsm3fui/JQ8MSs3VWnsyk+H/2+ZVO+LclPyxJxsuekw4k66/BRkbtIZR8A5V2BmNwBv4DsqPe2c+8TMrg09/wS+S1UOPpnsxR9xSJgYY74TOB74r9BRqALnXPckjznpxBK3c+4zM3sdWA4UAU8558K2Rk6WmIF7gclmtgKfUH7rnNueqJjNbBpwDtDYzDYCdwE1IDk/g0FIxdwEyk9BUW4KjvJTRamYn5SbgpGKuSkUV8rlp6Bzk4WqUREREREREZGw1FVVREREREREolLhKCIiIiIiIlGpcBQREREREZGoVDiKiIiIiIhIVCocRUREREREJCoVjhJ3ZubMbGqpxxlmts3MXqvkdVlmlhPD/vdE2H6tmY0+/IgPvX6tma0ws+Vm9raZtahkfEszu/xIf5+IBEu5SUSSlfKTJCMVjhKEH4DOZlYn9HggfsHUymTh1545IqF1gqYc6etD+jnnugDzgdsrGdsSUPITSR3KTSKSrJSfJOmocJSgzAYuCN2/DJhW/ISZ9TCzD8zso9DPU82sJvB7YKSZfWxmI82snpn9vdSRrEtK7eMPZrbMzBaY2QmhbXeb2f8P3Z9vZg+a2f+Y2Zdm1ju0va6ZvRDa3z/NbKGZhVvo90Pg5NBrWprZu2a2NHTrGRrzANA7FO+NZpZuZg+b2aLQ/n9epe+oiFQF5SblJpFkpfyk/JRUVDhKUJ4HRplZbaALsLDUc58DfZxzpwN3Avc75w6G7v/TOZflnPsncAewyzl3WuhI1rzQ648BFjjnugLvAOMixJDhnOsB/D/grtC2XwDfhfZ3L9AtwmsHAdND97cCA51zZwAjgUdD228B3g3F+ydgbCjenwI/BcaZWauo75KIBE25SblJJFkpPyk/JZWMRAcgRwfn3HIza4k/Yjar3NMNgH+YWVvAATUi7OZcYFSpfX4XunsQKJ7zvwQ/nSOcl0uNaRm6fzbwl9D+VprZ8nKveSt0FG4rJdMtagD/aWZZQCHQLsLvOw/oYmbDQ48bAG2BryOMF5GAKTcByk0iSUn5CVB+Sio64yhBygP+g1JTLULuBd5yznUGBgO1I7ze8MmxvHznXPH2QiIfEDkQZoxVEnM/oAXwCX76B8CNwDdAV6A7UDNKvL8MHUXLcs61cs7NqeT3iUjwlJuUm0SSlfKT8lPSUOEoQXoa+L1zbkW57Q0oueD7qlLbvwfql3o8B7ih+IGZNaqCmN4DRoT21xE4rfwA59w+/BSN0WZ2XCjeLc65IuDfgPQI8b4BXGdmNUL7b2dmx1RBzCJStZSblJtEkpXyk/JT0lDhKIFxzm10zv0lzFMPAX80s/cpSSQAbwEdiy/wBu4DGpnZSjNbhj+i9WP9F9AkNM3it8ByYFeY2Lfgj/ZdH3rNGDNbgJ9q8UNo2HKgIHSh+Y3AU8CnwFIzWwlMRNPDRZKOcpNyk0iyUn5SfkomVnKWWuToY2bpQA3n3H4zaw3MBdqFLjAXEUkI5SYRSVbKT0cvVfBytKuLv4i7Bn5e/XVKfCKSBJSbRCRZKT8dpXTGUURERERERKLSNY4iIiIiIiISlQpHERERERERiUqFo4iIiIiIiESlwlFERERERESiUuEoIiIiIiIiUalwFBERERERkaj+D1y4w/JQ6jb9AAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4cAAAFhCAYAAADDb98gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACf0UlEQVR4nOzdd3gVRRfA4d9J6E06hBp6hwABBKRLbwooVZqKSBEVsKNY+ERBERSVaqEqHQEFRcCKUqX33nuH1Pn+mJuQhITUm0057/PkSe7u3r3n5oZhz87MGTHGoJRSSimllFIqdfNwOgCllFJKKaWUUs7T5FAppZRSSimllCaHSimllFJKKaU0OVRKKaWUUkophSaHSimllFJKKaXQ5FAppZRSSimlFJocKqVUsiUi9URkr9NxhBARIyIl77N/p4g0TLyIVFyISG8R+eM++38UkV6JGZNSSqnEkcbpAJRSSlkiMhIoaYzpEZPjjTG/A2XcGlQcicjXwAljzBsh24wxFZyLKGmI7PeS3F7XGNMy/hElLKd+r0opldJoz6FSSimlkiwR0RvZSimVSDQ5VEopB4jIyyJyUkSui8heEWkNvAZ0FpEbIvKf67g+IrLbddwhEXkmzDkaisiJMI8Li8hCETkvIhdF5LNoYugtIn+KyDgRueI6fx3X9uMici7s8EERWSsiT0V4/j3DD0WkH9AdeMn1Xn5wbT8iIg+7fh4pIvNEZKbrvW0XkdIi8qrrdY+LSLMw54z29yAir4nIBdfrdI/BZ5BRRD4SkaMiclVE/hCRjK597VzDYK+43ne5MM8LN3xWRL4WkfcixDLU9T5Oi0if+/1e7hPfEREZLiLbROSmiEwTkXyuYZ3XReQXEckR5vh5InLG9V5+E5EK0Xwe9/17EZGxInJZRA6LSMsw20P/DkL+Bu5zbDFXLCHxThSRmdG8b2/X7/hJETkG/BrH91dARBa43t9hEXnufq+rlFJKk0OllEp0IlIGGATUMMZkBZoDe4D/Ad8ZY7IYY6q4Dj8HtAGyAX2AcSJSLZJzegLLgKOAN1AQmBuDcGoB24BcwGzXc2oAJYEewGcikiU2788YMxmYBXzoei9tozi0LTADyAFsAVZi/18qCLwDTApzbHS/h/xAbtdzewGTXb/n+xkLVAfqADmBl4BgESkNzAGeB/IAK4AfRCRdtG/+biwPuGJ5EpgoIjli8XsJqyPQFCiN/X39iL2JkBv7uwqb8PwIlALyAptdrxXp5xGDv5dawF7X63wITBMRiSLG+x07G/gX+/c1EngiBu85RAOgHPbfR2zfnwfwA/Cf6701AZ4XkeYopZSKkiaHSimV+IKA9EB5EUlrjDlijDkY2YHGmOXGmIPGWgesAupFcmhNoAAw3Bhz0xhzxxgTZVGRMA4bY74yxgQB3wGFgXeMMX7GmFWAPzZRdIffjTErjTGBwDxsIjbaGBOATVS8RSQ7xPj3MMIV9zpgOfB4VC/sSh76AkOMMSeNMUHGmL+MMX5AZ2C5MeZnVyxjgYzYJDImArC/wwBjzArgBnGfG/qpMeasMeYk8DvwjzFmiyvORUDVkAONMdONMddd+0YCVUTkgSjOG93fy1FjzBTX38U3gBeQL4pzRXqsiBTB3mh40xjj7zr/0li895Gu2G7H4f3VAPIYY95xvfYhYArQJRavr5RSqY4mh0oplciMMQewvVIjgXMiMldECkR2rIi0FJH1InJJRK4ArbA9NBEVxl6kB8YynLNhfg65CI+4LVY9h/F47QuuBCM0lpDXjsHv4bIx5maYx0exyU9UcgMZgMiS8gKu5wNgjAkGjmN7oGLiYoTP4RZx/x1G/B1F+tmIiKeIjBaRgyJyDTjiOiayvxWI/u/lTMgPxphbrh+jeg9RHVsAuBRmG9jfY0yFHhuH91cUKOAaFnzF9TfzGlEnuEoppdDkUCmlHGGMmW2MeQh7EWuAD1zfQ4lIemABtucqnzEmO3aIY2TD+44DRcS9xTtuApnCPM5/n2PNffbFSgx/DzlEJHOYx0WAU/c57QXgDlAikn2nsJ9LyOsLNpk66dp0i5j/HiJKsN9LBN2A9sDD2CGt3q7tIb+jiK+bGH8vp4GcIhL2d1U4Fs8PG3Nc3t9hY0z2MF9ZjTGtYvH6SimV6mhyqJRSiUxEyohIY1fScwfbAxSE7RXydg15BEiHHX56Hgh0FfpoFtk5sfO6TgOjRSSziGQQkboJHPpWoIOIZBJbkOXJ+xx7FiieQK8b09/D2yKSTkTqYecnzovqhK7ewOnAx67CJZ4iUtv1mXwPtBaRJiKSFhgK+AF/uZ6+Fejmek4L7Ny4mErI30tYWbExXsQmrv+L5nXd/vdijDkKbARGuj6X2th5k3ERl/d3TWzhp4yuz6qiiNSI4+srpVSqoMmhUkolvvTAaGzv1RlsgY3XuJvMXBSRzcaY69iCI98Dl7G9J5HO2XINx2yLnR94DDiBnTuXkMZh5yCexc4tm3WfY6dh51ReEZHF8XnRGP4ezrj2nXLF1d8YsyeaUw8DtgMbgEvY3lsPY8xebDGeT7GfUVugrTHG3/W8Ia5tV7BVMhfH4u0k2O8lgm+xQ2FPAruA9fd73UT6ewH7+6mNTerew85r9YvDeeL6/nyAw9jPcSq211EppVQUxBh3jXBRSiml3E9EGgIzjTGFHA5FRUNEvgP2GGPecjoWpZRS99KeQ6WUUkq5hYjUEJESIuLhGoLbntj1tCqllEpEmhwqpVQKJiJfuhYGj/j1pdOxJQaxC9lH9v67J4HYikQR2w3XMhApQX5gLXY5jwnAs8aYLSLSPYr3vdPRaJVSKpXTYaVKKaWUUkoppbTnUCmllFJKKaWUJodKKaWUUkoppdDkUCmllFJKKaUUmhwqpZRSSimllEKTQ6WUUkoppZRSaHKolFJKKaWUUgpNDpVSSimllFJKocmhUkoppZRSSik0OVRKKaWUUkophSaHSimllFJKKaXQ5FAppZRSSimlFJocKqWUUkoppZRCk0OllFJKKaWUUmhyqJRSSimllFIKTQ6VUkoppZRSSqHJoVJKKaWUUkopNDlUSimllFJKKYUmh0oppZRSSiml0ORQKaWUUkoppRSaHCqllFJKKaWUQpNDpZRSSimllFJocqiUUkoppZRSCkjjdACJIXfu3Mbb29vpMJRSCWjTpk0XjDF5nI4jPrRtUipl0vZJKZUUxaRtShXJobe3Nxs3bnQ6DKVUAhKRo07HEF/aNimVMmn7pJRKimLSNumwUqWUUkoppZRSmhwqpZRSSimllNLkUCmllFJKKaUUmhwqpZRSSimllEKTQ6WUUkoppZRSuDk5FJEWIrJXRA6IyCuR7BcRmeDav01EqoXZd0REtovIVhHZGOF5g13n3SkiH7rzPSillFJKKaVUauC2pSxExBOYCDQFTgAbRGSpMWZXmMNaAqVcX7WAL1zfQzQyxlyIcN5GQHugsjHGT0Tyuus9KKUShzFw8iSkTQv58jkdjVJKKaVU0nTN7xpnb5y9Z3sajzR4Z/dGROJ1fneuc1gTOGCMOQQgInOxSV3Y5LA98K0xxgDrRSS7iHgZY07f57zPAqONMX4Axphz7glfKZUYNm6EZ56BY8cgKAh8fGDqVChe3OnIlFKpWs6ccPnyvdtz5IBLlxI/HqWUAgb/OJhFuxeRL8vdu+mBwYEcuXKEvYP2UjpX6Xid353DSgsCx8M8PuHaFtNjDLBKRDaJSL8wx5QG6onIPyKyTkRqJHDcSqlEcuECtG4NL74IZ8/CmTP2cfPmEBDgdHRKqVTt8mU7rCHiV2QJo0o0WbJkAeDo0aNUr14dHx8fKlSowJdffhl6TPfu3SlTpgwVK1akb9++BETzH8pPP/1EzZo1KVu2LD4+PnTu3Jljx46F7g8MDCR37ty8+uqr4Z7n7e3NhQt3B7itXbuWNm3aAHD27FnatGlDlSpVKF++PK1atQIgODiY5557jooVK1KpUiVq1KjB4cOHIz3fokWLEBH27NkTuu3IkSOICJ9++mnotkGDBvH111/H6PeX3IV8/gDHjh2jWbNmlCtXjvLly3PkyJFwxw4ePDjc8VFJbp//t49+S9qNadk5YCf7B++n+d7mNLnahIbeDeOdGIJ7k8PI+jRNLI6pa4yphh16OlBE6ru2pwFyAA8Cw4HvJZL+UxHpJyIbRWTj+fPn4/QGlFLuNXMmtGgB3buDvz+kSwdDh4KXF6xY4XR0SikF+Pk5HUGyNWsWeHuDh4f9PmtWwp3by8uLv/76i61bt/LPP/8wevRoTp06BdjkcM+ePWzfvp3bt28zderUKM+zY8cOBg8ezDfffMOePXvYunUr3bt3D5dorFq1ijJlyvD9999jB7tF780336Rp06b8999/7Nq1i9GjRwPw3XffcerUKbZt28b27dtZtGgR2bNnj/Qcc+bM4aGHHmLu3LnhtufNm5fx48fj7+8fo1icMmcOVKwInp72+5w5CXv+nj17Mnz4cHbv3s2///5L3rx3Z5pt3LiRK1euRHuO5Pr53/7jNtM3Tgcg2ASzdO9S3mrwVoxii447k8MTQOEwjwsBp2J6jDEm5Ps5YBF2mGrIcxYa618gGMgd8cWNMZONMb7GGN88efIkwNtRSiW048ehQgX46ScoVQp2uQadV6gAJ044G5tSSnHzJjRqBO++63Qkyc6sWdCvHxw9ajtcjx61jxMqQUyXLh3p06cHwM/Pj+Dg4NB9rVq1QkQQEWrWrMmJ+/yH8sEHH/Daa69Rrly50G3t2rWjfv36oY/nzJnDkCFDKFKkCOvXr49RfKdPn6ZQoUKhjytXrhy63cvLCw8PewleqFAhcuTIcc/zb9y4wZ9//sm0adPuSQ7y5MlDkyZN+Oabb2IUixPmzIHXX4dPP4U7d+z3119PuARx165dBAYG0rRpU8D2KGbKlAmAoKAghg8fzocfRl+zMrl+/k0fbsob497AP8ifvRf3kjNjThp6N4xRbNFxZ3K4ASglIsVEJB3QBVga4ZilQE9X1dIHgavGmNMikllEsgKISGagGbDD9ZzFQGPXvtJAOuACSqlkp1Yt23v46KOQO7ftMfT3h5UroWbN6J+vlFJu1aED/POPvWOlwnn+eWjYMOqvJ5+EW7fCP+fWLbs9quc8/3zsYjh+/DiVK1emcOHCvPzyyxQoUCDc/oCAAGbMmEGLFi2iPMfOnTupVq1alPtv377N6tWradOmDV27dmVODLObgQMH8uSTT9KoUSNGjRoV2qv5+OOP88MPP+Dj48PQoUPZsmVLpM9fvHgxLVq0oHTp0uTMmZPNmzeH2//KK6/w0UcfERQUFKN43CGyz/Dzz+2+d9+FrFnh7behaVP7PWtWGD7c7r9w4d7nxsa+ffvInj07HTp0oGrVqgwfPjz0d/HZZ5/Rrl07vLy8oj1Pcv38W/dpzY21N5i6cSobT23kkbKPxCiumHBbcmiMCQQGASuB3cD3xpidItJfRPq7DlsBHAIOAFOAAa7t+YA/ROQ/4F9guTHmJ9e+6UBxEdkBzAV6mZj28SqlkpTcuWHnTkifHkaPhm3boF07qFoVauhsYqWUU0IuuFetgilTbJKoYiWq0bgJOUq3cOHCbNu2jQMHDvDNN99w9mz4Co4DBgygfv361KtXL0bnu3jxIj4+PpQuXZqxY8cCsGzZMho1akSmTJno2LEjixYtCk1CIqsKGbKtefPmHDp0iKeffpo9e/ZQtWpVzp8/T6FChdi7dy/vv/8+Hh4eNGnShNWrV99znjlz5tClSxcAunTpck9SUqxYMWrWrMns2bNj9N4S29698MAD4bc98ACcijiGMI4CAwP5/fffGTt2LBs2bODQoUN8/fXXnDp1innz5jF48OBYnzO5fP43A27y3PrnyOSdiec+fI4s6bJQNnfZWL/fqLizWinGmBXYBDDsti/D/GyAgZE87xBQJYpz+gM9EjZSpZQTPD2hcmU7auull+xSFl27QhzadKWUSjhDhtz9+ckn7VeISIaApUaffHL//d7edihpREWLwtq1CRtLgQIFqFChAr///judOnUC4O233+b8+fNMmjTpvs+tUKECmzdvpkqVKuTKlYutW7cyduxYbty4AdiL9D///BNvb2/AJhBr1qzh4YcfJleuXFy+fJncue3spkuXLoX+DJAzZ066detGt27daNOmDb/99hsdO3Ykffr0tGzZkpYtW5IvXz4WL15MkyZNQp938eJFfv31V3bs2IGIEBQUhIjcM0zytddeo1OnTuGGQCam+32O5crZ3sJGje5uW7Pm7v/vuXPH7++gUKFCVK1aleKu0uaPPPII69evJ3/+/Bw4cICSJUsCcOvWLUqWLMmBAwciPU9y+/x3ntvJsSvHKJuzLNO+nEar9q14sMGDcf9FRsKdw0qVUipSIcX+GjSATZvg44/hv//sshZDh9rCNEop5ZhWrWDkyMirleoyFjEyahS4poCFypTJbk8IJ06c4Pbt2wBcvnyZP//8kzJlygAwdepUVq5cyZw5c0LndkXlpZdeYtSoUezevTt02y3XeNhr167xxx9/cOzYMY4cOcKRI0eYOHFiaC9Ow4YNmTFjBmDnuc2cOZNGrmzo119/DT3P9evXOXjwIEWKFGHz5s2hQwyDg4PZtm0bRYsWDRfT/Pnz6dmzJ0ePHuXIkSMcP36cYsWK8ccff4Q7rmzZspQvX55ly5bF/hfoZq+/bu+prFljq4+vWWMfv/56wpy/Ro0aXL58mZCik7/++ivly5endevWnDlzJvTzypQpU5SJISSvz/+7Fd/Re3FvPDw8WNljJQ/6PMjDtR5mw9oNCfErDaXJoVIqUW3fDqVLw1df2cfR/L+tlFKJZ/9++71VK3grYSr/pVbdu8PkybanUMR+nzzZbk8Iu3fvplatWlSpUoUGDRowbNgwKlWqBED//v05e/YstWvXxsfHh3feeSfK81SqVInx48fTs2dPypYtS926ddm9ezfdunVj4cKFNG7cOLTwDUD79u1ZunQpfn5+jBgxggMHDlClShWqVq1KyZIl6dHDDm7btGkTvr6+VK5cmdq1a/PUU09Ro0YNzp07R9u2balYsSKVK1cmTZo0DBo0KFxMc+bM4dFHHw23rWPHjpEOIX399dfvW3DHKV272hsBgwdDhgz2+6hRdntC8PT0ZOzYsTRp0oRKlSphjOHpp5+O9XmS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\n", "text/plain": [ "
" ] @@ -325,7 +325,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### `find_all` performance by varying key muliplicities\n", + "### `retrieve` performance by varying key muliplicities\n", "
    \n", "
  • 100'000'000 key/value pairs inserted
  • \n", "
  • 100'000'000 probing keys
  • \n", @@ -342,7 +342,7 @@ "outputs": [ { "data": { - "image/png": "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nfbt06fPTvsXJ8zv5UsvwX//C++9B4sWwXffwQ8/wN//HtNLmRE8gRYxZgw0bQqVKtnvMWOSd+z69evz2WefMWvWLKZOncrgwYNZunQpYAn0m2++Yfbs2WzcuJHHHnss4fNUq1aN8ePHb/8nLM29997LrFmzmDVrFn379gWgV69eHHDAAcyfP5/58+fTrFkzLr/88u2POfDAA5k1axazZ88mLy+PF154Yft9bdu25fnnn99++7nnnuOQQw5J+LmUx9ixcPDBkJNjv8eOTe7xe/bsSf/+/Zk3bx6ff/45devW3X7f9OnTWbNmTbnPkc7v5f33w7332msLULcuPPYYjB4NGzaU95mHgyfQKGPGQO/e9m2qar97905eEq1atSrVqlUDYPPmzRQUFGy/77TTTkNEEBE6depEXl5ewuepXLkyvXv35r777ov7sbm5ucyYMYNbbrll+7Zbb72V6dOnM3/+/J32zcnJoVOnTvz444/btzVu3JhNmzaxbNkyVJW33nqLU089NeHnkqixY2HAAHjgAdi0yX4PGJC8JPr111+zbds2Tj75ZMBKptWrVwcgPz+f/v37c88995T7POn8Xi5ZAm3awMcfwxlnQF4e1KsHu+0Gq1cn8GRDKKPGwpelXz+YNavk+6dMgc2bd962YQP06gWPPlr8Y9q3h6FDY49hyZIlnH766eTm5nLvvffSoEGDne7funUrTz/9NMOGDYv9oMW45ppraNeuHTfeeGOp+/Xv358777wTgKeffpoffviB9u3bk5OTs32fnJwc2rdvz9y5c2nXrt327Zs2bWLq1Km7xHr++eczbtw4Dj30UDp06LD9SyPZjjtu123dusHVV8Mdd8Cee8Jtt+24b889oX9/uPBCWLkSzj9/58d+9FHs5/7uu++oVasW5557Lj/88AMnnXQSgwcPJicnhwcffJAzzzyT+vXrJ/K0dpGu7+URR8Crr8LUqTB5MtSuDdOmQdWqlkizgZdAoxRNnmVtT0SjRo346quvyM3N5cknn2TZsmU73X/11VfTpUsXjjnmmBKPISJlbq9ZsyY9e/bcXhdWkujLvrZt26KqxR4/evv8+fNp3749tWvXpnHjxjv9IwJ069aNcePGMXbsWC688MJSz58q334Le+2187a99oJIjUm5bdu2jUmTJjFkyBCmTZvGggULeOKJJ1i6dCnjxo2jT58+MR0nzO/lP/8Jd90FL74If/gDTJhgX0qDBlm1STbIqhJoWSXFpk3tsr2oJk3iK53EokGDBrRp04ZJkyZxfqQodNttt7FixQpGjBhR6mNr167NTz/9tNO23377jVq1au20rV+/fnTo0IFLL7005rjatGnDzJkzKSgooFIl+34tKCjgyy+/pFWrVsCOerOffvqJ4447jokTJ3LmmWduP0a9evWoUqUK7777LsOGDeOzzz6L+fzxKO09adXKSp/HH79j24cfWisxQJ065XtPGzZsyKGHHsoBBxwAwNlnn82UKVOoV68eubm5NG/eHIANGzbQvHlzcnNziz1OmN/Ltm3hT3+CYcPg009h+XIYMQK6do05xNDzEmiUQYMgUo21XfXqtj0Z8vLy2LhxIwCrV69m8uTJtGzZEoDHHnuMt99+m7Fjx27/sJekS5cuTJw4kd8iHe/Gjx/PIYccstOlGsA+++xDt27ddmpJLUvz5s059NBDt18KAtx555106NBhe1IoVL9+fQYPHszdd9+9y3Fuv/12/v3vf+8SU0UZMMCqXj78ELZutd+9etn2ZDj88MNZvXo1K1asAOCDDz6gdevWnH766fz8888sXLiQhQsXUr169RKTJ4T7vSwogFdegRNOsH6gb72VXckTsqwEWpYePez3gAGweLH1bxs0aMf28po3bx7XX389IoKqcsMNN9C2bVsArrzySpo0aULnzp0BOPfcc7n11luLPU67du249tprOfrooxER6tatW2Kr/fXXX8+DDz4YV5yPP/44ffr0oXnz5qgqnTt3LvEf9+yzz2bgwIFMmjRpp+1HHnlkXOdMtsKrzT59YN48K5EOGrRje3nl5OQwZMgQTjzxRFSVww47jCuuuCLu44T5vaxUCV5/3RrpspWoatAxJE3Hjh3VJ1R2ziWbiMxQ1Y5Ft/slvHMubosXQ/fuUErtRFbwBJrGRo8evX1kSeHPNddcE3RYLgGZ9l4++ii88AJUqRJ0JMHyS3jnXFy2brX2gY4drR9oNvBLeOdcUrzyCvz8M1x5ZdCRBM8TqHMuLo88Yn2js63LUnG8G5NzLmYFBdC5M5x3XvaMNiqNJ1DnXMwqVYKofvlZzy/hnXMx2bgRXnsN8vODjiQxqZiq0hOocy4m48bZtHWffhp0JPFL1VSV3o3JOReTzp1tns9586CESaTSVmkT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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -355,7 +355,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"staic_multimap_find_all_uniform_multiplicity\" == bm\n", + " flag = \"staic_multimap_retrieve_uniform_multiplicity\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", @@ -368,7 +368,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### `find_all` performance by varying occupancies\n", + "### `retrieve` performance by varying occupancies\n", "
      \n", "
    • 100'000'000 key/value pairs inserted
    • \n", "
    • 100'000'000 probing keys
    • \n", @@ -383,7 +383,7 @@ "outputs": [ { "data": { - "image/png": "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/ftp0qQJ586do2LFihw4cIB3330XLy8v2rdvz6pVq9IcZ9asWQwYYCprBwwYkCb5qFatGi1atODHH3906Lu524EDUKRIymVFisDJHD16SBYXF8e6deuYOHEiW7Zs4ciRI0yfPp2TJ08yb948Ro8eneVj5rbrf1uL22h0phErjqygZ52eTqsFBBeODmrXpKEjphDbopRaorXeZ7dZYpOG3ql2jwOe01pvV0oFAduUUitT7SuEyCVatjSJX9++MHEiNG5sPt91l9WRCSHyvWLFkqunatRIudz90nss5lAHJaVUMUytYTXgMjBPKTVEa/1DioNpPQWYAhAaGnrLY3/yya3PWbWqaQKaWpUqsGaNI1E7rnz58tSvX59169bRr18/AN544w3OnTvH119/fct969evz/bt22ncuDElSpRg586dTJw4kevXrwPmZnzDhg1UrVoVMInC6tWr6dChAyVKlODSpUuULGmG5L948WLSzwDFixdn0KBBDBo0iO7du7N27Vr69u2Lv78/Xbp0oUuXLpQpU4bFixfTvn37pP0uXLjA77//zp49e1BKER8fj1IqTfPGl19+mX79+qVouuhOt7qO9eqZ2j/7/8tXr4bE3KxkyZz9HVSsWJEmTZpQvXp1AHr37s2mTZsoW7Yshw4dombNmgBERkZSs2ZNDh06lO5xcvP1r96zOnOenEPFhhVpVbFV9n+Z6XBlTWC2mzRorU9prbfbfr4GhOHgkzAhhGc6fdr0AfzpJ9M0VBJAIYRHuHgx/dFBrZkeIgKoZPe5Io436ewA/Ku1Pqe1jgUWArc7Ob4Uxo9P26Q/MNAsd4aIiAiiosw8aZcuXWLDhg3UqVMHgKlTp7J8+XJmzZqV1PcqIy+88ALjx48nLCwsaVmkrR3r1atXWb9+PcePH+fo0aMcPXqUL774IqlWpl27dsyYMQMw/dB++OEH7rL9B/b7778nHefatWscPnyYypUrs3379qSmgQkJCfz9999UqVIlRUzz589n6NChHDt2jKNHjxIeHk61atVYv359iu3q1q1LcHAwv/zyS9Z/gS72yium6e/q1RAba94fftgsd4bmzZtz6dIlEmusf//9d4KDg+nWrRunT59Oul6BgYEZJoCQu6//hqgNBJYPRB/QeHs5d04tVyaB2W7SYE8pVRVoAmx2TlhCCCssXw6lSplaQCGE8BhRUSbp8wxbgFpKqWpKKT/MwC5LHNz3OHCbUipQmfZq7TEP0V1m8GCYMsXU/Cll3qdMMcudISwsjJYtW9K4cWPuvPNOnn/+eRo2bAjAyJEjOXPmDK1atSIkJIQ333wzw+M0bNiQSZMmMXToUOrWrUvr1q0JCwtj0KBBLFy4kLvvvjtpABqAXr16sWTJEqKjoxk7diyHDh2icePGNGnShJo1azJkyBAAtm3bRmhoKI0aNaJVq1Y88sgjNG/enLNnz9KjRw8aNGhAo0aN8PHx4YknnkgR06xZs7j33ntTLOvbt2+6TT9feeWVWw58Y5WBA03CP3o0BASY9/HjzXJn8Pb2ZuLEibRv356GDRuitebRRx/N8nFy6/U/H3meP479wYD/DHDJ9VeODoOa5QMrdR/QSWv9iO3zA0ALrXWaBrxKqdeB61rr1CNdFQL+AMZrrRdmcJ4RwAiAypUrNzuWXrsEIYSlEhKgTBno1Al++CHz7e0ppbZprUNdE5l7hIaG6q1bt1odhhAiPY89Bps3w44dWeqk7KqySSnVFfgEM7rnN1rr8UqpkWDmM1VKlQW2AoWBBOA6EKy1vqqUegPoj+lWswN4RGudYQ89KZuE8FzTtk/jkZ8fYfuI7TQp1yRL+zpSPrmsTyA5a9KAUsoXWADMzCgBhKy1bRdCWGPnTjNKWKdOVkcihBB2tDaDwjRv7jGjVGmtlwHLUi2bbPfzacw9VXr7vga85tIAhRBusSBsAVWLViWkbIhLju/KJDCpSQNwAtOkYZAjO9qaMUwDwrTWH7kuRCGEO/j7w4MPmiGkhRDCY+zeDRER8PrrVkcinODbb79l0qRJKZa1bt2aL774wqKIhDvltev/bKtnuXzzcrojlDqDy5qDQvabNACNgHXAbttygJdtT8cyJM0ahMh7pDmoEMJlJkyAl16CEycg1fxzmZGySQjhqaxuDpqTJg3rSX+YZCFELhMZCUePmqGkPaS1lRBCGEuXQpMmWU4AhRDClX74+wcalm5I47KuG03PpZPFCyHEqlVQvz6sXWt1JEIIkcozz8Crr1odhRBCJImMjWTEzyP4v+3/59LzuLQmUAghli8380bddpvVkQghRCp9+lgdgRBCpPDbod+IiouiTz3Xlk9SEyiEcKnly6FdOzM4jBBCeIylSyHMpdPoCSFEli0MW0iJAiVoW6WtS88jSaAQwmWOHIFDh2RqCCGEh0lIgOHD4e23rY4kdytb1nT2Tv0qWzZHhy1UqBAAx44do1mzZoSEhFC/fn0mT04aVoLBgwdTp04dGjRowEMPPURsbOwtj/nbb7/RokUL6tatS0hICP379+f48eMADBs2jGrVqhESEkJISAi333570n6LFy+mUaNG1K1bl4YNG7J48eKkdcOGDSMwMJBr164lLXvqqadQSnH+/HnATHieeNyQkBAmTJjAvffeS0hICDVr1qRIkSJJ6zZu3Ei7du2oU6cOjRs3pnnz5uzcuTPp2FWrVk067unTpxkwYAA1atQgODiYrl27cvDgwez9wrOratX0r3/Vqjk6bOL1Bzh+/Dj33HMP9erVIzg4mKNHj6bYdvTo0Sm2z0huuf5t72zLrMdmkfBVAq1atnLt9dda55lXs2bNtBDCc3z1ldag9f792T8GsFV7QPmSk5eUTUJ4mM2bTeE0c2a2DyFlkza/w4xeOVCwYEGttdbR0dH65s2bWmutr127pqtUqaJPnDihtdZ66dKlOiEhQSckJOgBAwboL7/8MsPj7d69W9esWVPv27cvadlPP/2k//jjD6211g8++KCeN29emv127typa9SooY8cOaK11vrIkSO6Ro0aeteuXUn7NWzYUM+YMUNrrXV8fLxu2LChrlChgj537lyK75Ke1atX627duqVYduedd+otW7ZorbX+5ptvdIcOHZLWValSRZ87d04nJCTo2267TX/11VdJ63bs2KHXrl2b4blcIqPr7KTrr7X5faxYsUJrbf4Gbty4kbRuy5YtesiQIbf8HWudu65/s1bNdMB/AvTSg0tzdP0dKZ+kT6AQwmUGDoQKFaB2basjEUIIO8uWgZeXNFPIzNNPg11NRJa0a5f+8pAQ+OQThw7h5+eX9HN0dDQJCQlJn7t27Zr0c4sWLYiIiMjwOO+99x4vv/wy9erVS1rWs2fPTM8/ceJEXn75ZapVqwZAtWrVeOmll/jggw+YMWMGAAMHDmTOnDkMGTKENWvW0Lp1a3799VeHvl9mWrVqxQcffJBm+erVq/H19WXkyJFJy0JCQpxyzjTSu4733w+jRmW8PtH589CvX8pla9Y4fOp9+/YRFxdHR9skw/Y1fvHx8YwZM4Yff/yRRYsW3fI4uen6F/IrxMqhK2lZvSWH4w+79PpLc1AhhMsUKQI9esjUEEIID7N0qRmtqkQJqyMRmQgPD6dRo0ZUqlSJ//73v5RPNZ1HbGwsM2bMoHPnzhkeY+/evTRt2vSW5xkzZkxSs7zBgwcn7desWbMU24WGhrJ3796kz7Vq1eLcuXNcunSJWbNmMWDAgBTbR0VFpWgOOGfOHIe+N5gmjL17906zfM+ePWniyosOHjxI0aJF6dOnD02aNGHMmDHEx8cD8Pnnn9OzZ0/KlSuX6XFyy/U3FXgQ4BOAr7evy6+/1AQKIVxi1y749Vd47DEoVszqaIQQwubyZfj7bxg3zupIPF9mNXa3esKXhRqfW6lUqRJ///03J0+epHfv3vTr148yZcokrR81ahRt27bljjvucOh4Fy5coH379kRGRjJixAief/55AD744AP6paq10lqjUn3H9Jb16dOH2bNns3nzZr7++usU6woUKJCiX5cjBg8ezI0bN4iPj2f79u1Z2tfpMruO6a1P/P2ULJmjv4O4uDjWrVvHjh07qFy5Mv3792f69Ol06dKFefPmsSYbx/bk67/m6Bq2ntzKfQPuI/ZmrMuvv9QECiFcYv58M/2W1AIKITxK0aJw7lxyczaRK5QvX5769euzbt26pGVvvPEG586d46OPPrrlvvXr10+6mS5RogQ7d+5kxIgRXL9+PdP9tm7dmmLZ9u3bCQ4OTrFswIABjB07lo4dO+LllfNb65kzZ/Lvv/8yaNAgHn/88XTj2rZtW47P4+kqVqxIkyZNqF69Oj4+PvTu3Zvt27ezY8cODh06RM2aNalatSqRkZHUrFkzw+Pkluu/IGwBUbFRfD/je7dcf0kChRAusXw5tGxp7reEEMKjFC4sTRScwa5GzqHlWRQREUFUVBQAly5dYsOGDdSpUweAqVOnsnz5cmbNmpXpjfcLL7zA+PHjCbObEiQyMjLT8z///PO8++67SSNSHj16lHfeeYfnnnsuxXaVK1dm/PjxjHLigwVfX1/efvttNm3alCJugLvvvpvo6Gj+7/+SJxPfsmULf/zxh9PO75AqVdIfHbRKFaccvnnz5ly6dIlz584B8PvvvxMcHEy3bt04ffo0R48e5ejRowQGBnLo0KEMj5Mbrn+CTmDR/kUUL1CcAr4F3HL9JQkUQjjd+fOwdauMuSCE8DCxsaZgWrbM6kjyhtOn0x8b9PRppxw+LCyMli1b0rhxY+68806ef/55GjZsCMDIkSM5c+YMrVq1IiQkhDfffDPD4zRs2JBJkyYxdOhQ6tatS+vWrQkLC2PQoEFJ29j3CQsJCSEmJoaQkBDee+89evToQd26denRowfvv/9+uoNwPPbYY9SoUSPN8tR9wl588UWHv3+BAgV47rnnmDhxYorlSikWLVrEypUrqVGjBvXr1+f1119P01/S5Y4eTf/6p5rGIbu8vb2ZOHEi7du3p2HDhmitefTRR7N8nNxw/f868Rcnr52kZMGSSctcff1VYifEvCA0NFSnrrYVQrjfnDkwYABs2mRqA3NCKbVNax3qnMisIWWTEB7ijz/MaIYLFkCfPjk6lJRNQghnGbNiDJM2T+LsmLMUDSia4+M5Uj7JwDBCCKc7dszMFRyaq2+PhBB5zrJl4OsLHTpYHYkQQiRpU7kNQf5BTkkAHSVJoBDC6V54AZ55Bry9rY5ECCHsLFsGd9xh+gSKPOfbb79l0qRJKZa1bt2aL774wqKIhDvl5uvfq24vetXt5dZzShIohHAJX1+rIxBCCDvHj8OePfDhh1ZHIlxk+PDhDB8+3OowhEVy6/XfFLGJCkEVqFSkklvPKwPDCCGcatIkuP12cGDgLSGEcJ/Ll6FjR+jWzepIhBAiycNLHuaBRQ+4/bySBAohnGrpUnOvFRhodSRCCGGnUSNYsQJsUwwIIYTV9p/fz75z++hbr6/bzy1JoBDCaSIjYe1amRpCCOFhYmLM3DVCCOFBFoYtBODeeve6/dySBAohnGbdOoiOliRQCOFhfv8dSpeGDRusjkQIIZIsCFtAywotqVi4otvPLUmgEMJpli8Hf39o29bqSIQQws6yZRAQAE2bWh1JntLk6yaoN1SaV5Ovm+TouIUKFQLg2LFjNGvWjJCQEOrXr8/kyZOTthk8eDB16tShQYMGPPTQQ8TGxmZ4vNdffz3NhNtVq1blvK12WCnFc889l7Ru4sSJvP7662n2HTZsGNWqVUua+PvTTz8F4MqVKwwdOpQaNWpQo0YNhg4dypUrVwA4evQoBQoUICQkhODgYIYOHZoU65o1a1BKMW3atKRz79ixA6VUmng9UZtv2qR7/dt80yZHx028/gDHjx/nnnvuoV69egQHB3M01UT0o0ePTrF9ejz1+i/8dSHbH9tOpcPJA8K48/pLEiiEcJrQUHj+eekPKITwIFqbzsp33w0FClgdTZ7SqmIr/Lz9Uizz8/bj9oq3O+X45cqVY+PGjezcuZPNmzczYcIETp48CZgkcP/+/ezevZuoqCimTp2a7fP4+/uzcOHCpKTgVj744AN27tzJzp07efLJJwF4+OGHqV69OocPH+bw4cNUq1aNRx55JGmfGjVqsHPnTnbv3k1ERARz585NWtewYUPmzJmT9Hn27Nk0btw429/FnZqXb87TLZ9Gv6aTXk+3fJoWFVo47RxDhw5lzJgxhIWF8ddff1G6dOmkdVu3buXy5cs5PodV1794geLUq1+P81uSz+vO6y9TRAghnGbQIKsjEEKIVA4ehCNHzBMqkSVP//Y0O0/vzHB9dFw0cQlxKZbFJcSx4/QO2k1vl+4+IWVD+KTzJw6d388vOcGMjo4mISEh6XPXrl2Tfm7RogUREREOHTM9Pj4+jBgxgo8//pjx48dnad9Dhw6xbdu2FIncuHHjqFmzJocPH8bbbsJcb29vWrRowYkTJ5KWVa5cmatXr3LmzBlKly7Nb7/9luK7WS2963h//fsZ1XwUT7R8grqf12VTxCb8ffyJjotm66mtTOxoarHOR56n39x+KfZdM2yNw+fet28fcXFxdOzYEUhZQxgfH8+YMWP48ccfWbRoUda/mB0rr3/1qtUtu/5SEyiEcIojR+DsWaujEEKIVJYtM+8edGOdV/j7+FOmYBkUCgCFomzBsmlqB3MiPDycRo0aUalSJf773/9Svnz5FOtjY2OZMWMGnTt3ztF5Hn/8cWbOnJnUjC8jY8aMSWoOuHv3bvbt20dISEiam/2QkBD27t2bYt+bN2+yefPmNLH269ePefPmsXHjRpo2bYq/v3+Ovou7lCtUjjIFyxB+NRyA8KvhlClYhiIBRZxy/IMHD1K0aFH69OlDkyZNGDNmDPHx8QB8/vnn9OzZk3LlyjnlXO6+/qeunWLMyjFcuXnFsusvNYFCCKd46SUz5kJ4OChldTRCCGHTty+UKAFVqlgdiUOUUp2BSYA3MFVrPSHV+rrAt0BT4BWt9US7dUWBqUADQAMPaa3/zG4sjtTYnbp2iuqfVudm3E0CfALY9tg2yhYqm91TplGpUiX+/vtvTp48Se/evenXrx9lypRJWj9q1Cjatm3LHXfckeExVAb/KdkvL1y4MEOHDuXTTz+lwC2aDX/wwQf065dcu3XkyJF0j6+1Tlp++PBhQkJC+Oeff+jXrx+NGjVKse39999P//792b9/PwMHDmTjxo0Znt/dblVzF+gbyJZHt1D/y/p83OljOszowN5Re5Ouf8nAklmq+UstLi6OdevWsWPHDipXrkz//v2ZPn06Xbp0Yd68eaxZ49ixPfH6f7XlK7ae2Epb1day6y81gUKIHIuPh5UroUMHSQCFEB6mcmUYOtTqKByilPIGvgC6AMHAQKVUcKrNLgJPAumNHDEJ+E1rXRdoDIS5MFwAygWVY3jIcLyUF8NDhjs1AbRXvnx56tevz7p165KWvfHGG5w7d46PPvrolvuWKFGCS5cupVh27do1ihYtmmLZ008/zbRp07hx44bDcdWvX58dO3akaKqakJDArl27qFevHpDcJ+zQoUNs2rSJJUuWpDhG2bJl8fX1ZeXKlbRv397hc3uCckHleLDxg7T/vj0PNn7Qqde/YsWKNGnShOrVq+Pj40Pv3r3Zvn07O3bs4NChQ9SsWZOqVasSGRlJzZo1MzyOJ17/BWELqFSkEkH+QZZdf0kChRA5tm0bXLokU0MIITzMX3/B99+buWtyhxbAIa31Ea11DDAb6GW/gdb6rNZ6C5BiOEylVGGgLTDNtl2M1vqyO4Ie23YsbSq3YeydY5163IiICKKiogC4dOkSGzZsoE6dOgBMnTqV5cuXM2vWLLy8bn0727ZtW5YsWcK1a9cAWLhwIY0bN07RhA+gePHi3H///SlG68xMzZo1adKkCW+//XbSsrfffpumTZumSUzKlSvHhAkTePfdd9Mc58033+S9995LE1Nu8ELrF2hRoQUvtH7Bqcdt3rw5ly5d4ty5cwD8/vvvBAcH061bN06fPs3Ro0c5evQogYGBHDp0KMPjeNr1f2v8W6w5uoY7KifXXltx/SUJFELk2PLlpgbQ1ndbCCE8w//9H4weDZkkCR6kAhBu9znCtswR1YFzwLdKqR1KqalKqYLODjA95YLK8cewP5xeCxgWFkbLli1p3Lgxd955J88//zwNGzYEYOTIkZw5c4ZWrVoREhLCm2++meFxGjVqxBNPPEGbNm0ICQlh8uTJGY4m+txzzzk0SqS9adOmcfDgQWrWrEmNGjU4ePBgholE7969iYyMTFGjCXD77bfTu3fvLJ3XU5QLKsdvQ35z+vX39vZm4sSJtG/fnoYNG6K15tFHH83ycTzt+p++dJr4o/G0rZI8n5YV119prd16QlcKDQ3VW7dutToMIfKdNm3Mg/YtW5x/bKXUNq11qPOP7D5SNglhAa2hYkW4/XaYN8/ph3dF2aSUug/opLV+xPb5AaCF1np0Otu+DlxP7BOolAoFNgGttdablVKTgKta67Gp9hsBjACoXLlys2PHjjnzKwghMrEwbCHf7fqOxf0XZ9hfMaccKZ9kYBghRI59/z1k8cGZEEK41q5dcPJkbhsVNAKoZPe5InAyC/tGaK032z7PB15MvZHWegowBcwDquyHKoTIjj71+tCnXh+rw5AkUAiRc9Wrm5cQQniMxKkhunSxNo6s2QLUUkpVA04AAwCHZmDVWp9WSoUrpeporQ8A7YF9rgvV83z77bdMmjQpxbLWrVvzxRdfWBSRcKfccP3Dr4RTNKAoQf5BVociSaAQImemToWCBWHgQKsjEUIIO2Fh0KwZlHXNaJWuoLWOU0o9ASzHTBHxjdZ6r1JqpG39ZKVUWWArUBhIUEo9DQRrra8Co4GZSik/4Agw3IrvYZXhw4czfHi++srCTm64/s+teI4tJ7dw5Mn0p5ZwJ0kChRDZpjW8/TaEhEgSKITwMDNmwPXrVkeRZVrrZcCyVMsm2/18GtNMNL19dwK5ug+1EHlVVGwUy/5ZxgONHrA8AQQZHVQIkQP//APHjsE991gdiRBCpKNQIasjEEIIAFYcXsGN2Bv0De5rdSiAJIFCiBxYvty8y/yAQgiPMmoUjBxpdRRCCJFkQdgCigUU484qd1odCiBJoBAiB1asgBo1zEsIITxCfDzMnQuRkVZHIoQQAMTGx/LzwZ/pVbcXvt6+VocDSJ9AIUQ2aW2mhejc2epIhBDCzpYtcOFCbpsaQgiRh/l4+bBu+Dp8vDwn9fKcSIQQuYpS8OefEBdndSRCCGFn6VLw8pLOykIIj6GUokHpBlaHkYI0BxVCZIu2TTHskwsfJSmlOiulDiilDiml0kymrJSqq5T6UykVrZR6Piv7CiEstmwZ3H47FC9udSRCCEF8Qjz/+eU/bDmxxepQUpAkUAiRLXfdBePGWR1F1imlvIEvgC5AMDBQKRWcarOLwJPAxGzsK4SwSkKCqQF86CGrIxFCCADWH1/P5G2T+ffyv1aHkoIkgUKILDtzBv74AwICrI4kW1oAh7TWR7TWMcBsoJf9Blrrs1rrLUBsVvcVQljIywvefRc8fMJoIUT+sTBsIQE+AXSt5Vn9lCUJFEJk2cqV5j2XTg1RAQi3+xxhW+bqfYUQrrZ7N8TEWB2FEEIAoLVm4f6FdKrRiUJ+njVvqSSBQogsW74cSpaEJk2sjiRbVDrLtLP3VUqNUEptVUptPXfunMPBCSGyKSYGWreGp5+2OhIhhABg68mtRFyNoE+9PlaHkoYkgUKILElIMDWBHTualle5UARQye5zReCks/fVWk/RWodqrUNLlSqVrUCFEFmwYQNcu5ZrmygIIfKeMzfOUKNYDXrU7mF1KGnkwnH9hBBWio6Ghx82D9xzqS1ALaVUNeAEMAAY5IZ9hRCutHQp+PpC+/ZWRyKEEAB0r92dbrW6oVR6DYmsJUmgECJLChSA8eOtjiL7tNZxSqkngOWAN/CN1nqvUmqkbf1kpVRZYCtQGEhQSj0NBGutr6a3ryVfRAiR0rJlcOedUMiz+t0IIfKnGzE3CPAJwNvL2+pQ0iVJoBAiS7ZuhQYNcu3IoABorZcBy1Itm2z382lMU0+H9hVCWOzffyEsDEaMsDoSIYQA4IONH/D1tq85/ORhAn0DrQ4nDZf26JEJmYXIW65fN3Mwv/aa1ZEIIYSdypVNn8ABA6yORAghAFgQtoBaxWt5ZAIILkwCZUJmIfKeP/6A2FgzKIwQQngMb2/zhKpsWasjEUIIDl44yJ6ze+hbr6/VoWTIlTWBMiGzEHnM8uWmT2CbNlZHIoQQNpGRZlqIffusjkQIIQAzQTzAvfXutTiSjLkyCZQJmYXIY5Yvh3btcnd/QCFEHrNmDUyaBBERVkcihBCASQKbl29O5SKVrQ4lQ64cGMZtEzIDIwAqV/bcX7QQud3Ro3DwIIwaZXUkQghhZ9kyCAyEtm2tjkQIIQB4p/07xCfEWx3GLbkyCXTbhMzAFIDQ0FBHk0whRBZVqgR//glVq1odiRBC2Ght5gds316aKAghPEaH6h2sDiFTrmwOmjSpslLKDzOp8hI37CuEcAFvb7jtNhl3QQjhQfbvN80UunWzOhIhhADgyy1fsuv0LqvDyJTLkkCtdRyQOKlyGDA3cULmxEmZlVJllVIRwLPAq0qpCKVU4Yz2dVWsQohbi4uDZ5+FnTutjkQIIez8+y+ULAldulgdiRBCcOb6GZ5Y9gSL9i+yOpRMuXSyeJmQWYi8YfNm+PhjaNUKQkKsjkYIIWy6doUzZ8DLpdMeCyGEQ3468BMa7dFTQySSUlMIkakVK8w9VgfPb+IuhMgvEhJMn0BJAIUQHiJxgvgGpRtYHUqmpOQUQmRq+XJo0QKKFbM6EiGEsFm8GGrUgCNHrI5ECCG4FHWJ3//9nT71+qBUehMdeBZJAoUQt3TxImzZAp06WR2JEELYWbrUFFAyPZQQwgPsPrubAJ+AXNEUFCQJFEJk4p9/zLgLkgQKITyG1mZ+wE6dwMelwxu4nVKqs1LqgFLqkFLqxXTW11VK/amUilZKPZ/Oem+l1A6l1C/uiVgIAdC2SlvOjTlHaPlQq0NxSN4qOYUQTteyJZw6ZXUUQghhZ8cOOH3aDAyThyilvIEvgI6YOZO3KKWWaK332W12EXgS6J3BYZ7CjKxe2IWhCiHsaK1RShHgk3vmK5WaQCFEhrROHndBxl4QQniMZbbBw/Pe1BAtgENa6yNa6xhgNtDLfgOt9Vmt9RYgNvXOSqmKQDdgqjuCFUIY8/fNp8GXDTh+5bjVoThMagKFEBnat888aP/hB7jjDqujEUIIm9tvh9deg9KlrY7E2SoA4XafI4CWWdj/E+AFIMiJMQkhMrEgbAHnIs9RIaiC045Z8aOKnLh2Is3yCkEViHg2IsfHl2f7QogMrVgBx49DlSpWRyKEEHbuvhtef93qKFwhvSEFtUM7KtUdOKu13pbJdiOUUluVUlvPnTuXnRiFEHZuxt1k6T9L6V2nN95e3k47bs86PfHz9kuxzM/bj151emWwR9ZIEiiEyNDy5VC3rgy+J4TwIHv3wp49pq163hMBVLL7XBE46eC+rYGeSqmjmGakdyulfki9kdZ6itY6VGsdWqpUqZzGK0S+t/LwSq7HXKdPvT5OPe7YtmPxUilTNW/lzdg7xzrl+JIECiHSdfMm/PEH3HOP1ZEIIYSdd96B9u3zahK4BaillKqmlPIDBgBLHNlRa/2S1rqi1rqqbb/ftdZDXBeqEAJg4f6FFA0oyl3V7nLqccsFlWN4yHCUrYGAr5cvw0OGU7ZQWaccX/oECiHStW6dSQRlagghhMeIj4fffoMePfLkaFVa6zil1BPAcsAb+EZrvVcpNdK2frJSqiywFTP6Z4JS6mkgWGt91aq4hcjPutfqTpOyTdI03XSGUc1H8dXWrwDw8fJxWi0gSBIohMhAqVLw6KNw551WRyKEEDabN5sJ4vPY1BD2tNbLgGWplk22+/k0ppnorY6xBljjgvCEEKn0DXbd5PDrj68HQKGcWgsIkgQKITIQEgJTplgdhRBC2Fm6FLy9pZ26EMIjrDqyihrFa1C1aFWXHH/2ntnUKl6LuIQ4p9YCgvQJFEKk49Il2LUrr3a5EULkWitWQOvWULSo1ZEIIfK5+IR4Bi8czJiVY1xy/BNXT7D22FqGNBrCkaeOOLUWECQJFEKkY/FiUxO4e7fVkQghhJ1Vq2CqzIMuhLDenxF/cubGGfrWc01z0Ll756LRDGgwwCXHl+agQog0VqyAsmWhYUOrIxFCCDuFC5uXEEJYbMG+Bfh5+9G1lmv6KM/eO5um5ZpSu0RtlxxfagKFECnEx8PKlabLjUpv2mIhhLDC2LHSUVkI4RG01izcv5B7atxDYX/nP5g6cukIf534iwH1XVMLCFITKIRIZft2uHBBpoYQQniQ6Gj45BMYItPeCSHcT2vNLwd/4UbsDQBOXjtJ+JVwutTswrpj67ijyh1OPd/sPbMB6N+gv1OPa0+SQCFECsuXmxrAjh2tjkQIIWzWr4fr1/P01BBCCM8Vr+MZ9tMwgksFUyGoAgA96/Rk7bG17D23l3XD1zn1fLP3zKZ1pdZULlLZqce1J0mgECKFp54yg++VKmV1JEIIYbN0Kfj7w913O//YhQvDtWtplwcFwVWZf10IYSZqf67Vc+w7t48f+vwAQIJOoMnXTXjh9heceq69Z/ey++xuPuvymVOPm5okgUKIFIKC4K67rI5CCCHsLFsG7dpBwYLOP3Z6CeCtlgsh8qUnWjxBzU9rsuTAEj7d/Cnda3fHx8uH7rW7O/U8s/fMxkt50S+4n1OPm5pDSaBSKhS4AygPRAF7gP9prS+6MDYhhJutWwdr1sDTT5tk0NNJ2SREPnDjBlSuDL17Wx1Jlkj5JETeUti/MKNbjObhJQ9zM+4mJ6+d5L0O76GcOIqe1prZe2dzV9W7nD4vYGq3HB1UKTVMKbUdeAkoABwAzgJtgJVKqe+UUq5rrCqEcKtZs+D9902rK08mZZMQ+UjBgmbempEjrY7EIVI+CZF3Xbx5kfOR5+lWqxsFfAs4vRZw+6ntHLp4iIENBjr1uOnJrCawINBaax2V3kqlVAhQCzju5LiEEBZYvtw0BfXzc83xZ86EV16B48fNg/3x42Hw4GwdSsomIfKL69ehUCGro8gKKZ+EyIN+/edXPtn0Cc3LN2fO3jksGbDEqbWAALP2zMLXy5d7693r1OOm55ZJoNb6i0zW73RqNEIIyxw6BEeOwLPPuub4M2fCiBEQGWk+HztmPkPWE0Epm4TIJyIjoUwZ88To6aetjsYhUj4JkTd9+tenNCrTiF8G/sLX2752ei1ggk5gzt45dKrZieIFijv12OlxaLJ4W9OFonafiymlvnFZVEIIt1u+3Ly7an7AV15JTgATRUaa5dklZZMQedzvv5uCokED150jo8FmctgxWsonIfKWxf0Xs2zQMkoXKs3YO8c6vRZwY/hGIq5GuKUpKDiYBAKNtNaXEz9orS8BTVwSkRDCEufOQf36ULOma45/PIOGTxktd5CUTULkZcuWmSTtDudOxJzCm2+a93/+Aa2TXzmfHkLKJyHygNl7ZnP55mX8ffypULiCy84za/csCvgUoGedni47hz1Hk0AvpVSxxA9KqeLI9BJC5Cmvvw5//+2641fOYBiEjJY7SMomIfIqrc38gB07una0qvnzISTEFU/ApHwSIpdbcXgFgxYMYsL6CS49T1xCHPP2zaN77e4U8nNPH2hHC6MPgY1KqfmABu4HxrssKiGEW2kNSoGXo4+FsuGll9IO7hcYaLr65ICUTULkNcWLw6VLyZ+PHzcFVLFicNHJsytERMCff8Lbbzv3uIaUT0LkYievnWTIwiHUL12fcXeOc+m5Vv+7mnOR59zWFBQcrAnUWn8P9AXOAOeAPlrrGa4MTAjhPmPHQuvWEB/vunP4+pr3smXN/VyVKjBlSrZHBwWkbBIiT7p0yTyZOncOPv0UTp40n+0TQ2dZuNC833ef0w8t5ZMQuVdcQhyDFgziRuwN5vabS6BvoEvPN2vPLIL8guhSq4tLz2MvK80SigM3tNbfKqVKKaWqaa3/dVVgQgj3+fVX0+3G29t155gzB6pXN6OQOrkvtZRNQuQVBw+a91Gj4MsvYfRo155v3jxo2BBq13bVGaR8EiIXen/D+/xx7A+m95pOvVL1XHqu6LhoFoYt5N569xLgE+DSc9lzdHTQ14D/YiY+BfAFfnBVUEII9zl7FrZvd92ooADnz8OqVXD//c5NAKVsEiIP2L4dnnoKatWCOnXMsj/+SDucsLOdPAkbNkC/fi45vJRPQuRew0OGM7HjRB4MedDl51p+eDlXoq+4tSkoOD4wzL1AT+AGgNb6JJCzsZOFEJZatQratTPNMgHi4lx3roULTVPT/v2dfmgpm4TIbY4fh8mT4dQp83nrVtM2vHZt+Pxzs2zvXtNp2JUWLTLNTF3QFNRGyichcpkrN68QnxBPuaByPHf7c24556w9syhRoATtq7V3y/kSOdocNEZrrZVSGkAplcGkOkKI3GDNGtMX79NPoVw5Mwr7zJlmTubUg7c4w9y55iF/48ZOP7SUTUJ4urg4U+O2bJkZ7XPvXrO8YEF44AEYMsS8Fyhglj/xhHvimjcPgoOhnsuaekn5JEQuEp8QT9+5fQn0DeSnAT85fR7A9NyIucGSA0t4oNED+Hr7uvx89hxNAucqpb4GiiqlHgUeAv7PdWEJIVzpnXdg4kTTPDMmBkJDoX176N4dHn3UuX0Dz56F1avh5Zed3hcQpGwSwjOdOQOXL5vmnefOmWYHPj7Qti089BB07Zrc9DN1jV+xYukXFsWKpV2Wk/jWrjWjYrmOlE9C5CLj141n1b+rmNZzmlsSQIBfDv5CZGyk25uCgoNJoNZ6olKqI3AVqAOM01qvdGlkQgiXiImBbdtMrV+zZuYhfKIbN8x9W4kSzjvfggWQkGASTmeTskkID5GQYJp1Jtb2bd1qnir9/LNpbrBiBbRsCYULZ34sZ08DkR7XNwWV8kmIXGT1v6t54483GNJoCMNDhrvtvLP2zKJ8UHnaVG7jtnMmcigJtDVh+F1rvVIpVQeoo5Ty1VrHujY8IYQz3LwJP/0Eixebe7SrV838yD17JreEOnAA/PygSBHnnnvuXKhbFxo0cO5xQcomIdwi9bx9iYoWTV7epYtJ9Ly8oFUrMwFo9+7J23bs6JZQHTZvnqmJrF/fZaeQ8kmI3OHM9TMMWjiIWsVr8VW3r9xWC3j55mV+PfQro0JH4e3lwuHZM+DowDBrAX+lVAXgf8BwYLqrghJC5Nzp07Brl/k5NhaGDjWDwdx3H4wbZ2r7SpUyD8N37zZ9BJ991rTYcpZTp8wgf/37u6QpKEjZJITrJc7bl5BgCpV33oE2bUyzgcQRPEeOhB9/NO2/16837b8bNbI07AydO2c6Rvfr57KCyUbKJyFygTM3zlDEvwjz7ptHIb9Cbjvv4v2LiYmPYUCDAW47pz1Hb/eU1jpSKfUw8JnW+n2l1A5XBiaEyLp//jG1fYsXw59/QosWsGkTBAWZJqD16iX392vQwEzFdeiQSQafew6eeca58SxYYO4dXdEU1EbKJiGcLTLSFCYHDsCdd5pl8+bBI4+YZgQATZua9+ho06fv3nutiTU7Fi82Ca0Lm4LaZKt8Ukp1BiYB3sBUrfWEVOvrAt8CTYFXtNYTbcsrAd8DZYEEYIrWepJTv5EQeVCjMo3YO2qv22vjZu2ZRbWi1WhRoYVbz5vI4SRQKdUKGAw8nMV9hRAuonXyg+xHH4WpU83PTZvCG29A797J26ZujnnffeZBeEyMaQbqigfic+aY8wYHO//YNlI2CZEdCQkQEWFG6CxRAvbsMU0BDhwwUzgkWrTIvNeoYToQN2sGnTtD+fKm0HDmYC3uMn8+1KzpjprKLJdPSilv4AugIxABbFFKLdFa77Pb7CLwJNA71e5xwHNa6+1KqSBgm1JqZap9hRA2a4+tZfH+xUzoMAE/bz+3nvvsjbOsOrKKF1q/4Lbmp6k5erP0FGay00Va671KqerAateFJUT+FBkJhw+b+6uMBmeJjTWD2i1ebMZc+OsvKF3a9O9r2NAkfpUrO3Y+pcDf31nRp3TihGkV9uabrjm+TbbKJgeetCvb+q5AJDBMa73dtu4Z4BFAA7uB4Vrrm877SkJkIqM+esWKpR1UJSHB9NO7fBk+/NAkeQcOmJq+qCj47DMzJUNAgDnmHXeYvnJ16ph5+xJH8GzaNLn2Lze7cMG0ix8zxtVNQSF75VML4JDW+giAUmo20AtISuS01meBs0qpbvY7aq1PAadsP19TSoUBFez3FUIY526cY+CCgRT0Lcgb7d5wexK4YN8C4nW8ZU1BwfHRQddi2rYnfj6CeQolhHACrc2UDRMmmFE7T52Cvn3NvMkBAWabQ4dM7d4vv5j7uQIFoFMnuHLFJIE9elj6FdKYN8+8u7ApaLbKJgeftHcBatleLYGvgJa2vj1PAsFa6yil1FxgANLPR7hTYh89ewkJpq33hx/CwYPJyd6DD5qCxccH3n0XqlY1iV379ub9rrvM/jVrwpYtbv8qbvfTTxAfb5pBuFg2750qAOF2nyMwZVCWKKWqAk2AzVndV4i8LkEnMHTxUC5EXmDpI0sJ8g9yewyz9swiuFQwDUs3dPu5E2XWLGEKph377nTWFQT6A9Fa65kuik+IfOHHH2H6dHMPVr26SewGDYJu3eCVV+Duu8HXF3791dT09e5tBttLPb2WJ5k710wOn1iR4Ew5LJsyfdJu+/y91loDm5RSRZVS5WzrfIACSqlYIBA46azvJXKprNTMOUprM2fLjRvmyRCYf1T//mt+HjrUDMISEmKSvMRareefN80I6tQxI3a2tOUPhQqZpgZ+2Xja7Y55+9xl/nyoVs2ltZo5LJ/Sq57U6Sy71fkLAQuAp7XWV9NZPwIYAVDZ0WYjQuQhH2z4gN8O/caXXb8kpGyI288fcTWCdcfX8Wa7Ny1rCgqZ1wR+CYxVSjUE9gDngADM0/HCwDeAJIBC5NAXX8AHH8DRo2YwlV9+MU0pExKgYkWTBFapYuY3duZE7q5y/LgZmOadd1x2ipyUTY48aU9vmwpa661KqYnAcSAKWKG1XpHD7yKczRVJ2a2kVzMHaROnqCiTuJ09a0aoPHvWbPPgg2b900+bf/iJ627ehNtuM/+YwEy78Pff5ue1a00TgISElOc6fz7jtuTZSQDBPfP2ucOlS/C//5nfs2tvvHJSPkUAlew+VyQLD5qUUr6YBHCm1nphettoracAUwBCQ0OzlGAKkdtdjLrI+HXjub/+/YwMHWlJDHP3zgWwtCkoZJIEaq13AvfbniqFAuUwNz5hWusDrg9PiLzl2jXTQmv//uTWWgUKmOaftWubqRS2bzfjFbzyiumuM8Gut1puSAAhuSmoqwbfy2HZ5MiT9nS3UUoVw9QSVgMuA/OUUkO01j+kOYk8bbeOo0lZVt24kTwtwo0b5j1xigQw86Fs2ZKcxIGpjfv1V/PzwIGmOaK9SpWSk0AwiV39+ua9VCkzIEuiFStMjV6hQuaJUXoySgAFLFliOlW7uCloDsunLUAtpVQ14ASmufkgR85r68s8zXaej7IZvhB5WvECxdn48EYqF6lsWS3crD2zaFauGbVK1LLk/Ikc7RN4HVjj2lCE8Cw7d8Lbb5t7ukqVzMNjR+4d4uNNTVhionfqFLz3nln3wAPJ94BeXqbpZ8uWcPvtsHAhzJxpKjFKl4Z168znxJZgucncuaa1Vc2arj1PNssmR560Z7RNB+BfrfU5AKXUQuB2IE0S6NFP291dU+au88XEJJ9n507z1OX6dTOnXZCtz8eHH6ZM4m7cMNXwxYvD99/D5Mkp10VGwrFjUKQIvP666bybkTlz4KuvTI1bqVJmmZdX8jC+jz1mRnAqVSo5yUvcDuCTT279/XJjYeBJ5s83o2Y1b+6W02WnfNJaxymlngCWYwau+sY2qMxI2/rJSqmywFZMrWKCUuppIBhoBDwA7FZK7bQd8mWt9TInfB0hcrUEncCqI6voWKMjDUo3yHwHFzl08RBbT27lg44fWBZDIhlKXYh0/P236XM3diy8/74ZPf2558wD/v/8x2xz5Upybd6AAabP3vjx8NZbZuqsRMWLmwFdAgJMIvngg6a7To0aySNzhoVBu3amtViXLiZRfP11mDTJ3EPmJv/+a0YsTUx8PZAjT9qXAE/Y+gu2BK5orU8ppY4DtymlAjFP9ttjbsZyxlObL7ryfIkDmZw8CYULm9qtCxdg40aTuF27lpzEDRxoqso3bzb/yOzXXbtmpjFo0cJ0rh0+3By/SZPkc+3caTqogukzB+YfbMGCpmPtuHHmGvj4mDjKlDHLE9cn/iPs0wdq1Uq5rmBBM6ImmPbP775rvo9S5rV0aXIcXbo45/eZl/roucuVK6Ym9Ykn3DEqaI7YkrZlqZZNtvv5NObBVGrrSb8VgxD53kd/fsSYlWNYMWQFHWt0tCyOOXvmAHB/fReOmucglyaBMgy7cLaICDPpeYUKZroqV/1f/u678PLL8PDD5h61Qwdzn9m2rXnYf+AAnD6dvH2LFiaxa9zY3GPUrWs+160LJUsmx9muXfrnq1fPdAWaONEkmdWqwaxZ5ny5jaubguaUI0/aMTdgXYFDmLJpuG3dZqXUfGA7Zk6uHdhq+3LEPkmKiTFPEWJizB/P0aMmYalQwazfts0kP4nbxMRA2bKmOhng//7PJEaJ66KjTUKUWI39sG26svvvN+vi4szQsiNtfSM6dDCxJCQkv4YONRNRXrpk5ohLvf7JJ+GhhyA83AxZm5CQcptE+/aZDq7Xr5taNjDf64cfYPBg2LvX1JSlFhJiksDoaHOOQoVMTVqNGubnIkXMdq1amQ62jz9uqtaDgkySZl8lfeWKaYPt65v2PIMGmVdGWrUyr4wULZrxOmfKK3303Onnn82/BzeMCiqE8Cx/hv/Ji/97kT71+tChegdLY5m1ZxZtKrehchHru4lkKQlUShXUWt9wcFsZhl04jdamJm76dHOve+CAuT9etMjc/2ZFZKQZYOXMGZPInTljRkuvWdPUYD3zjGkC+tNPZu5kMGMJtG9vKi6uXzcP9BOn0kqs1QPo3t28sqNWLfj66+zt60nmzDFJcbVq7jtnVsomcOhJuwYez2Df14DXshlq5po2NclQomrVTGL122/mc58+KSfzBjOfSGIS+OKLKZMEb29TO5Z487tmjXnfs8c0W/TxSU7IwFRHe3klv3x8kjujenmZ2ib79V5eyUmYnx80aGCeetivP3LErA8KMkleUJB5vfGGaX7ZooVZ36SJ+ccXFGSSu8QkLvH8bdvCjh0Z/+4S/0E+/jjce2/62xQunPH+2SU1c55v/nwzylbiaKlulNXySQjhPBejLjJgwQAqF6nMtJ7TLB2Nc8/ZPew9t5fPu3xuWQz2HEoClVK3A1OBQkBlpVRj4DGt9ahb7CbDsOdxFy6Y+7eNG6FcOVOREBrqmnNNn276yB05Yh62JyTAq6/CI4+YkTQTu9xERpp5gBOTu8T3YcPMdAvbtqUf4/TpJgn09zfNNkuUMPfibduaJLNePXOsuDgz9kPBgq75nrndoUNmYJtbdZtypmyWTZ7t2WdNjZu/P4weDd9+a25eE82YYTqe+vmZbfz8UiYbBw6YWi5/f/OeejShw4fNP5Z9GcwfvWFDxrEVKZKcjKanTBnTITS1H2xdJitVgil2FadvvGH6ySUKCnJOIeLupExq5jzbtWvm73bkSLe2r8+T5ZMQuYjWmuE/DefUtVNseGgDRQOKWhrP7D2z8VJe9Av2jBYJjtYEfgx0wvSTQWu9SymVWUM1twzDLiPwJYuKMvda69ebxOWhh1wzRxuYge9uv92Mt/DYY2Zu4u7d4dNPcz45eHi4abF19Wry+6RJpitQYKC5Lz571gy4smGDSQqffdZ067l6NWVrsqJFze8isbtV1aqm206ZMmZ54nvp0mZ948Ymifz1V3O/MG6ceXAcEWF+n8OHSwJ4K4n3/25sCpqdssmzPfRQ8s+jR5snGPYyayNcsqTTQ8p1JCkT9n75xTQldn9T0LxXPgmRiyilGNpoKF1rdqV5BfcMCJURrTWz9szi7mp3U6aQZwzy5XBzUK11eKoq1PhMdnHLMOxZGYEvIcHc3K9ebWp6Hngg5QN2Z/v7bzOwyB9/mCTjscfMwCCuGOb/6lXT1aZUKfP/3OHDJkH75hvT3cfZPvrItFD74gvzOT7e3Jv26WO67ly6lJzEXbliagoT//8dMcIkevbru3ZNbgpZp45JaO0VL26+m4+PGfuhZEmTwPn7m6QvcbC3UqVMk87ExC5x4JVEJUrASy9l/v26dDFJZ//+pqVcXJypdXThvHd5wty5psuUO5/HZKNsEu6uKZPmksJK8+eb/4QSm0y7kZRPQlgjJj4GP28/+gb3tToUALae3MqRS0d45Y5XrA4liaNJYLitWYNWSvlh+uuFZbKPW4Zhd1RsrOkicuKEqakKDzdjDcyY4bwB2+wdPmzGVxg3DqZONWM7PPusOf9HLpi95/PPTb+02bOT77W6djWjVrZta5KYxOmjDh82tWiJU1xFRprEtH9/s376dNNdyH59mTJmzjowyfO8eaZrzaxZJkkKDTW1coGByUmovQ4dkpPAw4dNAli4sDlukSIpW4BNmWKSt8KFzboiReDLL02ruBYtTDNUMP30/vMfE29iCx9vb+eN/j1kiBmU8Px5E0NAgHOOm1cdOAC7dmU+yr2TZads8jx5vfmi1MwJq1y/DsuWmad47h9qOW+UT0LkMpeiLnHbtNt4uc3LPBjyYOY7uMHsPbPx9fLl3roZ9Fe3gKNJ4EjMKJ4VMInbCjIYNMGORw3D/t13JlnZssXUJoG5we/f30wBld5AcfYSB+5TyiRUUVGm9isuzrzi400tlJ+fmUt43DiTdLZubY4fG2sSpoYNTWIWHp5y8L6YmOSmhr//bhIc+3UxMWb6qYAAk1TOn59yXViYGSRFKRgzBqZNM8lbdLRpElm4sKlxAzMJ+Zw5Kb9fuXLJSeCCBSaGwMDkV0xM8rZVq5p703r1zBgQgYEmAb150yRoU6ea9UWKJCdy9mMxrFp169/1kCFpl40bZ2o2778fevUy3/frr00S78r/1729ZWouR82da/7+3NziKjtlk+eRJEkI11i2zPznZM2ooHmjfBIiF9Fa89CShzhy6Qh1S9a1OhzAzFE4Z+8cOtfsTLECntMCxtHJ4s8Dg7NyYE8bhv2nn2DUKJMAbttm5mqLizNJS5Uq5mZ/6lTTxHHFCtOnKTHJS3xPHCFy/nyTQKa2ebOpqZo3zzRZhJRjIOzbZ5o6/vBDcq2avV69TBK4YYOZuzhxzIfE8R9iYkwSGBlpEk0/PzPSedGiZrDAxBqykBAz2npAgBm45fHHzXdM9OKL5qGofZJn389tyZJbT73w1lum79y4cea7lC9vfj8vvWSaAmY0KF9OJDbz/OYbM9J3hQpmoJi6nvHvW2CSwDZtkmcycIfslE1CiHxk/nzzJK9NG7efWsonIdzvs78+Y/H+xUzsOJGWFd0/GnB61h9fz4lrJzxignh7jo4OWg0YDVS130drnc6ETsk8aRh2X1/zMBBM0lO3rkkIT50yo5KXKWMSDTD9BIcPTx4Z3cfHvKpWNetDQkySltH6u+82r7JlTTLp7W0StqJFzQAq//d/Zsot+8H97Af4e/VV05cwI08+aV72Zs2CCRNMEjt4sJnq6sMPoVEjs9xeSMitf1eOjJ7bt69p/le/vjnH4cOmL2DqGkZnKlLETN8gPM++faYJcXoPN1wpu2WTECIfiIyEpUvNU19XdMbPhJRPQriO1ppGkxtx5eaVpGUx8TGcuXGGUoGleLbVsxZGl9LsPbMp4FOAHnVcMEhHDjjaHHQxMA34GUi49aaeaeBAM9BHr16mGeP8+abmYts2U7Nk36QwOPjW/Zrq1r11DVSNGmY0y7vvht69zcAsERFmYJjevU2T0FvJzhQmAwaY6bNq1DATkh8+bGowf/4568dyhFKmWel//gM7d5rmpPXqueZcwvMlNgXt6/7+14vJ5WWTEMJFfv3VJILWTRC/GCmfhHAJpRQ1i9ekTok6jGpuZl35due3fLDhA/rW62vpfID24hLimLdvHj3q9KCQXyGrw0nB0STwptb6U5dG4mL9+plROuvUMVMZhIeb0Tt/+cU1fcoaNDCJ5gsvmFq5QoVM7d9bbzn/XGBuwN9/34wov3GjqYW84w7X94MvXtwkuyL/0trUAN95p3kY4Ga5vmwSQrjI/PlmKOnMplVxHSmfhHChcW3H0e3Hbrx252sU8C3Ao00f5ZM/P+G1dk5rSJhjq46s4nzkeQY2SKcfmcUcTQInKaVew3Rqjk5cqLXe7pKoXEApM4LmqFGwZo0ZrbJnT9OnzlXatoVNm8zgLL6+7hmYrFKl5AFehHCHPXtg//60TZTdJNeXTUIIF4iKMk95Bw1KHg3O/aR8EsKFmpRrQvMKzek4oyOvt3udnw/8zPAmwylbqKzVoSWZvXc2hf0L07lmZ6tDScPRkrEh8ABwN8lNGrTtc64SHGxe7pR6rjoh8pI5c8wDDguagkIeKpuEEE60YoWZHsK6pqAg5ZMQLnX6+mmOXz7OzjM7+fWfX5nx9wz2Pb7P6rCSRMdFszBsIffWvZcAH8+bZ8zRJPBeoLrWOibTLYUQ+YbWpj/gXXdB6dKWhCBlkxAirXnzTH+Fdu2sjELKJyFc5K8Tf9FnTh8uRl0ktHwo88PmMyxkmEfVAv566FeuRl/1yKagAI42UNwFFHVhHEKIXGjnTvjnH0ubIEvZJIRIKTrazHV0772ZTwLsWlI+CeECu8/spu23bfH19uXPh/9kSvcpXIu+xgutX7A6tBRm75lNycCS3F3NMyv/Ha0JLAPsV0ptIWW7dhnmWIh8bO5cM/K6K+aGdJCUTUKIlFauhGvXrG4KClI+CeESDUo34PV2r/NI00coGVgSgNPPn8bP28/iyJLdiLnBzwd/Zmijofh6W/owKkOOJoGeM8yOEMIjJDYF7dDBDMBnESmbhBApzZtnJua1fuhqKZ+EcJLzked57JfHeL/D+9QoXoMX27yYYr0nJYAASw4sITI2koENPbMpKDiYBGqt/3B1IEKI3GXbNjhyxMwXaRUpm4QQKcTEwE8/meYJftbeFEr5JIRz7Dy9k96ze3P6+mmGNhpKjeI1rA4pU7P3zqZ8UHnaVG5jdSgZumWfQKXUetv7NaXUVbvXNaXUVfeEKITwRHPnmpHXe/d2/7mlbBJCpGvVKrhyxdKmoFI+CeE8s/fM5vZptxOv41n/0Hp61e1ldUiZuhR1iV//+ZX+9fvjpdwwP1w2ZVYTOAZAax3khliEELlEYlPQe+4xA/BZQMomIURa8+ZB4cKmnbp1pHwSwgnm7JnDwAUDaVO5DfPvm0+ZQmWsDskhi/YvIjYhlgENBlgdyi1llp5+4ZYohBC5yl9/wbFjcP/9loUgZZMQIqXYWFi8GHr1snqCXimfhHCCHnV68M7d77Bq6KpckwCCqb2sXqw6zcs3tzqUW8osCVRuiUIIkavMmWO62/SyrlWGlE1CiJRWr4ZLlzxhVFApn4TIpr1n99JzVk+uRV8j0DeQl+54yeMGfbmVszfOsurfVQyoPwClPLsoyKw5aDWl1JKMVsowx0LkPwkJpsVVp05mAD6LSNkkhEhp/nwoVMi0U7eWlE9CZMOisEU8sOgBgvyDOHr5KA3LNLQ6pCybt3ceCTrB45uCQuZJ4DngQ3cEIoTIHf78EyIiYMIES8OQskkIkSwuDhYtgh49ICDA6mikfBIiCxJ0Am+seYM3175JiwotWHj/QioUrmB1WNkye+9s6peqnysS2MySwGsyxLEQwt7cuaa7TY8eloYhZZMQItkff8D583DffVZHAlI+CZElL696mfc2vMfwkOF82e1LAnwsf5CTLeFXwll/fD1v3fWW1aE4JLMk8Kg7ghBC5A7x8aYpaNeuZgA+Cx219OxCCM8yfz4ULAidO1sdCUj5JESWPN78caoVrcaIZiM8vh/drczZOwcgVzQFhUwGhtFa93FXIEIIz7dhA5w6ZemooICUTUIIO/HxsHAhdOsGBQpYHY2UT0I4YNk/y3hg0QMk6AQqFanEY6GP5eoEEMyooKHlQ6lZvKbVoTjEc2cwFEJ4nLlzzT1W9+5WRyKEEDbr1sHZs57SFDTHlFKdlVIHlFKHlFIvprO+rlLqT6VUtFLq+azsK4TVtNa8u+5duv/Ynb1n93Ip6pLVITnFPxf+YdupbQyonztqASHz5qBCCAGYh+3z55uH7YUKWR2NEELYzJ9vnk516WJ1JDmmlPLGzDPYEYgAtiillmit99ltdhF4EuidjX2FsMyNmBsM/2k48/bNY2CDgUztOZVA30Crw3KK2XtmA3B/fYubSmXBLZNApVTTVIs0cF5rHe66kIQQnmjtWjhzxvqmoCBlkxDCJj4eFiwwHZULFrQ6GiDH5VML4JDW+ojtWLOBXkBSIqe1PgucVUp1y+q+Qlip79y+rDyykokdJ/Jsq2dzffPPRFprZu2ZxR2V76BSkUpWh+OwzGoC0xviuLhSyg8YqLXe6fyQhBCeaM4cCAw0NYEeQMomIQRs3AinT3taU9CclE8VAPtkMQJo6eB5HdpXKTUCGAFQuXJlBw8tROaWH1rOlegraZaXLliadlXbMe7OcTzb6lnuqWH5XJ5OtefsHsLOh/FF1y+sDiVLbpkEaq3vSm+5UioU+BRo64qghBCeJS7OPGzv0cMkglaTskkIAZimoAEBpibQQ+SwfEqvakQ7eGqH9tVaTwGmAISGhjp6bCEy9fCSh6lQuAJVilQBTA3ZxvCNxOk4zjx/htsr3W5xhK4xa88svJU3/YL7WR1KlmRrYBit9VZAegUJkU+sXm2m4Orf3+pIbk3KJiHykYQE83Sqc2cICrI6mkw5WD5FAPbtySoCJx08RU72FSLHXmj9AuUKlWPufXP5rvd3BPgEcPL6SaoUqUJ8QrzV4bmE1prZe2bTvnp7ShcsbXU4WZKtJFApVQbHn0wJIXK5uXPNYDCeMQVXxqRsEiIf2bQJTpzwtKagGXKwfNoC1FJKVbM1Hx0ALHHwFDnZV4gce7Tpo2w5uYU5e+Zwx7d3MHP3TEoWKMmGhzbg7eVtdXguseXkFv69/G+uGhU0UWYDw3xG2gKrOHA78JSrghJCeI7YWDMFV69eHjEFFyBlkxAC0xTUz8/j5qzJSfmktY5TSj0BLAe8gW+01nuVUiNt6ycrpcoCW4HCQIJS6mkgWGt9Nb19nfjVhLilAr4FeKrlUwxeOJjC/oWpW7Iur7Z9FV9vX6tDc5lZu2fh6+XLvfXutTqULMtsYJitqT5r4ALwrG10KiFEHrdqFVy86BmjgtqRskmI/ExrkwR26gSFC1sdTWo5Kp+01suAZamWTbb7+TSmqadD+wrhapdvXmbW7lmMDB3J6BajeW/DezzZ4klm7ZlF//oe3o8kB+IT4pmzdw5danWhaEBRq8PJsswGhvlOKdUEqAHs1VqHuScsIYSnmDvX3GN16mR1JMmkbBIin/vrLwgPh7fftjqSNKR8EvlFdFw0X275krfXvc2lqEvcVvE2mpRrwmt3vsZTvz3FzD4z82wzUID1x9dz6vopBjYYaHUo2XLLPoFKqbHAHKAvsFQp9ahbohJCeISYGFi0CHr3Bn9/q6NJJmWTEPnc/Png6ws9e1odSRpSPom8LkEn8OPuH6n7RV2eXfEsoeVD2f7YdpqUawKYvoHj2o7L07WAYEYFDfQNpEftHlaHki2ZNQcdAIRorSOVUiWA34D/c31YQghPsHIlXL7scU1BQcomIfKvxKagHTtC0aJWR5MeKZ9EnnYz7iZjVo6hdMHSrBiygo41OqZYX8C3AG/c9YZF0blHbHws8/fNp0ftHhT0K2h1ONmS2eigN7XWkQBa6wsObC+EyEPmzDH3WB07Zrqpu0nZJER+tW0bHD0K/Tx2Ti4pn0Se8/eZv3lkySPExMcQ6BvI2mFr2TZiW5oEML9Y9e8qLkRdyLVNQSHzmsAaSqnE4YVVqs9orT2vHYYQwilu3oSffoK+fc0AfB5GyiYh8qv588HHxwxZ7JmkfBJ5xvErxxm3ehzf7/qeogFFebz54zQp14QaxWtYHZrbVfyoIieunUixrPec3lQIqkDEsxEWRZV9mSWBqUvYia4KRAjhWZYvh6tXPXaCeCmbhMiPEpuCtm8PxYtbHU1GpHwSud7NuJu8tvo1Jm2eBMDztz/PS21eoliBYhZHZp2edXoybcc0YuJjkpb5efvRq47HPpC6pcxGB/3DXYEIITzL3LlQogTcfbfVkaQlZZMQ+dSuXXD4MLz4otWRZEjKJ5Gbaa1RSuHn7cfvR39nQIMBvHnXm1QuUtnq0Cw3tu1Yvt35bYpl3sqbsXeOtSiinMlsdNBeSqnH7T5vVkodsb08tjG+ECJnoqJgyRLo08cMwOdppGwSIp+aNw+8vc2QxR5KyieRGyXoBGb+PZOmU5pyIfICXsqL9cPXM733dEkAbcoFlaN9tfZJn329fBkeMpyyhcpaGFX2ZdZZ+QVgid1nf6A50A74j4tiEkJY7Ndf4fp1jxwVNJGUTULkN1qbJPCuu6BkSaujuRUpn0Su8r8j/yN0SihDFg1BoTh74ywA/j4eNDeUB9h9Zjd/HPsDhQLAx8sn19YCQuZ9Av201uF2n9fbRrq6oJTKneOhCiEyNXculCoF7dpZHUmGpGwSIr/Zswf++Qeee87qSDIj5ZPwCNeirxEVF5VmeQGfAgT5BxEdF02v2b1Yfng5VYpUYWafmQxoMAAvJQPapnbq2im6/diNwv6FubfuvczcPTNX1wJC5klgit6fWusn7D6Wcn44Qgir3bgBP/8MQ4eaAfg8lJRNQuQ38+aBlxfce6/VkWRGyifhEWp/XpsbMTcI8AlIWnYz7iZFA4py/Jnj+Pv4U7FwRT6850Meb/641Pxl4EbMDXrO7smFqAusG76OcoXKsSF8Q66uBYTMk8DNSqlHtdYpJjlVSj0G/OW6sIQQVlm2DCIjPXZU0ERSNgmR38yfD3feCaVLWx1JZqR8Eh7hwcYPcuXmFb7q/hUAl6Iu0fbbthy4cIAD5w9Qp2QdpvacanGUni1BJ/DAogfYdnIbiwcspmm5pgAcfvKwxZHlXGZJ4DPAYqXUIGC7bVkzTPv23i6MSwhhkTlzoEwZuOMOqyO5JSmbhMhP9u2DsDB44onMt7WelE/CIzzX6jlqf1abwY0G82f4n4xfN54r0VcY2GAgQf5BVoeXK/x35X9ZtH8RH3f6mJ518tYUn5lNEXEWuF0pdTdQ37Z4qdb6d5dHJoRwu+vXYelSePhhMwCfp5KySYh8Zt48UMoMWezhpHwSVoqNj2Xn6Z3ciL1Bu6rteLTZo9z13V3EJcRRIagCA+oPYHKPyVaHmStM2TaFiX9OZFToKJ5q+ZTV4TidQz1+bAWXFF5C5HE//ww3b3p8U9AkUjYJkU/Mn2+aJ5TNPYMwSPkk3OWPo3+w8shKNoRv4K8TfxEZG0mTsk3Y/th2xtw+hi+3fMnX3b/mhZUv8G6Hd60ON1dYcXgFo5aOokvNLkzqMgmllNUhOZ0M/yOESDJ3LpQvD61bWx2JaymlOiulDiilDiml0sw6rYxPbev/Vko1tVtXVCk1Xym1XykVppRq5d7ohchn9u83I4P2kyn2RP6mtebIpSPM2DWDF/+X/F/XF1u+YML6CVyLvsYjTR5hTr85/DzwZwBKFSzFEy2eYPSvo3m8+eMUK1Aso8MLmz1n93DfvPsILhXM7H6z8fHy3FHyciJvfishRJZdvWrmBxw50gzAl1cppbyBL4COQASwRSm1RGu9z26zLkAt26sl8JXtHWAS8JvWup9Syg8IdFvwQuRH8+eb91zQFFSIW3lh5QucvHYyzfLSBUvzUaePMtxv1ZFVfLX1KzaEb+D09dMAFPYvzAutX6B4geJ83Oljvun1DYX8CqW7/3OtnmNj+Eaevu1pp3yPvOzM9TN0/7E7gb6B/DLoFwr7F7Y6JJeRJFAIAcCSJRAd7dETxDtLC+CQ1voIgFJqNtALsE8CewHfa601sMlW+1cOuAG0BYYBaK1jgBg3xi5E/jN/vmmeUKGC1ZEIkSM7T++kSEARetXplbRs6T9L2XZqGwAXoy7yZ/ifbAjfwIbwDXzR9QsalG7AyWsn2XZqG+2rtad1pda0rtya+qXq4+1lOu9XKHzrfxulCpZi7fC1rvtieURkbCQ9Z/fk7I2zrB2+lspFKlsdkktJEiiEAMyooJUqwW23WR2Jy1UA7CdyjiC5lu9W21QA4oBzwLdKqcbANuAprfUN14UrRD72zz+waxd8/LHVkYg86O7v7uafi/+kWV4ysCQ7Htvh9PO9dudrDFk0hJl9ZuLr5UtUXBRv/PEGL7V+ifpf1mffOfMs0lt506RcE67cvALAkEZDeKDxA06PRyRL0AkMXTSULSe2sLD/QkLLh1odksu5NAlUSnXGNJ3yBqZqrSekWq9s67sCkcAwrfV227qiwFSgAaCBh7TWf7oyXiHyq8uXYflyGD06bzcFtUmvd7d2cBsfoCkwWmu9WSk1CXgRSDNjrFJqBDACoHLlvP00UQiXWbDAvPfta20cwi0mbZrEsSvH0iwv7F+Y19u97vTzBZcKpkrRKrzZ7s2kZZ9s+oST19M22czMoYuHuHzzcopXzeI1aVe1HTHxMTz000NmedRlqk2qRnRcNO2qtqN8UHl61+3NvLB5DGwwkNaVWtOiQgsK+hVMOnZeHJTE07y86mUWhC1gYseJ9K7b2+pw3MJlSaD0uxEi9/jpJ4iNzT2jguZQBFDJ7nNFIPX/+Blto4EIrfVm2/L5mCQwDa31FGAKQGhoaOokUwjhiHnzTPOESpUy31Y43au/v8qBCwfSLC/oW5BpPaclNUd0luWHlxObEEuXml2Slm0+sZnfDv3Ga3e+5vRk6L+t/0vjyY15r8N7RMZGcvzKcb7Z+Q3j7hzH1O1TKRVYil51TdPNJ5Y9wbErx5ISvEtRl+hUoxPTek0DoMnXTbgecz3F8R8KeYh2Vdvh6+XLlpNbCPILokbxGoSdD6N//f78dug3ZvaZSfHA4vw6+FenfjfhuKnbp/Lehvd4rNljPNvqWavDcRtX1gRKvxshcok5c6BqVWje3OpI3GILUEspVQ04AQwABqXaZgnwhK3caglc0VqfAlBKhSul6mitDwDtSVmmCSFyqnBhuHYt5TKlICjIjGAl3ObYlWPciLnB8JDhSctW/buKzSc246Wc32xkbNuxDFgwgKWDluLn7YfWmtbftGbcneMAuBFzg+sx17kec51rMdeIjY+leQXzH9fyQ8s5eOFg0vrrMdcp7F+Yt+5+C4BRS0exKWJTivX1S9dnUMNBTNw4keWHl/P3mb8BeHa5SQTaVW2XlATuP7+fSzcvUTSgKLVL1Kaof1Fuq5jcf+LbXt/i7+1P0YCiSa/iBYoDpibvwBPJyfQ9M+4h4moEtUrUol3Vdk7/PQrHrTqyiv8s/Q/31LiHz7p8lq9qXV2ZBEq/GyFygYsXYeVKePZZc5+V12mt45RSTwDLMU3Vv9Fa71VKjbStnwwswzRTP4Rpqj7c7hCjgZm2FgpHUq0TQuRU6gQws+XCZV6941XafNuG2f1mU9i/MFpr3l3/Lq/e8SqRsZFExUVRLKAY3l7enL1xluNXjnMz7maKV886PfHz9mP98fX8Gf5nmvWfdf0ML+XF11u/5qcDP3E9+jr1vqhHYf/CXLl5hQCfAO4Lvo8HFj3AzN0zU8RXKrAUZ8ecBeCrrV/x04GfANOnLsg/iLol6/IWJgks6FuQCoUrUMivEEF+QRTyK0T1YtXpXbc3jb5qxIf3fMgzy5/h0y6f0qRsE4oGFE0xncL/hv7vlr+rfsGOT2Hy2p2v0ebbNvw+9Pd8lXR4mn3n9tF3bl/qlKjD3H5z8fX2tTokt3JlEij9boTwcDNnwpNPQlwcfP89NGoEgwdbHZXraa2XYRI9+2WT7X7WwOMZ7LsTyPs9xoUQ+V6dknXoXLMzn23+jDKFyjD619HcjLtJv3nJCc+RJ49QrVg1vtnxDS+teinNMc4+f5ZSBUvx26HfGL9uPAA+Xj4E+AQQ4BPAxHsmUsC3AFeir3A+8jyVilTiwIUD1CtZj4grEYy/ezzeXt7cX/9+GpdpTCG/QkmvIgFFks4ztedUpjKVQn6F8Pf2T5NcfXDPBxl+z0ENB/H6H6/TpVYXhjYemtNfW6ZaV27Nlke30KxcM5efS6Tv7I2zdPuxGwE+ASwdtDTF31J+4cokUPrdCOHBZs6EESMgMtJ8Pn3afIb8kQgKIYTIXGJt4A/3/kCQXxDdanWjcZnGSUlcYm1Zn3p9qF+qPgE+ARTwLZBm/St3vMJLbV7C38c/3cm3X2j9Ai+0fgGAzj90pqBfQUoVLMX99c28RT3r9IQ6GcdZMrBktr/ji21eZObumYxtm6auwWXyw+iTnioqNopes3tx5voZ1gxbQ5WiVawOyRKuTAKl340QHuyVV5ITwESRkWa5JIFCCEvExlodgUglsTZwwoYJVChcgXn3zUu3CWPtErWpXaJ2hscp4FvA4XO+dudr3P7N7czqO8vpg8+kp2Lhipx5/gx+3n4uP5ewVoJOYNhPw9gcsZn598+nRYUWVodkGZcNBq+1jgMS+92EAXMT+90k9r3BNMc6gul383/AKLtDJPa7+RsIAd5xVaxC5EfH0o7CDcDx4+6NQwghANAaRo7MfLs8TinVWSl1QCl1SCmVphWUMj61rf9bKdXUbt0zSqm9Sqk9SqlZSqkAZ8T06h2vsvbYWpeM0JmeVpVa8evgX7kv+D6XnyuRJID5w9jfxzJ371ze6/Aefer1sTocS7l0nkDpdyOEZ7p2Dfz8ICadMXela60QwhJvvQXffJNx4RQU5P6Y3Cwn02sppSoATwLBWusopdRcTCus6TmNq07JOuwauYv6pern9FAO61yzs9vOJfKHb3d8yzvr3+HRpo/y/O3PWx2O5fL+tNBCiBSio+Hee81gMP7+KdcFBsL48dbEJYTIx777Dl57DR58EG7eNLWCqV/5Y3qIpOm1bNNjJU6vZS9pei2t9SYgcXotMA/3CyilfDDzK2d91vMMNCjdQEayFLnW6n9XM+KXEXSs3pEvun4hf8tIEihEvpKQAEOHwqpV8O23MG0aVKlipoaoUgWmTJH+gEIIN/vf/+CRR6BDB1MI5e+bs4ymzsp0G631CWAicBw4hRlnYYULYxUiV9h/fj995vahdonazLtvXr6bCiIjLm0OKoTwHFrDU0/B3LnwwQcmGQRJ+oQQFvr7b+jTB+rVg/nzTVPQ/C3b02sppYphagmrAZeBeUqpIVrrH1LsLFNriXzk3I1zdPuxG37efvl2KoiMSE2gEPnEO+/A55/D88+blxBCWCoiArp2hcKFYdkyKCI3Z+Rseq0OwL9a63Na61hgIXB76hNoradorUO11qGlSpVyavBCeJKbcTfpPac3J6+dZMmAJVQtWtXqkDyKJIFC5ANTp8Krr8IDD8B771kdjRAi37t6Fbp1M+9Ll0LFilZH5CmSptdSSvlhBnZZkmqbJcBQ2yiht5E8vdZx4DalVKAyHZ7aY0ZnFyLf0Vrz0E8PsTF8IzPunUHLii2tDsnjSHNQIfK4xYvhscegSxfTB9BLHv0IIawUGwt9+8K+fSYBbNzY6og8htY6TimVOL2WN/BN4vRatvWTMaOud8VMrxUJDLet26yUmg9sB+KAHcAU938LIaz32prXmLVnFu+2f5d+wf2sDscjSRIoRB62di0MGADNm8O8eeArfaGFEFbSGkaMMIPBfPst3HOP1RF5nBxOr/Ua8JpLAxTCw32/63veWvsWDzd5mP+2/q/V4XgsqRMQIo/avRt69oRq1czD9oIFrY5ICJHvvfkmTJ8Or78Ow4ZZHIwQIq/54+gfPLLkEe6udjdfdftKpoK4BakJFCIPOnoUOnWCQoVg+XIoUcLqiIQQ+Z598jdunMXBCCFyu4ofVeTEtRNplvt4+TD/vvkyFUQmpCZQiDzm3DmTAEZFmQRQRgAXQlhu5Up49FHo2FHmAhRCOEXPOj3x8047rUz/+v0pVqCYBRHlLpIECpGHXL9uBtw7fhx++QXq17c6IiFEvrdrlxkIJjjYzAUonZOFEE4wtu1YvFTKVMbP24+J90y0KKLcRZJAIfKImBhzn7V9u5kQvnVrqyMSQuR7ERHmyVThwqZzcuHCVkckhMgjygWVo0vNLkmfvZU3jzR5hLKFyloYVe4hfQKFyAMSEmD4cFixAr75Bnr0sDoiIUS+d+WKmQz+2jVYt07mAhRCOE1UbBTjVo/jpwM/JS3z8/Zj7J1jLYwqd5EkUIhcTmt47jn48Ud4912TDAohhKViYqBfPwgLg19/hUaNrI5ICJFHbIrYxPCfhrP//H4ea/YYcQlxfLvzW4aHDJdawCyQJFCIXO799+GTT+Cpp+C/Mh2OEMJq9nMBTp8OHTpYHZEQIg+4GXeT11a/xsQ/J1KxcEVWPrCSDtU7cOraKVYfXS21gFkkSaAQudi338KLL8LAgfDRRzLgnhDCA7z+Onz3HbzxBjz4oNXRCCHygL9O/MWwxcMIOx/Go00fZeI9Eynsb/oYlwsqx+EnD1scYe4jSaAQudQvvySPuD59OnjJME9CCKt9842ZEH74cBgrT+WFEDkTHRfN62te5/2N71M+qDy/Df6NTjU7WR1WniBJoBC50MaNcP/90KQJLFgAfmmnyRFCCPdavtw0A+3YEb7+WpomCCFyZOvJrQxbPIy95/bycJOH+fCeDykSUMTqsPIMSQKFyGX27oXu3c1Ae8uWQVCQ1REJIfK9nTvNQDANGshcgEKIHImOi+bNP97kvQ3vUbZQWZYNWkaXWl0y31FkiSSBQuQix49Dp04QEGCmgyhVyuqIhBD5Xni4mQuwaFGZC1AIkSPbT23nwcUPsufsHoaHDOejTh9RNKCo1WHlSZIECpFLXLhgEsDr12HtWqha1eqIhBD5XuJcgNevw/r1UKGC1REJIXKhmPgY3l77Nu+se4cyhcqwdNBSutbqanVYeZokgULkAjdumAft//5ragBlyi0hhOViYqBvX9i/H377DRo2tDoiIUQutOPUDob9NIy/z/zN0MZD+aTTJxQrUMzqsPI8SQKF8HCxsXDffbBlixkEpm1bqyMSQuR7WsMjj8CqVWY6iPbtrY5ICJHLxMTH8M66dxi/bjylAkuxZMASetTpYXVY+YYkgUJ4sIQEePhh+PVXmDIFeve2OiIhhABeew1mzDDTQQwdanU0QohcZtfpXQz7aRg7T+9kSKMhTOo8ieIFilsdVr4iSaAQHuzFF8191ltvmTkBhRDC7QoXhmvX0i739YVXX3V/PEKIXCs2PpZ317/LW2vfokSBEizuv5hedXtZHVa+JEmgEB7qww/hgw/g8cfhlVesjkYIkW+llwCCaasucwEKIRy0+8xuHlz8IDtO72BQw0F82vlTSgSWsDqsfEuSQCE8yMyZJuE7dsx8btkSJk2S+ywhhBBC5E6x8bG8t+E93vzjTYoVKMbC+xdyb717rQ4r35MkUAgPMXMmjBgBkZHJy/7+G2bPhsGDrYtLCCGEECIzFT+qyIlrJ9Is9/XyJTYhlgENBvBZl88oGVjSguhEal5WByCEMF5+OWUCCBAVJU1BhRAW0RoWL7Y6CiFELtGzTk/8vP3SLPfx8mH+ffOZ1XeWJIAeRJJAISymNSxZAsePp78+o+VCCOEyBw+aSeDvlSZbQgjHjG07FkXK/iveypu/Hv2LvsF9LYpKZESSQCEsFBYGnTtDr15moL30VK7s3piEEPnYjRumWULDhrBxI3zyCRQqlP62QUFuDU0I4bmi46JZfng5Bf0KJi3zVt481uwxGpRuYGFkIiOSBAphgcuX4ZlnoFEj2LzZ3Gf93/9BYGDK7QIDYfx4KyIUQuQrWsP8+VCvHrz7LgwYAAcOwFNPmdFBtU77unrV6qiFEBY7H3met9e+TZVPqjD8p+GUKVgGHy8z5Iiftx9j7xxrcYQiI5IECuFG8fEwdSrUrm1G/XzoIfjnH3Of9eCDZkL4KlXMaKBVqpjPMiiMEMKl9u+He+6B++6D4sVh3Tr47jsoW9bqyIQQHmr/+f2M/GUklT6uxNjVY2larikrH1jJ3lF7ebTpo3gpL4aHDKdsISlHPJWMDiqEm2zYAE8+Cdu3Q5s28Ntv0LRpym0GD5akTwjhJteuwVtvwccfQ8GC8NlnMHIk+MitgZWUUp2BSYA3MFVrPSHVemVb3xWIBIZprbfb1hUFpgINAA08pLX+033Ri7xMa83qo6v56M+PWPrPUvy9/RnaeChP3/Y0waWCk7Yb23Ysyw8vl1pADyclvRAuduIEvPAC/PgjVKgAs2ZB//4y958QwiJaw5w58NxzcPIkDB8OEyZA6dJWR5bvKaW8gS+AjkAEsEUptURrvc9usy5ALdurJfCV7R1Mcvib1rqfUsoPSNXJQIisi4mPYfae2Xz050fsOrOLUoGleP3O1/lP8/9QumDacqNcUDkOP3nYgkhFVkgSKISL3LwJH34I77xjmoG++iq8+KJ54C6EEJbYuxdGj4bVq01ThPnzoVUrq6MSyVoAh7TWRwCUUrOBXoB9EtgL+F5rrYFNSqmiSqlywA2gLTAMQGsdA8S4MXaRx1yMusjXW7/ms78+49T1UwSXCmZqj6kMbjSYAJ8Aq8MTOSRJoBBOpjX89BM8+yz8+y/06QMTJ0K1alZHJoTIt65ehTfegE8/NaN6fvkljBgB3t5WRyZSqgCE232OILmW71bbVADigHPAt0qpxsA24Cmt9Q3XhSvyooMXDjJp0ySm75pOZGwk99S4h297fcs9Ne5BSTOmPEOSQCGcaN8+M8jL//4H9eub9/btrY5KCJFvaW3aoj//PJw5A488YponlJQJmz1UenfY2sFtfICmwGit9Wal1CTgRSBFxyyl1AhgBEBlmYNI2GitWXtsLR9t+oifD/yMr7cvQxoO4enbnqZhmYZWhydcQJJAIZzg0iV4/XX44gvzkP3TT+E//5HxFYQQFtq9G554AtauhdBQ00ShRQuroxK3FgFUsvtcETjp4DYaiNBab7Ytn49JAlPQWk8BpgCEhoamTjBFPhMbH8vcvXP5aNNHbD+1nZKBJXm17auMaj5KRvbM4+QWVYgciI+HadPglVfg4kXTuuqtt+QhuxDCQpcvw2uvmadSRYuauWYeekiafuYOW4BaSqlqwAlgADAo1TZLgCds/QVbAle01qcAlFLhSqk6WusDQHtS9iUUIsmlqEtM2TaFz/76jBPXTlC3ZF2+7v41DzR6gAK+BawOT7iBJIFCZNO6dabp544d0LatmfcvJMTqqIQQ+VZCAsyYYYYjPncOHnsM3n4bSpSwOjLhIK11nFLqCWA5ZoqIb7TWe5VSI23rJwPLMNNDHMJMETHc7hCjgZm2kUGPpFon8pmKH1XkxLUTaZYX9DUj1N2IvUH7au2Z0mMKnWt2xkvJ9OH5iSSBQmRReLi5x5o9GypVMiOt33efTPkghHCTwoXNHH+peXmZRLBlS1i2DJo1c39sIse01sswiZ79ssl2P2vg8Qz23QmEujI+kXv0rNOTaTumEROfcpDYqLgoHmj0AM/c9gyNyza2KDphNUn5hbiFmTOhalVzb1W5skn26taFxYth3DjYvx/uv18SQCGEG6WXAIJJAKdNg40bJQEUIp/TWtOtVjfiE+JTLPdRPmwfsZ3pvadLApjPSU2gEBmYOdP08YuMNJ/Dw82rRQtT+1e1qqXhCSFEWg89ZHUEQgiLJOgENkVsYv6++czfN5/wq+F4KS8UCo3G18uXR5s+KsmfACQJFCJDL7+cnADaO3NGEkAhhAW0hs2bM99OCJFvJOgENoZvZN7eeSwIW8CJayfw8/bjnhr38NZdb9GiQguaTmnKzbib+Hj5MPbOsZkfVOQLkgQKkUpYGHzzDRw/nv76jJaL3EMp1RmYhBl4YarWekKq9cq2vitm4IVhWuvtduu9ga3ACa11d7cFLvKnK1dM04Svv4a//7Y6GiGExeIT4ll/fD3z9s1jYdhCTl0/hb+3P51rdmZC8AR61O5BkYAiSdsPDxnO19u+ZnjIcJn2QSRxaRIoN1oit7h2DebONd1p/vzTzO8XGJh+TaDMrZu72cqVL4COmPm2tiillmit7YdS7wLUsr1aAl/Z3hM9BYQBhd0StMh/tIatW03iN2uWKYyaNIHJk2HkSKujE0K4WVxCHGuPrWX+vvksDFvImRtnCPAJoGutrvSr14/utbsT5B+U7r5j245l+eHlUgsoUnBZEig3WsLTaW3GT5g2zSSAN25AvXowcSI88ACsXJmyTyCYxHD8eOtiFk7RAjiktT4CYJtrqxcp59PqBXxvG4Vvk1KqqFKqnNb6lFKqItANGA886+bYRV537Rr8+KNJ/nbsMIXOwIFmuofQUDMK1Zgx6Q8OE5T+DaAQIneKjY9lzdE1zN83n0X7F3Eu8hyBvoF0q9WNfsH96FqrK4X8CmV6nHJB5Tj85GE3RCxyE1fWBMqNlvBIp0/D99+bJp8HDkChQuYe66GH4Lbbkkf6HDzYvL/yimkCWrmySQATl4tcqwIQbvc5gpQPnzLapgJwCvgEeAGQO27hPNu3m8Tvxx/h+nVo1MhM9j54MBQpknLbq1etiVEI4XKx8bGs+ncV8/fNZ/H+xVyIukBB34J0r92d+4Lvo3PNzhT0K2h1mCIPcGUSKDdawmPExZlps775Bn75BeLjoXVr+O9/zbQPhTJ4kDZ4sCR9eVB6E3poR7ZRSnUHzmqttyml2t3yJEqNAEYAVJY2xCI916+bCUe//to0/SxQAPr3N7V+LVvK3DNC5EEZTeBeokAJetTpwU/7f+LSzUsE+QXRo04P7gu+j041OlHAt4AF0Yq8zJVJoNxoCcsdPGgSv+++MzWAZcrAc8+ZWr86dayOTlgkAqhk97kicNLBbfoBPZVSXYEAoLBS6get9ZDUJ9FaTwGmAISGhqYu+0R+tmuXSfx++ME06wwOhk8/hSFDoFgxq6MTQrhQRhO4X4i6wMKwhfSq04t+wf24p8Y9BPgEWBSlyA9cmQTKjZawxI0bMG+e6eu3fj14e0PXrvDww+bd19fqCIXFtgC1lFLVgBPAAGBQqm2WAE/YmrG3BK5orU8BL9le2B5QPZ9euSREGpGRZoLRr7820zz4+5tmCI89ZpolSK2fEHnajZgbbD6xmUJ+hYhLiEuxzlt5M733dO4Lvg9/H3+LIhT5jSuTQLnREm6TOH3WtGmmddX161C7NkyYAEOHQrlyVkcoPIXWOk4p9QSwHDNy8Tda671KqZG29ZOBZZhRiw9hRi4eblW8IhcoXDjjgVo2bjSJ34wZZqqHOnXgo49MwVSihPtjFUK4xalrp9gQvoENxzewPnw9O07tIF7Ho1AUK1CMyzcvk6ATkiZwH9JIbnOFe7ksCZQbLeEKM2emHKjlhRcgKso0+dy3zwykd//9prlnmzbycF2kT2u9DFP+2C+bbPezBh7P5BhrgDUuCE/kNuklgInLGzYEPz/o29fU+rVtKwWTEHlMgk4g7FwYG8I3sP74ejaEb+DIpSMAFPApQIsKLXixzYu0rtSaVpVaERUbRfVPq8sE7sJSLp0nUG60hDPNnJlyyoZjx+Bx219Py5YwZYoZU6GwTCgihPAUH3wAw4ZByZJWRyKEcJKbcTfZenIr64+vZ/3x9WwM38ilm5cAKF2wNK0rtebx5o/TulJrmpRrgp+3X4r9iwYUlQncheVcmgQK4SxHj8JTT6U/eXu5crBpk9tDEkLkZ1rDkSPwv//dervnn3dPPEKIbMlotM4KQRWIeDYCgPOR59lwfENSTd+2U9uSBnapW7Iufer1oU3lNrSu1JqaxWuiHKjtlwnchdUkCRQe6eRJWL3avH7/Hf79N+NtT592X1xCiHzs/HlTIK1caZK/o0etjkgIkUPpjdbp6+VL7RK1eWTJI6w/vp4DFw4A4OftR2j5UJ5q+RRtKrfh9kq3UzIwe7X8MoG7sJokgcIjnD8Pa9aY+6vVq2H/frO8aFFo1w6eftoM8nLqVNp9ZWYQIYRLREXBunUm4fvf/2DHDrO8SBG46y5Ty9exo8w3I0Qu9mLrF5m2Y1qKZbEJsaw+upqdp3fSunJrhoUMo03lNoSWD5VpG0SeIUmgsMSVK7B2bXLSt2uXWV6woBk34eGHzT1WSIiZ4gHMQHr2fQLBDAQzfrzbwxdC5EXx8bB9e3LSt2EDREebeWVuvx3efhs6dIBmzcDH7r/PoKCMRwcVQniUq9FX2RSxKak/36aITSlqAb2UF3dUvoMvu31J3ZJ18VJeFkYrhOtIEijc4sYNcz+VmPRt3QoJCWaqrNatzb3VXXdB8+YZz+M3eLB5tx8ddPz45OVCCJElWsPhw8lJ3++/wyUzuAONG8MTT5ik7447zBOqjFy96p54hRBZdvLayaSEb/3x9ew6s4sEnYCX8qJJ2SaMaDaC+qXqM/rX0UTHR+Pv7c/sfrNlsBaR50kSKHIk9ZQNiUlZdLQZrCUx6du0CWJjzcPzli3NPnffDbfdBgFZaFkxeLAkfUKITNxq3r7Dh1P26zt2zKyrVAnuvdckfXffDWXKuDdmIUSOJegE9p/fnyLp+/eyGVQg0DeQVhVbMbbtWNpUbkPLCi0J8k+urd9xeoeM1inyFUkCRbalN2XD8OHw7rvmPuvmTfDygqZN4ZlnzH1V69ZQqJC1cQsh8rhbzdtXurT5uUgRUyi98IJJ/GrVkvn7hMhlouOi2X5qu0n4wtez4fgGLkRdAMxUDW0qt2F0i9G0qdyGkLIh+Hpn0NQIGa1T5D+SBIosu34dwsLSn7IhNhYOHoRRo8z9Vdu2ZnAXIYRwqUuXTOHzzz+33u7tt81gLk2bpuzXJ4TwCLeasmHPqD38Gf5nUtL314m/uBl3E4DaJWrTq04v2lRuQ5vKbRyeqiGRjNYp8hv5H1Bk6MYNM0rn3r0pX5mNih4XB5984o4IhRD5yvXrJsn755/khC/x5wsXHDvGK6+4NkYhRI6kN2WDl/LiZtxNir9XHI3Gx8uHpuWaMip0lJmfr3JrShcsbWHUQuQ+kgQKoqJMzV56yZ7WZhs/PzMK+m23mZE7g4Nh9Ggzn19qMmWDECKFW/XRSz2oys2bpj25faKX+J56jpiKFU0zzr59oXZt83Pt2lCvnuu+ixDCJc5HnmfbyW0U8S9CXEJcinUJOoH6pevTvlp77qh8By0qtKCg3y0GaxJCZEqSwDwmo4FawNxbpVezd+RIcrLn62vuoZo3h2HDoH5986pZM23LqagombJBCOGAW/XR++STlIne8ePJBRKYPny1akHnzuY9MdGrUePWI3YKITzW2Rtn2XZyG9tO2V4ntxF+NTxpfRH/IlyLuUaCTsDHy4dHmjzCV92/sjBiIfIeSQLzkPQGahk2DD7+2DxsP3zYTMsAJqGrVQuaNIEhQ5KTvVq1Mp6iITWZskEIkUZcHJw5Y5oJnDhhXrfyzDOm43CtWtCmTcpEr1YtM4BLVsm8fUJ4jDPXzyQleolJX8TViKT1tYrXonXl1jQr14xm5ZrRpFwTomKjqP5pdW7G3cTXy5fX2r1m4TcQIm/Kd0ngrWrKPPF8Wpu+eefOpX2dP5/y87Zt5v7LXlycmYi9Vy8YONA046xf39xf+fnl/PvJlA1COEFWmktadT6t4cqV5MTOPsmz//nMmeSnTY44exZKlnTuyJwyb58QTnOrgVoino1IsezUtVNsO7WN7ae2JyV+9vvWLlGbOyrfYRK+8s1oUrYJRQLSPugpGlCU4SHDZcoGIVwoXyWB6dWUjRhhfnZFIpPe+R591Ixt0K5dxslc6kTv5s30j+/nB6VKmfunUqXSJoCJ4uNh/nznfz8hhJPcqrmku883d27GSV5UVNp9iheHChWgfHlo1Cj55woVkn8uVy7jWEqVcs53EiKPUEp1BiYB3sBUrfWEVOuVbX1XIBIYprXebrfeG9gKnNBad89pPOkN1OLn7UeHah34+cDPKZp0nrpu+u0qFHVK1qFd1XZJCV9I2RAK+xd2+LwyZYMQrqW0fd+LXC40NFRv3bo1w/VVqybPC2yvRAl4/30zvUFcXPqv7Kz7/feME7j0FCqUMqlL/Uq9PCgo5cPzjL5flSqZj+gphKdSSm3TWodaHUdOZFY23bIWbMoUiIkxBU3iK7PPmW2zY0fmQQcEpJ/QpX4PCMj8WLf6fnno/yCRv7iibLIlcAeBjkAEsAUYqLXeZ7dNV2A0JglsCUzSWre0W/8sEAoUziwJzLRswtTuVZtUjej46PRjRlG3ZF2alW+W1KQzpGxIionYhRDu5Uj5lK9qAo8fT3/5hQtmxMtb8fIy/eh8fEyfucSfU7/s190qAZwxI22CV6BA9r8bmKamMlCLEHlMYnOF1Ly9TYHj52feE18Zffb3N0+a/PxunQTu3m2Su2LFnNdEU/roCeGoFsAhrfURAKXUbKAXsM9um17A99o8xd+klCqqlCqntT6llKoIdAPGA886I6ByQeXoXbc3c/bOAUzSV6tELUaFjkqq4SvkV8gZpxJCuFG+SgIrV06/pqx8efjzz4yTPG9vkwRm1a1q5oYMyfrxMiMDtQiRB0VEpE3qfHyyVyglulVy16BB9o+bEemjJ4SjKgDhdp8jMLV9mW1TATjF/7d35zGT1HUex98fHAiOjKgLGGRgRILH4orHoIkag4hxMcYrJBomMY7ohmRxzSZGV5NRNxsS1mDiQXSiROYPNewfHB5B0WDAAw+OCAOeM3gsSiLoBiIeODNf/6gabWbnmadxuruqq96vpDLd1dVd3+9Tz3zy/Opq+CDwDmCme1gueulFXPnDK3lw94McvuZwrn/j9V6nJy25g/grYvlccEFzZGzS2rXNqaAnnNAMBo85ptkBvm5dc2Tu0EP//r+1VlrfPI/MbdrUnPq5Z0/zrwNAackdd9zfgmnvkbyDGQBK6rP97aHZ95zp/S6T5BXAr6vq5gOuIPmXJDcluemee+6Zqqj1R67n3GedyyE5xBu1SAMxqr8kNm1qLq/ZsKHZEb5hQ/N8XgOlRa9P0pJa6bTIeZ0uuej1SZrWXcDxE8/XA7+acpkXAK9M8jPgMuCMJJ/adwVV9fGq2lhVG49+GDdm2vKiLTzxMU/0Ri3SQIzqdFBY/Fca+BUKkla16NMlPT1T6qsbgZOTnAj8Eng9cM4+y3wOOL+9XvB5wH1VdTfwrnYiyenA26tqZhefHLvuWHb+285ZfZykjo1uEChJktRHVbUryfnANTRfEfHJqrojyXnt61uBq2nuDLqD5isiNndVr6Tl5SBQkiSpJ6rqapqB3uS8rROPC/jXVT7jOuC6OZQnaSBGdU2gJEmSJI2dg0BJkiRJGhEHgZIkSZI0Ig4CJUmSJGlEHARKkiRJ0og4CJQkSZKkEUlzp+FhSHIP8POu61jBUcC9XRcxR/a33Prc34aqOrrrIg6G2dQp+1tufe7PbJq/Pm//WRhyf0PuDfrf36r5NKhBYJ8luamqNnZdx7zY33Iben9a2dC3vf0tt6H3pwMb+vYfcn9D7g2G0Z+ng0qSJEnSiDgIlCRJkqQRcRC4OB/vuoA5s7/lNvT+tLKhb3v7W25D708HNvTtP+T+htwbDKA/rwmUJEmSpBHxSKAkSZIkjYiDwBlK8s9JfpRkR5L/2M/rm5Lc1k43JDm1izr/Xqv1N7HcaUl2Jzl7kfUdrGn6S3J6ku8luSPJ9Yuu8WBM8ft5ZJLPJ7m17W9zF3VqPsynvy5nPvWQ+TReZtNflzObemjQ2VRVTjOYgEcAO4EnAYcBtwL/uM8yzwce2z4+C/hO13XPsr+J5b4KXA2c3XXdM95+jwG+D5zQPj+m67pn3N+7gf9uHx8N/BY4rOvanRa2/c2nnk7mk/k01MlseshyZlPPpqFnk0cCZ+e5wI6qurOqHgQuA141uUBV3VBV/9c+/TawfsE1HoxV+2u9Fbgc+PUii5uBafo7B7iiqn4BUFXL1OM0/RWwLkmAI2iCbNdiy9ScmE8N86mfzKfxMpsaZlM/DTqbHATOznHA/048v6udt5JzgS/OtaLZWrW/JMcBrwG2LrCuWZlm+z0ZeGyS65LcnOQNC6vu4E3T38XA04BfAduBt1XVnsWUpzkzn8ynPjOfxstsMpv6bNDZtKbrAgYk+5m331uvJnkxTZC9cK4VzdY0/X0QeGdV7W52iCyVafpbAzwHeAnwSOBbSb5dVT+ed3EzME1/LwO+B5wBnAR8JcnXq+r+Odem+TOfzKc+M5/Gy2wym/ps0NnkIHB27gKOn3i+nmavwEMkeQZwCXBWVf1mQbXNwjT9bQQua0PsKODlSXZV1VULqfDgTNPfXcC9VfUA8ECSrwGnAssQZNP0txm4sJoT23ck+SnwVOC7iylRc2Q+mU99Zj6Nl9lkNvXZsLOp64sShzLRDKjvBE7kbxePnrLPMicAO4Dnd13vPPrbZ/ltLNfFzdNsv6cB17bLrgVuB57ede0z7O9jwPvax48Hfgkc1XXtTgvb/uZTTyfzyXwa6mQ2/b/lzaYeTUPPJo8EzkhV7UpyPnANzd2EPllVdyQ5r319K/Ae4B+Aj7Z7fHZV1cauan44puxvaU3TX1X9IMmXgNuAPcAlVXV7d1VPb8rt91/AtiTbaU6BeGdV3dtZ0ZoZ88l86jPzabzMJrOpz4aeTWlHrpIkSZKkEfDuoJIkSZI0Ig4CJUmSJGlEHARKkiRJ0og4CJQkSZKkEXEQKEmSJEkj4iBQM5VkfZLPJvlJkp1JPpTksK7rkjRuZpOkPjKb1BUHgZqZNF/gcwVwVVWdDDwZOAK4oNPCJI2a2SSpj8wmdclBoGbpDOCPVXUpQFXtBv4deFOSRyW5KMn2JLcleStAktOS3JDk1iTfTbIuyRuTXLz3Q5N8Icnp7ePfJflAkluSXJvk6Hb+W5Lc2H7O5UnWtvO3Jflwu447k5w98bnvaOu5NcmFSU5KcsvE6ycnuXnuPzVJ82Y2Seojs0mdcRCoWToFeMh//qq6H/gF8GbgROBZVfUM4NPt6Q7/A7ytqk4FzgT+sMo6HgXcUlXPBq4H3tvOv6KqTms/5wfAuRPvORZ4IfAK4EKAJGcBrwae177n/VW1E7gvyTPb920Gtj2cH4CkXjKbJPWR2aTOOAjULAWoFea/CNhaVbsAquq3wFOAu6vqxnbe/XtfP4A9NAEI8CmakAJ4epKvJ9kObKIJ1r2uqqo9VfV94PHtvDOBS6vq9xP1AFwCbE7yCOB1wGem6FtSv5lNkvrIbFJnHARqlu4ANk7OSPJo4Hj2H3Qrhd8uHvq7efgB1rn3/duA86vqn4D/3Oc9f9pnnQda9+XAWTR7v26uqt8cYN2SloPZJKmPzCZ1xkGgZulaYG2SNwC0e4U+QBM0XwbOS7Kmfe1xwA+BJyQ5rZ23rn39Z8AzkxyS5HjguRPrOATYe376OcA32sfrgLuTHEqzR2s1X6Y5537vOfCPA6iqPwLXAB8DLn24PwBJvWQ2Seojs0mdWdN1ARqOqqokrwE+mmQLTfBcDbwb2E1z16vbkvwZ+ERVXZzkdcBHkjyS5rz2M4FvAj8FtgO3A7dMrOYB4JT2wuP7aE49ANgCfAf4efu+davU+qX2HPabkjw4USfAp4HX0gSepCVnNknqI7NJXUrV/o7sSv2U5HdVdcSc1/F24Miq2jLP9UgaDrNJUh+ZTVqJRwKlCUmuBE6iuW2zJPWC2SSpj8ym5eWRQEmSJEkaEW8MI0mSJEkj4iBQkiRJkkbEQaAkSZIkjYiDQEmSJEkaEQeBkiRJkjQiDgIlSZIkaUT+AuO4sw4MHgK9AAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
      " ] @@ -396,7 +396,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"staic_multimap_find_all_occupancy\" == bm\n", + " flag = \"staic_multimap_retrieve_occupancy\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", @@ -409,7 +409,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### `find_all` performance by varying matching rates\n", + "### `retrieve` performance by varying matching rates\n", "
        \n", "
      • 100'000'000 key/value pairs inserted
      • \n", "
      • 100'000'000 probing keys
      • \n", @@ -424,7 +424,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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sE0bV3ymcGH4/HPfJ4bGGBOlYEF3FzD2I0cOqFPHlUF+/31XEjkVEkNjjEmKPaf20Hxqc3p82YNDZw8lvoOPWLdSY0yiPvoI3nkHRo2CatVcgZl69SA8HAICXG+t8HAbtmOM8YPIKSfgynyF4J4HDYJXX3VXrowxJo1af3A9nT7txLnL5/iu13cUy1PMb7HYqZwxJkEXL8KIEfDtt9C9u5uCYvp0CA2FUqVcPYdnnnHTgxljjN/8/LO7M/j771eWjRtniaExJk1bFLKIFtNaEJAlgOX3L+fG8jf6NR5LDo0xCdq1C667DipWdO/Ll4fgYJg0yY0zLFXKv/EZYww9ekDr1m6C+nPn/B2NMcZ4bfX+1VQoUIEV/VdQq2gtf4djyaExJmF588Leva476dmzkD07fP21e7bE0BjjV2++6Z6/+w5efhm2bnWDo43/XX993GNBr09eOf48efIA8M8//9CgQQOCgoKoWbMm48ePj9qmd+/eVK1alVq1anH//fdz+fLlBI+5cOFCGjVqRLVq1QgKCuKuu+5iz549ANx3332UL1+eoKAggoKCuOGGG6L2++abb6hTpw7VqlWjdu3afPPNN1Hr7rvvPnLlysWZM2eilj3yyCOICEePHgXcRO6Rxw0KCmLUqFHcdtttBAUFUalSJa677rqodb/99hutW7ematWq1K1bl4YNG7J+/fqoY5crVy7quAcPHqRnz55UrFiRGjVq0KlTJ/7666+k/cGTqly5uH//cuWSddjI3x9gz5493HTTTVSvXp0aNWqwe/fuGNsOGzYsxvbx8cfvr6pRv/+XD3+JjlNmfjQzbfz+qprhHw0aNFBjzLX79lvVcuVUQbVMGdW//3bL16xx7xct8l9swGpNA+1Lch7WNhmTBBER7qGq+sYbroHas+fq7SB144rx0dY+qRsBGvcjGXLnzq2qqhcvXtQLFy6oquqZM2e0bNmy+u+//6qq6vfff68REREaERGhPXv21I8++ije423cuFErVaqkW7ZsiVo2b948/fnnn1VVtW/fvvrll19etd/69eu1YsWKunPnTlVV3blzp1asWFH//PPPqP1q166tM2fOVFXV8PBwrV27tpYsWVKPHDkS47vE5aefftLOnTvHWNaqVStdtWqVqqpOnTpV27VrF7WubNmyeuTIEY2IiNAmTZrouHHjotatW7dOf/nl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\n", "text/plain": [ "
        " ] @@ -437,7 +437,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"staic_multimap_find_all_matching_rate\" == bm\n", + " flag = \"staic_multimap_retrieve_matching_rate\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", @@ -450,7 +450,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### `retrieve` (`find_all` + `count`) performance by varying key muliplicities\n", + "### `query` (`retrieve` + `count`) performance by varying key muliplicities\n", "
          \n", "
        • 100'000'000 key/value pairs inserted
        • \n", "
        • 100'000'000 probing keys
        • \n", @@ -467,7 +467,7 @@ "outputs": [ { "data": { - "image/png": "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XfTt27fItsaNG7Ns2TIARIQbb7xxy76+ffty1113bXPupZdeSpMmTWjXrh3t2rXjscceA2DVqlV0796dZs2a0axZM7p3786qVasAmD9/PjvssAPt2rWjVatWdO/efUusY8eORUR46qmntjz3tGnTEJFt4s1Wsc8SYOHChZxwwgkccMABtGrVivnz5xc5tlevXkWOTySbP8uXXoL//Afefx8WLIBZs2DePPj731N6Kyvd8OHQuDFst539O3x4+a/pCbSYTLzJMXvvvTcTJkxg+vTpfPbZZ/Tp04fFixcDlkC/++47vvrqK9atW8fgwYPTfp4aNWrw8ssvb/klLMmDDz7I9OnTmT59Otdeey0APXr0oGnTpsyZM4c5c+bQpEkTrrjiii3nNGvWjOnTp/PVV1+Rn5/PqFGjtuxr06YNzz///JbHI0eO5KCDDkr7tZTHiBFw4IGQl2f/jhhRsdfv3r07N998MzNmzGDSpEnsueeeW/ZNmTKFlStXlvs5ovxZPvYYPPigvbcAe+4JgwfDkCGwdm15X3nFGj4ceva0RK9q//bsWf7fb0+gcTL1JsdUr16dGjVqALBhwwYKCwu37DvllFMQEUSETp06kZ+fn/bzVKtWjZ49e/Lwww+X+dzZs2czdepU7rjjji3b7rzzTqZMmcKcOXOKHJuXl0enTp344Ycftmxr2LAh69ev5+eff0ZVefvttzn55JPTfi3pGjECbrsNHn8c1q+3f2+7reKS6LfffktBQQHHH388YCXTWrVqAbB582Zuvvlm/v3vf5f7eaL8WS5aBK1bw8cfw2mn2eN69aBmTVixIo0Xm0G33bZtUl+71raXR06NhS/N9dfD9OnJ90+cCBs2FN22di306AGDBiU+p107eOSR1GNYtGgRXbt2Zfbs2Tz44IPUr1+/yP5NmzYxbNgwHn300dQvmsDVV19N27Zt+dvf/lbicTfffDP33XcfAMOGDWPevHm0a9eOvLy8Lcfk5eXRrl07vvnmG9q2bbtl+/r16/nss8+2ifWcc87hhRdeoH379nTo0GHLH42KdvTR224791y46iq4917YaSe4++6t+3baCW6+GS64AJYtg3POKXru2LGpP/esWbPYddddOeuss5g3bx7HHXccffr0IS8vjyeeeILTTjuNvffeO52XtY2ofpaHHgqvvw5ffmlJtE4dmDwZqle3RBolCxeWbXuqvAQap3jyLG17Ovbdd1++/PJLZs+ezTPPPMPPP/9cZP9VV13FkUceyRFHHJH0GiJS6vadd96Z7t27b6kLSyb+tq9NmzaoasLrx2+fM2cO7dq1o06dOjRs2LDILyLAueeeywsvvMCIESO44IILSnz+TJk5E3bZpei2XXaBoMak3AoKCvjkk0/o27cvkydPZu7cuQwdOpTFixfzwgsv0KtXr5Suk82f5T/+AX36QNOmVoh49VX7o9S7t1WbREnDhmXbnqoqVQItraTYuLHdthfXqFHZSiepqF+/Pq1bt+aTTz7hnKAodPfdd7N06VKefPLJEs+tU6cOP/74Y5Ftq1evZtdddy2y7frrr6dDhw5cdtllKcfVunVrpk2bRmFhIdttZ39fCwsL+eKLLzjggAOArfVmP/74I0cffTSjR4/mtNNO23KNevXqsf322/Pee+/x6KOPMmHChJSfvyxK+kwOOMBKn8ccs3Xbhx9aKzHAHnuU7zNt0KAB7du3p2nTpgCcccYZTJw4kXr16jF79myaN28OwNq1a2nevDmzZ89OeJ1s/izbtLH3tE8fqxpp1AiefBJOOinlECtN797QvTvE1ZpRq5ZtLw8vgcbp3dve1HgV8SbH5Ofns27dOgBWrFjB+PHjadmyJQCDBw/mnXfeYcSIEVu+7MkceeSRjB49mtVBx7uXX36Zgw46qMitGsDuu+/OueeeW6QltTTNmzenffv2W24FAe677z46dOiwJSnE7L333vTp04d//etf21znnnvu4YEHHtgmpspy221W9fLhh7Bpk/3bo0f567xiDjnkEFasWMHSpUsBGDNmDK1ataJr16789NNPzJ8/n/nz51OrVq2kyROy+7NUtd+Nc86BGTPg7bejmTwBWra05LnbbiBiyX7gQOjWrXzXrVIl0NLE3szbbrO6kYYN7QtS3jc5ZsaMGdx4442ICKrKTTfdRJs2bQC48soradSoEYcddhgAZ511FnfeeWfC67Rt25ZrrrmGLl26ICLsueeeSVvtb7zxRp544okyxfnUU0/Rq1cvmjdvjqpy2GGHJf3FPeOMM7jrrrv45JNPimzv3LlzmZ6zosXuNnv1sl/uAw6wz7KiahTy8vLo27cvxx57LKrKwQcfzJ/+9KcyXyebP8uJE63k+fvflymkUPTvb4WhefO2rdopD1HVirta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\n", + "image/png": "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\n", "text/plain": [ "
          " ] @@ -480,7 +480,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"staic_multimap_retrieve_uniform_multiplicity\" == bm\n", + " flag = \"staic_multimap_query_uniform_multiplicity\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", @@ -493,7 +493,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### `retrieve` (`find_all` + `count`) performance by varying occupancies\n", + "### `query` (`retrieve` + `count`) performance by varying occupancies\n", "
            \n", "
          • 100'000'000 key/value pairs inserted
          • \n", "
          • 100'000'000 probing keys
          • \n", @@ -508,7 +508,7 @@ "outputs": [ { "data": { - "image/png": "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XSU+8VfJkmk6bd68eQE4cOAAjRs3JjAwkDp16jBlStwqY/Tv358aNWpQt25dHn74YSIiIm56zkWLFtGsWTNq1qxJYGAgffr04eDBgwA89NBDVKpUicDAQAIDA2nZsmXccT/99BP169enZs2a1KtXj59++inuuYceeojcuXNz/vz5uG1PPfUUIsLJkycBu+B57HkDAwN555136NmzJ4GBgVStWpUCBQrEPbdmzRpuu+02atSoQYMGDWjatCmbN2+OO3fFihXjznvs2DH69u1LlSpVqF27Np07d2bXrl2p+4WnVsWKSX/+FSum6bSxnz/AwYMHufPOO6lVqxa1a9cmNDQ0wb5PPPFEgv2Tk9E+/3vvuJf77rzPu5+/MSbTfDVu3NgopXzPxYupPxbYYHygfUnLl7ZNSvmgIUOMmT491Ydr22SMgeS/0iBPnjzGGGOuXr1qrly5Yowx5vz586ZChQrm8OHDxhhjFixYYKKjo010dLTp27ev+eSTT5I939atW03VqlXN9u3b47b9/PPPZsWKFcYYYx588EEze/bsG47bvHmzqVKlitm3b58xxph9+/aZKlWqmL///jvuuHr16pmvv/7aGGNMVFSUqVevnilTpow5ceJEgveSlN9++8106dIlwba2bdua9evXG2OM+fzzz0379u3jnqtQoYI5ceKEiY6ONrfccov573//G/fcpk2bzMqVK5N9La9I7nP20OdvjP19LFmyxBhj/w1cjHdBsX79ejNgwICb/o6NyXif/70f3mtWhK5I0+fvSvuk9+aVUl6XO7fTESilVDxnzsDnn0Pp0k5H4tuefhri9US45bbbkt4eGAgffujSKQICAuJ+vnr1KtHR0XGPO3fuHPdzs2bNCAsLS/Y848eP56WXXqJWretFNrp165bi60+YMIGXXnqJSpUqAVCpUiVefPFF3n33Xb7++msA+vXrx/fff8+AAQNYvnw5rVq1YuHChS69v5S0aNGCd99994btv/32G9mzZ2f48OFx2wIDAz3ymjdI6nO87z549NHkn4918iT07p1wW2yhABds376dyMhIOnToACTsIYyKimLUqFF8++23zJ0796bnyUif/8VrF5m9bTZ33XoXrVq08urnr8NBlVJeM2oUPPaY01EopVQiy5dDdDS0b+90JCoFhw4don79+pQrV47nn3+e0okS94iICL7+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\n", + "image/png": "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HwD9+vW7JfmoXLkyTZs25ccff3TotWW0vXuhUKGE2woVsqN+XCEyMpIVK1YwadIkNmzYwKFDh/j22285fvw4s2fPZuTIkU5fM9O9/02aEr41nH9O/UOvGr1c1gsIbqwOKiK+wOdAJyAE2CAivxtjdsU77BzwNNA70bnlYrbXNsaEicjP2AWdv3VXvEop92nWDObNg3btbCG+Jk3scKF27TwdmVIq2ytSBB580P7crFnC7dncRx+lvL9SJTsENLHbboOlS10bS9myZalTpw4rVqygT58+ALz22mucPn2aL7/8MsVz69Spw+bNm2nQoAHFihVj69atTJo0iStXrgD2w/iqVauoVKkSYBOFJUuW0LFjR4oVK8b58+cpXtyW5D937lzczwBFixbloYce4qGHHqJnz54sX76c+++/n9y5c9OtWze6detGqVKlmDdvHh06dIg77+zZsyxevJgdO3YgIkRFRSEitwxvfPnll+nTp0+CoYsZKaX3sVYt2/sX/2/5kiUQm5sVL56+fwfly5enYcOGVKlSBYDevXuzdu1aSpcuzYEDB6hWrRoA165do1q1ahw4cCDJ62Tm9795/+bMGjKLMnXL0Lx887T/MpPgzp7ApsABY8whY0w4MAu4J/4BxphQY8wGIKlbbzmAvCKSA/ADXHRfQSnlCWFh9ib7tGl2aKgmgEopr3DuHNSuDV27JqwOqstDpGrChFuH9Pv52e2uEBISQliYXSft/PnzrFq1iho1agAwdepUFi5cyMyZM+PmXiXnhRdeYMKECezevTtu27WYcayXLl1i5cqVHDlyhODgYIKDg/n888/jemXatm3L9OnTATsP7YcffqBdzB+wxYsXx13n8uXLHDx4kIoVK7J58+a4oYHR0dFs27aN2267LUFMv/zyCwMHDuTw4cMEBwdz9OhRKleuzMqVKxMcV7NmTWrXrs2ff/7p/C/QzcaOtUN/lyyxf9+XLLGPx451zfWbNGnC+fPnOX36NGB/37Vr16ZHjx6cPHky7v3y8/NLNgGEzP3+b43aSs7SOclxIAe+Pq5dU8udSWA54Gi8xyEx21JljDkGTAKOACeAi8aYIJdHqJTKMEuW2OphLVt6OhKllIonNBR27XJ+wpJiwACYMsX2/InY71Om2O2usHv3bpo1a0aDBg1o06YNo0aNol69egAMHz6cU6dO0bx5c/z9/Xn99deTvU69evX4+OOPGThwIDVr1uSuu+5i9+7dPPTQQ8yZM4f27dvHFaABuOeee/j999+5ceMG48aN48CBAzRo0ICGDRtSrVo1Hn74YQA2bdpE48aNqV+/Ps2bN+fxxx+nSZMmhIaGcvfdd1O3bl3q169Pjhw5GDFiRIKYZs6cyb333ptg2/3335/k0M+xY8emWPjGU/r3twn/yJGQJ4/9PmGC3e4Kvr6+TJo0iQ4dOlCvXj2MMQwdOtTp62TW9z/aRBO4P5B2A9u55f0XR8ugOn1hkQeALsaYx2MePwI0NcbcMoBXRMYDV4wxk2IeFwF+BfoCF4DZwC/GmB+SOHcYMAygYsWKjQ4nNS5BKeVxLVrYm+tr1jh3nohsMsY0dk9UGaNx48Zm48aNng5DKZWUf/6BRx+FL79MOBw0Fdo2KaXcKfRqKPfMuocRTUY4XRDGkfbJbXMCsT1/FeI9Lo/jQzo7Av8aY04DiMgcoAVwSxJojJkCTAHbmKUnYKWUe1y5Ahs23KwYppRSXqNBA9i61dNRKKVUAiXzlWTNY07eOXeCO5PADUB1EakMHMMWdnnIwXOPAHeKiB8QBnQA9FaVUplURAS8+qqdcqOUUl4lKsqOVVeZ3rRp0/j4448TbLvrrrv4/PPPPRSRykhZ7f2/HnmdPDnctziC24aDAohId+AjwBf4xhgzQUSGAxhjJotIaWxyVxCIBq5gK4JeEpHXsMNBI4EtwOPGmBSLDuuwBqWyHh1ypZRym9BQqFbNTmSLKdXuKG2blFLucurKKSp9XImpd09N09qAnh4OijEmEAhMtG1yvJ9PYoeJJnXuf4H/ujM+pVTGWLkS6teHggU9HYlSSsWzfDlcvmwrmiillJcI3B/I9cjr1ClZx23P4dbF4pVS6tIlW3Tvvfc8HYlSSiWybJld06Bxpu7QU0plMQH7AyhXoBwNSjVw23NoEqiUcqsVK+yUG10XUCnldZYutevW5Mzp6UiUUgqA8Khwgg4G0b16d0TEbc+jSaBSyq0WL4ZcuaB5c09HopRS8Zw5Azt2QJs2no5EKaXirDyyksvhl+lRvYdbn0eTQKWUWy1ZYhPAvHk9HYlSSsUTHQ3jxkHPnp6OJPMqXdquEp/4q3TpdF02f/78ABw+fJhGjRrh7+9PnTp1mDw5rqwEAwYMoEaNGtStW5chQ4YQERGR4jUXLFhA06ZNqVmzJv7+/vTt25cjR44AMGjQICpXroy/vz/+/v60aNEi7rx58+ZRv359atasSb169Zg3b17cvkGDBuHn58fly5fjtj3zzDOICGfOnAHsguex1/X392fixInce++9+Pv7U61aNQoVKhS3b/Xq1bRt25YaNWrQoEEDmjRpwtZ4y5dUqlQp7ronT56kX79+VK1aldq1a9O9e3f27duXtl94WlWqlPT7X6lSui4b+/4DHDlyhM6dO1OrVi1q165NcHBwgmNHjhyZ4PjkZKb3f2jnoZSeXprXH37dve+/MSbLfDVq1MgopbzH2bPGiBgzfnzarwFsNF7QvqTnS9smpbIebZuMMZD8Vzrky5fPGGPMjRs3zPXr140xxly+fNncdttt5tixY8YYYwICAkx0dLSJjo42/fr1M1988UWy19u+fbupVq2a2bVrV9y23377zSxbtswYY8yjjz5qZs+efct5W7duNVWrVjWHDh0yxhhz6NAhU7VqVfPPP//EnVevXj0zffp0Y4wxUVFRpl69eqZcuXLm9OnTCV5LUpYsWWJ69OiRYFubNm3Mhg0bjDHGfPPNN6Zjx45x+2677TZz+vRpEx0dbe68807zv//9L27fli1bzPLly5N9LrdI7n120ftvjP19BAUFGWPsv4GrV6/G7duwYYN5+OGHU/wdG5M9339H2ie3VgdVSmVvhQvDli1QtKinI1FKqURWrQJ/f8iXz9OReK9nn4V4PRFOads26e3+/vDRRw5dIleuXHE/37hxg+jo6LjH3bt3j/u5adOmhISEJHudd955h5dffplatWrFbevVq1eqzz9p0iRefvllKleuDEDlypV56aWXeO+995g+fToA/fv356effuLhhx9m6dKl3HXXXcyfP9+h15ea5s2b814SVdWWLFlCzpw5GT58eNw2f39/lzznLZJ6Hx98EJ58Mvn9sc6cgT59Em5butThp961axeRkZF06tQJSNhDGBUVxejRo/nxxx+ZO3duitfJTO//jagbLPl3CbUb1Hb7+6/DQZVSbuPjAw0aQIUKno5EKaXiOXvWFoT58ENPR6JScfToUerXr0+FChV48cUXKVu2bIL9ERERTJ8+na5duyZ7jZ07d3LHHXek+DyjR4+OG5Y3YMCAuPMaNWqU4LjGjRuzc+fOuMfVq1fn9OnTnD9/npkzZ9Iv0XqTYWFhCYYD/vTTTw69brBDGHv37n3L9h07dtwSV1a0b98+ChcuzH333UfDhg0ZPXo0UVFRAHz22Wf06tWLMmXKpHqdzPT+n756mhcWvcCJyyfc/v5rT6BSym1efx1at075RqFSSmW45cvtd22cUpZaj11KlQud6PFJSYUKFdi2bRvHjx+nd+/e9OnTh1KlSsXtf/LJJ2ndujWtWrVy6Hpnz56lQ4cOXLt2jWHDhjFq1CgA3nvvPfok6rUyxtxSnTGpbffddx+zZs1i3bp1fPnllwn25c2bN8G8LkcMGDCAq1evEhUVxebNm5061+VSex+T2h/7+ylePF3/DiIjI1mxYgVbtmyhYsWK9O3bl2+//ZZu3boxe/Zslqbh2t7+/p8LO0eu33LRJrCN299/7QlUSrnFmTPw3//aEVdKKeVVli2z1aqaNPF0JMpBZcuWpU6dOqxYsSJu22uvvcbp06f54IMPUjy3Tp06cR+mixUrxtatWxk2bBhXrlxJ9byNGzcm2LZ582Zq166dYFu/fv0YN24cnTp1wscn/R+tZ8yYwb///stDDz3EU089lWRcmzZtSvfzeLvy5cvTsGFDqlSpQo4cOejduzebN29my5YtHDhwgGrVqlGpUiWuXbtGtWrVkr1OZnn/r4Rf4cL1Czww7oEMef81CVRKucWyZfa7rg+olPI6S5dCixaQO7enI8nc4vXIObTdSSEhIYSFhQFw/vx5Vq1aRY0aNQCYOnUqCxcuZObMmal+8H7hhReYMGECu3fvjtt27dq1VJ9/1KhRvP3223EVKYODg3nrrbd4/vnnExxXsWJFJkyYwJOx8+RcIGfOnLz55pusXbs2QdwA7du358aNG3z11Vdx2zZs2MCy2D+8GeW225KuDnrbbS65fJMmTTh//jynT58GYPHixdSuXZsePXpw8uRJgoODCQ4Oxs/PjwMHDiR7nczy/v916C+MMbSq2CpD3n9NApVSbrFkia23oDfalVJe5dw52LZN1wd0hZMnk64NevKkSy6/e/dumjVrRoMGDWjTpg2jRo2iXr16AAwfPpxTp07RvHlz/P39ef3115O9Tr169fj4448ZOHAgNWvW5K677mL37t089NBDccfEnxPm7+9PeHg4/v7+vPPOO9x9993UrFmTu+++m3fffTfJIhxPPPEEVatWvWV74jlhY8aMcfj1582bl+ef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\n", "text/plain": [ "
            " ] @@ -521,7 +521,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"staic_multimap_retrieve_occupancy\" == bm\n", + " flag = \"staic_multimap_query_occupancy\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", @@ -534,7 +534,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### `retrevie` (`find_all` + `count`) performance by varying matching rates\n", + "### `query` (`retrieve` + `count`) performance by varying matching rates\n", "
              \n", "
            • 100'000'000 key/value pairs inserted
            • \n", "
            • 100'000'000 probing keys
            • \n", @@ -549,7 +549,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
              " ] @@ -562,7 +562,7 @@ ], "source": [ "for bm in unique_bms:\n", - " flag = \"staic_multimap_retrieve_matching_rate\" == bm\n", + " flag = \"staic_multimap_query_matching_rate\" == bm\n", " \n", " if flag:\n", " tmpdf = perfdf[perfdf[\"Benchmark\"] == bm]\n", From f7d286b6a5f36bee1ea558c0fce70959d604663e Mon Sep 17 00:00:00 2001 From: Yunsong Wang Date: Mon, 1 Nov 2021 11:19:51 -0400 Subject: [PATCH 267/267] Restrict CG type for public device view APIs --- .../static_multimap/static_multimap.inl | 54 ++++--- include/cuco/static_multimap.cuh | 141 +++++++++--------- 2 files changed, 98 insertions(+), 97 deletions(-) diff --git a/include/cuco/detail/static_multimap/static_multimap.inl b/include/cuco/detail/static_multimap/static_multimap.inl index bbc92af78..6d7c36f00 100644 --- a/include/cuco/detail/static_multimap/static_multimap.inl +++ b/include/cuco/detail/static_multimap/static_multimap.inl @@ -142,10 +142,10 @@ std::size_t static_multimap::count( auto num_keys = std::distance(first, last); auto view = get_device_view(); - bool constexpr is_outer = false; - + auto constexpr is_outer = false; auto constexpr block_size = 128; auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); @@ -172,10 +172,10 @@ std::size_t static_multimap::count_ auto num_keys = std::distance(first, last); auto view = get_device_view(); - bool constexpr is_outer = true; - + auto constexpr is_outer = true; auto constexpr block_size = 128; auto constexpr stride = 1; + auto const grid_size = (cg_size() * num_keys + stride * block_size - 1) / (stride * block_size); cudaMemsetAsync(d_counter_.get(), 0, sizeof(atomic_ctr_type), stream); @@ -443,10 +443,10 @@ template -template __device__ __forceinline__ void static_multimap::device_mutable_view::insert( - CG g, value_type const& insert_pair) noexcept + cooperative_groups::thread_block_tile const& g, + value_type const& insert_pair) noexcept { impl_.insert(g, insert_pair); } @@ -537,10 +537,12 @@ template -template +template __device__ __forceinline__ bool static_multimap::device_view::contains( - CG g, Key const& k, KeyEqual key_equal) noexcept + cooperative_groups::thread_block_tile const& g, + Key const& k, + KeyEqual key_equal) noexcept { return impl_.contains(g, k, key_equal); } @@ -550,10 +552,12 @@ template -template +template __device__ __forceinline__ std::size_t static_multimap::device_view::count( - CG const& g, Key const& k, KeyEqual key_equal) noexcept + cooperative_groups::thread_block_tile const& g, + Key const& k, + KeyEqual key_equal) noexcept { constexpr bool is_outer = false; return impl_.count(g, k, key_equal); @@ -564,10 +568,12 @@ template -template +template __device__ __forceinline__ std::size_t static_multimap::device_view::count_outer( - CG const& g, Key const& k, KeyEqual key_equal) noexcept + cooperative_groups::thread_block_tile const& g, + Key const& k, + KeyEqual key_equal) noexcept { constexpr bool is_outer = true; return impl_.count(g, k, key_equal); @@ -578,10 +584,12 @@ template -template +template __device__ __forceinline__ std::size_t static_multimap::device_view::pair_count( - CG const& g, value_type const& pair, PairEqual pair_equal) noexcept + cooperative_groups::thread_block_tile const& g, + value_type const& pair, + PairEqual pair_equal) noexcept { constexpr bool is_outer = false; return impl_.pair_count(g, pair, pair_equal); @@ -592,10 +600,12 @@ template -template +template __device__ __forceinline__ std::size_t static_multimap::device_view::pair_count_outer( - CG const& g, value_type const& pair, PairEqual pair_equal) noexcept + cooperative_groups::thread_block_tile const& g, + value_type const& pair, + PairEqual pair_equal) noexcept { constexpr bool is_outer = true; return impl_.pair_count(g, pair, pair_equal); @@ -608,14 +618,13 @@ template template __device__ __forceinline__ void static_multimap::device_view::retrieve( FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, + cooperative_groups::thread_block_tile const& probing_cg, Key const& k, uint32_t* flushing_cg_counter, value_type* output_buffer, @@ -647,14 +656,13 @@ template template __device__ __forceinline__ void static_multimap::device_view::retrieve_outer( FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, + cooperative_groups::thread_block_tile const& probing_cg, Key const& k, uint32_t* flushing_cg_counter, value_type* output_buffer, @@ -686,7 +694,6 @@ template template ::device_view::pair_retrieve( FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, + cooperative_groups::thread_block_tile const& probing_cg, value_type const& pair, uint32_t* flushing_cg_counter, value_type* probe_output_buffer, @@ -737,7 +744,6 @@ template template ::device_view::pair_retrieve_outer( FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, + cooperative_groups::thread_block_tile const& probing_cg, value_type const& pair, uint32_t* flushing_cg_counter, value_type* probe_output_buffer, diff --git a/include/cuco/static_multimap.cuh b/include/cuco/static_multimap.cuh index 840af103a..9261ef9a2 100644 --- a/include/cuco/static_multimap.cuh +++ b/include/cuco/static_multimap.cuh @@ -616,14 +616,13 @@ class static_multimap { /** * @brief Inserts the specified key/value pair into the map. * - * @tparam CG Cooperative Group type - * * @param g The Cooperative Group that performs the insert * @param insert_pair The pair to insert * @return void. */ - template - __device__ __forceinline__ void insert(CG g, value_type const& insert_pair) noexcept; + __device__ __forceinline__ void insert( + cooperative_groups::thread_block_tile const& g, + value_type const& insert_pair) noexcept; private: device_mutable_view_impl impl_; @@ -796,7 +795,6 @@ class static_multimap { * significant boost in throughput compared to the non Cooperative Group * `contains` at moderate to high load factors. * - * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the contains operation * @param k The key to search for @@ -805,10 +803,11 @@ class static_multimap { * @return A boolean indicating whether the key/value pair * containing `k` was inserted */ - template > - __device__ __forceinline__ bool contains(CG g, - Key const& k, - KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ __forceinline__ bool contains( + cooperative_groups::thread_block_tile const& g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap. @@ -816,7 +815,6 @@ class static_multimap { * For a given key, `k`, counts all matching keys, `k'`, as determined by `key_equal(k, k')` and * returns the sum of all matches for `k`. * - * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for @@ -824,10 +822,11 @@ class static_multimap { * for equality * @return Number of matches found by the current thread */ - template > - __device__ __forceinline__ std::size_t count(CG const& g, - Key const& k, - KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ __forceinline__ std::size_t count( + cooperative_groups::thread_block_tile const& g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key contained in multimap. If no @@ -836,7 +835,6 @@ class static_multimap { * For a given key, `k`, counts all matching keys, `k'`, as determined by `key_equal(k, k')` and * returns the sum of all matches for `k`. If `k` does not have any matches, returns 1. * - * @tparam CG Cooperative Group type * @tparam KeyEqual Binary callable type * @param g The Cooperative Group used to perform the count operation * @param k The key to search for @@ -844,10 +842,11 @@ class static_multimap { * for equality * @return Number of matches found by the current thread */ - template > - __device__ __forceinline__ std::size_t count_outer(CG const& g, - Key const& k, - KeyEqual key_equal = KeyEqual{}) noexcept; + template > + __device__ __forceinline__ std::size_t count_outer( + cooperative_groups::thread_block_tile const& g, + Key const& k, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap. @@ -855,7 +854,6 @@ class static_multimap { * For a given pair, `p`, counts all matching pairs, `p'`, as determined by `pair_equal(p, p')` * and returns the sum of all matches for `p`. * - * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for @@ -863,10 +861,11 @@ class static_multimap { * for equality * @return Number of matches found by the current thread */ - template - __device__ __forceinline__ std::size_t pair_count(CG const& g, - value_type const& pair, - PairEqual pair_equal) noexcept; + template + __device__ __forceinline__ std::size_t pair_count( + cooperative_groups::thread_block_tile const& g, + value_type const& pair, + PairEqual pair_equal) noexcept; /** * @brief Counts the occurrence of a given key/value pair contained in multimap. @@ -875,7 +874,6 @@ class static_multimap { * For a given pair, `p`, counts all matching pairs, `p'`, as determined by `pair_equal(p, p')` * and returns the sum of all matches for `p`. If `p` does not have any matches, returns 1. * - * @tparam CG Cooperative Group type * @tparam PairEqual Binary callable type * @param g The Cooperative Group used to perform the pair_count operation * @param pair The pair to search for @@ -883,10 +881,11 @@ class static_multimap { * for equality * @return Number of matches found by the current thread */ - template - __device__ __forceinline__ std::size_t pair_count_outer(CG const& g, - value_type const& pair, - PairEqual pair_equal) noexcept; + template + __device__ __forceinline__ std::size_t pair_count_outer( + cooperative_groups::thread_block_tile const& g, + value_type const& pair, + PairEqual pair_equal) noexcept; /** * @brief Retrieves all the matches of a given key contained in multimap with per-flushing-CG @@ -897,7 +896,6 @@ class static_multimap { * * @tparam buffer_size Size of the output buffer * @tparam FlushingCG Type of Cooperative Group used to flush output buffer - * @tparam ProbingCG Type of Cooperative Group for parallel retrieval * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * constructible from the map's `value_type` @@ -914,18 +912,18 @@ class static_multimap { */ template > - __device__ __forceinline__ void retrieve(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - Key const& k, - uint32_t* flushing_cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ __forceinline__ void retrieve( + FlushingCG const& flushing_cg, + cooperative_groups::thread_block_tile const& probing_cg, + Key const& k, + uint32_t* flushing_cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Retrieves all the matches of a given key contained in multimap with per-flushing-CG @@ -937,7 +935,6 @@ class static_multimap { * * @tparam buffer_size Size of the output buffer * @tparam FlushingCG Type of Cooperative Group used to flush output buffer - * @tparam ProbingCG Type of Cooperative Group for parallel retrieval * @tparam atomicT Type of atomic storage * @tparam OutputIt Device accessible output iterator whose `value_type` is * constructible from the map's `value_type` @@ -954,18 +951,18 @@ class static_multimap { */ template > - __device__ __forceinline__ void retrieve_outer(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - Key const& k, - uint32_t* flushing_cg_counter, - value_type* output_buffer, - atomicT* num_matches, - OutputIt output_begin, - KeyEqual key_equal = KeyEqual{}) noexcept; + __device__ __forceinline__ void retrieve_outer( + FlushingCG const& flushing_cg, + cooperative_groups::thread_block_tile const& probing_cg, + Key const& k, + uint32_t* flushing_cg_counter, + value_type* output_buffer, + atomicT* num_matches, + OutputIt output_begin, + KeyEqual key_equal = KeyEqual{}) noexcept; /** * @brief Retrieves all the matches of a given pair contained in multimap with per-flushing-CG @@ -977,7 +974,6 @@ class static_multimap { * * @tparam buffer_size Size of the output buffer * @tparam FlushingCG Type of Cooperative Group used to flush output buffer - * @tparam ProbingCG Type of Cooperative Group for parallel retrieval * @tparam atomicT Type of atomic storage * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from * `InputIt`s `value_type`. @@ -998,21 +994,21 @@ class static_multimap { */ template - __device__ __forceinline__ void pair_retrieve(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - value_type const& pair, - uint32_t* warp_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; + __device__ __forceinline__ void pair_retrieve( + FlushingCG const& flushing_cg, + cooperative_groups::thread_block_tile const& probing_cg, + value_type const& pair, + uint32_t* warp_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; /** * @brief Retrieves all the matches of a given pair contained in multimap with per-flushing-CG @@ -1025,7 +1021,6 @@ class static_multimap { * * @tparam buffer_size Size of the output buffer * @tparam FlushingCG Type of Cooperative Group used to flush output buffer - * @tparam ProbingCG Type of Cooperative Group for parallel retrieval * @tparam atomicT Type of atomic storage * @tparam OutputIt1 Device accessible output iterator whose `value_type` is constructible from * `InputIt`s `value_type`. @@ -1046,21 +1041,21 @@ class static_multimap { */ template - __device__ __forceinline__ void pair_retrieve_outer(FlushingCG const& flushing_cg, - ProbingCG const& probing_cg, - value_type const& pair, - uint32_t* flushing_cg_counter, - value_type* probe_output_buffer, - value_type* contained_output_buffer, - atomicT* num_matches, - OutputIt1 probe_output_begin, - OutputIt2 contained_output_begin, - PairEqual pair_equal) noexcept; + __device__ __forceinline__ void pair_retrieve_outer( + FlushingCG const& flushing_cg, + cooperative_groups::thread_block_tile const& probing_cg, + value_type const& pair, + uint32_t* flushing_cg_counter, + value_type* probe_output_buffer, + value_type* contained_output_buffer, + atomicT* num_matches, + OutputIt1 probe_output_begin, + OutputIt2 contained_output_begin, + PairEqual pair_equal) noexcept; private: device_view_impl impl_;