Created
November 9, 2020 17:47
-
-
Save GilesBathgate/94a153553019c04b6090352f232c5a5b to your computer and use it in GitHub Desktop.
ID_support_handler performance benchmark
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
clang++ -lbenchmark ID_support_handler_benchmark.cpp -o baseline | |
python3 /usr/share/benchmark/compare.py benchmarks ./baseline ./contender --benchmark_repetitions=10 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <benchmark/benchmark.h> | |
#include <CGAL/Nef_3/ID_support_handler.h> | |
#include <CGAL/Nef_3/SNC_indexed_items.h> | |
// A bit unconventional ;) | |
static int data[][2] | |
#include "sample.data" | |
; | |
namespace CGAL { | |
//Just some mocks | |
struct Decorator | |
{ | |
typedef struct Halffacet { | |
bool is_twin() { return true; } | |
struct Halffacet* twin(){ return nullptr; } | |
int plane() { return 1; } | |
} Halffacet,*Halffacet_const_handle; | |
typedef struct { | |
int point(){ return 1; } | |
void set_index() {} | |
void set_index(int) {} | |
int get_index(){ return 1; } | |
} SVertex, *SVertex_handle,*SVertex_const_handle; | |
typedef struct { | |
Halffacet_const_handle get_index_facet() { return nullptr; } | |
} SHalfedge,*SHalfedge_handle,*SHalfedge_const_handle; | |
typedef struct {} SHalfloop,*SHalfloop_const_handle; | |
}; | |
typedef Decorator::SVertex_handle SVertex_handle; | |
typedef Decorator::Halffacet_const_handle Halffacet_const_handle; | |
} | |
void initialisation_test(benchmark::State& state) | |
{ | |
for (auto _ : state) { | |
//Initialisation is where the main overhead occours. | |
CGAL::ID_support_handler<CGAL::SNC_indexed_items,CGAL::Decorator> o; | |
CGAL::SVertex_handle sv=0; | |
auto f1=(CGAL::Halffacet_const_handle)(long)data[0][0]; | |
auto f2=(CGAL::Halffacet_const_handle)(long)data[0][1]; | |
o.hash_facet_pair(sv,f1,f2); | |
} | |
} | |
void hash_facet_pair_test(benchmark::State& state) | |
{ | |
CGAL::ID_support_handler<CGAL::SNC_indexed_items,CGAL::Decorator> o; | |
CGAL::SVertex_handle sv=0; | |
for (auto _ : state) { | |
for(auto d: data) | |
{ | |
auto f1=(CGAL::Halffacet_const_handle)(long)d[0]; | |
auto f2=(CGAL::Halffacet_const_handle)(long)d[1]; | |
o.hash_facet_pair(sv,f1,f2); | |
} | |
} | |
} | |
BENCHMARK(initialisation_test); | |
BENCHMARK(hash_facet_pair_test); | |
BENCHMARK_MAIN(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
python3 /usr/share/benchmark/compare.py benchmarks ./baseline ./contender --benchmark_repetitions=10 | |
RUNNING: ./baseline --benchmark_repetitions=10 --benchmark_out=/tmp/tmpaf4ll5zl | |
2020-11-09 13:30:14 | |
Running ./baseline | |
Run on (8 X 4200 MHz CPU s) | |
CPU Caches: | |
L1 Data 32K (x4) | |
L1 Instruction 32K (x4) | |
L2 Unified 256K (x4) | |
L3 Unified 8192K (x1) | |
Load Average: 1.03, 1.01, 1.12 | |
---------------------------------------------------------------------- | |
Benchmark Time CPU Iterations | |
---------------------------------------------------------------------- | |
initialisation_test 13670737 ns 13670546 ns 51 | |
initialisation_test 13392296 ns 13376618 ns 51 | |
initialisation_test 15824206 ns 15823694 ns 51 | |
initialisation_test 11608582 ns 11607604 ns 51 | |
initialisation_test 11857179 ns 11842009 ns 51 | |
initialisation_test 12495380 ns 12495217 ns 51 | |
initialisation_test 12553563 ns 12553352 ns 51 | |
initialisation_test 12686818 ns 12686318 ns 51 | |
initialisation_test 12583103 ns 12581365 ns 51 | |
initialisation_test 12544319 ns 12541294 ns 51 | |
initialisation_test_mean 12921618 ns 12917802 ns 10 | |
initialisation_test_median 12568333 ns 12567359 ns 10 | |
initialisation_test_stddev 1187624 ns 1188614 ns 10 | |
hash_facet_pair_test 49388 ns 49386 ns 13537 | |
hash_facet_pair_test 49291 ns 49284 ns 13537 | |
hash_facet_pair_test 49244 ns 49242 ns 13537 | |
hash_facet_pair_test 49875 ns 49863 ns 13537 | |
hash_facet_pair_test 49861 ns 49856 ns 13537 | |
hash_facet_pair_test 50541 ns 50536 ns 13537 | |
hash_facet_pair_test 50038 ns 50025 ns 13537 | |
hash_facet_pair_test 49034 ns 49029 ns 13537 | |
hash_facet_pair_test 49732 ns 49723 ns 13537 | |
hash_facet_pair_test 49937 ns 49933 ns 13537 | |
hash_facet_pair_test_mean 49694 ns 49688 ns 10 | |
hash_facet_pair_test_median 49797 ns 49789 ns 10 | |
hash_facet_pair_test_stddev 454 ns 452 ns 10 | |
RUNNING: ./contender --benchmark_repetitions=10 --benchmark_out=/tmp/tmpreybxnv7 | |
2020-11-09 13:30:28 | |
Running ./contender | |
Run on (8 X 4200 MHz CPU s) | |
CPU Caches: | |
L1 Data 32K (x4) | |
L1 Instruction 32K (x4) | |
L2 Unified 256K (x4) | |
L3 Unified 8192K (x1) | |
Load Average: 1.09, 1.03, 1.12 | |
---------------------------------------------------------------------- | |
Benchmark Time CPU Iterations | |
---------------------------------------------------------------------- | |
initialisation_test 10402 ns 10402 ns 68457 | |
initialisation_test 10366 ns 10366 ns 68457 | |
initialisation_test 10335 ns 10335 ns 68457 | |
initialisation_test 10240 ns 10240 ns 68457 | |
initialisation_test 10288 ns 10288 ns 68457 | |
initialisation_test 10292 ns 10292 ns 68457 | |
initialisation_test 10092 ns 10092 ns 68457 | |
initialisation_test 10130 ns 10129 ns 68457 | |
initialisation_test 10130 ns 10130 ns 68457 | |
initialisation_test 10158 ns 10158 ns 68457 | |
initialisation_test_mean 10243 ns 10243 ns 10 | |
initialisation_test_median 10264 ns 10264 ns 10 | |
initialisation_test_stddev 110 ns 110 ns 10 | |
hash_facet_pair_test 43705 ns 43704 ns 16002 | |
hash_facet_pair_test 43492 ns 43491 ns 16002 | |
hash_facet_pair_test 43517 ns 43515 ns 16002 | |
hash_facet_pair_test 43141 ns 43140 ns 16002 | |
hash_facet_pair_test 42271 ns 42270 ns 16002 | |
hash_facet_pair_test 43083 ns 43083 ns 16002 | |
hash_facet_pair_test 43357 ns 43357 ns 16002 | |
hash_facet_pair_test 42778 ns 42778 ns 16002 | |
hash_facet_pair_test 43407 ns 43406 ns 16002 | |
hash_facet_pair_test 43006 ns 43005 ns 16002 | |
hash_facet_pair_test_mean 43176 ns 43175 ns 10 | |
hash_facet_pair_test_median 43249 ns 43249 ns 10 | |
hash_facet_pair_test_stddev 421 ns 421 ns 10 | |
Comparing ./baseline to ./contender | |
Benchmark Time CPU Time Old Time New CPU Old CPU New | |
-------------------------------------------------------------------------------------------------------------------------- | |
initialisation_test -0.9992 -0.9992 13670737 10402 13670546 10402 | |
initialisation_test -0.9992 -0.9992 13392296 10366 13376618 10366 | |
initialisation_test -0.9993 -0.9993 15824206 10335 15823694 10335 | |
initialisation_test -0.9991 -0.9991 11608582 10240 11607604 10240 | |
initialisation_test -0.9991 -0.9991 11857179 10288 11842009 10288 | |
initialisation_test -0.9992 -0.9992 12495380 10292 12495217 10292 | |
initialisation_test -0.9992 -0.9992 12553563 10092 12553352 10092 | |
initialisation_test -0.9992 -0.9992 12686818 10130 12686318 10129 | |
initialisation_test -0.9992 -0.9992 12583103 10130 12581365 10130 | |
initialisation_test -0.9992 -0.9992 12544319 10158 12541294 10158 | |
initialisation_test_pvalue 0.0002 0.0002 U Test, Repetitions: 10 vs 10 | |
initialisation_test_mean -0.9992 -0.9992 12921618 10243 12917802 10243 | |
initialisation_test_median -0.9992 -0.9992 12568333 10264 12567359 10264 | |
initialisation_test_stddev -0.9999 -0.9999 1187624 110 1188614 110 | |
hash_facet_pair_test -0.1151 -0.1150 49388 43705 49386 43704 | |
hash_facet_pair_test -0.1177 -0.1175 49291 43492 49284 43491 | |
hash_facet_pair_test -0.1163 -0.1163 49244 43517 49242 43515 | |
hash_facet_pair_test -0.1350 -0.1348 49875 43141 49863 43140 | |
hash_facet_pair_test -0.1522 -0.1521 49861 42271 49856 42270 | |
hash_facet_pair_test -0.1476 -0.1475 50541 43083 50536 43083 | |
hash_facet_pair_test -0.1335 -0.1333 50038 43357 50025 43357 | |
hash_facet_pair_test -0.1276 -0.1275 49034 42778 49029 42778 | |
hash_facet_pair_test -0.1272 -0.1270 49732 43407 49723 43406 | |
hash_facet_pair_test -0.1388 -0.1387 49937 43006 49933 43005 | |
hash_facet_pair_test_pvalue 0.0002 0.0002 U Test, Repetitions: 10 vs 10 | |
hash_facet_pair_test_mean -0.1312 -0.1311 49694 43176 49688 43175 | |
hash_facet_pair_test_median -0.1315 -0.1314 49797 43249 49789 43249 | |
hash_facet_pair_test_stddev -0.0711 -0.0687 454 421 452 421 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{{0x254aad0,0x25c0bc0},{0x254aad0,0x25c0bc0},{0x254aad0,0x25c0bc0},{0x254aad0,0x25c0bc0},{0x254aad0,0x25c0bc0},{0x254aad0,0x25c0bc0},{0x254aad0,0x25c0bc0},{0x254aad0,0x25c0bc0},{0x2cf1640,0x2c4f1d0},{0x2cd18c0,0x2671330},{0x2cd18c0,0x2671330},{0x2cf1640,0x2c4f1d0},{0x2cf1a80,0x2670ec0},{0x2cf1ef0,0x28771f0},{0x2cf1a80,0x2670ec0},{0x2cf1ef0,0x28771f0},{0x2cf2360,0x2d1b8d0},{0x2cd1cf0,0x2877610},{0x2cd1cf0,0x2877610},{0x2cf2360,0x2d1b8d0},{0x2cd2160,0x29bb4b0},{0x2cd2160,0x29bb4b0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2d0eb00,0x2766ba0},{0x2b72700,0x273d5c0},{0x2d0eb00,0x2766ba0},{0x2b72700,0x273d5c0},{0x2cd94e0,0x29c78a0},{0x2cd9090,0x28f7c00},{0x2cd94e0,0x29c78a0},{0x2cd9090,0x28f7c00},{0x2d0f3c0,0x2c4ed60},{0x2cf1a80,0x2670ec0},{0x2cf1a80,0x2670ec0},{0x2d0f3c0,0x2c4ed60},{0x2d0f6b0,0x2670a50},{0x2d159f0,0x2964900},{0x2d0f6b0,0x2670a50},{0x2d159f0,0x2964900},{0x2d15e60,0x2d1b010},{0x2cf1ef0,0x28771f0},{0x2cf1ef0,0x28771f0},{0x2d15e60,0x2d1b010},{0x2cf2360,0x2d1b8d0},{0x2cf2360,0x2d1b8d0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2d1cd90,0x28f7790},{0x2b72700,0x273d5c0},{0x2d1cd90,0x28f7790},{0x2b72700,0x273d5c0},{0x2d0ef50,0x29c7430},{0x2d0eb00,0x2766ba0},{0x2d0ef50,0x29c7430},{0x2d0eb00,0x2766ba0},{0x2d1d650,0x2c4e8f0},{0x2d0f6b0,0x2670a50},{0x2d0f6b0,0x2670a50},{0x2d1d650,0x2c4e8f0},{0x2d1dac0,0x28946f0},{0x2d2e940,0x2964490},{0x2d1dac0,0x28946f0},{0x2d2e940,0x2964490},{0x2d2ed90,0x2964040},{0x2d159f0,0x2964900},{0x2d159f0,0x2964900},{0x2d2ed90,0x2964040},{0x2d15e60,0x2d1b010},{0x2d15e60,0x2d1b010},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2d72d10,0x2adabe0},{0x2b72700,0x273d5c0},{0x2d72d10,0x2adabe0},{0x2b72700,0x273d5c0},{0x2d1d1e0,0x29c6fc0},{0x2d1cd90,0x28f7790},{0x2d1d1e0,0x29c6fc0},{0x2d1cd90,0x28f7790},{0x2d735d0,0x2c43a60},{0x2d1dac0,0x28946f0},{0x2d1dac0,0x28946f0},{0x2d735d0,0x2c43a60},{0x2d73a40,0x2894280},{0x2d4b1d0,0x2878d30},{0x2d73a40,0x2894280},{0x2d4b1d0,0x2878d30},{0x2d4b5c0,0x2a9e7e0},{0x2d2e940,0x2964490},{0x2d2e940,0x2964490},{0x2d4b5c0,0x2a9e7e0},{0x2d2ed90,0x2964040},{0x2d2ed90,0x2964040},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2d52550,0x2ada770},{0x2b72700,0x273d5c0},{0x2d52550,0x2ada770},{0x2b72700,0x273d5c0},{0x2d73160,0x29256d0},{0x2d72d10,0x2adabe0},{0x2d73160,0x29256d0},{0x2d72d10,0x2adabe0},{0x2d52e10,0x2c435f0},{0x2d73a40,0x2894280},{0x2d73a40,0x2894280},{0x2d52e10,0x2c435f0},{0x2d53280,0x2c43180},{0x2d536f0,0x2a08270},{0x2d53280,0x2c43180},{0x2d536f0,0x2a08270},{0x2d598f0,0x2a9e370},{0x2d4b1d0,0x2878d30},{0x2d4b1d0,0x2878d30},{0x2d598f0,0x2a9e370},{0x2d4b5c0,0x2a9e7e0},{0x2d4b5c0,0x2a9e7e0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2d5aa90,0x2ada320},{0x2b72700,0x273d5c0},{0x2d5aa90,0x2ada320},{0x2b72700,0x273d5c0},{0x2d529a0,0x2925260},{0x2d52550,0x2ada770},{0x2d529a0,0x2925260},{0x2d52550,0x2ada770},{0x2d6bcf0,0x25cf3d0},{0x2d53280,0x2c43180},{0x2d53280,0x2c43180},{0x2d6bcf0,0x25cf3d0},{0x2d6c160,0x281bba0},{0x2d6c5d0,0x273edf0},{0x2d6c160,0x281bba0},{0x2d6c5d0,0x273edf0},{0x2d6ca40,0x2d079a0},{0x2d536f0,0x2a08270},{0x2d536f0,0x2a08270},{0x2d6ca40,0x2d079a0},{0x2d598f0,0x2a9e370},{0x2d598f0,0x2a9e370},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2b116b0,0x27c9c40},{0x2b72700,0x273d5c0},{0x2b116b0,0x27c9c40},{0x2b72700,0x273d5c0},{0x2d6b8a0,0x2924e10},{0x2d5aa90,0x2ada320},{0x2d6b8a0,0x2924e10},{0x2d5aa90,0x2ada320},{0x2d6c160,0x281bba0},{0x2d6c160,0x281bba0},{0x2d6c5d0,0x273edf0},{0x2d6c5d0,0x273edf0},{0x2d6ca40,0x2d079a0},{0x2d6ca40,0x2d079a0},{0x2b11b00,0x25cf840},{0x2b116b0,0x27c9c40},{0x2b11b00,0x25cf840},{0x2b116b0,0x27c9c40},{0x2b1f110,0x27d9cd0},{0x2b1f110,0x27d9cd0},{0x2b1f580,0x273e540},{0x2b1f580,0x273e540},{0x2b1f9f0,0x2d070c0},{0x2b1f9f0,0x2d070c0},{0x2b2e0a0,0x2d50ac0},{0x2b2dc50,0x29c4b30},{0x2b2e0a0,0x2d50ac0},{0x2b2dc50,0x29c4b30},{0x2b465d0,0x2b24e50},{0x2b1eca0,0x2c16100},{0x2b1eca0,0x2c16100},{0x2b465d0,0x2b24e50},{0x2b1f110,0x27d9cd0},{0x2b1f580,0x273e540},{0x2b1f110,0x27d9cd0},{0x2b1f580,0x273e540},{0x2b46a00,0x29c5e70},{0x2b1f9f0,0x2d070c0},{0x2b1f9f0,0x2d070c0},{0x2b46a00,0x29c5e70},{0x2b46e70,0x2a9fb40},{0x2b46e70,0x2a9fb40},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2b2dc50,0x29c4b30},{0x2b72700,0x273d5c0},{0x2b2dc50,0x29c4b30},{0x2b72700,0x273d5c0},{0x2b8b240,0x2d50650},{0x2b8adf0,0x2a09a10},{0x2b8b240,0x2d50650},{0x2b8adf0,0x2a09a10},{0x2b8bb20,0x2b249e0},{0x2b2e510,0x2a77360},{0x2b2e510,0x2a77360},{0x2b8bb20,0x2b249e0},{0x2b465d0,0x2b24e50},{0x2b46a00,0x29c5e70},{0x2b465d0,0x2b24e50},{0x2b46a00,0x29c5e70},{0x2b5bf60,0x29c5a00},{0x2b46e70,0x2a9fb40},{0x2b46e70,0x2a9fb40},{0x2b5bf60,0x29c5a00},{0x2b5c3d0,0x2a9f6d0},{0x2b5c3d0,0x2a9f6d0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2b8adf0,0x2a09a10},{0x2b72700,0x273d5c0},{0x2b8adf0,0x2a09a10},{0x2b72700,0x273d5c0},{0x2b63750,0x2ca6460},{0x2b63300,0x2a09150},{0x2b63750,0x2ca6460},{0x2b63300,0x2a09150},{0x2b64030,0x2a35bb0},{0x2b8b6b0,0x2a76ef0},{0x2b8b6b0,0x2a76ef0},{0x2b64030,0x2a35bb0},{0x2b8bb20,0x2b249e0},{0x2b5bf60,0x29c5a00},{0x2b8bb20,0x2b249e0},{0x2b5bf60,0x29c5a00},{0x25fb7a0,0x29c5590},{0x2b5c3d0,0x2a9f6d0},{0x2b5c3d0,0x2a9f6d0},{0x25fb7a0,0x29c5590},{0x25fbbe0,0x2a9f260},{0x25fbbe0,0x2a9f260},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2b63300,0x2a09150},{0x2b72700,0x273d5c0},{0x2b63300,0x2a09150},{0x2b72700,0x273d5c0},{0x2abbb30,0x2ca5bd0},{0x2abb6e0,0x2ba0d50},{0x2abbb30,0x2ca5bd0},{0x2abb6e0,0x2ba0d50},{0x2abc410,0x2a35300},{0x2b63bc0,0x2d48b30},{0x2b63bc0,0x2d48b30},{0x2abc410,0x2a35300},{0x2b64030,0x2a35bb0},{0x25fb7a0,0x29c5590},{0x2b64030,0x2a35bb0},{0x25fb7a0,0x29c5590},{0x2abc880,0x29c34d0},{0x25fbbe0,0x2a9f260},{0x25fbbe0,0x2a9f260},{0x2abc880,0x29c34d0},{0x294b9e0,0x2872b50},{0x294b9e0,0x2872b50},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2abb6e0,0x2ba0d50},{0x2b72700,0x273d5c0},{0x2abb6e0,0x2ba0d50},{0x2b72700,0x273d5c0},{0x295d990,0x2da2260},{0x294cbc0,0x2c9f020},{0x295d990,0x2da2260},{0x294cbc0,0x2c9f020},{0x295e250,0x29e09b0},{0x2abbfa0,0x2d48250},{0x2abbfa0,0x2d48250},{0x295e250,0x29e09b0},{0x2abc410,0x2a35300},{0x2abc880,0x29c34d0},{0x2abc410,0x2a35300},{0x2abc880,0x29c34d0},{0x295e6c0,0x29c2bf0},{0x294b9e0,0x2872b50},{0x294b9e0,0x2872b50},{0x295e6c0,0x29c2bf0},{0x295eb30,0x28726e0},{0x295eb30,0x28726e0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x294cbc0,0x2c9f020},{0x2b72700,0x273d5c0},{0x294cbc0,0x2c9f020},{0x2b72700,0x273d5c0},{0x2a79ff0,0x2da1df0},{0x2a79ba0,0x2c9e740},{0x2a79ff0,0x2da1df0},{0x2a79ba0,0x2c9e740},{0x2cdfdf0,0x29e0540},{0x295dde0,0x2c96d60},{0x295dde0,0x2c96d60},{0x2cdfdf0,0x29e0540},{0x295e250,0x29e09b0},{0x295e6c0,0x29c2bf0},{0x295e250,0x29e09b0},{0x295e6c0,0x29c2bf0},{0x2ce0260,0x29ebf10},{0x295eb30,0x28726e0},{0x295eb30,0x28726e0},{0x2ce0260,0x29ebf10},{0x2ce06d0,0x2871e40},{0x2ce06d0,0x2871e40},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2a79ba0,0x2c9e740},{0x2b72700,0x273d5c0},{0x2a79ba0,0x2c9e740},{0x2b72700,0x273d5c0},{0x2d369f0,0x2a6d7d0},{0x2d365a0,0x273db30},{0x2d369f0,0x2a6d7d0},{0x2d365a0,0x273db30},{0x2a1d0f0,0x29d9070},{0x2cdf980,0x2c968f0},{0x2cdf980,0x2c968f0},{0x2a1d0f0,0x29d9070},{0x2a1d560,0x29ebaa0},{0x2ce06d0,0x2871e40},{0x2ce06d0,0x2871e40},{0x2a1d560,0x29ebaa0},{0x2a1d9d0,0x2d23d60},{0x2a1d9d0,0x2d23d60},{0x2903460,0x2a6d360},{0x2903010,0x29c4fa0},{0x2903460,0x2a6d360},{0x2903010,0x29c4fa0},{0x2a1d0f0,0x29d9070},{0x29038d0,0x2aebc80},{0x29038d0,0x2aebc80},{0x2a1d0f0,0x29d9070},{0x28c76b0,0x27d9860},{0x28c7b00,0x29ec380},{0x28c76b0,0x27d9860},{0x28c7b00,0x29ec380},{0x2a1d560,0x29ebaa0},{0x28c7f70,0x2872270},{0x28c7f70,0x2872270},{0x2a1d560,0x29ebaa0},{0x2a1d9d0,0x2d23d60},{0x2a1d9d0,0x2d23d60},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x299c790,0x273df80},{0x2b72700,0x273d5c0},{0x299c790,0x273df80},{0x2b72700,0x273d5c0},{0x2903460,0x2a6d360},{0x2903010,0x29c4fa0},{0x2903460,0x2a6d360},{0x2903010,0x29c4fa0},{0x28c76b0,0x27d9860},{0x299d050,0x2c971d0},{0x299d050,0x2c971d0},{0x28c76b0,0x27d9860},{0x299d4c0,0x29e0e20},{0x299d930,0x29c3060},{0x299d4c0,0x29e0e20},{0x299d930,0x29c3060},{0x28c7b00,0x29ec380},{0x2af0420,0x2878a40},{0x2af0420,0x2878a40},{0x28c7b00,0x29ec380},{0x28c7f70,0x2872270},{0x28c7f70,0x2872270},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2af1600,0x2c9ebb0},{0x2b72700,0x273d5c0},{0x2af1600,0x2c9ebb0},{0x2b72700,0x273d5c0},{0x299cbe0,0x2a6cef0},{0x299c790,0x273df80},{0x299cbe0,0x2a6cef0},{0x299c790,0x273df80},{0x299d4c0,0x29e0e20},{0x2af7ad0,0x2d486c0},{0x2af7ad0,0x2d486c0},{0x299d4c0,0x29e0e20},{0x2af7f40,0x2a35740},{0x2af83b0,0x2ceb730},{0x2af7f40,0x2a35740},{0x2af83b0,0x2ceb730},{0x299d930,0x29c3060},{0x2af8820,0x27d9440},{0x2af8820,0x27d9440},{0x299d930,0x29c3060},{0x2af0420,0x2878a40},{0x2af0420,0x2878a40},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2b35390,0x2ba0910},{0x2b72700,0x273d5c0},{0x2b35390,0x2ba0910},{0x2b72700,0x273d5c0},{0x2af7660,0x2a6caa0},{0x2af1600,0x2c9ebb0},{0x2af7660,0x2a6caa0},{0x2af1600,0x2c9ebb0},{0x2af7f40,0x2a35740},{0x2b6a320,0x2a76aa0},{0x2b6a320,0x2a76aa0},{0x2af7f40,0x2a35740},{0x2b6a790,0x25cef60},{0x2b6ac00,0x2ceb2c0},{0x2b6a790,0x25cef60},{0x2b6ac00,0x2ceb2c0},{0x2af83b0,0x2ceb730},{0x2b6b070,0x28785d0},{0x2b6b070,0x28785d0},{0x2af83b0,0x2ceb730},{0x2af8820,0x27d9440},{0x2af8820,0x27d9440},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2bdd970,0x2ba11c0},{0x2b72700,0x273d5c0},{0x2bdd970,0x2ba11c0},{0x2b72700,0x273d5c0},{0x2b357e0,0x2da26d0},{0x2b35390,0x2ba0910},{0x2b357e0,0x2da26d0},{0x2b35390,0x2ba0910},{0x2b6a790,0x25cef60},{0x2bde230,0x2b75420},{0x2bde230,0x2b75420},{0x2b6a790,0x25cef60},{0x27eb7d0,0x2729230},{0x27ebbf0,0x2ceae50},{0x27eb7d0,0x2729230},{0x27ebbf0,0x2ceae50},{0x2b6ac00,0x2ceb2c0},{0x27ec060,0x28781a0},{0x27ec060,0x28781a0},{0x2b6ac00,0x2ceb2c0},{0x2b6b070,0x28785d0},{0x2b6b070,0x28785d0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2a0a620,0x2a095a0},{0x2b72700,0x273d5c0},{0x2a0a620,0x2a095a0},{0x2b72700,0x273d5c0},{0x2bdddc0,0x2ca5ff0},{0x2bdd970,0x2ba11c0},{0x2bdddc0,0x2ca5ff0},{0x2bdd970,0x2ba11c0},{0x27eb7d0,0x2729230},{0x2a0aee0,0x2b74fb0},{0x2a0aee0,0x2b74fb0},{0x27eb7d0,0x2729230},{0x2a0b350,0x2728dc0},{0x2904420,0x2b32e60},{0x2a0b350,0x2728dc0},{0x2904420,0x2b32e60},{0x27ebbf0,0x2ceae50},{0x2904860,0x2965980},{0x2904860,0x2965980},{0x27ebbf0,0x2ceae50},{0x27ec060,0x28781a0},{0x27ec060,0x28781a0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2905a40,0x28b9210},{0x2b72700,0x273d5c0},{0x2905a40,0x28b9210},{0x2b72700,0x273d5c0},{0x2a0aa70,0x2d501e0},{0x2a0a620,0x2a095a0},{0x2a0aa70,0x2d501e0},{0x2a0a620,0x2a095a0},{0x2a0b350,0x2728dc0},{0x2a0b350,0x2728dc0},{0x2904420,0x2b32e60},{0x2904420,0x2b32e60},{0x2904860,0x2965980},{0x2904860,0x2965980},{0x27532f0,0x29e7650},{0x2905a40,0x28b9210},{0x27532f0,0x29e7650},{0x2905a40,0x28b9210},{0x28f4610,0x281c8d0},{0x28f4610,0x281c8d0},{0x28f4a80,0x2b32580},{0x28f4a80,0x2b32580},{0x28f4ef0,0x29650a0},{0x28f4ef0,0x29650a0},{0x2725750,0x29e6df0},{0x2725300,0x28b9ac0},{0x2725750,0x29e6df0},{0x2725300,0x28b9ac0},{0x28f41a0,0x2c16e10},{0x28f56e0,0x281c460},{0x28f56e0,0x281c460},{0x28f41a0,0x2c16e10},{0x28f4610,0x281c8d0},{0x28f4a80,0x2b32580},{0x28f4610,0x281c8d0},{0x28f4a80,0x2b32580},{0x28f4ef0,0x29650a0},{0x2936270,0x2b32140},{0x2936270,0x2b32140},{0x28f4ef0,0x29650a0},{0x29366e0,0x2708e30},{0x29366e0,0x2708e30},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2725300,0x28b9ac0},{0x2b72700,0x273d5c0},{0x2725300,0x28b9ac0},{0x2b72700,0x273d5c0},{0x2a36cb0,0x2766fd0},{0x2a36860,0x29c46c0},{0x2a36cb0,0x2766fd0},{0x2a36860,0x29c46c0},{0x2725bc0,0x2c169a0},{0x2a37590,0x281bff0},{0x2a37590,0x281bff0},{0x2725bc0,0x2c169a0},{0x28f56e0,0x281c460},{0x2936270,0x2b32140},{0x28f56e0,0x281c460},{0x2936270,0x2b32140},{0x29366e0,0x2708e30},{0x2a37a00,0x2a08b50},{0x2a37a00,0x2a08b50},{0x29366e0,0x2708e30},{0x2822830,0x27089c0},{0x2822830,0x27089c0},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2a36860,0x29c46c0},{0x2b72700,0x273d5c0},{0x2a36860,0x29c46c0},{0x2b72700,0x273d5c0},{0x2a63380,0x2aeb810},{0x2823a10,0x2a755d0},{0x2a63380,0x2aeb810},{0x2823a10,0x2a755d0},{0x2a37120,0x2aeb3d0},{0x2a63c40,0x29d8790},{0x2a63c40,0x29d8790},{0x2a37120,0x2aeb3d0},{0x2a37590,0x281bff0},{0x2a37a00,0x2a08b50},{0x2a37590,0x281bff0},{0x2a37a00,0x2a08b50},{0x2822830,0x27089c0},{0x2a640b0,0x2a086e0},{0x2a640b0,0x2a086e0},{0x2822830,0x27089c0},{0x2a64520,0x2708550},{0x2a64520,0x2708550},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2823a10,0x2a755d0},{0x2b72700,0x273d5c0},{0x2823a10,0x2a755d0},{0x2b72700,0x273d5c0},{0x2aa1480,0x2735f70},{0x2aa1030,0x2a75160},{0x2aa1480,0x2735f70},{0x2aa1030,0x2a75160},{0x2a637d0,0x29d8c00},{0x27902b0,0x2742b00},{0x27902b0,0x2742b00},{0x2a637d0,0x29d8c00},{0x2a63c40,0x29d8790},{0x2a640b0,0x2a086e0},{0x2a63c40,0x29d8790},{0x2a640b0,0x2a086e0},{0x2a64520,0x2708550},{0x2790720,0x2742690},{0x2790720,0x2742690},{0x2a64520,0x2708550},{0x2790b90,0x2a9ec50},{0x2790b90,0x2a9ec50},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2aa1030,0x2a75160},{0x2b72700,0x273d5c0},{0x2aa1030,0x2a75160},{0x2b72700,0x273d5c0},{0x2b26940,0x2735b00},{0x2b264f0,0x27ca0b0},{0x2b26940,0x2735b00},{0x2b264f0,0x27ca0b0},{0x278fec0,0x29d8360},{0x2b27220,0x2742220},{0x2b27220,0x2742220},{0x278fec0,0x29d8360},{0x27902b0,0x2742b00},{0x2790720,0x2742690},{0x27902b0,0x2742b00},{0x2790720,0x2742690},{0x2790b90,0x2a9ec50},{0x2b71590,0x2d238f0},{0x2b71590,0x2d238f0},{0x2790b90,0x2a9ec50},{0x2b719d0,0x2d23500},{0x2b719d0,0x2d23500},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2b264f0,0x27ca0b0},{0x2b72700,0x273d5c0},{0x2b264f0,0x27ca0b0},{0x2b72700,0x273d5c0},{0x2b990c0,0x2735690},{0x2b98c70,0x27c9820},{0x2b990c0,0x2735690},{0x2b98c70,0x27c9820},{0x2b26db0,0x2da07b0},{0x2b999a0,0x2741de0},{0x2b999a0,0x2741de0},{0x2b26db0,0x2da07b0},{0x2b27220,0x2742220},{0x2b71590,0x2d238f0},{0x2b27220,0x2742220},{0x2b71590,0x2d238f0},{0x2b719d0,0x2d23500},{0x2b99e10,0x2877a80},{0x2b99e10,0x2877a80},{0x2b719d0,0x2d23500},{0x2bd5bf0,0x278dd10},{0x2bd5bf0,0x278dd10},{0x2cd8790,0x2d1b310},{0x2cd8790,0x2d1b310},{0x2b98c70,0x27c9820},{0x2b72700,0x273d5c0},{0x2b98c70,0x27c9820},{0x2b72700,0x273d5c0},{0x2bd71e0,0x29c7d10},{0x2bd6d90,0x28f8070},{0x2bd71e0,0x29c7d10},{0x2bd6d90,0x28f8070}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment