diff --git a/.githooks/pre-commit b/.githooks/pre-commit
index 2763cb0..7a91c92 100755
--- a/.githooks/pre-commit
+++ b/.githooks/pre-commit
@@ -9,7 +9,8 @@ if ! command -v clang-format >/dev/null 2>&1; then
fi
staged=$(git diff --cached --name-only --diff-filter=ACMR \
- | grep -E '\.(cpp|cc|cxx|hpp|hh|hxx|h)$' || true)
+ | grep -E '\.(cpp|cc|cxx|hpp|hh|hxx|h)$' \
+ | grep -vE '(^|/)(json|httplib)\.h(pp)?$' || true)
if [ -z "$staged" ]; then
exit 0
diff --git a/.gitignore b/.gitignore
index 9b27bf4..c6b0d5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,4 +42,8 @@ Thumbs.db
# Clangd index cache
.cache/
-simulation.json
\ No newline at end of file
+simulation.json
+
+homework_13/robot_ws/install/
+homework_13/robot_ws/build/
+homework_13/robot_ws/log/
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..1c95629
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/rd_cpp_docker.iml b/.idea/rd_cpp_docker.iml
new file mode 100644
index 0000000..c956989
--- /dev/null
+++ b/.idea/rd_cpp_docker.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..4ec9559
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "customColor": "",
+ "associatedIndex": 5
+}
+
+
+
+
+
+ {
+ "keyToString": {
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "RunOnceActivity.typescript.service.memoryLimit.init": "true",
+ "codeWithMe.voiceChat.enabledByDefault": "false",
+ "com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
+ "git-widget-placeholder": "feature/hw34-mavlink",
+ "javascript.preferred.runtime.type.id": "node",
+ "junie.onboarding.icon.badge.shown": "true",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "to.speed.mode.migration.done": "true",
+ "vue.rearranger.settings.migration": "true"
+ }
+}
+
+
+
+
+
+
+
+
+
+
+ 1786786125798
+
+
+ 1786786125798
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/drone_simulation_mavlink/.gitignore b/drone_simulation_mavlink/.gitignore
new file mode 100644
index 0000000..f4f2055
--- /dev/null
+++ b/drone_simulation_mavlink/.gitignore
@@ -0,0 +1,45 @@
+# Директорії збірки та локальний output мають відтворюватися з CMake.
+build/
+build-*/
+out/
+
+# CMake генерує ці файли при in-source або ручних локальних збірках.
+CMakeCache.txt
+CMakeFiles/
+CTestTestfile.cmake
+cmake_install.cmake
+compile_commands.json
+install_manifest.txt
+_deps/
+
+Makefile
+!/Makefile
+
+# Мінімальний набір compiled/debug артефактів для C++ прикладів.
+*.d
+*.o
+*.obj
+*.a
+*.so
+*.dylib
+*.dll
+*.exe
+*.out
+*.dSYM/
+*.pdb
+core
+core.*
+
+# Метадані операційної системи не є частиною навчального репозиторію.
+.DS_Store
+Thumbs.db
+
+#local history extension
+.history/
+
+.claude/
+
+# Clangd index cache
+.cache/
+
+c_library_v2/
\ No newline at end of file
diff --git a/drone_simulation_mavlink/CMakeLists.txt b/drone_simulation_mavlink/CMakeLists.txt
new file mode 100644
index 0000000..f932a82
--- /dev/null
+++ b/drone_simulation_mavlink/CMakeLists.txt
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 3.20)
+project(drone_simulation CXX)
+
+add_library(drone_simulation_lib
+ src/simulation.cpp
+ src/solvers/analytical_solver.cpp
+ src/solvers/table_solver.cpp
+ src/providers/json_target_provider.cpp
+ src/providers/thread_safe_target_provider.cpp
+ src/config_loaders/file_config_loader.cpp
+ src/config_loaders/factory.cpp
+ src/mission_processor.cpp
+ src/drone_states/state_stopped.cpp
+ src/drone_states/state_accelerating.cpp
+ src/drone_states/state_decelerating.cpp
+ src/drone_states/state_turning.cpp
+ src/drone_states/state_moving.cpp
+ src/drone_physics.cpp
+ src/port_controllers/uart_port.cpp
+ src/port_controllers/gpio_controller.cpp
+ src/port_controllers/udp_port.cpp
+ src/drone_controller.cpp
+ src/mavlink_reporter.cpp
+)
+
+find_package(Threads REQUIRED)
+target_link_libraries(drone_simulation_lib PUBLIC Threads::Threads ${GPIOD_LIBRARIES})
+
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(GPIOD REQUIRED libgpiod)
+
+target_include_directories(drone_simulation_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${GPIOD_INCLUDE_DIRS})
+
+target_include_directories(drone_simulation_lib SYSTEM PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/c_library_v2)
+
+add_executable(drone_simulation_check src/main.cpp)
+target_link_libraries(drone_simulation_check PRIVATE drone_simulation_lib ${GPIOD_LIBRARIES})
+target_include_directories(drone_simulation_check PRIVATE ${GPIOD_INCLUDE_DIRS})
+target_compile_options(drone_simulation_check PRIVATE -Wall -Wextra -pedantic)
+target_compile_options(drone_simulation_lib PRIVATE -Wall -Wextra -pedantic)
+
+file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
\ No newline at end of file
diff --git a/drone_simulation_mavlink/data/ammo.json b/drone_simulation_mavlink/data/ammo.json
new file mode 100644
index 0000000..a1c485b
--- /dev/null
+++ b/drone_simulation_mavlink/data/ammo.json
@@ -0,0 +1,32 @@
+[
+ {
+ "name": "VOG-17",
+ "mass": 0.35,
+ "drag": 0.004,
+ "lift": 0
+ },
+ {
+ "name": "M67",
+ "mass": 0.6,
+ "drag": 0.005,
+ "lift": 0
+ },
+ {
+ "name": "RKG-3",
+ "mass": 1.2,
+ "drag": 0.007,
+ "lift": 0
+ },
+ {
+ "name": "GLIDING-VOG",
+ "mass": 0.45,
+ "drag": 0.005,
+ "lift": 0.005
+ },
+ {
+ "name": "GLIDING-RKG",
+ "mass": 1.4,
+ "drag": 0.007,
+ "lift": 0.005
+ }
+]
\ No newline at end of file
diff --git a/drone_simulation_mavlink/data/ballistic_table.txt b/drone_simulation_mavlink/data/ballistic_table.txt
new file mode 100644
index 0000000..57cd781
--- /dev/null
+++ b/drone_simulation_mavlink/data/ballistic_table.txt
@@ -0,0 +1,3306 @@
+11 10 5 3 2
+50. 60. 70. 80. 90. 100. 110. 120. 130. 140. 150.
+1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
+0.35 0.45 0.6 1.2 1.4
+0.004 0.005 0.007
+0. 0.005
+3.5045080212366058 2.8938155146905893
+3.6201084533913095 14.596626942484109
+3.5838661492081623 2.8231231700671886
+3.699868100734687 14.211657158007464
+3.7431679856267204 2.6873984271417486
+3.8586643789492037 13.466257312622519
+3.434299419039064 2.958124778467509
+3.5057865423231194 12.054688393980792
+3.4957122792461197 2.901780310727317
+3.567722186976936 11.823864656286617
+3.6192238760294444 2.792294557180691
+3.691746897656515 11.369252603859444
+3.373217574322246 3.015461112081073
+3.4158069139739107 9.849975552679414
+3.418994857073471 2.9723683150270346
+3.461922419838276 9.715163696317177
+3.5111080873957388 2.887856088525701
+3.5545292376780524 9.447386390106308
+3.2823890485031724 3.103183050768454
+3.29621753747683 6.545379353297966
+3.30499485751573 3.081069618549535
+3.31889350510648 6.502233114091517
+3.350413352446452 3.0372049441187245
+3.3644377383844164 6.416124020523711
+3.2695046818165725 3.1158714772391387
+3.2805028894888673 6.07086025714968
+3.288840417769944 3.096852954496167
+3.299886876792528 6.036553354701744
+3.327671035659814 3.059075667594949
+3.338805489799236 5.96807204860553
+3.5067468293498383 5.765119833790019
+3.653123867982994 17.76421385861027
+3.586569569938885 5.61906406734092
+3.732742337036709 17.268540638041436
+3.746693699828885 5.339306831394281
+3.890940663856774 16.320514058289717
+3.4360937077508926 5.898199667368929
+3.5304393612441345 15.209419498191588
+3.4978971628219844 5.781590873807161
+3.5925651422181604 14.899721243720753
+3.6221220594329635 5.555444578941792
+3.7167670023557733 14.29564316715318
+3.374598078828289 6.017022994352121
+3.4336947181038253 13.000544633644015
+3.4206878814769124 5.927702459199835
+3.4800772460516227 12.810378478128392
+3.513387033888586 5.752797882590855
+3.5731149185388724 12.435418498191614
+3.283105188510465 6.199140404412416
+3.3047769621150334 9.705326236146131
+3.3058819798238988 6.153193962710674
+3.3276326232411995 9.636559059493788
+3.351632673545713 6.062128125438335
+3.373518130528189 9.499795858087904
+3.270121653562058 6.22551536609908
+3.2877982247306563 9.233920429146137
+3.289605745891789 6.185985393143057
+3.3073387590228083 9.17784006080078
+3.328725892580271 6.107520794217627
+3.346558071602352 9.06622021575093
+3.510215374434465 8.602953291674265
+3.690408196440236 20.989123238576802
+3.5907386689712655 8.374805884507674
+3.7698247503260056 20.363895988801147
+3.752081234680552 7.939293651994592
+3.9272871430727956 19.182761795843444
+3.438885002325029 8.81130807406083
+3.5582772525050306 18.411650560707738
+3.5012839003712237 8.628716144956165
+3.6206559178553186 18.010081236681586
+3.626582353375272 8.275596517151532
+3.7451199878875734 17.23398182252289
+3.376753364514925 8.997733267378202
+3.4538756402504416 16.188624500958046
+3.423324006429023 8.857561162642932
+3.500629639883226 15.934427379107984
+3.5169164064616396 8.583684709654335
+3.5942766635544654 15.436473237422963
+3.284229201897865 9.284190746255323
+3.3144080032046093 12.885548146724743
+3.307272536639881 9.211836383874243
+3.337527858403358 12.787584300450991
+3.3535388623825826 9.06859772635649
+3.3839153090577834 12.593285340195392
+3.271090747562447 9.325750609274928
+3.296002720264084 12.41456231822149
+3.2908065076399233 9.26346901180043
+3.3157754345344017 12.33373375217687
+3.330377174853081 9.13996868350277
+3.355440618926201 12.173214136414801
+3.5147251286397743 11.400914259625143
+3.7322073975497823 24.263710644091898
+3.596131535415094 11.08295500018713
+3.811216064816327 23.487156479350194
+3.758980468109193 10.478555366927889
+3.9675558734774237 22.03895382726952
+3.442530875536972 11.692114989184134
+3.589521098200983 21.65594557765714
+3.5056898083124834 11.436877921714666
+3.6521264274385623 21.147285317496895
+3.632338913860988 10.944981871227755
+3.7767700391095365 20.173408054678525
+3.379579895141287 11.953346126741296
+3.4765282702095446 19.41033754798965
+3.426770670035081 11.756867518821256
+3.5237058237476777 19.081851789969924
+3.52150328179288 11.374024161454425
+3.6180362984671737 18.442523252714498
+3.2857122240435808 12.356017937748097
+3.3252060229880938 16.08413781190225
+3.309104465733921 12.254163403156914
+3.3486570988416053 15.95269345631721
+3.356042502975262 12.052815972345435
+3.395671172429519 15.692671139931674
+3.272370472734567 12.414567506076052
+3.3051986583433357 15.611145115724675
+3.2923901082063045 12.326837420338821
+3.3252650905560643 15.501996840586935
+3.3325492979805196 12.153092156043025
+3.3654922945669443 15.285700076845876
+3.520110876563541 14.15506612986139
+3.778698182165511 27.583363725423176
+3.602537178285896 13.73915888734922
+3.8569473173437814 26.63115808652755
+3.7670895848548795 12.952390538378907
+4.011547048316258 24.879483369703127
+3.446906251564902 14.537218597785548
+3.6243381316403775 24.939507197240044
+3.510954734474191 14.202197496083798
+3.687054823867036 24.306573986836625
+3.639160297620886 13.559118298044751
+3.811635499634857 23.106674849454304
+3.3829865966661576 14.88107057394149
+3.501788823033367 22.663963993308453
+3.4309114261029583 14.622359510526586
+3.549390486933331 22.249561593371197
+3.526978640424285 14.119837806970278
+3.644378724011017 21.448425000355716
+3.2875113289101634 15.41303423141529
+3.337241951412992 19.30040194270388
+3.3113232250110465 15.278252387519347
+3.3610749456584323 19.130621189027732
+3.359064939071429 15.012259153786507
+3.408806873994907 18.795667010976715
+3.2739243978569994 15.490580405265744
+3.315446862854939 18.823084833167123
+3.2943103344163474 15.374404769127848
+3.335855499080458 18.68157031413461
+3.3351757854250255 15.14465656527266
+3.376734092809495 18.401754468924086
+3.5262290623025736 16.863029345628213
+3.8300156981287996 30.945280935412768
+3.6097734800378687 16.34097458900805
+3.9070068519614694 29.79076306668333
+3.776152600891512 15.358632851082998
+4.059036182770933 27.697493309725907
+3.451901847277813 17.344442174093786
+3.6628661285193154 28.26122476946717
+3.516939419066485 16.922312577925833
+3.7254885855586974 27.48498576983798
+3.6468475179153597 16.11558305615513
+3.849611095374843 26.028772263765195
+3.386893706576454 17.77904195706544
+3.5297705542316007 25.949221452633687
+3.43564442611278 17.451925728814526
+3.5777454196850815 25.435991419407312
+3.5331957047485356 16.818734566265448
+3.67326956913794 24.45084502372131
+3.289588748448124 18.454114159271715
+3.3505725793875154 22.53448116287608
+3.3138808516154015 18.282759160056422
+3.3748227132754796 22.321006871514196
+3.362537212802299 17.94521514056876
+3.4233323402751052 21.901049987870618
+3.2757204768034254 18.552799966986658
+3.3267955747199993 22.05052590461981
+3.296526531177881 18.404980687873135
+3.3475826558120008 21.87218869490093
+3.338198311721946 18.113123356043182
+3.3891770634133884 21.520389050712545
+3.5329556249676157 19.52347321510996
+3.8862662520406728 34.34771575310235
+3.6176845655775702 18.887231619763345
+3.961353023777712 32.96204431114094
+3.785954779654295 17.696757082965547
+4.109787510611806 30.487913219676322
+3.457422548825947 20.112440992440174
+3.705225841364755 31.621095169218002
+3.5235233998142363 19.595883509716966
+3.767456056970196 30.68069993432647
+3.655230970479857 18.61331674374025
+3.8905788627159343 28.936130728685363
+3.391231384109772 20.646025326073012
+3.5605742634314064 29.26683331864365
+3.440880893040886 20.244237365062475
+3.608819299798506 28.640598656395575
+3.5400277207417203 19.469391720234437
+3.7046641106403255 27.44763430110869
+3.2919112980135177 21.47845014312187
+3.3652462485731958 25.787130065530352
+3.316735249796701 21.266736908225766
+3.389933912156009 25.524137642873676
+3.3663988449095075 20.85052400739873
+3.4392513700393836 25.008331826818445
+3.277730474510072 21.600507693363284
+3.339285351362415 25.294150782006476
+3.2990029880792675 21.417715441943738
+3.3604755172025587 25.074158501014416
+3.3415656377060907 21.057427868063524
+3.4028267413797075 24.64126742291323
+3.5401838140516992 22.135796283961923
+3.9475326034491984 37.78944893432588
+3.626137655493897 21.377629622715578
+4.019920275468374 36.14175474360307
+3.7963172788490613 19.967317165996324
+4.163561095087207 33.2468629860779
+3.4633858049120705 22.840455884301548
+3.7515277022325475 35.01982670502658
+3.53060290922092 22.222282802014146
+3.812972460130008 33.892599403649776
+3.664166877873724 21.05218518944945
+3.93441385744752 31.8261171788374
+3.3959385867751823 23.481233378618228
+3.594294557395917 32.618241269618515
+3.446543660655215 22.99851759739426
+3.642653276273755 31.86353183844659
+3.5473657109141166 22.071228412470557
+3.7385120562034166 30.437424200866122
+3.294449692457209 24.485459985069692
+3.381306408438773 29.05957164983131
+3.3198493552687784 24.22952048546074
+3.406437596821611 28.740779005035712
+3.370596839371626 23.727419517989897
+3.4565645994349232 28.117544195753574
+3.2799295409675446 24.633180340262122
+3.352952134227205 28.555053709212434
+3.3017082206334667 24.41200086560262
+3.3745589018540696 28.288211517252822
+3.3452327650164313 23.976844190872683
+3.417685744958581 27.764519641186478
+3.547821974077613 24.699912963805367
+4.013874989245117 41.26939579383717
+3.635020016548729 23.812470613943702
+4.082621533387855 39.32696402075077
+3.8070920085148012 22.171576814957557
+4.220116661748274 35.97126815458086
+3.4697200706357934 25.528148354047335
+3.801875173921213 38.45854419245037
+3.5380887432869033 24.801387833075367
+3.8620427430908046 37.1199629517378
+3.673533828918087 23.432687948651694
+3.9809870914563383 34.696700066496064
+3.40096203998483 26.28420457406495
+3.6310237207851688 36.00539918098016
+3.4525656989879425 25.714387642262825
+3.6792842073992205 35.10539571640187
+3.5551161946497833 24.624187727489105
+3.7747601332841327 33.41935352892785
+3.2971781360213805 27.47472883893429
+3.398793997093393 32.35339705753316
+3.323190536045166 27.17065282500284
+3.4243605439567384 31.972057390052054
+3.375084836486246 26.575423075174726
+3.4752713250549263 31.229091122785825
+3.282295708457743 27.650436879576738
+3.36782930552637 31.83465437296379
+3.3046144616875304 27.387407586262924
+3.389855396364403 31.51540398500446
+3.349160239438487 26.87089478386639
+3.4337553935375524 30.890614752183936
+3.5557915213387767 27.216105674129118
+4.085329233789193 44.7862947059312
+3.6442362467494807 26.192475320298165
+4.149348917880401 42.51480951562357
+3.8181568868287337 24.311258444313953
+4.279216002578427 38.65861160778006
+3.476363393153908 28.17548668062333
+3.8563659663706424 41.93855988339305
+3.545904319173826 27.33343716452539
+3.914662698791794 40.36223873562271
+3.683229656246209 25.755759012026232
+4.030166882722197 37.54622212661048
+3.406255216916015 29.054718139694113
+3.67085407695035 39.43061789566807
+3.458888855471709 28.39175969625551
+3.718746351485621 38.36707776649961
+3.563199103450531 27.128585713875136
+3.8133533597449003 36.39287514676418
+3.3000738288235274 30.445966983778607
+3.417749112939028 35.67049441970666
+3.3267301031997714 30.08983274169358
+3.44372873137072 35.21937606703246
+3.379822229052759 29.394269563099797
+3.4953706394630073 34.34364328560998
+3.284809534847917 30.652004192485897
+3.383949135538648 35.1346360675346
+3.307697260350026 30.343640605794324
+3.406386656967392 34.757044194891485
+3.3533134032413416 29.739287111624655
+3.451036740078834 34.020269579070956
+3.908348809084388 3.108865081786397
+4.087623979074932 19.972715929308997
+4.0129286034579845 3.0183247434276317
+4.191712242055722 19.29682948275467
+4.22230185029211 2.846535341595973
+4.397566842350057 18.01680837327316
+3.815747100231518 3.1917679584031857
+3.9238400483475946 16.269483849649273
+3.8967504801924164 3.1191063945494863
+4.005430495904181 15.879478376105006
+4.059474550624719 2.979055722018851
+4.168220355215863 15.118964935907846
+3.735169984455348 3.2660574002055056
+3.797854827319173 13.07889362940012
+3.7955571691975973 3.2101919912641126
+3.858755785091927 12.859310538669927
+3.917051109008274 3.101207430440057
+3.980892240525699 12.424723704605197
+3.6154275290534974 3.380289101370381
+3.6346046510064807 8.321271943882834
+3.6452142504186793 3.3514352316479816
+3.6645091427636416 8.255709453478648
+3.705093466793151 3.29431254847308
+3.724594579013718 8.124853533297568
+3.598456616238231 3.396860831333663
+3.6135225261188593 7.639181514464687
+3.62392687171158 3.3720258798386626
+3.6390737965129434 7.587731329460091
+3.675105561113093 3.322774066843759
+3.6903976376306282 7.48501203988716
+3.9107598038365285 6.192814589984866
+4.128129546180026 23.45108217305045
+4.015819836809277 6.006759994845302
+4.231456521404573 22.619800196702336
+4.226021516510759 5.654545164658551
+4.435476739841719 21.066349392940413
+3.8176911501937862 6.363442041173031
+3.953777489316252 19.725786415648475
+3.8991052047110113 6.213878826248435
+4.035354409872738 19.227864493738835
+4.062564553211628 5.926156902114098
+4.197834918000654 18.267127399855625
+3.7366733899889004 6.516563828643661
+3.819392081093939 16.525165452385796
+3.7973938910736336 6.401396929481101
+3.8805162939031814 16.231391817280652
+3.9195039182367633 6.177066951262556
+4.002944176093328 15.654695403687526
+3.616213073292278 6.75243421151873
+3.6447994811828646 11.775222733824421
+3.646185653070788 6.692806596947189
+3.674899026426295 11.676101145189532
+3.70642381938181 6.574858231198056
+3.7353474960114266 11.4790821067385
+3.599134034880724 6.7866954077041415
+3.622200580890714 11.0969037191217
+3.62476595905099 6.735354553693086
+3.64792343630427 11.016998637214206
+3.6762585782693087 6.6336101363388895
+3.6995720965022874 10.858025205468778
+3.9145067919674905 9.239480105544644
+4.173410781869977 26.996030161773476
+4.02029105534928 8.950728824417583
+4.275773302629496 25.985163731150834
+4.231717876748634 8.405907718746347
+4.4776131512331 24.121840713743435
+3.8207257208686296 9.504890765229623
+3.987263354769999 23.238228954042857
+3.902766751303129 9.272214017787578
+4.068834269687722 22.615914972863205
+4.067332702647032 8.825842726182112
+4.230989232566196 21.427548295183186
+3.739029169089512 9.743573174328816
+3.8434661428263137 20.016216208703522
+3.800263672267992 9.564009266531997
+3.904903708960635 19.63745139515347
+3.9233143222912528 9.21501394819729
+4.027767981832495 18.89943752500969
+3.6174509964671384 10.11219181060971
+3.6561634873725355 15.253682229702402
+3.6477143352385113 10.018895575016629
+3.686548303490367 15.116704713458162
+3.708511415931483 9.834567751926159
+3.747529518229783 14.845318901012057
+3.6002024294176396 10.165832534976305
+3.63186834938662 14.575919271757984
+3.626087725120883 10.085460486446639
+3.657844413680754 14.4640055458721
+3.67807048212982 9.926347927044375
+3.7099732776310224 14.241939470037575
+3.9193917628456068 12.241527710250839
+4.223684002771788 30.59740426691235
+4.026088449103636 11.841835305076502
+4.32470653174159 29.379547326051362
+4.23902543268306 11.090799033404062
+4.523751433601403 27.1667158324246
+3.8247013579559246 12.609954447986356
+4.024514834650609 26.799738847175167
+3.9075432490380613 12.286912424383763
+4.105981555840409 26.033978007510953
+4.073500295579001 11.669326039113024
+4.267605289374589 24.587183443155624
+3.7421288729304005 12.942150411557773
+3.8702606315354413 23.54706513260259
+3.8040274895379826 12.692157413910927
+3.9320407189432682 23.070645488700166
+3.928279695270797 12.207615954078797
+4.055367586136677 22.149218930784897
+3.6190904188513553 13.456843635000357
+3.668797981464017 18.754215795340134
+3.649735548637444 13.32638460343704
+3.6995390201787717 18.574248847855937
+3.7112626974989187 13.069015996388602
+3.7611830204980974 18.2187694102002
+3.601618645894879 13.531910432473461
+3.642613522264506 18.074132394798077
+3.6278373752469553 13.41945102278048
+3.668909017481626 17.925951289075684
+3.680462295161089 13.197101203693641
+3.7216417273045965 17.63264894178473
+3.925239234077175 15.194391507611073
+4.2790892266406235 34.24818080311649
+4.032988233461706 14.675080728462124
+4.3782260983981285 32.79323439239293
+4.247626327372278 13.70392396816517
+4.573619764523993 30.189348335330596
+3.8294852131362167 15.674652950106992
+4.065692595364379 30.40601929072115
+3.9132645794698195 15.253470373201996
+4.14685103550682 29.475501786877945
+4.080822159995202 14.451481613427902
+4.307559032234808 27.73695698288964
+3.7458759284938994 16.10900565691275
+3.8999155161984955 27.115034747789316
+3.8085616638534923 15.782017621064895
+3.9620068223478135 26.52667561797914
+3.934220528528495 15.150262357964511
+4.08570868442893 25.397456123412393
+3.6210861139360877 16.78449786720532
+3.68277927234978 22.275708820127605
+3.6521917094441188 16.61298886872555
+3.713929237086624 22.046933800277067
+3.7145943565612227 16.275219944059273
+3.7763287523070024 21.596431593957625
+3.603344351120787 16.88327565464486
+3.654501807724441 21.59059978408365
+3.629966189151337 16.735318955102304
+3.6811685065810447 21.401323179581624
+3.683363711090234 16.44322147305203
+3.7345990478505935 21.027618286617873
+3.9318951667531374 18.09527907976583
+4.339715826297882 37.94316430488797
+4.040795496120281 17.447628690023276
+4.436254051901326 36.21872151137393
+4.257249041795247 16.24281909662586
+4.626926375460785 33.181274310661394
+3.8349599702334713 18.696407692892418
+4.110923933980328 34.05452804552028
+3.919781290177452 18.169112430051822
+4.19146312075943 32.93586369044839
+4.089085677024361 17.169509707059497
+4.350702462633306 30.870307362718812
+3.7501848433368945 19.241912091493752
+3.932546154740056 30.718978819850214
+3.8137568911596937 18.83108357791831
+3.994856608626713 30.002886269570773
+3.94097934747859 18.04014971017948
+4.118736261023241 28.639570076749433
+3.6233978573027863 20.093794602904712
+3.6981689599643763 25.817958710391466
+3.6550316249119583 19.87708885733769
+3.729763041046811 25.53395288940476
+3.7184325653741848 19.451128857593204
+3.792975403573859 24.97648004599785
+3.605345468921928 20.2187307992604
+3.667585829950713 25.125176816235548
+3.632430839622556 20.03162713636777
+3.6946617716810883 24.889481963315927
+3.686712367648728 19.662860329432352
+3.748856186391246 24.42534907393265
+3.939225303186537 20.942607688783383
+4.405613822565727 41.67818211454025
+4.049342134857602 20.1581003719255
+4.498677424293217 39.649874004480395
+4.2676645069374075 18.706871393315748
+4.683373483295972 36.13617269740024
+3.8410225902436816 21.673604597866742
+4.160314422799155 37.743849779545364
+3.926962983847434 21.032243389966514
+4.239815050771396 36.411671320270706
+4.098108314316902 19.82216712557904
+4.396874857203324 33.98234404324404
+3.754980015010811 22.339375225135623
+3.9682535316078287 34.35881492567049
+3.819517005163479 21.83775701585827
+4.030629359322677 33.497725143422976
+3.9484190086207227 20.87570607240398
+4.154383590241057 31.872317921648484
+3.6259899517759853 23.38374483002503
+3.715019665426319 29.381437742744737
+3.6582099117022664 23.117528394646246
+3.7470760715507523 29.03521459815085
+3.722711912462859 22.595334636073705
+3.811124785009546 28.35791015474931
+3.6075916598128264 23.53739447555538
+3.6819100728909184 28.67831277159513
+3.6351928861062093 23.307335779489016
+3.709420126350104 28.390422053834573
+3.6904529257666594 22.85472163062361
+3.76441794274195 27.825072222818914
+3.9471132392037966 23.735644929015645
+4.4767982226879495 45.44952826690014
+4.058484015028822 22.80612358359776
+4.565354960610788 43.081385013224384
+4.278681064316986 21.096693619213227
+4.742665132026967 39.04922794847668
+3.8475828578480384 24.60531626586318
+4.213953890916272 41.47326249774689
+3.9346964673026523 23.84209915781836
+4.291886739351129 39.90029800586018
+4.107734387673601 22.409276869154148
+4.4459089158337655 37.06931203547723
+3.760194773117916 25.400427713010988
+4.0071302770356825 38.03520848800799
+3.8257576541865235 24.80108786789467
+4.069354499343646 37.01038376603931
+3.9564207152441555 23.656224038256532
+4.192577171756838 35.093359372670875
+3.628830590221926 26.65362572329798
+3.7333786287095903 32.96713448700653
+3.661686229986943 26.333483926766057
+3.7658989144799104 32.55115747373037
+3.7273745610895834 25.706893631190294
+3.830774870170644 31.740303488748822
+3.610055983206388 26.838616135220928
+3.6975139940147774 32.2509138384679
+3.6382181101226982 26.561690398742382
+3.7254702611653436 31.90461156014455
+3.694536332982547 26.01790893577716
+3.7812856419288456 31.226545077646133
+3.9554583667004457 26.4742658286521
+4.553249584019849 49.25356102042953
+4.06809806839755 25.392028696086335
+4.636120637985482 46.50841800117637
+4.290139451363941 23.413709183921608
+4.804511679300002 41.91671176973302
+3.854562008951723 27.49111426315316
+4.271919078799495 45.24241219828861
+3.9428837752726325 26.59851068559316
+4.347643616498462 43.39955759081595
+4.117831768792764 24.931397870146764
+4.4976342283594395 40.12823579736331
+3.7657704395272957 28.424490398515005
+4.049264278575017 41.74934232566381
+3.8324050325350263 27.720598524700048
+4.111054708754402 40.540540394670984
+3.96488189546363 26.38161268298664
+4.233239507758765 38.300962561413066
+3.6318915010755894 29.9029146189136
+3.7532901286594202 36.57644351445416
+3.6654247421260955 29.52438054999584
+3.786259324227151 36.082620705052776
+3.7323694757641785 28.785205208773593
+3.8519216857244345 35.12366506556005
+3.6127143918163 30.12191513637958
+3.7144341243432506 35.84424751001923
+3.6414760611887926 29.794150335316054
+3.742836198607223 35.43288123483258
+3.698919196172059 29.151822429772988
+3.799458819207397 34.629910715120936
+3.964173910165963 29.158782310815166
+4.634912241956944 53.08640155923203
+4.078079672274095 27.916637896735867
+4.710785906849352 49.926373655896874
+4.301908009413771 25.6598672953671
+4.868632724008338 44.73570525331599
+3.8618913644070556 30.33093745996967
+4.334274216497257 49.0510601109722
+3.9514402891131195 29.30173820267394
+4.407037872022774 46.9074695129167
+4.128288782280359 27.389596613619133
+4.551879167278277 43.15667664232815
+3.7716553696256327 31.41127422814225
+4.094740749875088 45.502739736952094
+3.8393946328149213 30.59616071209191
+4.155747514128309 44.08817012791144
+3.973714176909244 29.05222348457007
+4.276290577049268 41.49379575186964
+3.6351474801160117 33.131240299790946
+3.774797184805354 40.21108504841036
+3.6693936783488605 32.68983201376275
+3.8081837359252235 39.630750021743644
+3.7376515961152053 31.82992630594246
+3.8745605030803456 38.508305733815526
+3.6155454238517963 33.38694157407758
+3.732705554083098 39.45987351278162
+3.644939693514959 33.004337533159266
+3.7615406302356313 38.97634310948755
+3.703563085965852 32.256085873455525
+3.818936305619468 38.03559613615616
+4.296625019079373 3.293271335258404
+4.5612575105855635 26.30768999722597
+4.42855651399023 3.182216821934386
+4.68990929341998 25.188990530282908
+4.6917802622904095 2.9741783358302945
+4.942627549732541 23.134561042909784
+4.179646490089138 3.395681002962341
+4.335731020465086 21.193727856587167
+4.281979956888662 3.305887028147534
+4.438335353982103 20.570791296192223
+4.487191232717542 3.134335876875431
+4.642079116798669 19.37339959083259
+4.077801573755593 3.487957411912323
+4.166237752607801 16.819016601529768
+4.1541299673135414 3.4185241198787164
+4.243237608760101 16.480030910255397
+4.307611802603276 3.28384516706776
+4.397337088132671 15.812846073344028
+3.9264954869184865 3.6306166287805826
+3.952207414313577 10.337519133403795
+3.9641193061800575 3.594505282722959
+3.990013700728414 10.242429516183005
+4.039785989204787 3.523164301453667
+4.065991439131656 10.05266041742153
+3.905066242342837 3.6513773324305787
+3.9250512426296207 9.410498795319468
+3.9372296199345453 3.6202701878508803
+3.9573406431692937 9.336747021211977
+4.001887364060823 3.5586839731410285
+4.022219793479401 9.189488346364381
+4.299180055690194 6.559520240248411
+4.609782254575881 30.077486746226203
+4.43159949492609 6.332225339586545
+4.736642892261911 28.748065083223125
+4.695644594492346 5.907356566833625
+4.985734162906847 26.341032875851223
+4.181719311164899 6.769442878918336
+4.371244138568331 24.931466268641948
+4.284477275568951 6.585363374436852
+4.473480267277712 24.16573839327129
+4.490433658379738 6.234335672772711
+4.676156260153624 22.710414458071707
+4.079412948296973 6.958865919086213
+4.191558704625648 20.53883839076312
+4.156090937238276 6.8163103812072
+4.268688892220993 20.103842825771167
+4.310209655903305 6.540213866679509
+4.422834250834291 19.25517455898017
+3.9273436443210983 7.252238862953807
+3.9640557386327093 14.060809446094892
+3.9651662834983488 7.177915964294165
+4.00206810656324 13.923399101422934
+4.041214583739266 7.031207509396402
+4.078419455808144 13.650453765342895
+3.9057983756770014 7.294986741352777
+3.9351230583392263 13.138027041566403
+3.9381351360130448 7.230939959368254
+3.967596350015263 13.028483561746569
+4.003127829844909 7.104231371671823
+4.032817330522436 12.810634731155238
+4.303160058685162 9.785129864310884
+4.663561763113921 33.921619680609446
+4.43631487868625 9.434098582472322
+4.7882389345271985 32.35154051028514
+4.7015712990579175 8.780023843880393
+5.0331315136221875 29.55037588172244
+4.184963191098231 10.110055990898282
+4.410662164179316 28.733422637244328
+4.2883696350426685 9.825092826822676
+4.5124587992570895 27.804554143057487
+4.495446488044076 9.283163026964132
+4.713923648874847 26.05909391054723
+4.081944952554306 10.403866670097585
+4.219655360996911 24.310487242631833
+4.1591628995868035 10.182696446480877
+4.296981786107067 23.766341167662866
+4.314254591876748 9.755282020740646
+4.451268589845716 22.713463577925616
+3.928684427547246 10.860095400271206
+3.977166280486536 17.812819381066333
+3.966818929493996 10.744376678628045
+4.015478860063378 17.62803422256553
+4.043462805164146 10.516231308022208
+4.09237883160462 17.2623449518536
+3.9069567364626043 10.926695578632398
+3.9462609631667265 16.89055180090038
+3.9395659809228416 10.826923926445605
+3.9790044006708594 16.741060475756836
+4.005082950467711 10.629744722992353
+4.044729966089375 16.444677953261948
+4.308359167602159 12.96193323759639
+4.722762258387981 37.82718196876783
+4.442439251377028 12.478567042838407
+4.844668976532122 35.98326299550995
+4.709183393605422 11.581513360199862
+5.084519784150298 32.74394274200884
+4.189222716668599 13.410608320584435
+4.4541903076461065 32.59082204143865
+4.293457535427924 13.017050363258042
+4.555353372702086 31.475597279668516
+4.501940793562052 12.271153128641673
+4.755257063864418 29.404420865819958
+4.08528496199541 13.817385160390144
+4.250712578165823 28.12788474000985
+4.1632012790888515 13.511082652449604
+4.328231177684741 27.45932019300212
+4.31953597090209 12.920778862875919
+4.482622568191037 26.176384053113114
+3.9304652374976032 14.451086259247003
+3.9916450530083654 21.590609023905532
+3.969010198094315 14.290112850342625
+4.030330898334061 21.35243365446402
+4.046433557958165 13.973224939243893
+4.107911183354786 20.882707000719847
+3.9084967587189126 14.543806846088152
+3.9585570144994673 20.665542064890833
+3.9414654816381334 14.404925427230907
+3.99164015237632 20.47113700368933
+4.007670834617597 14.130812903828792
+4.057998638327622 20.08679420442106
+4.314593289311213 16.08479865907844
+4.787465986317709 41.7844708431645
+4.449738445558055 15.460066057018551
+4.9058284539343475 39.631006707538816
+4.718150918141123 14.306038276746019
+5.139560392624135 35.90850467988292
+4.194358408782314 16.666588263149766
+4.501974165566619 36.497765470411906
+4.299562477274956 16.15616881545891
+4.602187290916054 35.17050592603495
+4.509660416184819 15.192624441166839
+4.799987867251818 32.73568262134517
+4.089331675366897 17.195664769050456
+4.284870414459436 31.98737291341701
+4.168076262955337 16.797126614294193
+4.362507379081623 31.17726951000329
+4.325865504639117 16.031526579584913
+4.516839858919601 29.63599342253976
+3.9326388713011657 18.023028182534322
+4.007572657336246 25.392649781415052
+3.9716798826241693 17.81249450724931
+4.046684651799673 25.094273285217596
+4.050039519296111 17.398772966547458
+4.125035844333549 24.50784381317646
+3.910378481007197 18.14440959093246
+3.9720809142520923 24.4617018907903
+3.943782760942437 17.962629741241745
+4.005557470777624 24.21675577093361
+4.010817866631688 17.604395343632152
+4.072644756059316 23.73385404426318
+4.321699598469063 19.150560751320775
+4.857695093974208 45.78562578187266
+4.458007140206941 18.375413635669645
+4.971562617170429 43.284986993282764
+4.728190657278289 16.950889529102664
+5.197902856582163 39.03439410813861
+4.200246074169866 19.875045593280998
+4.5541217472395115 40.450148872229896
+4.306526439443518 19.23929840243234
+4.652946405635797 38.88297177512342
+4.518381834098764 18.0444504040082
+4.84792495273516 36.04495343457679
+4.093994615263853 20.536137246103173
+4.322242688918609 35.88689592573789
+4.173672121133249 20.03795502085618
+4.399853989699975 34.91642220678195
+4.3330767736166 19.08435005085733
+4.553842675562211 33.08653491827151
+3.9351629809011572 21.574334560096187
+4.025014548994394 29.218392274029743
+3.9747739894760534 21.309637491441173
+4.064586026755489 28.852298372869424
+4.054202619181402 20.79050319574479
+4.143759423919959 28.135336096057976
+3.9125660741608184 21.727104587064968
+3.9868888958817577 28.278595523905857
+3.946472178536453 21.498361487455167
+4.020797389607336 27.976902606531315
+4.014458185475754 21.04834783202135
+4.088678501932496 27.38385474758361
+4.329535244712697 22.157408327086788
+4.933422152642755 49.82379897682418
+4.467067246280898 21.223047987618894
+5.04168007938442 46.93700490653154
+4.739062727332439 19.515382841231915
+5.259198795388077 42.11442973709318
+4.206775850808865 23.034115832672793
+4.610714301750667 44.44499604445461
+4.31421062830084 22.264611537231826
+4.707590076121611 42.608011804026255
+4.527912114446981 20.825228789349424
+4.898866198670978 39.326212283738975
+4.099193167997394 23.837061748985416
+4.362926884422728 39.82550132689772
+4.179886304053361 23.231717801394495
+4.44029728259132 38.6741838696082
+4.341023899996514 22.077452027125233
+4.593540837086557 36.52373496110398
+3.9379996819794485 25.103839329770985
+4.044026772252479 33.06801409125024
+3.9782442636156374 24.780182615429407
+4.084071943511152 32.62602759150899
+4.058853152509948 24.146770517112582
+4.16408103017694 31.763662153383848
+3.91502737896167 25.290850909814093
+4.003028688518715 32.11642945155017
+3.949492913450399 25.010895741919803
+4.037392922153376 31.751250861322422
+4.018532866176226 24.461151128736695
+4.106103388073143 31.0355920070504
+4.3379756718174205 25.10449016694941
+5.014574421940767 53.89260211386381
+4.476765341739159 24.00253454078868
+5.115960767150345 50.579908803984864
+4.7505658054290425 22.00018229644259
+5.323109897501271 45.143233784614196
+4.21385090755111 26.14271433719897
+4.671811614908573 48.479997040453185
+4.322493864906903 25.23121967869293
+4.766057041030193 46.34148728996411
+4.538085995994649 23.534746686196883
+4.952604993078196 42.57478016051697
+4.104855746011179 27.097298976797802
+4.407009871636436 43.80299976330104
+4.186628237413981 26.37730192129916
+4.483851509566779 42.448751129838925
+4.349579814887432 25.010010619380825
+4.635836854282417 39.944346171474635
+3.941114960929954 28.610681302073804
+4.064659573078912 36.942249885908225
+3.9820474914318176 28.223151564744022
+4.105173746818253 36.41555444634886
+4.063929037015564 27.46646018890997
+4.185995360180586 35.39194636975163
+3.917733624046415 28.834872219165515
+4.020542655345416 35.97590562392116
+3.9528083555173827 28.49933437580822
+4.0553720450507935 35.53998990269578
+4.022989296948752 27.841743433160314
+4.124918976920377 34.68844201752419
+4.346912691614069 27.991645849477145
+5.101035156353174 57.98572516983114
+4.486969896104842 26.714230173922473
+5.194161081301802 54.20725009880993
+4.762532197616514 24.40684701876963
+5.389312398800658 48.11677322918954
+4.221386221529217 29.20032821285695
+4.737454119353828 52.55316346762366
+4.331270741817563 28.13891166583226
+4.8282684813969325 50.079770902397954
+4.548762709735426 26.173616700147527
+5.008934140149667 45.78694401186605
+4.1109189228863565 30.31615654535758
+4.454571223219718 47.81971374996585
+4.193818209256498 29.4741364746727
+4.530521915317156 46.23883809144059
+4.358634268246252 27.881904517917704
+4.6806288973386545 43.3458362015043
+3.944478367104196 32.09423078196513
+4.086959834246699 40.84227173018523
+3.986145010778272 31.637853319908942
+4.127919448551489 40.22140740023779
+4.069375114290699 30.74885319462562
+4.20949463541207 39.019783580287566
+3.9206589389697264 32.358588638434746
+4.039469917112389 39.85811820246798
+3.956385686979039 31.963026410808308
+4.074759677981428 39.343704696199126
+4.027780609774816 31.189405327614836
+4.145122610398154 38.342209320491946
+4.356252575254212 30.819214872336946
+5.192643394105068 62.09667738489361
+4.497568732097182 29.35904869432017
+5.276017996669405 57.81306697981264
+4.7748230334671575 26.737518021418918
+5.457499838983739 51.03204528887613
+4.229307268200338 32.206868446478566
+4.80766309478213 56.662564351701874
+4.340449796027706 30.9879680938694
+4.894129680472645 53.819512387916156
+4.559822934380409 28.743023160206185
+5.067648180045466 48.95969828825686
+4.1173265330468665 33.49327877227826
+4.505684980656787 51.87628301455961
+4.201386170660928 32.52205436463562
+4.580306275275861 50.04347459044055
+4.36809185855169 30.693518190115327
+4.727812498396633 46.72616793971989
+3.9480625661428976 35.55403484589976
+4.110972790235917 44.76960147933402
+3.990502313387137 35.02381686650323
+4.15233525144288 44.0444468052939
+4.075142384423624 33.99353002072068
+4.234569832812026 42.64711131314697
+3.923780076301686 35.86157297697184
+4.05984786075657 43.76447840832543
+3.9601955626878804 35.40151070510793
+4.095579046221573 43.16328723332317
+4.03286502972696 34.503677854130736
+4.166710533066029 41.997015827369815
+4.673732119629226 3.4530151016608976
+5.049539232584255 33.63696183559573
+4.834885143362421 3.3210978099690216
+5.201039426506809 31.869249867019203
+5.155106239550652 3.077303013093649
+5.497447059913667 28.749536642281427
+4.530588937093372 3.5755926575018986
+4.747999032893874 26.849499741640017
+4.655822458688125 3.4680697766641715
+4.872375251253572 25.89649423630904
+4.90638033805947 3.2645823966737053
+5.118011320707646 24.099713332197293
+4.405850288382115 3.6866976221728076
+4.526521989505727 21.081670736849837
+4.499343219737954 3.6030428161809263
+4.620743925972105 20.579489948141887
+4.687165576693484 3.441775367434582
+4.8087762917353585 19.59878178109411
+4.22051994468607 3.859462957416747
+4.254081967152926 12.598895374101671
+4.266592127790016 3.815631800808383
+4.300419595203669 12.465866713351463
+4.3592789051292415 3.729231591712585
+4.393544872247024 12.200480476287487
+4.194285862114022 3.8846883755461246
+4.220129837539757 11.389440356778458
+4.233662952294935 3.8468985200334034
+4.259691654718055 11.287344915552703
+4.312852354248535 3.7722153500056255
+4.33919847784346 11.083501373077327
+4.676408386942586 6.8771510337908115
+5.1065846651255935 37.68109700751374
+4.838051135876946 6.607991808288936
+5.254731449457154 35.63587800013423
+5.159078187516001 6.111583110064739
+5.5451680777171415 32.079219143809716
+4.532773375456567 7.127625550816569
+4.789402597378159 30.85350486661281
+4.658440260221136 6.907894034327297
+4.912854089538677 29.716151003973813
+4.909744130963029 6.492801713029063
+5.156349172261012 27.59720805654695
+4.407557426327994 7.354978211100013
+4.555777070795552 25.05837964682093
+4.501412556818073 7.183767575468734
+4.649972240173506 24.43503528541024
+4.689885144836241 6.854202008666799
+4.837676742587276 23.22894509036776
+4.221425229584399 7.7091378525562115
+4.267605344555467 16.57223559253033
+4.26770762015223 7.619211927939285
+4.314155059260014 16.387293819697263
+4.3607953248323845 7.442098158722161
+4.40765170772895 16.02023596920383
+4.195068089272858 7.76091467989913
+4.231609029931678 15.36725226667
+4.234628969261465 7.683354884162702
+4.271364011713206 15.221378576154843
+4.31417156438044 7.530187066787409
+4.351221774344455 14.931420266058215
+4.680584554387812 10.2576811196785
+5.169313880984121 41.8052222196605
+4.842964480922546 9.84358425234943
+5.31348697104094 39.446842098734514
+5.165176256673213 9.0821875169875
+5.597168621220117 35.4080675654123
+4.536198789762039 10.643872535680485
+4.835059049299893 34.92908048872113
+4.6625276931014366 10.305037592669377
+4.957410486584925 33.58280005763233
+4.914951792845729 9.66664228567783
+5.198475319171212 31.10497016405907
+4.410245833231266 10.995140635213223
+4.5880438936040395 29.093702751696842
+4.504660920970115 10.730548821832834
+4.682243439437657 28.33348556992944
+4.694126935499567 10.222338446662862
+4.86965148768014 26.875696403972317
+4.222859927178192 11.543755349117676
+4.282480901058191 20.578471095289192
+4.269472727419045 11.404287260245988
+4.329339073350974 20.335763799646625
+4.363187213087692 11.129931821251905
+4.423383985546395 19.85605561785317
+4.196308876696229 11.62410955224816
+4.24422776138501 19.373743715230518
+4.236159229967505 11.5037561948792
+4.2842655710630355 19.179306065394048
+4.316255713686457 11.266329583027375
+4.36464185381003 18.794151590794222
+4.686048172301919 13.58569319349137
+5.237819636646127 45.99340115241294
+4.849353964256772 13.017844057126656
+5.377192921594614 43.2833131503818
+5.17301484524348 11.977753985485082
+5.653081002995299 38.71581331047192
+4.540704622250692 14.116733990599815
+4.885152779630951 39.06564920550227
+4.66787883489252 13.65073496815126
+5.00608969212658 37.482813492352776
+4.921706260440702 12.775683282508089
+5.244217781250487 34.60623746879117
+4.413799210909703 14.60101572826436
+4.623505051160422 33.18045427701426
+4.508938971875946 14.23611846184816
+4.717660695328199 32.265286068878744
+4.699673600393109 13.537165590450565
+4.9046587801205765 30.52621354784599
+4.224769935711618 15.359852080836294
+4.298818372556628 24.614175245359558
+4.271818386261256 15.166650495484022
+4.346058447108332 24.306767675395047
+4.366354363386839 14.787173923686337
+4.440781549984434 23.701516236912138
+4.197962427748194 15.4712558956445
+4.258081651190338 23.405965487750795
+4.238195415554204 15.304421776982787
+4.2984739381820765 23.157266662594978
+4.319020370804453 14.97573761852897
+4.379499241518605 22.666184210289753
+4.6926078868303875 16.855547131121103
+5.312103182982508 50.23298573651199
+4.856976951804374 16.124711479240005
+5.445661407084718 47.130706349239915
+5.182254959975293 14.792089555008205
+5.712509824886578 41.98804824524939
+4.546145669736183 17.541209895661122
+4.939805173453007 43.25558448167982
+4.674308094782732 16.939411180516004
+5.058876129091678 41.40601701366585
+4.929742576308229 15.8137625509991
+5.293363524975639 38.08887555547149
+4.418112119519092 18.16841003587037
+4.662297194349358 37.31396343012832
+4.514111554404675 17.69565525871503
+4.756281423737992 36.22370935050143
+4.706329469636074 16.792997058491352
+4.94261822969022 34.17128343243087
+4.227106314709713 19.154965213977786
+4.316701785474545 28.677412950228263
+4.274682080656199 18.90334250276618
+4.364375084813331 28.29746673497208
+4.370205958373554 18.410001596355702
+4.459861470709673 27.552249387798412
+4.199987353307907 19.30019494368338
+4.273243687538506 27.462276366906696
+4.240684752009647 19.08274239890773
+4.3140448760403185 27.15286762531637
+4.3223890113503325 18.65499891688232
+4.395814484093129 26.543812191959127
+4.7000934453070915 20.06374136377688
+5.392097159533051 54.51322502410207
+4.865619644442993 19.16070180576205
+5.518655878685656 50.977165977739226
+5.192604603859601 17.522282544446057
+5.775057893133097 45.214290040942856
+4.552391782708476 20.91400694030914
+4.999095492931612 47.493078920003015
+4.681650183272974 20.167577971960224
+5.11571449516163 45.34442101508327
+4.938828440527271 18.777470845390337
+5.345680167637851 41.543804818653534
+4.42308972454572 21.694433869874416
+4.704529058808039 41.491215026417905
+4.5200573570822975 21.105945388758947
+4.798134710036161 40.20386090641164
+4.713920580816752 19.9863234757471
+4.983427914007613 37.80405260454898
+4.229824841331023 22.927289145653678
+4.336199667559668 32.76728666792146
+4.278007337735609 22.612225010169553
+4.384335910427735 32.30615859727246
+4.374660167673016 21.995737999451208
+4.4806275523485155 31.40525330001218
+4.202346278385919 23.109331827978824
+4.289773089250127 31.54194932513142
+4.243579554548501 22.836812939045785
+4.331020935539747 31.164720955678913
+4.326292661590831 22.30168691300246
+4.413596437308512 30.424536974395334
+4.708354715891608 23.208258410767584
+5.477676375977656 58.824442628826276
+4.875095770571782 22.124093102520476
+5.5959058590203625 54.81270695260358
+5.203815778570509 20.167590895300435
+5.840339676519533 48.38685013059463
+4.559327158240996 24.233028603865453
+5.063070951891199 51.77344684539552
+4.6897591649545864 23.33319720758961
+5.176520691119292 49.29147288257197
+4.9487625730929565 21.66526886039081
+5.400927569348124 44.96408325205119
+4.428646972798589 25.177113336995323
+4.750290981202875 45.71032301364301
+4.52666824415266 24.464904229808603
+4.843230476531731 44.20208224414831
+4.722293675102667 23.11514464133431
+5.026973497535074 41.41929603992597
+4.232885687009276 26.67548554862983
+4.3573707706148666 36.88367083181346
+4.2817433548602795 26.291742688953278
+4.405978393935513 36.331965286571
+4.379643479146347 25.54251204122984
+4.5030755825460025 35.2584935519493
+4.205005431733529 26.897469917476627
+4.307720270206512 35.644941932693925
+4.246836888131049 26.56522869366105
+4.349436272832188 35.192173768067676
+4.330669220170007 25.914068543138026
+4.432846845841756 34.30672085924883
+4.717260214965987 26.2881398659431
+5.568663389379966 63.157517020111946
+4.885244305123327 25.01439695002987
+5.677116358690629 58.62868017923167
+5.215679901956297 22.72872284917528
+5.90798871063697 51.50010085028639
+4.566849205112066 27.497044165398695
+5.131751509930848 56.09264583240812
+4.698507051887562 26.435267634440947
+5.241187942492418 53.241568351151
+4.959372022416832 24.476913841373506
+5.4588645801345965 48.344317239130966
+4.434707931372787 28.615145728723594
+4.799660307385905 49.970168997971086
+4.5338482015064425 27.77126641516701
+4.891564668020985 48.2155524691351
+4.731314673718275 26.17853570547558
+5.073133467462567 45.01294086553337
+4.2362528729676185 30.398557811888697
+4.38026767853874 41.02703181675265
+4.285844347084193 29.940766631736388
+4.429333963019667 40.374622845799564
+4.385090037701072 29.04904520904644
+4.527196446821204 39.11063676846229
+4.207934412607682 30.663709213353673
+4.327129986198721 39.77174087005314
+4.250418006335939 30.26695117642434
+4.369319643580019 39.23512647886992
+4.335462902409953 29.490922160103302
+4.453563094652249 38.18935597108936
+4.726695304678029 29.30319379902419
+5.664831988234559 67.50355022938776
+4.895926769693169 27.831994836340616
+5.761974755984846 62.417436653703284
+5.228022958262762 25.20735196094682
+5.977661423746748 54.5499721593961
+4.574867427496815 30.705462094404048
+5.205131703832796 60.44692430137483
+4.707782079431145 29.473540335115043
+5.309590326039908 57.18971789233107
+4.970509024823244 27.213066288542105
+5.519253218633604 51.68026447519619
+4.4412049190709695 32.00773047042714
+4.852704393388253 54.27013377455462
+4.541512325474122 31.024373574579297
+4.943122213360518 52.24200297935672
+4.74086681248618 29.176348564451853
+5.121782287298018 48.581740738030206
+4.239893996141359 34.09577073743648
+4.404939239742134 45.19830010018509
+4.290269122273011 33.55849229163019
+4.454430248168218 44.43433217022588
+4.390941009365836 32.51450434801963
+4.552978096182867 42.96086391752958
+4.211105721784263 34.40737167842729
+4.348043470618732 43.92325194008115
+4.254287973731771 33.94122092313502
+4.3906963956539276 43.293904326848036
+4.340623726406517 33.031412231725234
+4.475739969413595 42.07190211487484
+4.736560340531015 32.25378555352571
+5.765910009367956 71.85367399836173
+4.907024801206264 30.577882914188503
+5.850156540732119 66.17211647108549
+5.2407006763920325 27.60578030515503
+6.049039154325536 57.53359735098646
+4.583302182635626 33.85816745936055
+5.283180832439727 64.83255890287252
+4.7174869407563325 32.44831515644625
+5.381585085175357 61.131318649324484
+4.9820481509742285 29.875015047983464
+5.581861184939495 54.968556284497176
+4.448077771227765 35.35444794049514
+4.909482100991036 58.6098888956438
+4.549585690152567 34.22402215065331
+4.997878572523095 56.27950762916024
+4.75084872556279 32.10899845881136
+5.172792327390342 52.12304628262677
+4.2437798064524905 37.76659029035518
+4.431432282208308 49.3987756669704
+4.29498070866978 37.144365155246966
+4.4812926060930245 48.51164815260367
+4.397143846941279 35.938396009696895
+4.580406809476543 46.80873390177448
+4.214494504044055 38.12795302032991
+4.3704999506702285 48.10071874569099
+4.258415375415756 37.58749450062663
+4.413589844139106 47.369162181210584
+4.346106910126444 36.53499894558234
+4.499370807200539 45.954167872788446
+5.042612481753301 3.5923887484119437
+5.55966209713504 41.98678809203002
+5.234624259239879 3.439529496231852
+5.7296436030247175 39.30092524941374
+5.614441339985734 3.161001354836032
+6.063445018273508 34.78421616768239
+4.871691120230137 3.7355767879381143
+5.165862159260733 33.259162082989036
+5.021243871616503 3.6099183330222666
+5.311960616833712 31.850525118999116
+5.319637425670498 3.374479799495841
+5.598974896447084 29.259368000614007
+4.7225605844442615 3.866185095474462
+4.882832830848435 25.878372184061078
+4.834347674769884 3.767777951866454
+4.995175007001321 25.158368777618932
+5.0586368488050715 3.5793121224068503
+5.218588852566084 23.766671144287958
+4.500903517105464 4.070531640762237
+4.543760267488788 15.108930743163958
+4.555998498718202 4.0185642280187395
+4.59922191819947 14.92813578178452
+4.666859354733204 3.9163654346547263
+4.710666168315661 14.56770826732679
+4.469538649630857 4.100472620261524
+4.5022692007952525 13.57927755603757
+4.516619086412296 4.055627230001664
+4.549607688308489 13.441846675043193
+4.6113279637816085 3.967166727086067
+4.644748853509312 13.167516594753156
+5.045391113008557 7.15425567494232
+5.625606133148065 46.286473772789236
+5.237890046020143 6.8431327837493034
+5.7900481137673605 43.24565523187864
+5.618492985261896 6.277323998105751
+6.1150889495789 38.20742435652209
+4.873972859495433 7.446112303758144
+5.213479663664344 37.51702836133804
+5.023963832922081 7.1899635778978865
+5.357837500478731 35.87504875380965
+5.323097814545246 6.710866803247254
+5.641297890626531 32.892005961689264
+4.7243532421175525 7.712697052009535
+4.9161862114435655 30.099034784651373
+4.836512041586625 7.5118047744840934
+5.028262383330979 29.228982983862704
+5.061458862756775 7.127622435137217
+5.25082468218436 27.563488632860214
+4.501861359460369 8.130530179667721
+4.558983194566306 19.316794973931437
+4.557176610598458 8.024183005830732
+4.614657018037813 19.073643977547178
+4.668454851581532 7.815217053500032
+4.726455612459774 18.591570997689775
+4.470367129328447 8.191829672565088
+4.515171502204685 17.79158345628619
+4.517640661094812 8.100023295097559
+4.562708959049257 17.601734029313924
+4.612718632706399 7.919061636868084
+4.65820123198007 17.224592027693852
+5.04973294268895 10.669885475941866
+5.697577438689202 50.66897713339635
+5.24296399821203 10.192695602956839
+5.855616108816578 47.23260345628276
+5.624717954290957 9.327376587002481
+6.170947241640462 41.62592195379034
+4.877556536284087 11.118473586346305
+5.265684063380468 41.85287260708051
+5.028216698104986 10.724718906524023
+5.407996648436072 39.94849649711203
+5.328460558274293 9.990133494883656
+5.687459611835674 36.53286762059353
+4.7271813634202715 11.529054945644626
+4.95278516806364 34.38478973034262
+4.839915183706477 11.219574723398326
+5.064580313333964 33.34617929876421
+5.065866372153742 10.628996156005364
+5.286245136211107 31.37697711496819
+4.503382509686748 12.174254474033969
+4.575646129947554 23.561686805223545
+4.559044546660886 12.009840050320681
+4.631629132760244 23.24948396201041
+4.670976145770175 11.687170151176495
+4.743957630725897 22.633326319716883
+4.471684065693054 12.269086833403561
+4.529284698855879 22.03622418791163
+4.5192622681720325 12.127076340187763
+4.57711305546527 21.78851071900912
+4.614919918861467 11.847454365033109
+4.673126495376003 21.298301633309855
+5.055419963392195 14.129698964415267
+5.775570195938042 55.11508419883419
+5.249568551424798 13.477522991913428
+5.926143415484363 51.240497207720544
+5.632724253413689 12.29922395956546
+6.230595709545263 45.01826196733309
+4.882277151134824 14.744431772329792
+5.322629100678156 46.254185097440526
+5.0337911073062935 14.204754161534364
+5.462438721654581 44.055271940555485
+5.335422082263237 13.20120802476918
+5.737241187169714 40.163689383245504
+4.7309254262394465 15.308535532462681
+4.992806560279497 38.7273186837646
+4.844403583055944 14.883205153851387
+5.104216538716912 37.4990602304493
+5.071636384413329 14.073745810046818
+5.324782297608378 35.19292879948919
+4.505411523568309 16.19789436167802
+4.5938617339474686 27.839708336693334
+4.561531454958039 15.970917379616674
+4.650226090836833 27.450557677674656
+4.674320297781258 15.526152266252115
+4.763209439893795 26.685787545436302
+4.473442568613942 16.328920600694623
+4.544707321484448 26.309846928071586
+4.521424118944219 16.132739767021935
+4.59289915585857 25.99781337729891
+4.617845118083539 15.746973578567959
+4.6895640782368515 25.38247428057733
+5.062254677066698 17.527599396919705
+5.859481555947673 59.609018987265124
+5.257454209429687 16.691122744527885
+6.001356657066176 55.25268055239741
+5.642166153156423 15.186338255491854
+6.293594668740433 48.3692438190014
+4.8879845186746325 18.318537957269683
+5.3844018635236655 50.71146851907804
+5.040495447542853 17.624036934912688
+5.521102820268699 48.18341409342723
+5.343710396792351 16.337513557624508
+5.790387578648017 43.77114532835466
+4.735476321869133 19.046536273656393
+5.036380105957116 43.12089576852673
+4.849837410978275 18.497432605225534
+5.147212063549512 41.679676043188984
+5.078566998772577 17.455729286810584
+5.366330435204318 39.00095656401291
+4.507897910088897 20.19871858256391
+4.613716735183193 32.14852449451442
+4.564572754724435 19.90414162027304
+4.6705105047953746 31.67352065789145
+4.67839333005802 19.327956567903176
+4.784225107963174 30.743934557996987
+4.4755999753639255 20.368933486284455
+4.561515066678203 30.610472185504737
+4.5240717442970055 20.114122051920535
+4.610124323803158 30.22682258702704
+4.621415135171362 19.61385434437507
+4.707533096210304 29.472844681211352
+5.070060524365141 20.859782597529385
+5.949134807340454 64.13705547957447
+5.266400202403102 19.829745274008108
+6.080939880415307 59.255575395341296
+5.6527451137730385 17.985640978904673
+6.359513341077132 51.66790404630075
+4.894543290789729 21.8371824637159
+5.451042610671938 55.21706533824221
+5.048158233843317 20.97877336039872
+5.583887201944051 52.32329550429155
+5.353086173860762 19.395396894448307
+5.8466288982624794 47.345223275864875
+4.740735332830583 22.73986518795917
+5.083605829168903 47.56149041765331
+4.856090460360498 22.058727673194646
+5.193578144665138 45.88199362523777
+5.086477858508346 20.771137030030644
+5.410762872848514 42.79320219753345
+4.510795762856551 24.174710037604264
+4.635282070291262 36.48688900601826
+4.568109744450976 23.80713059234159
+4.692529617061295 35.916224184539644
+4.683110099495511 23.089617590846686
+4.807005012682314 34.804196398745084
+4.478117525901765 24.38734104046393
+4.579769615790187 34.93708246984647
+4.527155623658013 24.069096584294222
+4.628832093403087 34.47377865899272
+4.625558198100686 23.445400858414402
+4.727040585991371 33.566428027802004
+5.0786811815916115 24.124045262395093
+6.044291854330868 68.68673139327908
+5.2762135828424785 22.891528879285126
+6.164550512105538 63.237815562013616
+5.664207079695767 20.696343150055508
+6.427942179006728 54.906326753118634
+4.901832470479976 25.298054223115784
+5.522554282278688 59.76444077256277
+5.056627434023422 24.266735009236736
+5.650660386507368 56.46686294432384
+5.36334143240669 22.373200767379398
+5.905691954522837 50.87827331615739
+4.746613455427376 26.386328320178542
+5.134563178694721 52.04621671549102
+4.863049682747277 25.56478766938752
+5.243305259612673 50.10127829910979
+5.095209469491383 24.017786531758702
+5.4579411584494935 46.563580833988624
+4.514063506908594 28.12436317794095
+4.658618578089628 40.85436671541857
+4.572089325883425 27.67813987456314
+4.7163208013137865 40.17738916564327
+4.688393666622191 26.80904929881932
+4.831541077955187 38.86403324293586
+4.480959999962153 28.382794931724018
+4.599523590300031 39.28938229458405
+4.53063092188312 27.99608446849267
+4.649057277138384 38.73769943929649
+4.630209347299749 27.23967509006978
+4.748086103451089 37.66115766468291
+5.087979260218067 27.319332603357136
+6.144661579837696 73.24638553595408
+5.286727100706682 25.87593874939765
+6.251829995614694 67.1897065904853
+5.676338060332687 23.31919059415466
+6.498499162359927 58.07886021168022
+4.909744408411691 28.69978728336521
+5.5989071058594115 64.34769969086639
+5.065769238080356 27.486818889712605
+5.721267748116195 60.60714687910058
+5.374297035236377 25.27065750226946
+5.9673070243157476 54.364391516101335
+4.753030862801816 29.984468210195743
+5.189316089208498 56.572953703338825
+4.870614264676554 29.014205369918443
+5.296368225388282 54.33368294687755
+5.1046217895363455 27.194660625896365
+5.507720427347832 50.307287429983866
+4.517663382149387 32.04654915154942
+4.683780590520658 45.25114437488361
+4.576463393665444 31.515894632458778
+4.7419149601593675 44.456385134788135
+4.6941747919778605 30.484816797164378
+4.857819909385076 42.921657565797986
+4.4840955224722725 32.35427394170847
+4.620823696538416 43.66763483454232
+4.534456956381929 31.893910381335374
+4.670828961026172 43.018189276322886
+4.635309940270503 30.995301729684712
+4.77066448860684 41.75564225146118
+5.097834644119621 30.445424880560555
+6.249906760095835 77.80489043858427
+5.297796599876029 28.783379071063944
+6.342411885467098 71.10288174605598
+5.688959327065734 25.855952708402672
+6.57083251067301 61.18156948742607
+4.918183804793554 32.0417172876252
+5.68004054511642 68.96123927283836
+5.07546644285965 30.638742422151044
+5.7955356883417135 64.73793104616259
+5.385799636838932 28.08847044753578
+6.031212048003808 57.79899899416192
+4.759916081735295 33.53338135852578
+5.247915733172577 61.140063708923606
+4.878694718368583 32.40624084501974
+5.352729171159108 58.575954800476225
+5.114592524633682 30.30158774883558
+5.559952724662382 54.02045839516638
+4.5215612142541906 35.94042922712588
+4.710818353516321 49.67789548812779
+4.581188459027125 35.31947956307129
+4.769338762388507 48.753072822268834
+4.700391322550736 34.11597758204601
+4.885824784588097 46.975837738915665
+4.4874951198779485 36.301003378688506
+4.643712861265388 48.072545748190386
+4.538596872421009 35.76170873021177
+4.694172500859399 47.3153033282347
+4.640807176197426 34.71133296294132
+4.794767648374482 45.84899486568745
+5.108142622873195 33.50271165100861
+6.3596508061003565 82.35152480116909
+5.309298648584484 31.61491960402189
+6.435928480590757 74.97007677493421
+5.701922585656445 28.309065989171756
+6.644621618349742 64.2118441749145
+4.9270665142637355 35.32370551237252
+5.765863937598826 73.59950114067223
+5.085616731205672 33.72282373168372
+5.87327476861706 68.85353235751367
+5.397718875301129 30.828020261340516
+6.097155093953286 61.178542591671196
+4.767205336854856 37.03258725310013
+5.310401742318907 65.74617337091865
+4.887211802233849 35.74065659888136
+5.412339163285445 62.825221197000026
+5.125015226873074 33.33901178911564
+5.614489133709104 57.69993242010654
+4.525726012312202 39.805389432724084
+4.739779725692727 54.13567925760768
+4.586225309004975 39.088258480002025
+4.798616160556264 53.06768652732749
+4.706987513655924 37.70196684405113
+4.91553694036566 51.02575408041819
+4.4911324767498675 40.22240259950035
+4.668231748577706 52.50517660324102
+4.54301736984926 39.59885502691146
+4.719110899638165 51.62944644646137
+4.646653549512475 38.387150425705684
+4.820385727925158 49.94070710893096
+5.40531957176294 3.7146235772942324
+6.097623813952628 51.362718402481356
+5.629617861163018 3.5409711691538406
+6.2784373572920495 47.425102696811386
+6.071158038917842 3.2291340726885
+6.640522345445429 41.15841308508025
+5.205164749537758 3.878673378207228
+5.5937589924678885 40.44384808098184
+5.380319007358236 3.734639141878251
+5.760460672338562 38.42048326531987
+5.72870531791776 3.4675869507391592
+6.086724424104033 34.808994275892445
+5.030258652785904 4.029312226914656
+5.238434367189688 31.2210988042393
+5.161385665494709 3.9157305666107116
+5.369517452130821 30.215908874109434
+5.424062801609332 3.699705498794582
+5.62916828051928 28.29809307073399
+4.770109111385462 4.266537279738735
+4.82383594346378 17.87049898571484
+4.834770135326843 4.206056753268668
+4.888981505816101 17.630570683414764
+4.964891099564678 4.0874088069104255
+5.019838991791197 17.152770586842852
+4.7333047583966685 4.30142336092554
+4.774037233364231 15.982518914911504
+4.788552163934553 4.249181922051259
+4.829630868984269 15.80174062478353
+4.899713017463396 4.146335021901777
+4.941354886374946 15.441052510360361
+5.408184768834356 7.397268199122454
+6.172579658959372 55.89367071289331
+5.632964540021106 7.044526641520346
+6.3450456421589845 51.51659092516331
+6.075268399489758 6.412233194425149
+6.6953467297750215 44.64965420920644
+5.207531584039901 7.730963164020344
+5.647899693392787 44.94417635689913
+5.383125741495747 7.43795749285415
+5.811726950442294 42.63060053206229
+5.732242447632447 6.895602748965816
+6.1326879698349215 38.553765353819614
+5.032128050995383 8.037793545289311
+5.2760610257656495 35.67534658907088
+5.163633725794547 7.806405835849813
+5.40653588204892 34.48707350602949
+5.426971160841319 7.3669458207949035
+5.664642101077935 32.242683800122926
+4.771115615403666 8.521838905744827
+4.8407855259650185 22.300121294274174
+4.8360058275274485 8.398329765984617
+4.906136355327344 21.986513539174137
+4.966558176146588 8.156238521245372
+5.037314144311528 21.365607241199914
+4.734176221524511 8.593113112189979
+4.788380215649777 20.416265945532928
+4.7896250798504285 8.48638975654655
+4.844174611217117 20.173763518174912
+4.901168896653719 8.276439230025067
+4.956239744845796 19.692398648299058
+5.412666707964139 11.031336748101282
+6.253775874696591 60.50674624225321
+5.638168673920587 10.491669023821917
+6.4168134836635025 55.64641991909838
+6.08158685834187 9.526935005268188
+6.7542897838280656 48.13254317516726
+5.211253695033585 11.542909566440748
+5.706937753116001 49.52766172697398
+5.38751914257526 11.093660157006711
+5.867434497599345 46.89030363815246
+5.737728409382623 10.264151490633742
+6.182499608179052 42.30426752575033
+5.035081579129258 12.01423924801792
+5.317164504281887 40.20079452709602
+5.167173175776032 11.658713705821457
+5.44695779200098 38.80790454863507
+5.431518355634367 10.98490208862704
+5.7033852366539985 36.20352222679113
+4.77271684585521 12.759715370564301
+4.859261469250553 26.77085463546818
+4.837968352289288 12.569270410275374
+4.924913624255154 26.37597965246567
+4.96919664170284 12.196434913395496
+5.056582867579011 25.5980175732188
+4.735563958939737 12.869689383714508
+4.804003933897817 24.885970276186647
+4.791331135416341 12.705038280558187
+4.860092192496826 24.575605640614985
+4.903477110769129 12.381476381457015
+4.9726687633162685 23.962097381559353
+5.418542676289974 14.606652812842798
+6.3410854548013456 65.17935795117197
+5.644947576539755 13.871125017142916
+6.493447179954796 59.79125179504734
+6.0897166994015866 12.560832906461867
+6.8168839154215295 51.584842282517926
+5.21616221273173 15.305707365732296
+5.770985274111867 54.179713118040624
+5.393283226746309 14.69172010861936
+5.927533160377962 51.18207801444491
+5.744854417472381 13.561601000196562
+6.235896637705328 46.04098828889923
+5.038996845845236 15.951409123121056
+5.3619123182016075 44.7879523697274
+5.1718468575450744 15.464205954853904
+5.490851925377399 43.166165119685175
+5.43747663241539 14.543289704830684
+5.745302432361167 40.165127480599814
+4.7748561490693096 16.976024921601464
+4.879378681660423 31.278342458918026
+4.840585235553523 16.713870427622826
+4.94540141971665 30.793297589866185
+4.972701105072861 16.20144301769422
+5.077679003847507 29.842080719318783
+4.737420092402399 17.127534765368836
+4.821009289660325 29.387887951428823
+4.7936092187669495 16.900731538494085
+4.87746378906909 29.002415881141303
+4.906548935743679 16.45563462467179
+4.990679707519907 28.24334248905079
+5.4256099661602315 18.116709763908464
+6.434283839602999 69.89263442572603
+5.65304611297038 17.176024755665434
+6.574593986044349 63.93278316528012
+6.099307208989737 15.507123313124602
+6.88265794001302 54.990875935803665
+5.222102588425582 19.013495091310983
+5.840084027373324 58.888814218594085
+5.400221251270594 18.225693084767716
+5.991911806109069 55.49224369072195
+5.753342882403174 16.781017112080747
+6.292586246820628 49.74964413878482
+5.043761468339764 19.84431737004508
+5.410423548100963 49.429986397110575
+5.177510826026082 19.217210676646545
+5.538239533614634 47.552680409736
+5.4446388125741505 18.035558369110625
+5.790262102870538 44.11604279673671
+4.777481628419259 21.167778286235983
+4.9012259715490565 35.81985497443594
+4.843790044065324 20.82855614340211
+4.967662386623867 35.23462465280309
+4.976974774040514 20.16669376883905
+5.100612981033882 34.09214526234501
+4.739700808994218 21.364021593618837
+4.839474198232253 33.9197073392044
+4.796403327048967 21.070307104146096
+4.896347249243509 33.45095599027796
+4.910302912344466 20.49481432625097
+5.010289754963334 32.53132516290766
+5.4336866453229415 21.557431329035296
+6.533073808665931 74.63006032972393
+5.662237858939349 20.402387440451392
+6.659869018405209 68.05617618077467
+6.110055000959019 18.36259055865486
+6.951159551298322 58.33945178491771
+5.228934916466946 22.662371561837688
+5.914224438697813 63.645321545333914
+5.408156432304543 21.691509561761517
+6.060418881097242 59.80963047333835
+5.762948860285796 19.918536381187558
+6.352266255529927 53.419508338118575
+5.049273253641034 23.689487805899386
+5.462785685286159 54.12178791810657
+5.184034560614357 22.913906174813008
+5.589110951897097 51.96027483531375
+5.4528191606078185 21.457629388446414
+5.83811293976286 48.04750631957062
+4.7805458492339055 25.332754158178403
+4.924876102105794 40.39379656804165
+4.847522061811419 24.910711324585264
+4.9917434612490865 39.69736742570399
+4.981929501225888 24.08894847353616
+5.125381196414007 38.34408474823024
+4.742366092297682 25.577181711043174
+4.8594623555081915 38.480121605089664
+4.799662269915258 25.2114248971415
+4.916786620185815 37.919097006322026
+4.914664778219958 24.49606290490104
+5.031503698579355 36.82258503569051
+5.442611147403595 24.926447165626627
+6.637100938218191 79.37674177708988
+5.672324413406562 23.54822950384987
+6.748871835939272 72.14916935271448
+6.121701533543858 21.126407515778684
+7.021966167925618 61.622618343918774
+5.236533648422419 26.24982767598035
+5.993354876361504 68.4407403769167
+5.416931552433497 25.08676947061128
+6.132873806744431 64.12480743625416
+5.773459009239012 22.97240017325301
+6.414636385912537 57.04242478673059
+5.055439655384148 27.484518981662173
+5.519063342413414 58.85940142449951
+5.191300677646432 26.55178735735417
+5.643434410040458 56.38313673576978
+5.461852846436603 24.807156609992084
+5.88869310877802 51.95267353513271
+4.784005647953538 29.46928476733781
+4.950391446588104 44.99941700617678
+4.85172608535728 28.95840928194179
+5.017681332633525 44.17984236352207
+4.987485263861938 27.965916852612395
+5.151971233938768 42.594863443123515
+4.7453794031881165 29.76551912315022
+4.881028174059209 43.068579154567324
+4.803339484409232 29.322337294195115
+4.938816937835925 42.405525699412536
+4.919566966735047 28.45724620755291
+5.054318527180992 41.11463237107193
+5.452241049510178 28.22261600002229
+6.745965668467853 84.11900237685698
+5.68313344159652 26.61297619717585
+6.841197622469988 76.20151522262246
+6.134028809537141 23.799351695462622
+7.094689805813457 64.83483487503561
+5.244786675502179 29.774372530558505
+6.077386504999734 73.26724995064525
+5.426407805633968 28.410278161149584
+6.209074271064757 68.42959748115166
+5.784689244504036 25.942320019537448
+6.479404826413142 60.61216340732492
+5.062177336427664 31.227807132936068
+5.579303005195829 63.63963054977928
+5.199204103924237 30.12931517823964
+5.701161150765 60.816398790945954
+5.4715947819764335 28.083040332434486
+5.941835715154914 55.826108168771036
+4.787821638047968 33.57611247199678
+4.977827552344405 49.63661380818807
+4.856351895879005 32.97023401183038
+5.045505821344933 48.68104558442697
+4.993569748669145 31.796015051859488
+5.180365011666593 46.84224623092923
+4.748707521849586 33.927894056190816
+4.9042199171521 47.685113083192384
+4.80739252172176 33.40173618470954
+4.962467213470825 46.909545134162045
+4.924948241344658 32.37684137712305
+5.078726207680056 45.40569531163265
+5.462451536117142 31.445693598804404
+6.859233936654338 88.84416545374937
+5.69451615153407 29.597052448017934
+6.936445501796758 80.20460706981918
+6.146854611757738 26.383272333703403
+7.168978501871392 67.97238529559664
+5.253594466938471 33.235274588671
+6.1661958585057794 78.11737405773722
+5.436463335686519 31.661723174375414
+6.288801078223178 72.71674761203657
+5.796481755109693 28.829037198825684
+6.546292185922228 64.12397330735504
+5.069411414977458 34.91835129651593
+5.643535555911107 68.45974621730218
+5.20765129142393 33.64567391796485
+5.762228482486566 65.25584031369523
+5.48191797166977 31.285088551159003
+5.9973722418801625 59.66343101795505
+4.791958022498085 37.65229726241779
+5.00723553881365 54.30579034186424
+4.861353909526693 36.94516277819571
+5.075242100041862 53.200487893915636
+5.000117803887793 35.57819603393911
+5.2105407857338735 51.08459363870018
+4.752320121435002 38.0634368749494
+4.9290818299520565 52.33021940588878
+4.811782765940829 37.44865211799642
+4.987762425941428 51.43093247249463
+4.930753227312354 36.25379242491507
+5.1047154815198175 49.69454109035187
+5.473133596151182 34.59609211709822
+6.976447420776252 93.54046255579787
+5.706344971657927 32.501593526767344
+7.034225009395864 84.1512195295729
+6.160027671435566 28.880717630661152
+7.244516078474531 71.03295369854861
+5.262868904383343 36.63237341620287
+6.259626479189064 82.98375993218173
+5.446991521099336 34.8414398545113
+6.371822134936697 76.97971498664457
+5.808702234229715 31.63401277657849
+6.61503367253218 67.57426004254684
+5.0770748530470975 38.5556131676051
+5.711777322190925 73.31726219242083
+5.216559167438322 37.100594696043
+5.826561562425359 69.69767132078147
+5.492711653941011 34.41377169889321
+6.055134835231709 63.461071302628675
+4.796382209369787 41.697146607357816
+5.038663775791195 59.00774895911328
+4.866690855175867 40.8824797171333
+5.106912198169992 57.73807111180867
+5.0070707746943155 39.31182662018656
+5.242474461237735 55.32071135926759
+4.756189548373147 42.171491649456776
+4.955655648130594 57.00476563399894
+4.816475186746907 41.4623812351279
+5.014724898356249 55.969832575824675
+4.936931930986174 40.08740510878043
+5.132273052085095 53.98034395089525
+5.763330753371242 3.822241563728355
+6.667831639668449 61.733966027851324
+6.021154598155061 3.6281357753750147
+6.848316942662843 56.15889011442123
+6.526144081570459 3.284703402152532
+7.227586691400637 47.79480587568346
+5.5326321966744585 4.007236345543238
+6.035597276896144 48.420741508242585
+5.734544711184266 3.8447326613175563
+6.220416698205366 45.58571981667929
+6.134783672500834 3.5466957286958936
+6.582117586258762 40.70166020331399
+5.330671490752402 4.178300792269278
+5.596049401998094 37.12219790816294
+5.4821077410078445 4.049219851640181
+5.746146936207253 35.74962845480973
+5.784905954467674 3.8054936364209797
+6.04222061939877 33.172246939625495
+5.029984881509164 4.449543289325959
+5.096290127561509 20.886139017683405
+5.104728092614175 4.380207686808572
+5.171648870252468 20.574034315515373
+5.255134985041334 4.244539150564389
+5.322939681491013 19.95343179650299
+4.987447173098309 4.489585375205344
+5.03738530794593 18.6012376714887
+5.051302760967626 4.429635677134402
+5.101689546398496 18.36800396908278
+5.179799611679206 4.311856520508971
+5.230891360147082 17.903000257975812
+5.76626917866581 7.611209196162064
+6.751475878399966 66.46319184879806
+6.024566734415567 7.217566234466962
+6.920351132006714 60.36431932687649
+6.5302974649474335 6.522260702441946
+7.284863660905813 51.33309117254839
+5.535073610950787 7.986869864859246
+6.096522143688071 53.15152372075448
+5.737425192272414 7.656854322047576
+6.276966713875185 49.961751643620126
+6.1383816062836924 7.052555586831271
+6.631321128834335 44.53765097384491
+5.332609964708101 8.334700308150675
+5.638131147933513 41.801375350817494
+5.484429677105168 8.07219441765131
+5.787151886167336 40.20813201309286
+5.787887098006908 7.577224333075541
+6.080803708473719 37.247389903680755
+5.031036666525214 8.887186027860542
+5.114995860631194 25.52684913776503
+5.1060169852629755 8.745842627472449
+5.190544733660328 25.128822596907824
+5.256867109675461 8.46950823326494
+5.342102363967641 24.342150104225603
+4.988358786220376 8.968850491873653
+5.053188200670226 23.24545218112275
+5.052423358089595 8.846595292166993
+5.117690335447576 22.940505587563766
+5.181315258419522 8.606584770471342
+5.247211751380543 22.335789402160124
+5.770869646543805 11.349518591324824
+6.841401664537855 71.2699996337065
+6.029876230554922 10.748526681763337
+6.997449217003748 64.60304544821085
+6.536684426517073 9.68967653003647
+7.346154285839723 54.859902103374296
+5.538917057048469 11.924185784889985
+6.162617381770606 57.9690746240628
+5.74193803876167 11.419283958439717
+6.338065373814716 54.38674386585662
+6.143965189076176 10.496938347177933
+6.6843493528801545 48.37664773475804
+5.335676442440857 12.457320783162515
+5.683916985124734 46.55741187507062
+5.488089460845313 12.054871833847573
+5.831716671047779 44.7187433896079
+5.792552047066779 11.297585718217336
+6.122716479564793 41.33790761061643
+5.0327124392059694 13.306311584104446
+5.135313298380732 30.212700827709895
+5.108066915444644 13.088851890488666
+5.211145818000615 29.72022096032479
+5.259612079112473 12.664226350193058
+5.363134031954841 28.75196955724029
+4.989812683785582 13.43203747074018
+5.070340573269568 27.92921006972937
+5.054207863913448 13.243843239333284
+5.135133807336545 27.54568494969599
+5.183721501622094 12.874777890685962
+5.265143287077249 26.788539902032337
+5.776905448588826 15.026458540244246
+6.937348455093762 76.12864656812505
+6.036796200527783 14.20923996020243
+7.079238309231529 68.85016557275453
+6.54490478365576 12.774156754419701
+7.410960158110885 58.352517610419824
+5.543990281096257 15.80985064507518
+6.233941531707707 62.8565741217486
+5.747863322221688 15.121458466337916
+6.403607369422544 58.84136241639069
+6.1512215171242275 13.867730019820746
+6.740900534326966 52.198138771732694
+5.339745937055458 16.538439119903774
+5.733561206811688 51.379592827394006
+5.492926727111958 15.988282983026098
+5.879887629852011 49.2678911581415
+5.798669016276541 14.95575968799342
+6.167835966028221 45.42716444364527
+5.034954441169015 17.702460678483877
+5.1573590049977875 34.93888869432332
+5.110803957649615 17.403855490245796
+5.233539850336074 34.3419977099457
+5.26326229373309 16.821684839581593
+5.386064496133763 33.174262103192554
+4.991760087615983 17.875246521297267
+5.088945234920386 32.64838678790002
+5.05659395902708 17.616649689601303
+5.1541006326170145 32.17821591571383
+5.186927780993488 17.11020717316805
+5.284721546468267 31.253832669543755
+5.7841694816304265 18.63515473913757
+7.038965875315073 81.01755324782346
+6.045066962832963 17.592506968864388
+7.16530024637022 73.08623931423332
+6.554604156618936 15.768671072826729
+7.478789741984909 61.79501892099078
+5.550134917714343 19.637623823259347
+6.310479581509469 67.80035808768253
+5.754999955143221 18.756562999073115
+6.473428665826792 63.31033185127685
+6.159868535235225 17.1576888019216
+6.800649592657966 55.987107281770996
+5.3447031277625605 20.572710308924457
+5.787168274155847 56.2599143451963
+5.498793902581459 19.86637867864728
+5.931663136824198 53.84517871352604
+5.806026411219294 18.54483070952885
+6.216004963323584 49.50274513594105
+5.037709499934332 22.072395723145654
+5.181223317451316 39.70229236911646
+5.114159957000319 21.686992789887675
+5.2577888943785585 38.98981813895119
+5.267718418833221 20.936972777535598
+5.41089997947117 37.60276459140956
+4.994156131945747 22.295627798316893
+5.1090818949175985 37.400343776239836
+5.059524248487111 21.96159197011239
+5.174648987503574 36.834448338008606
+5.190850511209861 21.308454923685154
+5.3059613296833605 35.726331073047504
+5.792475254841489 22.17128655178426
+7.1458412612925155 85.9179752548573
+6.054457488203469 20.894145206216585
+7.25519807120917 77.29567599335732
+6.565475594995803 18.669891155048667
+7.549178787107489 65.17615138345315
+5.557207050001302 23.403335689894316
+6.392161487888628 72.78870084943999
+5.763166634463002 22.320279673865482
+6.547327024358261 67.7810900367231
+6.169656828393702 20.362770274961537
+6.863268063697099 59.73231267761053
+5.350442693959503 24.55639105647111
+5.844809050690886 61.19212085298967
+5.505556643514908 23.68506664724626
+5.987009804078081 58.44229428790286
+5.814433879310289 22.060478755538334
+6.267048362546337 53.55509210670432
+5.04092877517156 26.41369823293965
+5.206980299624625 44.50096566182826
+5.118072383546891 25.935422887292642
+5.283939008066517 43.66064547322745
+5.272889586392046 25.006592807189953
+5.437632409442465 42.03280940927343
+4.996959651033531 26.691035134754568
+5.130815868573495 42.183485840168274
+5.062946014852207 26.276124157770678
+5.19682300984109 41.51188637494119
+5.195413141615683 25.466323848047555
+5.328864797978339 40.20210953844898
+5.801656697292005 25.632333481221124
+7.257518314376817 90.8133053141418
+6.064764935866775 24.112064983046302
+7.348492284596073 81.46580352272244
+6.5772572548812445 21.47695879471887
+7.621699592262601 68.48803663369782
+5.565077116411707 27.10429457629184
+6.478871720689233 77.8110973239937
+5.772201670181302 25.810053627675767
+6.625073820157598 72.24301145895707
+6.180368783106191 23.481128774973364
+6.928434864611584 63.42526994967842
+5.356868895751069 28.486884456085285
+5.906529125646817 66.17111541631688
+5.513093731298323 27.441654170403787
+6.045871191967382 63.05236228409218
+5.823722100250569 25.500211163133017
+6.3207823174391615 57.57670679772608
+5.0445676469514975 30.72454314081139
+5.23469335350861 49.33383805567881
+5.122484097354722 30.14704353267165
+5.312025654165753 48.35238934056825
+5.27869297496642 29.028060779698713
+5.466244611977571 46.46087586054637
+5.000132893384279 31.05982885155563
+5.154202987554796 46.997002718420376
+5.06681110499024 30.55833551021815
+5.220657564387725 46.208884506886434
+5.200545735057375 29.581492214898237
+5.353426038825883 44.67826247089853
+5.8115671142427425 29.017076835522044
+7.373512334349056 95.6886947945008
+6.075812831556012 27.245657171117813
+7.4447515630707155 85.58626650142115
+6.589728192076457 24.19067802686094
+7.695964419413128 71.72530381387804
+5.573629083116144 30.738894324191286
+6.570454901673881 82.85780894703437
+5.781962000916064 29.22460784734036
+6.706422031369202 76.68692150775796
+6.191816369342949 26.512458434919953
+6.995842427591889 67.05957595301793
+5.363895227157081 32.36244862928819
+5.97235331301815 71.1925553160169
+5.5212963127691514 31.1344798684567
+6.108172995073528 67.6695178769316
+5.833741695688345 28.862854491655135
+6.377019770609587 61.56162549358858
+5.048585228144547 35.00354771375841
+5.264418746844329 54.20050909430311
+5.127342936410355 34.32030236289622
+5.342077049102705 53.06366670469896
+5.285053475807184 32.999651071020494
+5.496713460001434 50.884289890396964
+5.003641404444897 35.40075346185254
+5.179292717512281 51.84069190152039
+5.071075437030776 34.80678876991485
+5.246181215362092 50.92444052051582
+5.206184673666982 33.65229573678695
+5.379633853125844 49.1526421191999
+5.822077698309039 32.32525086078479
+7.493323287506775 100.53084022905519
+6.087448609474766 30.295365486244084
+7.5435602344001405 89.64860703715117
+6.602703622319881 26.81296431613797
+7.771625677188163 74.88447251999021
+5.582759683340022 34.30634155559052
+6.666719552234857 87.91956300904278
+5.792321784799408 32.563603376552805
+6.7911117032305865 81.10476561461729
+6.203838221859674 29.457533922896822
+7.065200191569541 70.63043570458522
+5.371443720982456 36.18199052243621
+6.042288013141961 76.25255388988019
+5.530067231506322 34.762657760873566
+6.173826253308208 72.28860771380128
+5.844361678368954 32.14819890604671
+6.4355739524807305 65.50505553895741
+5.052944227022976 39.24967286444546
+5.296207982952735 59.10110023879194
+5.132601389112664 38.45407257234047
+5.374116368101778 57.793630594837275
+5.291903197526838 36.920217047901154
+5.529011894415567 55.301011575456364
+5.007453604297561 39.71284614771102
+5.206130275994029 56.714831582907436
+5.075698780250353 39.020413513385634
+5.273418209772973 55.65804734231536
+5.212272231698671 37.677574385310436
+5.40747356125689 53.62367281472872
+5.833075770360419 35.55728871358807
+7.616447559370635 105.32787207839237
+6.0995413257930915 33.26238323155199
+7.644523625520984 93.64595877535137
+6.616030091283382 29.346458344025606
+7.84837461915647 77.96350352646729
+5.592377293322287 37.8064561020675
+6.767441231085874 92.98736543026365
+5.803170725119829 35.82739173727711
+6.878874645008571 85.48939480200247
+6.216296887267224 32.317886389253495
+7.136236336778097 74.13431770998899
+5.3794443852460745 39.944917191418824
+6.116322205761693 81.34745544230162
+5.539320007045184 38.32589003830735
+6.242729357107683 76.90497409558917
+5.8554676272090935 35.35673937331617
+6.496260752244414 69.40311601400502
+5.057610569264957 43.462149174391776
+5.330109450502598 64.03614263532934
+5.138216284296462 42.54756084270026
+5.408163230753189 62.54184082983559
+5.299180838258865 40.78906018726243
+5.5631102517954885 59.709478931717385
+5.011540602359093 43.99537702559474
+5.234758133144655 61.620084908840724
+5.080644501303565 43.19842823429498
+5.302389846981677 60.40958181935179
+5.218756127049797 41.65656080791109
+5.436928205330621 58.09021345475543
+6.117733282851219 3.917266690553024
+7.272344377466206 73.01726004181084
+6.410152432452938 3.7032047966635884
+7.438409132967252 65.39850700338845
+6.979980672315658 3.3300838918385067
+7.823007786509699 54.62390484534693
+5.855314202416206 4.12314233003184
+6.494818534603608 57.199036636223276
+6.08502604581822 3.9422043824925037
+6.693614567715616 53.31553326115208
+6.538712748629627 3.6140479023239687
+7.085329209544796 46.8885892688004
+5.625116535389927 4.314908246020278
+5.958045254481277 43.59401957678749
+5.797760724738794 4.170091315145701
+6.126997587638933 41.7548469210267
+6.142240038103007 3.8987143274697877
+6.458938972758822 38.366145555977376
+5.281957823410889 4.621164089956368
+5.362685749515917 24.158241095913336
+5.367275359084821 4.542662714307788
+5.448757078353437 23.75909178227979
+5.538939599523756 4.38947373545987
+5.62142753594671 22.966963820837872
+5.2334059006582825 4.666556497733741
+5.29384293731201 21.437264407386913
+5.306291188781292 4.5986115520768855
+5.367291898366743 21.141289201763293
+5.452964708981004 4.465411182937451
+5.514815425283107 20.551807335083694
+6.120733625229811 7.800107084723693
+7.363771504029499 77.90179883170873
+6.4136174124309 7.366586867268958
+7.514875766871318 69.68531604063163
+6.984165410467523 6.612111294794915
+7.882080548127416 58.192836226193
+5.857821046381131 8.217572322035945
+6.562692938218277 62.14606344309579
+6.087969186608091 7.850646335235984
+6.755225063360867 57.83683863537305
+6.542358712377749 7.18617739709498
+7.137336205706043 50.79702134233169
+5.627117390632364 8.60692336611789
+6.004765161091975 48.490495853008376
+5.800147969026029 8.312849382638413
+6.172020818228409 46.38815944000891
+6.145282496904775 7.762513372279675
+6.500471292204906 42.55590012384111
+5.283051913790147 9.229796584779177
+5.383179357936207 29.001003828528393
+5.368613578138575 9.070007992594364
+5.469416044291731 28.502725084614724
+5.540730981388035 8.758453204267198
+5.642277805761205 27.52004005858185
+5.234355171059801 9.322234201104393
+5.311126501790667 26.282596877622037
+5.307456238814441 9.183881823458048
+5.384765112728686 25.90421378904571
+5.454535318425997 8.912851988367386
+5.532573729379241 25.154804062096844
+6.125434306144516 11.63043377609106
+7.461334404681742 82.85602478716123
+6.419011960129264 10.969714757903406
+7.596246655937762 74.00000767727182
+6.990602298993627 9.822567401769914
+7.945068319922741 61.74782458621416
+5.861770967638315 12.26788513902988
+6.635955504887648 67.18154337405156
+6.0925835251889975 11.707540632331698
+6.821436324102464 62.40526554509691
+6.548019408412625 10.695107705377794
+7.193121088767177 54.70571097421526
+5.630285848588737 12.863540704229218
+6.055410030288156 53.468942515494405
+5.803914138347985 12.413542883688024
+6.2207413758675365 51.075333285742246
+6.150046636576242 11.573088959317298
+6.545371062620647 46.75977914534899
+5.2847973449530965 13.818873026494147
+5.405369344819673 33.892881995931816
+5.370744571674035 13.573504184227872
+5.491860737210135 33.2859446209222
+5.543573039141606 13.095670010806836
+5.665067273761558 32.09558743804803
+5.23587114395027 13.960913293357851
+5.329827504036433 31.171019910023894
+5.30931390247871 13.748345944155343
+5.403747996483048 30.702598445162398
+5.457031727750986 13.332377169135029
+5.552006245467909 29.779256579951088
+6.131605278928044 15.397056884827323
+7.564645421982214 87.85167754981019
+6.426045810360992 14.50037278280001
+7.682086922669609 78.31666059997839
+6.998888623828404 12.948339832775288
+8.011452466234347 65.26588616100194
+5.866988734838034 16.264262980435458
+6.714599212976223 72.28631473805486
+6.098645788514618 15.5018427642075
+6.8920861867178855 66.99981947519112
+6.5553786733590655 14.128310761285192
+7.252349015625598 58.593380996303
+5.634494613220261 17.07658575616496
+6.110116700513281 58.517356703422195
+5.808896041940395 16.462722713953415
+6.27318002425294 55.8014735631142
+6.156297317364805 15.319146578652452
+6.593488008206117 50.960115809247256
+5.28713534652727 18.38362957357525
+5.429373400345033 38.828629574915134
+5.37359307814576 18.047416941545382
+5.516177900820054 38.10196899893317
+5.547356144106597 17.39368844225683
+5.689821136190241 36.684295847441334
+5.237904210236015 18.57842221006376
+5.350050254173463 36.09803687852232
+5.3118007601229005 18.286954270208554
+5.424321267549048 35.53065325553972
+5.460361704696021 17.717363075946544
+5.573145913239457 34.41715361417781
+6.139035658400576 19.092772238529356
+7.673244479688792 92.86525674506535
+6.434455590761502 17.951074941957792
+7.7719317547951166 82.61520642209378
+7.008667324799478 15.982212034046883
+8.080729652674188 68.73100958612771
+5.873312625639596 20.200116814214226
+6.79854151777944 77.44449454866194
+6.10595116583122 19.22640448955248
+6.966957904403961 71.60381333670239
+6.564150912097148 17.478280181660377
+7.314668737249082 62.444483126670924
+5.639625717390429 21.240376756216
+6.168970693985904 63.626494594294485
+5.814942897724097 20.45399121456108
+6.329309450512179 60.554975377842915
+6.163819147856678 18.99344374706065
+6.644640251911206 55.14365246005384
+5.2900115717240475 22.920589719516922
+5.4552828859435545 43.80473766105346
+5.377089392028767 22.487610947028738
+5.542428452179862 42.945976842145576
+5.551978653924696 21.647274807762926
+5.716540909220954 41.27930936503431
+5.240408538692114 23.171696490062395
+5.371875878516478 41.06068689272432
+5.314858115473305 22.79603423614375
+5.446543012232274 40.38432173192608
+5.464439722168344 22.063089669961283
+5.596004758696377 39.06264552267906
+6.147535094908765 22.71303992741471
+7.786628517990057 97.87669016888042
+6.444006537331171 21.31746297344212
+7.865311563275988 86.87976038152767
+7.019628846707666 18.9207632067601
+8.152430348965822 72.13197098260216
+5.880595197275327 24.071029940628716
+6.8876429338113425 82.64225908765248
+6.114314501301337 22.876684308986533
+7.045800671052189 76.20350250930863
+6.574083162747147 20.740815915856476
+7.3797316217845 66.2474352922913
+5.645571016185121 25.35091940946861
+6.232021853298409 68.78888144375561
+5.821916973763773 24.383005740219936
+6.389070147334795 65.32641087398954
+6.172417908811205 22.591444499358243
+6.698630340242981 59.30014703089988
+5.293375891577786 27.427144385618448
+5.4831726812310295 48.81890794723317
+5.3811692608757005 26.89102983848275
+5.570657036604912 47.81448889087587
+5.557347224362741 25.852686896139097
+5.74521361743633 45.8754340382516
+5.243341900057141 27.73841741559892
+5.395370955647711 46.05708674632685
+5.318431864650586 27.272841326722304
+5.470457074728126 45.26074357128423
+5.469187134863198 26.36612636218203
+5.620581964191197 43.71135217560334
+6.156933705402778 26.255204789957293
+7.904271936177186 102.86862609495114
+6.454492207444316 24.597354854365673
+7.961766891517092 91.09763498857129
+7.031508930682542 21.763109800102818
+8.226126609022621 75.46101003159873
+5.888703332779323 27.874142477349565
+6.981717376725134 87.86714427509953
+6.123570299035543 26.44998806366126
+7.128341837586086 80.78729981166762
+6.584954423691802 23.913997637185282
+7.447201738305568 69.99356747284287
+5.652231879658775 29.405432809457217
+6.299292334481463 73.99820815617542
+5.829693638547719 28.246899778011805
+6.452379090779812 70.10787016803903
+6.181920467520921 26.110525020831894
+6.755254323698491 63.42155403148902
+5.297182333372542 31.9013162059869
+5.513106743184627 53.86974429026469
+5.38577380372261 31.25540226936437
+5.600897377945634 52.70500560595185
+5.563376484846481 30.007256654063923
+5.775816961561822 50.46867629747148
+5.246665421210226 32.27680557919955
+5.420592397239369 51.08616518987596
+5.322472379238606 31.71530702639751
+5.496097783898949 50.15794010678168
+5.474531831562678 30.623972149873047
+5.64686841460916 48.35995998025649
+6.167081154542768 29.717978813929523
+8.02564277756823 107.82602193765456
+6.465732765286408 27.790111838741215
+8.060857812887619 95.2586887272919
+7.044084477931807 24.510077933920645
+8.301434202723446 78.71293217413321
+5.897517566954884 31.607742167491082
+7.080539117046946 93.10762070050876
+6.133571854236761 29.94496471578599
+7.214295410614764 85.34528286825193
+6.59657353187666 26.99750487049814
+7.516761383141685 73.67641970805302
+5.659518937677654 33.40204485823566
+6.370780933353952 79.24892061730283
+5.838160687702043 32.04389858174588
+6.51913505946691 74.89253280522509
+6.1921738115237215 29.54944606179453
+6.814307273491595 67.50148496262553
+5.301388614631342 36.341600639325804
+5.545141590262412 58.95653970047195
+5.3908490488046015 35.57904430198286
+5.6331755989720484 57.615760341008944
+5.569988773982254 34.109123692740205
+5.808322465475275 55.05593359101162
+5.250343503561487 36.78549255237467
+5.447590542896861 56.14747907574475
+5.32693406287801 36.12186879477308
+5.523492908473927 55.07460051801321
+5.4804080056982185 34.83482724640619
+5.674849481365018 53.00595111806219
+6.177845237642574 33.10107732997137
+8.150215667461424 112.73587664449468
+6.477572585102616 30.89619453558333
+8.162169793319363 99.35485499844057
+7.057168827474399 27.163637821654984
+8.378011742260004 81.88446873308649
+5.9069313197973345 35.27097875971391
+7.183848146420741 98.35282634339292
+6.144189915405821 33.36125182075988
+7.303367968285953 89.86885691553513
+6.608776302022176 29.992141512970854
+7.588113965278852 77.29124264765466
+5.6673514161109955 37.339575641900396
+6.44646539031162 84.53591966941968
+5.847217752209284 35.77305114050231
+6.589222068066022 79.67436824541228
+6.203043569070377 32.90798224097579
+6.875586778747713 71.53483174631026
+5.30595606345608 40.746862244611485
+5.579328640777128 64.07912273671906
+5.39634570370146 39.86072845376745
+5.667512401106513 62.54554176428772
+5.5771136934839864 38.157046564661975
+5.842697507790281 59.63477497064574
+5.254343405085891 41.26342440775531
+5.476411262428532 61.24108154078971
+5.3317751885370575 40.49135802157957
+5.55266563009814 60.009928406113616
+5.486755762144053 38.997431813718606
+5.704506840025958 57.64741163368641
+6.189110155134471 36.40495292261344
+8.277482335107198 117.58704565252047
+6.489877986820286 33.916847480322744
+8.265317373383972 103.37978845292359
+7.070606928094074 29.726506498785838
+8.455558516515719 84.9738102794924
+5.916849874576622 38.863654211223675
+7.2913551170092985 103.59241286762655
+6.155311045338082 36.69921603125459
+7.395263731588171 94.35053042947226
+6.621422786156474 32.89949963496207
+7.660985190408318 80.83463147260777
+5.675656645259875 41.21738065870476
+6.526303470540573 89.85434042142322
+5.856775319618287 39.43403305354064
+6.662511650077173 84.44792154907495
+6.214412217996112 36.1866510847251
+6.938895311773803 75.51749543877871
+5.310849223655625 45.11625636682466
+5.61571582825272 69.23774005366597
+5.402218833332471 44.09958629011608
+5.703924531516546 67.49355990580355
+5.584687519898532 42.150264524909424
+5.8789066689175 64.20328002516308
+5.258635080067552 45.7097985672468
+5.5070974403760395 66.36742209908985
+5.336957631713687 44.8229174575118
+5.583635901476322 64.96352603696022
+5.493520715165611 43.11094816461151
+5.735819680570057 62.28288891815434
+6.469341189282587 4.001359052658909
+7.91009904485809 85.0683046406985
+6.797274348878895 3.7679653223614777
+8.046329579262414 75.02792666162101
+7.4330513787403145 3.367175109980388
+8.424989541435624 61.58739706401936
+6.1741477468859625 4.227922966305487
+6.9743213857897635 66.77457948602802
+6.432593286060053 4.028698699947653
+7.181090434923732 61.56797234545925
+6.941088480435831 3.6714745064195804
+7.596027813955064 53.32117174560066
+5.914620988985444 4.440558426211155
+6.326542497705147 50.6482882242997
+6.109305895139859 4.279848682873698
+6.513656419211567 48.22409567725741
+6.496866790447751 3.9810393130331283
+6.880113867874183 43.854896406637565
+5.527155555573891 4.782692898223981
+5.624289885636283 27.68915861215205
+5.623517903331052 4.694743452434308
+5.721542970586435 27.18610841566152
+5.81736092059786 4.52359959326723
+5.916464082094602 26.190242883556504
+5.472320162731678 4.833614979459694
+5.544640356069935 24.49230561699457
+5.554639069833122 4.757410585226264
+5.6276477078055125 24.122035946075933
+5.720290534572068 4.608351915284816
+5.794286865671174 23.385587127475425
+6.472393834214431 7.967265415611192
+8.007802629968609 90.05767553879518
+6.800781879295104 7.495139286862772
+8.126129888555111 79.36630494855395
+7.437258853473441 6.685547870637214
+8.485308460708215 65.17488454225577
+6.176712036792756 8.426122518424101
+7.0491553933301505 71.9199168442146
+6.43558960906248 8.0226063603557
+7.247409009735025 66.21283493029229
+6.944772260331767 7.300103735811918
+7.650389656664582 57.28554656253579
+5.916678259725789 8.857302910854807
+6.378077179610052 55.75484706266877
+6.111750916218238 8.531367910098764
+6.562698296026829 53.019890786002456
+6.49996084538573 7.926139237833648
+6.924406103959683 48.144400016984605
+5.52828929710159 9.55225381877915
+5.646605195263488 32.72624128451002
+5.624901993073644 9.373464983387244
+5.743987655241229 32.10983631143726
+5.8192064549979055 9.025841289359295
+5.9389998143433615 30.897381834834004
+5.473304876456147 9.65581813529566
+5.563426792140558 29.530703986855208
+5.55584569430094 9.500848001062636
+5.646609347878068 29.06659708405035
+5.721911818945585 9.197941570267925
+5.813484509945946 28.14881295189407
+6.477179192175173 11.87900363781126
+8.111343182428953 95.10701664231667
+6.806244912864917 11.160511165640266
+8.210647489095457 83.72756803272475
+7.443731945620703 9.931177458359437
+8.549459139222728 68.74661631766514
+6.180755439521341 12.578562611571979
+7.129520487568715 77.15315948185884
+6.440290117690235 11.963306799765984
+7.318325656467068 70.90195231942467
+6.950493671756307 10.864058267212128
+7.708468672799834 61.247584325340526
+5.919938956656862 13.23714424530865
+6.433747734253472 60.94781985202958
+6.115611224923088 12.739201792210585
+6.615553627316811 57.87057864685403
+6.5048084793593866 11.816366147548091
+6.972083208527509 52.446484733410905
+5.530100030720422 14.30126827085165
+5.670701134511778 37.816353813331716
+5.627108385744865 14.027177785936601
+5.768296475741417 37.07601032199096
+5.822137209698737 13.494905129820925
+5.9635400173818125 35.628202431436215
+5.474879282564173 14.460142280540062
+5.583698072434016 34.61569878656715
+5.557771792255768 14.222437515887899
+5.6671460119346 34.049320729632704
+5.724491374798538 13.758314985024667
+5.834415790914009 32.934871730796736
+6.483464336762344 15.72495519061965
+8.220233886611815 100.18653521767999
+6.8133704578409935 14.751483747629992
+8.299405468223316 88.08527309640989
+7.452066103059684 13.09069031055371
+8.616910702025855 72.27948960532918
+6.186100099611006 16.674981230798828
+7.2153336686243374 82.45277500743778
+6.44646868945323 15.839323282063859
+7.393622866692594 75.6128908202432
+6.957933980287432 14.350454398045162
+7.769903204127843 65.18544885634394
+5.924273702057205 17.571485663036317
+6.493668914542032 66.21384339021554
+6.120721120262849 16.893458778761858
+6.672214789444535 62.75996298057939
+6.511171666706648 15.639999892407628
+7.022968723613885 56.74257946071134
+5.5325280600074835 19.024679934074705
+5.6966960305729115 42.953814727277724
+5.630060590700676 18.649809309881185
+5.79455462809068 42.077308013655724
+5.826041737548875 17.922953137539707
+5.990104753119884 40.372736214841254
+5.476993009204444 19.24215422469004
+5.605559643603394 39.74242898921783
+5.560352926619015 18.916822958366502
+5.689338054805208 39.06396225058188
+5.727935439212029 18.282473980978015
+5.8571105992716435 37.73517908537336
+6.491035220556679 19.497620369250033
+8.333939753559193 105.27183251189601
+6.821892162943949 18.260321246776133
+8.391911486723693 92.41914210922025
+7.461902319406218 16.156716997767
+8.687153886892986 75.75748627736608
+6.192581388798595 20.70846933364646
+7.306436839353199 87.80069817586076
+6.453917321111893 19.643207703854806
+7.473034550872958 80.32779105861609
+6.966804795941177 17.75155837708788
+7.834321860706734 69.08323042609962
+5.929562138735656 21.854329625714513
+6.557902650185411 71.54236042595211
+6.126926977231235 20.987419362822987
+6.73262642734262 67.6752587888877
+6.518831855440519 19.389505778006985
+7.076857671721326 61.01870219620777
+5.5355179283665 23.718782234373204
+5.724681800815903 48.13472813086526
+5.633687463280326 23.236961304916044
+5.822821353912993 47.10842545319022
+5.830816293267947 22.304446771870243
+6.0186903838782815 45.12355307350237
+5.4795993303774155 23.99858194864126
+5.629093707039654 44.90761415457405
+5.563529207226551 23.580091330901144
+5.713243091147648 44.106064214614285
+5.732156703585509 22.765410972607885
+5.881577831036563 42.543386570834485
+6.49969821309731 23.19226259434858
+8.45190666410784 110.34251437620108
+6.831572243363628 21.682512366000232
+8.487680924071775 96.71333189857756
+7.472929145626756 19.12576087297466
+8.75971792621872 79.16945337351581
+6.200048712703662 24.6743828383573
+7.402615887615609 93.18111884826203
+6.462447584323535 23.37021742525925
+7.556266481693862 85.03198046341785
+6.976850356083947 21.063036433744635
+7.9013614952619236 72.92914317662846
+5.935693561783784 26.081446016503662
+6.6264731178198915 76.92460585422278
+6.134088061074471 25.016509334028278
+6.796701077840081 72.60595956600945
+6.52759155123213 23.060154629985917
+7.133532226876026 65.26403745654243
+5.539018332326785 28.380781887332322
+5.754733678649822 53.35644042551472
+5.637923184274911 27.78537048540979
+5.8531393757926775 52.1654414121934
+5.836365273074264 26.63541205412136
+6.049278651792195 49.874947987451236
+5.482655032935839 28.726939384344718
+5.654367777594464 50.109083701206416
+5.567245235736965 28.20930671368488
+5.7389043109607725 49.172403331028164
+5.737074598697777 27.203472968136158
+5.907813375590606 47.354670298589866
+6.509280196438045 26.806105974784348
+8.57358098965114 115.38141770555163
+6.842201346088131 25.015794804988417
+8.586249811894938 100.9553907119389
+7.484880567451002 21.996917696503587
+8.834177096350537 82.5077531068476
+6.208365843279812 28.56970704811909
+7.503612334857728 98.57980674755039
+6.471890738652227 27.017532983917548
+7.643008692602276 89.71317477072809
+6.987846979408855 24.282904217079544
+7.970676472054642 76.71443920250192
+5.942566719061537 30.249880800662744
+6.6993744968127436 82.35299413748945
+6.142076691639461 28.97770125264692
+6.864327865611367 77.54317029388791
+6.537274398326411 26.649205351296914
+7.1927706437242 69.47009727061624
+5.542982037546719 33.00855395936682
+5.786915725451083 58.61722439117459
+5.642707236061392 32.2926028826903
+5.885540194448063 57.245445225759305
+5.842600974180932 30.91300653877413
+6.081841815517267 54.62246761924125
+5.486120195162238 33.42531127837896
+5.681439530920386 55.34550257466466
+5.571450017447021 32.80224797807597
+5.766355165712086 54.260667248212464
+5.742615011224694 31.593987683389184
+5.935804644547086 52.16531711876744
+6.519627743190933 30.33780050157473
+8.698423988605247 120.37411584447256
+6.853596915745197 28.259504282058238
+8.687182459578203 105.13555824136486
+7.497531918944331 24.771031893862318
+8.91015182290521 85.76734478008784
+6.217410270111274 32.39263205404231
+7.60913195308279 103.98371685053122
+6.48209696863982 30.58373689460796
+7.732944196362073 94.36096996197023
+6.999601027076115 27.410828947554688
+8.041943508551503 80.4326810171395
+5.950089651144731 34.35763924767947
+6.776575240411174 87.82070697518725
+6.150777716033416 32.869115502013095
+6.935378029537762 82.47917746887059
+6.547724309437524 30.155359998518264
+7.254352685122504 73.63016578858704
+5.547365459509233 37.600475590089836
+5.821284258173445 63.91605820181406
+5.6479839774831415 36.75684762586445
+5.920047367890215 62.34628246345918
+5.849443400290487 35.13524186315681
+6.116345793078564 59.36259276303899
+5.489958154839251 38.092219005916114
+5.710359872920336 60.61618226998238
+5.57609654532591 37.35723112879226
+5.795622301744594 59.36923388216671
+5.748710114740864 35.935025627046606
+5.965533347117531 56.9724460408219
+6.530605764151257 33.787044868787845
+8.82592214145656 125.30855861668016
+6.865600852464057 31.41411649297859
+8.790075435654535 109.24624770996002
+7.510695175587094 27.450118827814787
+8.987306990968788 88.94512943841461
+6.227072495658619 36.142255396681904
+7.718851883918115 109.38074997566686
+6.492934113249173 34.06844588931907
+7.825755029147258 98.96649134120338
+7.01194608536871 30.44764000196869
+8.114863879557518 84.07921862728203
+5.958179028520718 38.40345956789156
+6.858020463548179 93.32139636005421
+6.160087890885004 36.68974091511065
+7.009708616739515 87.40714996905525
+6.558804050934874 33.57837962355706
+7.31806304838767 77.7389095066354
+5.552128640682424 42.155317550231295
+5.8578901513757575 69.25246657719725
+5.653702456774405 41.17677997409467
+5.9566786672593794 67.4663720108614
+5.856819855738101 39.30078642949767
+6.152752201924086 64.092512640458
+5.494135079847531 42.72651981295289
+5.741175020559746 65.92094409157987
+5.581141698848473 41.87299217189207
+5.826727517194454 64.49701308971161
+5.75529801278038 40.22523125720152
+5.996977315515082 61.773810576619276
+6.542095810302232 37.154309552431634
+8.955594457341277 130.17479131014255
+6.8780772644319255 34.480921063868614
+8.8945595408443 113.28165280663808
+7.5242141258679105 30.036958436940733
+9.065349136305937 92.03947199450128
+6.237255068496328 39.81836288056347
+7.832427281871246 114.75962124782163
+6.504286053949266 37.472040682728036
+7.921127290347602 103.52215035703978
+7.024740234828668 33.39498223749954
+8.189164017670532 87.65080463091584
+5.966759746298032 42.386648713463686
+6.943633272251609 98.84897280243938
+6.1699150126008835 40.43922870070397
+7.087165060929372 92.32092613411217
+6.570393477333739 36.918802409678435
+7.383693637495204 81.7920931576327
+5.557234832380177 46.67216174522831
+5.896780420389613 74.62639908408106
+5.6598161028703995 45.55145873402355
+5.995447530024214 72.6045678522345
+5.864664392329313 43.40882033093332
+6.191019727779201 68.80995959869739
+5.498619848268347 47.32733961053654
+5.773927969128776 71.26001544691715
+5.5865459609055605 46.348600092225496
+5.859689111259451 69.64332707830143
+5.7623223677743525 44.46369941748129
+6.030111724217048 66.56765196289909
+6.818772082751164 4.075903942127354
+8.576682388043865 97.69093148413661
+7.183004121112221 3.823902057807342
+8.668685598967475 84.93127820465087
+7.885610687089018 3.3975082894291804
+9.031833997685348 68.63944348762458
+6.489863471253687 4.322852450134045
+7.476268540328627 77.12361080312353
+6.777878728168735 4.105587683165958
+7.683122762238294 70.28978601984214
+7.342337308172145 3.7204898734728244
+8.113534401660052 59.95299543021193
+6.199999934261706 4.556427919303697
+6.703473986557139 58.29519176901134
+6.417496547919538 4.379741159528664
+6.90741271766465 55.14647967048535
+6.849392709855746 4.053863547361905
+7.306209798966739 49.612102462238944
+5.76648635400616 4.9351861054815815
+5.882154264989343 31.481276151518372
+5.87434422070223 4.8375323497573115
+5.9910267030483455 30.85530337954039
+6.091241094699569 4.648059497139566
+6.208991104435121 29.619804657850516
+5.705108726941292 4.991803553175709
+5.79078917386365 27.768019095379664
+5.797249226670226 4.907096329173594
+5.883748373355615 27.310539151379754
+5.982643663035394 4.741790014342634
+6.070246952916052 26.402185507119608
+6.821868848993853 8.115440420920232
+8.678745118371822 102.73376053604926
+7.186545819695327 7.606172878088842
+8.750751322061255 89.29650549327238
+7.889834570040719 6.745603223674007
+9.092969569953103 72.23710580304896
+6.492478196730668 8.615059123484972
+7.557851847710254 82.44437949271703
+6.78092017767749 8.17546490859281
+7.753670965961301 75.0357642458373
+7.346050764487133 7.397340774263587
+8.169814471129067 63.959222754278464
+6.202108293077305 9.088185761276925
+6.75998316425681 63.604449353362945
+6.419992713270964 8.730239611605143
+6.960434450096048 60.09227577171472
+6.8525301189271115 8.0708770222231
+7.353047394761798 53.98749014445309
+5.7676573577625945 9.85666786861094
+5.906327088265882 36.70600120446704
+5.875771068747231 9.658375056239976
+6.015279964683782 35.95137204765573
+6.093136176337615 9.273952735104004
+6.233207621604525 34.4716878039955
+5.706126891025476 9.971685519366982
+5.811102046288729 32.99248628831854
+5.798494833493187 9.799618066850181
+5.904214899573328 32.428973331962275
+5.984311732587895 9.464071763384059
+6.090884170684928 31.316670445843076
+6.826725628369566 12.099332813982736
+8.786274618454566 107.82717679059672
+7.192063848650407 11.325298569444477
+8.837354614149223 93.6805940345139
+7.8963337896977945 10.01999471605594
+9.157872216953757 75.81777158524196
+6.496603677009305 12.860006311276097
+7.645016994292425 87.85014069639485
+6.785693758456407 12.190649921251751
+7.828765426436219 79.82239797127815
+7.3518198224831455 11.008252768981132
+8.229745555549911 67.96080017709441
+6.205452521289503 13.581638735542072
+6.820824388196751 69.00375659576734
+6.423936350980526 13.035564975245931
+7.017361983310399 65.09325721736599
+6.857447897144159 12.031549230830434
+7.403269696852642 58.37371390724922
+5.7695294708815075 14.75665724092837
+5.932364547066975 41.98760769905465
+5.878047755682786 14.453107974439991
+6.041473786935735 41.09262506572352
+6.096148096256198 13.865341394560593
+6.2594891224039095 39.34830309428248
+5.707756456578629 14.932844963046337
+5.832966796922278 38.267012917063155
+5.800485110275063 14.669298583519781
+5.926320330379352 37.58818902817844
+5.986968115318691 14.15591001309341
+6.113311004586049 36.255246346921304
+6.8331070870016575 16.015579056422286
+8.898725932729903 112.94089653320691
+7.199263022515529 14.968350158070763
+8.9279948311111 98.05695442068219
+7.9047024661031315 13.207094982705552
+9.226004347542156 79.35830387334279
+6.502059763557074 17.047024588012444
+7.737598742233711 93.31710266428142
+6.7919709510155375 16.139277960091142
+7.908138092367364 84.62608607237908
+7.359323729165014 14.540036876369857
+8.29294526041123 71.93550435395507
+6.20990135868711 18.027794883069237
+6.886085346046582 74.47831513047988
+6.429159527977123 17.28541774924015
+7.078157020686533 70.13196452213946
+6.863905618884061 15.923780082969438
+7.456675813542935 62.75142555757513
+5.7720421320826745 19.629816818671422
+5.960385144478692 47.319982299177916
+5.881096655241184 19.215335486098475
+6.069691284364868 46.271205904820825
+6.1001637461171025 18.41400832168679
+6.28785007122574 44.23904639075458
+5.709946343722144 19.870596222885546
+5.856489676366129 43.58637918871094
+5.80315467689618 19.510487598807174
+5.950144276554512 42.78149472345326
+5.990517610759958 18.809951125180277
+6.137553926661937 41.20877361479227
+6.840796489572329 19.856414673470606
+9.01553061581861 118.05055338313693
+7.207874593046776 18.527374531732722
+9.022167765778114 102.4053770182876
+7.914580186634262 16.299409191312296
+9.296854397919901 82.8427186746734
+6.508679223088344 21.168910842620146
+7.835360576375867 98.82520841758574
+6.799541054402785 20.013631516893792
+7.99147986604193 89.42807310051545
+7.368271894311355 17.984764097760326
+8.35902749812559 75.86719835156151
+6.215332287972664 22.420360527840714
+6.955799455312517 80.01618285630067
+6.4355061482467475 21.47278131160203
+7.142734435366851 75.19447932420901
+6.871682054934059 19.739773716936547
+7.513039733748118 67.10603501008096
+5.775138878945725 24.472218101612764
+5.990480907050898 52.69884162858956
+5.884845290497759 23.940407494477657
+6.099989519540803 51.4813312495577
+6.105077464241552 22.914126976411684
+6.318281282340348 49.13593182004392
+5.712648984277304 24.781466757070568
+5.881753642924818 48.94698757306254
+5.8064425475576895 24.31904072805
+5.9757435244048756 48.00403630786654
+5.994871271623852 23.42091393904944
+6.16361837782779 46.17041867434382
+6.84959742867527 23.616926829001006
+9.136122976528075 123.13621328729462
+7.217658343178286 21.997727245737916
+9.119386550094097 106.71024778667957
+7.925654132785175 19.29337850996729
+9.369952461769453 86.2599421690137
+6.51630876326126 25.22081212899268
+7.9380147205376375 104.35693591342566
+6.808212847401018 23.80878706687248
+8.078460707270791 94.21303410175739
+7.378406352962258 21.337985860087418
+8.427619392309236 79.74399412588339
+6.221632286566955 26.75488403284786
+7.029960470272956 85.60724137021451
+6.442832761687847 25.592867252454212
+7.210977699977846 80.2692746679577
+6.880576949637971 23.474628226255884
+7.5721256073222944 71.42626049748831
+5.778767265566222 29.280890010028187
+6.022726978143321 58.12117351888792
+5.889226388052133 28.62486205033027
+6.132408803332824 56.71863801741087
+6.110791573705095 27.361504016401586
+6.350758884733018 54.03275902070586
+5.715820254983218 29.662808065399062
+5.908826843347405 54.346379526406444
+5.810292076963603 29.091837497097423
+6.003160268804752 53.25222898091313
+5.9999467516993885 27.984933396118933
+6.191496675222769 51.13492483907013
+6.859334046901053 27.29423147458791
+9.25995667257333 128.1815057064513
+7.228402573033436 25.37707623760127
+9.219192514834129 110.95945643164774
+7.937657020965501 22.188081795757956
+9.444875896723287 89.60244288339123
+6.524809360311944 29.199571143985107
+8.045235237309345 109.89664264095241
+6.81781482562251 27.521812513158462
+8.16874192800137 98.96825590144219
+7.389501313372228 24.597662917352338
+8.498369683526306 83.55713832876428
+6.228697724621718 31.028248529941802
+7.108530113894767 91.24257899137926
+6.451009006481013 29.642499293938478
+7.282747616273572 85.34654080422771
+6.890411228758356 27.12549770948241
+7.6336964370430795 75.7032694913787
+5.7828789189439425 34.05356451285903
+6.05718708278474 63.58491301665542
+5.894177909676216 33.26610872363313
+6.1669779453790845 61.97980247052269
+6.11721623901858 31.753131689460048
+6.385249425420688 58.92462892585316
+5.719419260154529 34.51257273801457
+5.937767419155777 59.78295373183006
+5.814651039674701 33.82650914243226
+6.03242676048691 58.52342589230909
+6.0056680921225505 32.49917365643083
+6.221172512904825 56.098188315425126
+6.869850296002213 30.88692317439377
+9.386515609988763 133.1730308124488
+7.239922535799304 28.66473519223123
+9.321161028149096 115.14365643303826
+7.950363051850017 24.984378596617912
+9.521249673944455 92.86530064864371
+6.5340558303718055 33.10328824964847
+8.156668235561785 115.43019029344254
+6.8281945242670075 31.151230752246192
+8.261984719166676 103.6831053323044
+7.401361187017338 27.763452103249872
+8.57095287430663 87.3002625878398
+6.236434279813474 35.23834388836563
+7.191442450199408 96.9140817281236
+6.4599170868975735 33.61970078097418
+7.357888124724143 90.41775503682076
+6.901026209526999 30.691031893844336
+7.69751934822058 79.93010738725832
+5.787429024049216 38.7885038978599
+6.093916890375162 69.08871477136385
+5.8996426615227415 37.86221428828526
+6.203717486734554 67.26227887590858
+6.1242693220517275 36.086900174990205
+6.421713008007998 63.80761876923849
+5.723408332730527 39.32917491964065
+5.96862654769711 65.25577138193671
+5.819471093163006 38.52125401651493
+6.0635682088534795 63.81569130810471
+6.011965597649137 36.961581124905834
+6.252623732262991 61.05697265214148
+6.881008641810265 34.39468598935801
+9.515320631375374 138.09990836319218
+7.252058138814728 31.861193204929226
+9.424903800321994 119.25571255584389
+7.963583214824822 27.684321438259737
+9.598744097177024 96.04554147577457
+6.543936101318581 36.93101308414
+8.271940420339668 120.9447169831038
+6.839217302584333 34.696640053743124
+8.35785595944015 108.34865788584015
+7.413817807473528 30.836204926214034
+8.645070757582017 90.9688407359856
+6.2447563044038565 39.383831222569064
+7.278606511767388 102.61414381423103
+6.469451212830693 37.523404994943554
+7.436230252767525 95.47538227052206
+6.912282241421659 34.170979983253595
+7.763368871934121 84.10129420291871
+5.792376421029868 43.484387713923226
+6.132966284216759 74.63178933699089
+5.90556814322713 42.411760110317694
+6.242641831221388 72.56411178372423
+6.131876021116344 40.361392252975364
+6.4601053376958655 68.67855063831658
+5.727752616347529 44.11138479290756
+6.001450500080353 70.76441541325549
+5.8247078206459495 43.17471551192747
+6.0966047277008695 69.12763777591978
+6.0187755193221975 41.37070859833498
+6.285824150602574 66.00870567649397
+6.892688392052893 37.81800680214632
+9.645933216235994 142.95341413869465
+7.2646717066719715 34.967779479496265
+9.530069386885387 123.29027953823935
+7.9771604598080605 30.29074199823282
+9.677071578205629 99.1416532685685
+6.554350306925338 40.6825168338049
+8.390666861079128 126.42850672009465
+6.850764759990474 38.15843414812498
+8.456032829617937 112.95742906832864
+7.4267277021859295 33.817611866618485
+8.720452458175483 94.5597879876209
+6.253586475725057 43.46397183451993
+7.369908066210068 108.3354695211715
+6.479516779644679 41.35324079197711
+7.517594982132029 100.51266249954433
+6.924056967607245 37.565899006826726
+7.8310290467489 88.21252714340679
+5.797683148413959 48.140226269278415
+6.174380896879521 80.21377649912382
+5.91190625448385 46.913734646116964
+6.283760683287785 77.88379387862335
+6.139968335147441 44.575731813263054
+6.500379113907963 73.5348224314952
+5.732419982430514 48.858258533246065
+6.036282087396467 76.30888309772806
+5.830320394279175 47.78589088286285
+6.131552668013755 74.45830272801747
+6.026039708698575 45.725586211309235
+6.320744790710411 70.95132905099797
+7.166499288451092 4.142073090859587
+9.265102481702996 110.66723608077035
+7.567697412920115 3.8722615360981636
+9.301713047250376 95.00516227994558
+8.33782803853016 3.4223240862995086
+9.642092311073492 75.74617433098464
+6.803038358551734 4.409007603619208
+8.001816775091902 88.19678682585909
+7.121369048628273 4.174032307935983
+8.1992535509534 79.41794300190767
+7.742766362468542 3.7623579314461923
+8.636965361141595 66.74160040647384
+6.4819096017460724 4.663505297574643
+7.090607474266351 66.54215881833834
+6.722930831695338 4.470823303345824
+7.309279558219274 62.50706375766059
+7.200281127183776 4.118366597954716
+7.737424253590776 55.610380843297776
+6.000693683822239 5.079521034872208
+6.137170192329095 35.53705023704585
+6.120479496277977 4.971930845119692
+6.2580658070398085 34.76677553684624
+6.36126184481861 4.763810827037095
+6.4997835001461155 33.2518749822321
+5.932524657497255 5.1419869613173255
+6.0331373974513784 31.26606278237569
+6.034860107424434 5.048552722695147
+6.136421391289259 30.70699037507293
+6.240728719059953 4.866653657563574
+6.343472009811439 29.599221573250297
+7.169633216600948 8.246963072641893
+9.369559138551592 115.71968848047702
+7.571266472399731 7.702163496479056
+9.38512344647803 99.37895398059513
+8.342063711209846 6.794734336636792
+9.703729337066198 79.34857390201475
+6.805697352441557 8.786527313263322
+8.089664384006618 93.66466498891512
+7.1244486991551 8.311531854294053
+8.273448118333953 84.2426381742825
+7.746503030939467 7.480397207139309
+8.69475960079198 70.77803241288063
+6.484064255697698 9.301543562357782
+7.1522203715098716 72.04598443334285
+6.725472265851035 8.911565932252547
+7.366196040846758 67.58997603808601
+7.203454903588541 8.199072972710589
+7.786573215678005 60.058785063461116
+6.001899781828435 10.144791140944223
+6.163238215914125 40.94360543606153
+6.121946277820355 9.926538157739603
+6.2841504557510595 40.028232834984
+6.3632023173843395 9.50469774860775
+6.525673242563564 38.239969854871994
+5.933574465050085 10.271563962489727
+6.055001573381491 36.67047244267007
+6.036142343788488 10.081957466807292
+6.158409571366394 35.992368826013184
+6.242440107899849 9.713095265508427
+6.365547626329679 34.65681546790168
+7.17455015383191 12.294891936592329
+9.479135319313295 120.81550242698152
+7.576828540740798 11.467755039719629
+9.472922346036952 103.76877942156183
+8.348581703300848 10.09265441768957
+9.769086540111767 82.93318608765013
+6.8098948752906665 13.115416567967156
+8.183043890960116 99.21243552274656
+7.129284159403308 12.393010040146889
+8.352098879218879 89.10402851757347
+7.752309358985038 11.13141449226836
+8.756139945167465 74.80785601116908
+6.487484186795503 13.899970428712527
+7.2183408065351555 77.64253419299327
+6.729489662928856 13.305768849428079
+7.427084913974571 72.72763590811343
+7.2084315247877635 12.222130928776059
+7.839092321029147 64.51617079023508
+6.003829712093032 15.187664042559
+6.191254757921958 46.41082723193424
+6.124288623920555 14.85398875762931
+6.3122501536785505 45.33748570594586
+6.366288598440117 14.209834863264035
+6.553683846485456 43.253688129980375
+5.935256217996095 15.381608954167652
+6.078484425983943 42.128359969853804
+6.038192934679376 15.091572429442085
+6.182099170180582 41.32106112640432
+6.245167588411863 14.5279338110808
+6.389465535565342 39.73963818350563
+7.181012733872813 16.27351447951422
+9.59326677641476 125.92467701277123
+7.584086675268948 15.155818834922346
+9.56459923216978 108.14813378844673
+8.35697518159283 13.302320922728093
+9.837623129185623 86.47688407649207
+6.81544876767024 17.384632263376517
+8.281708305632678 104.81433764098533
+7.135644864267984 16.406253835101857
+8.434894805217763 93.97764294156815
+7.759863013658684 14.701958900114008
+8.820708673794373 78.8085957515861
+6.492036436114129 18.449423946507814
+7.2890241806377185 83.31550431722044
+6.734813126402034 17.642756423674776
+7.491875642240841 77.90137931372755
+7.214968545921615 16.175101262839863
+7.89475847268894 68.96253662514125
+6.006422108142317 20.202531941845336
+6.221338051760357 51.93217207351944
+6.12742785521823 19.747578186889104
+6.342445424163306 50.68614914496861
+6.37040606516053 18.870647434042585
+6.5838237688764725 48.28181198669522
+5.937518176431157 20.467192624362024
+6.103692698140513 47.63415091681678
+6.040945622450815 20.07146489610171
+6.20756869439985 46.68593542136009
+6.24881466524676 19.30347810486343
+6.41524845462156 44.83801182912499
+7.188801955277015 20.174829161190225
+9.711385025387063 131.02345141640026
+7.592770199074986 18.758212796412995
+9.659648525001606 112.49701640986895
+8.366882721634646 16.41613620234869
+9.90882724316716 89.96373179865813
+6.8221895133110015 21.58670125797887
+8.385347239834106 110.44868952392264
+7.1433178253964 20.343303735354095
+8.521492243575938 98.84411394941118
+7.768871677653259 18.183933860987825
+8.888069555139248 82.76398671864524
+6.497596522617691 22.943332688903038
+7.364270421826129 89.0515077286487
+6.741284316925525 21.915237568641764
+7.56045240266752 83.09622299338258
+7.22284248991074 20.04995483976802
+7.953327048838093 73.38279551725483
+6.009619559612319 25.185252332283653
+6.253579799926831 57.50296733380109
+6.131290256946878 24.602415010931313
+6.374790658596158 56.067962511167465
+6.37544730033358 23.481036787121145
+6.616077931408115 53.31581822861734
+5.9403119861904985 25.524648205338096
+6.130709810436756 53.18393265366841
+6.044338389965273 25.017267752718364
+6.23487376548102 52.08174443318374
+6.253290878348022 24.03418661461706
+6.442898077054891 49.94463106036305
+7.197719063083529 23.993765274076527
+9.832939659427325 136.09272320864213
+7.6026369487758965 22.270176711754363
+9.75758842252144 116.8001051919121
+8.37799051978373 19.430490458431724
+9.982230687226444 93.38272658645754
+6.8299614142043525 25.716578525793505
+8.493607825115175 116.09669302263833
+7.152109447431871 24.199073668088776
+8.611534362186605 103.68772976907279
+7.779075661154854 21.572792295317896
+8.957843729496396 86.66210750003732
+6.504049321026269 27.37703697178141
+7.444038250732146 94.83902800035973
+6.748757457659181 26.118226147021907
+7.6326693511098105 88.29969939483722
+7.231850777197515 23.841635419875193
+8.01454671952858 77.7652987913325
+6.013368575435365 30.132682143589356
+6.28805462007011 63.119837736224774
+6.135807202596793 29.414846519689938
+6.4093232912841485 61.47812097694455
+6.381312727644595 28.03660194858521
+6.650416567585694 58.34902740053262
+5.943592671709383 30.55116972639428
+6.159604243928604 58.77495689682996
+6.048313455191952 29.925682350431213
+6.264055257704169 57.50454300670235
+6.258512238874494 28.715992098144064
+6.4724028942080665 55.05381743453956
+7.207585884052028 27.727341930331292
+9.957411295892838 141.1170937909097
+7.613473336968968 25.689317923127845
+9.85796999834827 121.0456302559583
+8.39003037856016 22.344448731044704
+10.057413849894786 96.72641991818212
+6.838623016996434 29.770975745513283
+8.60610896611771 121.74178204661611
+7.161845877869932 27.970530352494166
+8.704663002549378 108.4955895069877
+7.790247516625787 24.86644790887819
+9.029677285871152 90.49424243534385
+6.511289041022429 31.747266842043164
+7.528252838995679 100.66780283427418
+6.757099746994475 30.248408054795895
+7.7083594445094175 93.50117678027829
+7.241812044001049 27.547203497142462
+8.078167858286802 82.10095747398636
+6.017619693939304 35.042414856214094
+6.324825463074243 68.78037357132636
+6.140915237103194 34.182131776083594
+6.446068983190188 66.91288568452559
+6.387910548632161 32.534178521788
+6.686800291175061 63.37610961544048
+5.947318417046172 35.544581309724386
+6.190434326530134 64.40535354156161
+6.052817413853588 34.79419730032717
+6.295143908616101 62.95134891594664
+6.264401078584577 33.34590249569342
+6.503742667671829 60.161085924589365
+7.218244154702733 31.374104168709625
+10.084318893441349 146.08419718436872
+7.6250928562597675 29.014931080428067
+9.960381558393278 125.22460635398241
+8.402775682919566 25.158883030445377
+10.134005542755876 99.98997884568158
+6.848046767808494 33.74791079358061
+8.722452531857016 127.36924524310672
+7.172372399051334 31.656143217812005
+8.800526608348617 113.25704174008122
+7.802190126927757 28.064548741655926
+9.103244761073016 94.25411363644531
+6.519219196175476 36.05180359283138
+7.616810459006525 106.52842302115181
+6.766191054629009 34.303716996832705
+7.787340480408753 98.69142654715408
+7.252565422688825 31.165262171487736
+8.143947572708695 86.38265534628772
+6.022326952653258 39.91260123977614
+6.363946913528104 74.48289711344867
+6.146555718007617 38.902219665624855
+6.485044821010091 72.369316565796
+6.395156668185356 36.971541491231655
+6.725183228960258 68.39275276142095
+5.951450616666412 40.503192544433674
+6.223251219840947 70.0739284725313
+6.05780068561414 39.620896930738446
+6.3281631925302015 68.41991077139664
+6.270885972705895 37.92174557671438
+6.536891191690739 65.26285303808
+7.229554271189959 34.93372314727412
+10.213223216442161 150.98418501968192
+7.637333814823047 32.247517135745696
+10.064449657149213 129.33025838391805
+8.416036712843086 27.875876426393194
+10.211680322686723 103.17051525744768
+6.858118325896707 37.646389379211314
+8.84223254628074 132.96598559829994
+7.183552260712182 35.25549415087842
+8.898785498783663 117.96328860990214
+7.814733950730997 31.167965471095023
+9.178250037502428 97.93732187647169
+6.527752069631152 40.28923588528229
+7.709581536130491 112.41205499477125
+6.775923324907824 38.28303497072192
+7.869419330259032 103.86232332094082
+7.263969226232369 34.695550262866064
+8.211652781749132 90.6048317747542
+6.027448060652269 44.741832170743
+6.405467405922438 80.22629352385458
+6.152674695929106 43.573600939942146
+6.526261419113251 77.84508007780047
+6.402974341880639 41.347192380591196
+6.765515070006527 73.39542581799162
+5.955953447437106 45.42568861501522
+6.258100964153727 75.78001985306011
+6.0632176229919255 44.40433487486765
+6.363131244666489 73.90854041953203
+6.277901453032079 42.44198640149965
+6.571818121992672 70.35622867743038
+7.241393645102208 38.4067007330369
+10.343727768496834 155.80931313835077
+7.650057103646967 35.38843994070083
+10.16983859173614 133.35758419731857
+8.429655814819245 30.498303099989876
+10.290154985670352 106.26659794758851
+6.868735694249435 41.466169469326516
+8.965043126401474 138.52036582179628
+7.195265121897812 38.76898885886508
+8.999115751269951 122.60708886341597
+7.827734298094775 34.178427932156644
+9.254425892840977 101.54093340365834
+6.536808271909618 44.458782049110425
+7.806412999469502 118.31025821941807
+6.78619981741046 42.18597034059276
+7.954395026235261 109.00663070050022
+7.275899235851666 38.13864193025107
+8.28106209311133 94.76317124310944
+6.032943918733476 49.5290482119846
+6.4494307316223525 86.00988079138898
+6.159222643358743 48.19519608789226
+6.5697243439810045 83.33830349339019
+6.411293683695386 45.66020172346611
+6.807742482504549 78.38120636793518
+5.960793832071986 50.31105751734546
+6.295025895792237 81.52338686288314
+6.069026180652642 49.14343860308781
+6.40006218606778 79.41598665913952
+6.28538769085406 46.905593113860355
+6.608490219514957 75.43886254584096
\ No newline at end of file
diff --git a/drone_simulation_mavlink/data/config.json b/drone_simulation_mavlink/data/config.json
new file mode 100644
index 0000000..8d6ffc6
--- /dev/null
+++ b/drone_simulation_mavlink/data/config.json
@@ -0,0 +1,23 @@
+{
+ "drone": {
+ "position": {
+ "x": 0,
+ "y": 0
+ },
+ "altitude": 100,
+ "initialDirection": 0,
+ "attackSpeed": 15,
+ "accelerationPath": 50,
+ "angularSpeed": 0.5,
+ "turnThreshold": 0.05
+ },
+ "ammo": "VOG-17",
+ "simulation": {
+ "timeStep": 0.1,
+ "hitRadius": 2,
+ "targetTimeStep": 0.05,
+ "physicsTimeStep": 0.01,
+ "timeScale": 10.0
+ },
+ "targetArrayTimeStep": 1
+}
\ No newline at end of file
diff --git a/drone_simulation_mavlink/data/simulation_example.json b/drone_simulation_mavlink/data/simulation_example.json
new file mode 100644
index 0000000..a7f6662
--- /dev/null
+++ b/drone_simulation_mavlink/data/simulation_example.json
@@ -0,0 +1,215 @@
+{
+ "totalSteps": 10,
+ "steps": [
+ {
+ "position": {
+ "x": 0,
+ "y": 0
+ },
+ "direction": 0.785,
+ "state": 3,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 285.3,
+ "y": 192.1
+ },
+ "aimPoint": {
+ "x": 6.41,
+ "y": 6.41
+ },
+ "predictedTarget": {
+ "x": 301.2,
+ "y": 200.8
+ }
+ },
+ {
+ "position": {
+ "x": 0,
+ "y": 0
+ },
+ "direction": 0.835,
+ "state": 3,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 285.1,
+ "y": 193
+ },
+ "aimPoint": {
+ "x": 6.03,
+ "y": 6.71
+ },
+ "predictedTarget": {
+ "x": 301.5,
+ "y": 201.1
+ }
+ },
+ {
+ "position": {
+ "x": 0,
+ "y": 0
+ },
+ "direction": 0.885,
+ "state": 3,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 284.8,
+ "y": 193.9
+ },
+ "aimPoint": {
+ "x": 5.64,
+ "y": 7
+ },
+ "predictedTarget": {
+ "x": 301.8,
+ "y": 201.4
+ }
+ },
+ {
+ "position": {
+ "x": 0,
+ "y": 0
+ },
+ "direction": 0.588,
+ "state": 1,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 285.6,
+ "y": 191.2
+ },
+ "aimPoint": {
+ "x": 7.55,
+ "y": 5.03
+ },
+ "predictedTarget": {
+ "x": 302.1,
+ "y": 201.7
+ }
+ },
+ {
+ "position": {
+ "x": 1.17,
+ "y": 0.78
+ },
+ "direction": 0.588,
+ "state": 1,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 285.5,
+ "y": 191.3
+ },
+ "aimPoint": {
+ "x": 8.72,
+ "y": 5.81
+ },
+ "predictedTarget": {
+ "x": 302.4,
+ "y": 201.9
+ }
+ },
+ {
+ "position": {
+ "x": 3.51,
+ "y": 2.34
+ },
+ "direction": 0.588,
+ "state": 1,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 285.3,
+ "y": 191.5
+ },
+ "aimPoint": {
+ "x": 11.06,
+ "y": 7.37
+ },
+ "predictedTarget": {
+ "x": 302.7,
+ "y": 202.2
+ }
+ },
+ {
+ "position": {
+ "x": 7.02,
+ "y": 4.68
+ },
+ "direction": 0.588,
+ "state": 1,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 285,
+ "y": 191.8
+ },
+ "aimPoint": {
+ "x": 14.57,
+ "y": 9.71
+ },
+ "predictedTarget": {
+ "x": 303,
+ "y": 202.5
+ }
+ },
+ {
+ "position": {
+ "x": 11.7,
+ "y": 7.8
+ },
+ "direction": 0.587,
+ "state": 1,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 284.8,
+ "y": 192
+ },
+ "aimPoint": {
+ "x": 19.25,
+ "y": 12.82
+ },
+ "predictedTarget": {
+ "x": 303.3,
+ "y": 202.8
+ }
+ },
+ {
+ "position": {
+ "x": 17.55,
+ "y": 11.7
+ },
+ "direction": 0.587,
+ "state": 4,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 284.5,
+ "y": 192.3
+ },
+ "aimPoint": {
+ "x": 25.1,
+ "y": 16.72
+ },
+ "predictedTarget": {
+ "x": 303.6,
+ "y": 203.1
+ }
+ },
+ {
+ "position": {
+ "x": 19.05,
+ "y": 12.7
+ },
+ "direction": 0.586,
+ "state": 4,
+ "targetIndex": 0,
+ "dropPoint": {
+ "x": 284.4,
+ "y": 192.4
+ },
+ "aimPoint": {
+ "x": 26.6,
+ "y": 17.72
+ },
+ "predictedTarget": {
+ "x": 303.9,
+ "y": 203.4
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/drone_simulation_mavlink/data/targets.json b/drone_simulation_mavlink/data/targets.json
new file mode 100644
index 0000000..d1a94d1
--- /dev/null
+++ b/drone_simulation_mavlink/data/targets.json
@@ -0,0 +1,1226 @@
+{
+ "targetCount": 5,
+ "timeSteps": 60,
+ "targets": [
+ {
+ "positions": [
+ {
+ "x": 315,
+ "y": 200
+ },
+ {
+ "x": 315,
+ "y": 200.8
+ },
+ {
+ "x": 314.8,
+ "y": 201.6
+ },
+ {
+ "x": 314.6,
+ "y": 202.4
+ },
+ {
+ "x": 314.2,
+ "y": 203.1
+ },
+ {
+ "x": 313.8,
+ "y": 203.9
+ },
+ {
+ "x": 313.3,
+ "y": 204.6
+ },
+ {
+ "x": 312.7,
+ "y": 205.3
+ },
+ {
+ "x": 312,
+ "y": 206
+ },
+ {
+ "x": 311.3,
+ "y": 206.6
+ },
+ {
+ "x": 310.5,
+ "y": 207.2
+ },
+ {
+ "x": 309.6,
+ "y": 207.7
+ },
+ {
+ "x": 308.6,
+ "y": 208.2
+ },
+ {
+ "x": 307.6,
+ "y": 208.6
+ },
+ {
+ "x": 306.5,
+ "y": 209
+ },
+ {
+ "x": 305.4,
+ "y": 209.3
+ },
+ {
+ "x": 304.3,
+ "y": 209.6
+ },
+ {
+ "x": 303.1,
+ "y": 209.8
+ },
+ {
+ "x": 302,
+ "y": 209.9
+ },
+ {
+ "x": 300.8,
+ "y": 210
+ },
+ {
+ "x": 299.6,
+ "y": 210
+ },
+ {
+ "x": 298.4,
+ "y": 209.9
+ },
+ {
+ "x": 297.2,
+ "y": 209.8
+ },
+ {
+ "x": 296,
+ "y": 209.6
+ },
+ {
+ "x": 294.9,
+ "y": 209.4
+ },
+ {
+ "x": 293.8,
+ "y": 209.1
+ },
+ {
+ "x": 292.7,
+ "y": 208.7
+ },
+ {
+ "x": 291.7,
+ "y": 208.3
+ },
+ {
+ "x": 290.7,
+ "y": 207.8
+ },
+ {
+ "x": 289.8,
+ "y": 207.3
+ },
+ {
+ "x": 288.9,
+ "y": 206.8
+ },
+ {
+ "x": 288.2,
+ "y": 206.1
+ },
+ {
+ "x": 287.5,
+ "y": 205.5
+ },
+ {
+ "x": 286.8,
+ "y": 204.8
+ },
+ {
+ "x": 286.3,
+ "y": 204.1
+ },
+ {
+ "x": 285.9,
+ "y": 203.3
+ },
+ {
+ "x": 285.5,
+ "y": 202.6
+ },
+ {
+ "x": 285.2,
+ "y": 201.8
+ },
+ {
+ "x": 285.1,
+ "y": 201
+ },
+ {
+ "x": 285,
+ "y": 200.2
+ },
+ {
+ "x": 285,
+ "y": 199.4
+ },
+ {
+ "x": 285.1,
+ "y": 198.6
+ },
+ {
+ "x": 285.4,
+ "y": 197.8
+ },
+ {
+ "x": 285.7,
+ "y": 197.1
+ },
+ {
+ "x": 286.1,
+ "y": 196.3
+ },
+ {
+ "x": 286.5,
+ "y": 195.6
+ },
+ {
+ "x": 287.1,
+ "y": 194.9
+ },
+ {
+ "x": 287.8,
+ "y": 194.2
+ },
+ {
+ "x": 288.5,
+ "y": 193.6
+ },
+ {
+ "x": 289.3,
+ "y": 193
+ },
+ {
+ "x": 290.2,
+ "y": 192.4
+ },
+ {
+ "x": 291.1,
+ "y": 191.9
+ },
+ {
+ "x": 292.1,
+ "y": 191.5
+ },
+ {
+ "x": 293.2,
+ "y": 191.1
+ },
+ {
+ "x": 294.3,
+ "y": 190.8
+ },
+ {
+ "x": 295.4,
+ "y": 190.5
+ },
+ {
+ "x": 296.5,
+ "y": 190.3
+ },
+ {
+ "x": 297.7,
+ "y": 190.1
+ },
+ {
+ "x": 298.9,
+ "y": 190
+ },
+ {
+ "x": 300.1,
+ "y": 190
+ }
+ ]
+ },
+ {
+ "positions": [
+ {
+ "x": 528.3,
+ "y": 121.2
+ },
+ {
+ "x": 526.8,
+ "y": 122.2
+ },
+ {
+ "x": 525.3,
+ "y": 123.2
+ },
+ {
+ "x": 523.7,
+ "y": 124.1
+ },
+ {
+ "x": 522.1,
+ "y": 125
+ },
+ {
+ "x": 520.4,
+ "y": 125.8
+ },
+ {
+ "x": 518.7,
+ "y": 126.5
+ },
+ {
+ "x": 516.9,
+ "y": 127.2
+ },
+ {
+ "x": 515,
+ "y": 127.8
+ },
+ {
+ "x": 513.2,
+ "y": 128.3
+ },
+ {
+ "x": 511.3,
+ "y": 128.8
+ },
+ {
+ "x": 509.3,
+ "y": 129.2
+ },
+ {
+ "x": 507.4,
+ "y": 129.5
+ },
+ {
+ "x": 505.4,
+ "y": 129.7
+ },
+ {
+ "x": 503.4,
+ "y": 129.9
+ },
+ {
+ "x": 501.4,
+ "y": 130
+ },
+ {
+ "x": 499.4,
+ "y": 130
+ },
+ {
+ "x": 497.4,
+ "y": 129.9
+ },
+ {
+ "x": 495.4,
+ "y": 129.8
+ },
+ {
+ "x": 493.4,
+ "y": 129.6
+ },
+ {
+ "x": 491.5,
+ "y": 129.3
+ },
+ {
+ "x": 489.5,
+ "y": 129
+ },
+ {
+ "x": 487.6,
+ "y": 128.5
+ },
+ {
+ "x": 485.7,
+ "y": 128
+ },
+ {
+ "x": 483.9,
+ "y": 127.5
+ },
+ {
+ "x": 482.1,
+ "y": 126.8
+ },
+ {
+ "x": 480.3,
+ "y": 126.1
+ },
+ {
+ "x": 478.6,
+ "y": 125.3
+ },
+ {
+ "x": 476.9,
+ "y": 124.5
+ },
+ {
+ "x": 475.3,
+ "y": 123.6
+ },
+ {
+ "x": 473.8,
+ "y": 122.7
+ },
+ {
+ "x": 472.3,
+ "y": 121.6
+ },
+ {
+ "x": 470.9,
+ "y": 120.6
+ },
+ {
+ "x": 469.6,
+ "y": 119.5
+ },
+ {
+ "x": 468.3,
+ "y": 118.3
+ },
+ {
+ "x": 467.1,
+ "y": 117.1
+ },
+ {
+ "x": 466,
+ "y": 115.8
+ },
+ {
+ "x": 465,
+ "y": 114.5
+ },
+ {
+ "x": 464.1,
+ "y": 113.2
+ },
+ {
+ "x": 463.3,
+ "y": 111.9
+ },
+ {
+ "x": 462.5,
+ "y": 110.5
+ },
+ {
+ "x": 461.9,
+ "y": 109
+ },
+ {
+ "x": 461.3,
+ "y": 107.6
+ },
+ {
+ "x": 460.8,
+ "y": 106.1
+ },
+ {
+ "x": 460.5,
+ "y": 104.7
+ },
+ {
+ "x": 460.2,
+ "y": 103.2
+ },
+ {
+ "x": 460.1,
+ "y": 101.7
+ },
+ {
+ "x": 460,
+ "y": 100.2
+ },
+ {
+ "x": 460,
+ "y": 98.7
+ },
+ {
+ "x": 460.2,
+ "y": 97.2
+ },
+ {
+ "x": 460.4,
+ "y": 95.7
+ },
+ {
+ "x": 460.7,
+ "y": 94.2
+ },
+ {
+ "x": 461.2,
+ "y": 92.8
+ },
+ {
+ "x": 461.7,
+ "y": 91.3
+ },
+ {
+ "x": 462.3,
+ "y": 89.9
+ },
+ {
+ "x": 463.1,
+ "y": 88.5
+ },
+ {
+ "x": 463.9,
+ "y": 87.1
+ },
+ {
+ "x": 464.8,
+ "y": 85.8
+ },
+ {
+ "x": 465.8,
+ "y": 84.5
+ },
+ {
+ "x": 466.8,
+ "y": 83.2
+ }
+ ]
+ },
+ {
+ "positions": [
+ {
+ "x": 200,
+ "y": 402
+ },
+ {
+ "x": 199.7,
+ "y": 402
+ },
+ {
+ "x": 199.4,
+ "y": 402
+ },
+ {
+ "x": 199.1,
+ "y": 401.9
+ },
+ {
+ "x": 198.8,
+ "y": 401.8
+ },
+ {
+ "x": 198.6,
+ "y": 401.8
+ },
+ {
+ "x": 198.3,
+ "y": 401.7
+ },
+ {
+ "x": 198.1,
+ "y": 401.5
+ },
+ {
+ "x": 197.8,
+ "y": 401.4
+ },
+ {
+ "x": 197.7,
+ "y": 401.2
+ },
+ {
+ "x": 197.5,
+ "y": 401.1
+ },
+ {
+ "x": 197.3,
+ "y": 400.9
+ },
+ {
+ "x": 197.2,
+ "y": 400.7
+ },
+ {
+ "x": 197.1,
+ "y": 400.5
+ },
+ {
+ "x": 197,
+ "y": 400.3
+ },
+ {
+ "x": 197,
+ "y": 400.1
+ },
+ {
+ "x": 197,
+ "y": 399.9
+ },
+ {
+ "x": 197,
+ "y": 399.7
+ },
+ {
+ "x": 197.1,
+ "y": 399.5
+ },
+ {
+ "x": 197.2,
+ "y": 399.4
+ },
+ {
+ "x": 197.3,
+ "y": 399.2
+ },
+ {
+ "x": 197.4,
+ "y": 399
+ },
+ {
+ "x": 197.6,
+ "y": 398.8
+ },
+ {
+ "x": 197.8,
+ "y": 398.7
+ },
+ {
+ "x": 198,
+ "y": 398.5
+ },
+ {
+ "x": 198.2,
+ "y": 398.4
+ },
+ {
+ "x": 198.5,
+ "y": 398.3
+ },
+ {
+ "x": 198.7,
+ "y": 398.2
+ },
+ {
+ "x": 199,
+ "y": 398.1
+ },
+ {
+ "x": 199.3,
+ "y": 398.1
+ },
+ {
+ "x": 199.6,
+ "y": 398
+ },
+ {
+ "x": 199.9,
+ "y": 398
+ },
+ {
+ "x": 200.2,
+ "y": 398
+ },
+ {
+ "x": 200.5,
+ "y": 398
+ },
+ {
+ "x": 200.8,
+ "y": 398.1
+ },
+ {
+ "x": 201.1,
+ "y": 398.1
+ },
+ {
+ "x": 201.3,
+ "y": 398.2
+ },
+ {
+ "x": 201.6,
+ "y": 398.3
+ },
+ {
+ "x": 201.8,
+ "y": 398.4
+ },
+ {
+ "x": 202.1,
+ "y": 398.5
+ },
+ {
+ "x": 202.3,
+ "y": 398.7
+ },
+ {
+ "x": 202.5,
+ "y": 398.9
+ },
+ {
+ "x": 202.6,
+ "y": 399
+ },
+ {
+ "x": 202.7,
+ "y": 399.2
+ },
+ {
+ "x": 202.9,
+ "y": 399.4
+ },
+ {
+ "x": 202.9,
+ "y": 399.6
+ },
+ {
+ "x": 203,
+ "y": 399.8
+ },
+ {
+ "x": 203,
+ "y": 400
+ },
+ {
+ "x": 203,
+ "y": 400.2
+ },
+ {
+ "x": 202.9,
+ "y": 400.4
+ },
+ {
+ "x": 202.9,
+ "y": 400.6
+ },
+ {
+ "x": 202.8,
+ "y": 400.8
+ },
+ {
+ "x": 202.7,
+ "y": 400.9
+ },
+ {
+ "x": 202.5,
+ "y": 401.1
+ },
+ {
+ "x": 202.3,
+ "y": 401.3
+ },
+ {
+ "x": 202.1,
+ "y": 401.4
+ },
+ {
+ "x": 201.9,
+ "y": 401.6
+ },
+ {
+ "x": 201.7,
+ "y": 401.7
+ },
+ {
+ "x": 201.4,
+ "y": 401.8
+ },
+ {
+ "x": 201.1,
+ "y": 401.9
+ }
+ ]
+ },
+ {
+ "positions": [
+ {
+ "x": 400,
+ "y": 300
+ },
+ {
+ "x": 405,
+ "y": 305
+ },
+ {
+ "x": 409.9,
+ "y": 309.7
+ },
+ {
+ "x": 414.8,
+ "y": 314.1
+ },
+ {
+ "x": 419.5,
+ "y": 317.9
+ },
+ {
+ "x": 424,
+ "y": 321
+ },
+ {
+ "x": 428.2,
+ "y": 323.3
+ },
+ {
+ "x": 432.2,
+ "y": 324.6
+ },
+ {
+ "x": 435.9,
+ "y": 325
+ },
+ {
+ "x": 439.2,
+ "y": 324.3
+ },
+ {
+ "x": 442.1,
+ "y": 322.7
+ },
+ {
+ "x": 444.6,
+ "y": 320.2
+ },
+ {
+ "x": 446.6,
+ "y": 316.9
+ },
+ {
+ "x": 448.2,
+ "y": 312.9
+ },
+ {
+ "x": 449.3,
+ "y": 308.4
+ },
+ {
+ "x": 449.9,
+ "y": 303.5
+ },
+ {
+ "x": 450,
+ "y": 298.5
+ },
+ {
+ "x": 449.6,
+ "y": 293.6
+ },
+ {
+ "x": 448.7,
+ "y": 288.9
+ },
+ {
+ "x": 447.3,
+ "y": 284.7
+ },
+ {
+ "x": 445.5,
+ "y": 281.1
+ },
+ {
+ "x": 443.2,
+ "y": 278.2
+ },
+ {
+ "x": 440.4,
+ "y": 276.2
+ },
+ {
+ "x": 437.3,
+ "y": 275.2
+ },
+ {
+ "x": 433.8,
+ "y": 275.1
+ },
+ {
+ "x": 429.9,
+ "y": 276
+ },
+ {
+ "x": 425.8,
+ "y": 277.9
+ },
+ {
+ "x": 421.4,
+ "y": 280.7
+ },
+ {
+ "x": 416.7,
+ "y": 284.2
+ },
+ {
+ "x": 412,
+ "y": 288.4
+ },
+ {
+ "x": 407.1,
+ "y": 293
+ },
+ {
+ "x": 402.1,
+ "y": 297.9
+ },
+ {
+ "x": 397.1,
+ "y": 302.9
+ },
+ {
+ "x": 392.1,
+ "y": 307.8
+ },
+ {
+ "x": 387.2,
+ "y": 312.4
+ },
+ {
+ "x": 382.5,
+ "y": 316.4
+ },
+ {
+ "x": 377.9,
+ "y": 319.8
+ },
+ {
+ "x": 373.5,
+ "y": 322.5
+ },
+ {
+ "x": 369.4,
+ "y": 324.2
+ },
+ {
+ "x": 365.6,
+ "y": 325
+ },
+ {
+ "x": 362.2,
+ "y": 324.7
+ },
+ {
+ "x": 359.1,
+ "y": 323.5
+ },
+ {
+ "x": 356.4,
+ "y": 321.4
+ },
+ {
+ "x": 354.2,
+ "y": 318.4
+ },
+ {
+ "x": 352.4,
+ "y": 314.6
+ },
+ {
+ "x": 351.1,
+ "y": 310.3
+ },
+ {
+ "x": 350.3,
+ "y": 305.6
+ },
+ {
+ "x": 350,
+ "y": 300.6
+ },
+ {
+ "x": 350.2,
+ "y": 295.6
+ },
+ {
+ "x": 350.9,
+ "y": 290.8
+ },
+ {
+ "x": 352.1,
+ "y": 286.4
+ },
+ {
+ "x": 353.7,
+ "y": 282.5
+ },
+ {
+ "x": 355.8,
+ "y": 279.3
+ },
+ {
+ "x": 358.4,
+ "y": 276.9
+ },
+ {
+ "x": 361.4,
+ "y": 275.5
+ },
+ {
+ "x": 364.7,
+ "y": 275
+ },
+ {
+ "x": 368.4,
+ "y": 275.5
+ },
+ {
+ "x": 372.5,
+ "y": 277
+ },
+ {
+ "x": 376.8,
+ "y": 279.4
+ },
+ {
+ "x": 381.3,
+ "y": 282.7
+ }
+ ]
+ },
+ {
+ "positions": [
+ {
+ "x": 150,
+ "y": 351
+ },
+ {
+ "x": 152.4,
+ "y": 351.5
+ },
+ {
+ "x": 154.8,
+ "y": 351.9
+ },
+ {
+ "x": 157.2,
+ "y": 352.3
+ },
+ {
+ "x": 159.4,
+ "y": 352.7
+ },
+ {
+ "x": 161.5,
+ "y": 353
+ },
+ {
+ "x": 163.5,
+ "y": 353.4
+ },
+ {
+ "x": 165.3,
+ "y": 353.7
+ },
+ {
+ "x": 167,
+ "y": 354
+ },
+ {
+ "x": 168.6,
+ "y": 354.3
+ },
+ {
+ "x": 170.2,
+ "y": 354.6
+ },
+ {
+ "x": 171.8,
+ "y": 354.9
+ },
+ {
+ "x": 173.3,
+ "y": 355.3
+ },
+ {
+ "x": 175,
+ "y": 355.6
+ },
+ {
+ "x": 176.7,
+ "y": 356.1
+ },
+ {
+ "x": 178.5,
+ "y": 356.5
+ },
+ {
+ "x": 180.5,
+ "y": 357
+ },
+ {
+ "x": 182.6,
+ "y": 357.5
+ },
+ {
+ "x": 184.8,
+ "y": 358.1
+ },
+ {
+ "x": 187.2,
+ "y": 358.7
+ },
+ {
+ "x": 189.6,
+ "y": 359.3
+ },
+ {
+ "x": 192,
+ "y": 360
+ },
+ {
+ "x": 194.5,
+ "y": 360.7
+ },
+ {
+ "x": 196.9,
+ "y": 361.4
+ },
+ {
+ "x": 199.2,
+ "y": 362.1
+ },
+ {
+ "x": 201.4,
+ "y": 362.8
+ },
+ {
+ "x": 203.5,
+ "y": 363.5
+ },
+ {
+ "x": 205.5,
+ "y": 364.1
+ },
+ {
+ "x": 207.3,
+ "y": 364.8
+ },
+ {
+ "x": 209,
+ "y": 365.4
+ },
+ {
+ "x": 210.6,
+ "y": 366
+ },
+ {
+ "x": 212.2,
+ "y": 366.5
+ },
+ {
+ "x": 213.7,
+ "y": 367
+ },
+ {
+ "x": 215.3,
+ "y": 367.5
+ },
+ {
+ "x": 217,
+ "y": 367.9
+ },
+ {
+ "x": 218.7,
+ "y": 368.3
+ },
+ {
+ "x": 220.5,
+ "y": 368.6
+ },
+ {
+ "x": 222.5,
+ "y": 368.9
+ },
+ {
+ "x": 224.6,
+ "y": 369.3
+ },
+ {
+ "x": 226.9,
+ "y": 369.6
+ },
+ {
+ "x": 229.2,
+ "y": 369.9
+ },
+ {
+ "x": 231.6,
+ "y": 370.2
+ },
+ {
+ "x": 234.1,
+ "y": 370.5
+ },
+ {
+ "x": 236.5,
+ "y": 370.8
+ },
+ {
+ "x": 238.9,
+ "y": 371.2
+ },
+ {
+ "x": 241.2,
+ "y": 371.6
+ },
+ {
+ "x": 243.4,
+ "y": 372
+ },
+ {
+ "x": 245.5,
+ "y": 372.5
+ },
+ {
+ "x": 247.4,
+ "y": 373
+ },
+ {
+ "x": 249.3,
+ "y": 373.6
+ },
+ {
+ "x": 251,
+ "y": 374.2
+ },
+ {
+ "x": 252.6,
+ "y": 374.8
+ },
+ {
+ "x": 254.2,
+ "y": 375.4
+ },
+ {
+ "x": 255.7,
+ "y": 376.1
+ },
+ {
+ "x": 257.3,
+ "y": 376.8
+ },
+ {
+ "x": 258.9,
+ "y": 377.5
+ },
+ {
+ "x": 260.7,
+ "y": 378.2
+ },
+ {
+ "x": 262.5,
+ "y": 378.9
+ },
+ {
+ "x": 264.5,
+ "y": 379.6
+ },
+ {
+ "x": 266.6,
+ "y": 380.2
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/config_loaders/factory.hpp b/drone_simulation_mavlink/include/config_loaders/factory.hpp
new file mode 100644
index 0000000..a5a1d38
--- /dev/null
+++ b/drone_simulation_mavlink/include/config_loaders/factory.hpp
@@ -0,0 +1,16 @@
+#pragma once
+#include
+#include
+
+struct DroneConfig;
+class IBallisticSolver;
+class ITargetProvider;
+class IConfigLoader;
+
+enum class SolverType { ANALYTICAL, TABLE };
+enum class ProviderType { JSON, THREAD_SAFE };
+enum class LoaderType { FILE };
+
+std::unique_ptr createSolver(SolverType type, const DroneConfig& config, const std::string tablePath = "");
+std::unique_ptr createProvider(ProviderType type, const std::string path, float arrayTimeStep, float timeScale);
+std::unique_ptr createLoader(LoaderType type, const std::string c, const std::string a);
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/config_loaders/file_config_loader.hpp b/drone_simulation_mavlink/include/config_loaders/file_config_loader.hpp
new file mode 100644
index 0000000..a504bcb
--- /dev/null
+++ b/drone_simulation_mavlink/include/config_loaders/file_config_loader.hpp
@@ -0,0 +1,18 @@
+#pragma once
+#include
+#include "interfaces/config_loader.hpp"
+
+class FileConfigLoader : public IConfigLoader {
+ AmmoParams ammoParams;
+ DroneConfig droneConfig;
+ const std::string droneConfigPath;
+ const std::string ammoConfigPath;
+ bool loaded = false;
+
+public:
+ FileConfigLoader(const std::string droneConfigPath, const std::string ammoConfigPath);
+
+ auto load() -> void override;
+ auto getConfig() -> DroneConfig override;
+ auto getAmmoParams() -> AmmoParams override;
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/drone_controller.hpp b/drone_simulation_mavlink/include/drone_controller.hpp
new file mode 100644
index 0000000..17a393a
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_controller.hpp
@@ -0,0 +1,14 @@
+#pragma once
+#include "simulation.hpp"
+
+class DroneController {
+public:
+ DroneController(const DroneConfig& config);
+ auto computeControl(const DroneTelemetry& telemetry, const Coord& aimPoint) -> dlink::Control;
+
+private:
+ DroneConfig config;
+ float prevDesiredDir = 0.0f;
+ float prevTime = -1.0f;
+ bool hasPrev = false;
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/drone_link.hpp b/drone_simulation_mavlink/include/drone_link.hpp
new file mode 100644
index 0000000..f8247e4
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_link.hpp
@@ -0,0 +1,168 @@
+// drone_link.h — бінарний UART-протокол ДЗ11 (заняття 4.4)
+// Спільний для симулятора фізики, чекера і програми студента.
+//
+// Кадр на дроті:
+// [0] MAGIC0 = 0xA5
+// [1] MAGIC1 = 0x5A
+// [2] TYPE (1 байт) — тип пакета (PacketType)
+// [3] LEN (1 байт) — довжина payload у байтах
+// [4..4+LEN-1] payload — корисні дані (little-endian)
+// [..] CRC16 (2 байти, LE) — CRC-16/CCITT-FALSE по TYPE+LEN+payload
+//
+// Усі multi-byte поля — little-endian (як на ARM/x86 за замовчуванням).
+// Кадр самосинхронізується: приймач шукає MAGIC0,MAGIC1, потім читає LEN і CRC.
+
+#ifndef DRONE_LINK_H
+#define DRONE_LINK_H
+
+#include
+#include
+
+namespace dlink {
+
+constexpr uint8_t MAGIC0 = 0xA5;
+constexpr uint8_t MAGIC1 = 0x5A;
+
+enum PacketType : uint8_t {
+ PKT_TELEMETRY = 0x01, // стан дрона в момент часу
+ PKT_TARGET = 0x02, // позиція однієї цілі (шлеться періодично по кожній цілі)
+ PKT_AMMO = 0x03, // параметри боєприпасу + hitRadius (один раз на старті)
+ PKT_RESULT = 0x04, // вердикт чекера (HIT/MISS) — лише на реальній малині по UART назад
+ PKT_CONTROL = 0x05, // КЕРУВАННЯ: студент -> чекер (прискорення і швидкість повороту)
+};
+
+#pragma pack(push, 1)
+
+// PKT_TELEMETRY — те, що читає і парсить студент
+struct Telemetry {
+ uint32_t t_ms; // час від старту, мілісекунди (таймстемп)
+ float x, y; // позиція дрона в площині, метри
+ float z; // висота (altitude), метри
+ float vx, vy; // швидкість у площині, м/с
+ float speed; // модуль горизонтальної швидкості, м/с
+ float dir; // курс (напрямок польоту), радіани
+ uint8_t state; // стан стейт-машини (0..4, як у DZ3)
+};
+
+// PKT_TARGET — позиція цілі «зараз» (ціль може рухатися)
+struct TargetPos {
+ uint8_t id; // індекс цілі
+ float x, y; // поточна позиція цілі, метри
+};
+
+// PKT_AMMO — конфіг пострілу (надсилається раз на старті)
+struct AmmoCfg {
+ char name[16]; // напр. "VOG-17"
+ float mass; // m
+ float drag; // d
+ float lift; // l
+ float hitRadius; // радіус успішного влучання, метри
+ uint8_t nTargets; // скільки цілей у місії
+};
+
+// PKT_RESULT — вердикт (зворотний канал на залізі)
+struct Result {
+ uint8_t hit; // 1 = влучив, 0 = промах
+ uint8_t targetId; // у яку ціль (або 0xFF)
+ float miss_m; // відстань промаху, метри
+ uint32_t drop_t_ms; // коли спрацював скид
+};
+
+// PKT_CONTROL — команда керування дроном (студент шле чекеру кожен такт)
+// Нормовані значення; чекер множить на фізичні ліміти дрона (maxAccel, maxTurnRate).
+struct Control {
+ float accel; // прискорення вздовж курсу, [-1..1] (1 = повний газ, -1 = гальмо)
+ float turnRate; // швидкість повороту, [-1..1] (1 = макс. вліво, -1 = вправо)
+};
+
+#pragma pack(pop)
+
+// ---- CRC-16/CCITT-FALSE (poly 0x1021, init 0xFFFF) ----
+inline uint16_t crc16(const uint8_t* data, size_t len)
+{
+ uint16_t crc = 0xFFFF;
+ for (size_t i = 0; i < len; ++i) {
+ crc ^= (uint16_t)data[i] << 8;
+ for (int b = 0; b < 8; ++b)
+ crc = (crc & 0x8000) ? (crc << 1) ^ 0x1021 : (crc << 1);
+ }
+ return crc;
+}
+
+// Запакувати кадр у буфер out (повертає кількість записаних байтів).
+// out має бути >= 6 + payloadLen.
+inline size_t encode(uint8_t type, const void* payload, uint8_t payloadLen, uint8_t* out)
+{
+ out[0] = MAGIC0;
+ out[1] = MAGIC1;
+ out[2] = type;
+ out[3] = payloadLen;
+ if (payloadLen && payload)
+ std::memcpy(out + 4, payload, payloadLen);
+ uint16_t c = crc16(out + 2, (size_t)payloadLen + 2); // по TYPE+LEN+payload
+ out[4 + payloadLen] = (uint8_t)(c & 0xFF);
+ out[4 + payloadLen + 1] = (uint8_t)(c >> 8);
+ return (size_t)payloadLen + 6;
+}
+
+// Інкрементальний парсер: годуєш байтами, на готовому валідному кадрі feed() повертає true.
+// Тримає стан між викликами — зручно читати з UART по шматках.
+struct Parser {
+ enum { S_M0, S_M1, S_TYPE, S_LEN, S_PAYLOAD, S_CRC0, S_CRC1 } st = S_M0;
+ uint8_t type = 0, len = 0, idx = 0;
+ uint8_t buf[260];
+ uint16_t crc_rx = 0;
+
+ // Повертає true, коли зібрано повний валідний кадр.
+ // type/payload/payloadLen — вихідні (валідні лише при true).
+ bool feed(uint8_t byte, uint8_t& outType, uint8_t* outPayload, uint8_t& outLen)
+ {
+ switch (st) {
+ case S_M0:
+ if (byte == MAGIC0)
+ st = S_M1;
+ break;
+ case S_M1:
+ st = (byte == MAGIC1) ? S_TYPE : S_M0;
+ break;
+ case S_TYPE:
+ type = byte;
+ st = S_LEN;
+ break;
+ case S_LEN:
+ len = byte;
+ idx = 0;
+ st = len ? S_PAYLOAD : S_CRC0;
+ break;
+ case S_PAYLOAD:
+ buf[idx++] = byte;
+ if (idx >= len)
+ st = S_CRC0;
+ break;
+ case S_CRC0:
+ crc_rx = byte;
+ st = S_CRC1;
+ break;
+ case S_CRC1: {
+ crc_rx |= (uint16_t)byte << 8;
+ st = S_M0;
+ // перерахувати CRC по TYPE+LEN+payload
+ uint8_t tmp[262];
+ tmp[0] = type;
+ tmp[1] = len;
+ std::memcpy(tmp + 2, buf, len);
+ if (crc16(tmp, (size_t)len + 2) == crc_rx) {
+ outType = type;
+ outLen = len;
+ std::memcpy(outPayload, buf, len);
+ return true;
+ }
+ break; // биті дані — кадр відкинуто, синхронізуємось далі
+ }
+ }
+ return false;
+ }
+};
+
+} // namespace dlink
+#endif // DRONE_LINK_H
diff --git a/drone_simulation_mavlink/include/drone_physics.hpp b/drone_simulation_mavlink/include/drone_physics.hpp
new file mode 100644
index 0000000..2de968d
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_physics.hpp
@@ -0,0 +1,33 @@
+#pragma once
+#include
+#include
+#include
+#include "simulation.hpp"
+#include "thread_safe_queue.hpp"
+
+class DronePhysics {
+public:
+ DronePhysics(const DroneConfig& config);
+
+ auto sendCommand(const DroneCommand& cmd) -> void;
+ auto getTelemetry() const -> DroneTelemetry;
+ auto run() -> void;
+ auto start() -> void;
+ auto stop() -> void;
+ auto isThreadReady() const -> bool;
+
+private:
+ auto stepPhysics(float dt) -> void;
+ auto processState(float dt) -> void;
+
+ DroneContext droneContext;
+ DroneConfig config;
+ ThreadSafeQueue commandQueue;
+ mutable std::mutex mtx;
+ float elapsedTime = 0.0f;
+ float angleSpeed = 0.0f;
+ DroneStates currentState = DroneStates::Stopped;
+ std::atomic ready{false};
+ std::atomic running{false};
+ std::atomic stopFlag{false};
+};
diff --git a/drone_simulation_mavlink/include/drone_states/state_accelerating.hpp b/drone_simulation_mavlink/include/drone_states/state_accelerating.hpp
new file mode 100644
index 0000000..2c6b747
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_states/state_accelerating.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include "interfaces/drone_state.hpp"
+
+class StateAccelerating : public IDroneState {
+public:
+ StateAccelerating();
+
+ auto execute(const DroneStateInput& input) -> std::unique_ptr override;
+ auto name() const -> DroneStates override;
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/drone_states/state_decelerating.hpp b/drone_simulation_mavlink/include/drone_states/state_decelerating.hpp
new file mode 100644
index 0000000..e22d9a7
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_states/state_decelerating.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include "interfaces/drone_state.hpp"
+
+class StateDecelerating : public IDroneState {
+public:
+ StateDecelerating();
+
+ auto execute(const DroneStateInput& input) -> std::unique_ptr override;
+ auto name() const -> DroneStates override;
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/drone_states/state_moving.hpp b/drone_simulation_mavlink/include/drone_states/state_moving.hpp
new file mode 100644
index 0000000..2ce0f4b
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_states/state_moving.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include "interfaces/drone_state.hpp"
+
+class StateMoving : public IDroneState {
+public:
+ StateMoving();
+
+ auto execute(const DroneStateInput& input) -> std::unique_ptr override;
+ auto name() const -> DroneStates override;
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/drone_states/state_stopped.hpp b/drone_simulation_mavlink/include/drone_states/state_stopped.hpp
new file mode 100644
index 0000000..f69b3ad
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_states/state_stopped.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include "interfaces/drone_state.hpp"
+
+class StateStopped : public IDroneState {
+public:
+ StateStopped();
+
+ auto execute(const DroneStateInput& input) -> std::unique_ptr override;
+ auto name() const -> DroneStates override;
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/drone_states/state_turning.hpp b/drone_simulation_mavlink/include/drone_states/state_turning.hpp
new file mode 100644
index 0000000..87e54b9
--- /dev/null
+++ b/drone_simulation_mavlink/include/drone_states/state_turning.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include "interfaces/drone_state.hpp"
+
+class StateTurning : public IDroneState {
+public:
+ StateTurning();
+
+ auto execute(const DroneStateInput& input) -> std::unique_ptr override;
+ auto name() const -> DroneStates override;
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/interfaces/ballistic_solver.hpp b/drone_simulation_mavlink/include/interfaces/ballistic_solver.hpp
new file mode 100644
index 0000000..9d00630
--- /dev/null
+++ b/drone_simulation_mavlink/include/interfaces/ballistic_solver.hpp
@@ -0,0 +1,13 @@
+#pragma once
+#include "simulation.hpp"
+
+struct BallisticResult {
+ float flightTime;
+ float hDist;
+};
+
+class IBallisticSolver {
+public:
+ virtual BallisticResult solve(const AmmoParams& ammo) = 0;
+ virtual ~IBallisticSolver() {}
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/interfaces/config_loader.hpp b/drone_simulation_mavlink/include/interfaces/config_loader.hpp
new file mode 100644
index 0000000..385223f
--- /dev/null
+++ b/drone_simulation_mavlink/include/interfaces/config_loader.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include "simulation.hpp"
+
+class IConfigLoader {
+public:
+ virtual void load() = 0;
+ virtual DroneConfig getConfig() = 0;
+ virtual AmmoParams getAmmoParams() = 0;
+ virtual ~IConfigLoader() {}
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/interfaces/drone_state.hpp b/drone_simulation_mavlink/include/interfaces/drone_state.hpp
new file mode 100644
index 0000000..b67a562
--- /dev/null
+++ b/drone_simulation_mavlink/include/interfaces/drone_state.hpp
@@ -0,0 +1,16 @@
+#pragma once
+#include
+#include
+#include "simulation.hpp"
+
+class IDroneState {
+public:
+ virtual ~IDroneState() = default;
+
+ // Виконати логіку стану, повернути наступний стан.
+ // Якщо стан не змінився — повернути nullptr
+ // (головний цикл залишить поточний).
+ virtual std::unique_ptr execute(const DroneStateInput& input) = 0;
+
+ virtual DroneStates name() const = 0;
+};
diff --git a/drone_simulation_mavlink/include/interfaces/target_provider.hpp b/drone_simulation_mavlink/include/interfaces/target_provider.hpp
new file mode 100644
index 0000000..055970c
--- /dev/null
+++ b/drone_simulation_mavlink/include/interfaces/target_provider.hpp
@@ -0,0 +1,9 @@
+#pragma once
+#include "simulation.hpp"
+
+class ITargetProvider {
+public:
+ virtual int getTargetCount() = 0;
+ virtual Target getTarget(int index) = 0;
+ virtual ~ITargetProvider() {}
+};
\ No newline at end of file
diff --git a/drone_simulation_mavlink/include/json.hpp b/drone_simulation_mavlink/include/json.hpp
new file mode 100644
index 0000000..89554bc
--- /dev/null
+++ b/drone_simulation_mavlink/include/json.hpp
@@ -0,0 +1,25830 @@
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.12.0
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+/****************************************************************************\
+ * Note on documentation: The source files contain links to the online *
+ * documentation of the public API at https://json.nlohmann.me. This URL *
+ * contains the most recent documentation and should also be applicable to *
+ * previous versions; documentation for deprecated functions is not *
+ * removed, but marked deprecated. See "Generate documentation" section in *
+ * file docs/README.md. *
+\****************************************************************************/
+
+#ifndef INCLUDE_NLOHMANN_JSON_HPP_
+#define INCLUDE_NLOHMANN_JSON_HPP_
+
+#include // all_of, find, for_each
+#include // nullptr_t, ptrdiff_t, size_t
+#include // hash, less
+#include // initializer_list
+#ifndef JSON_NO_IO
+ #include // istream, ostream
+#endif // JSON_NO_IO
+#include // random_access_iterator_tag
+#include // unique_ptr
+#include // string, stoi, to_string
+#include // declval, forward, move, pair, swap
+#include // vector
+
+// #include
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.12.0
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+
+
+#include
+
+// #include
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.12.0
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+
+
+// This file contains all macro definitions affecting or depending on the ABI
+
+#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
+ #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
+ #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0
+ #warning "Already included a different version of the library!"
+ #endif
+ #endif
+#endif
+
+#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
+#define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum)
+#define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum)
+
+#ifndef JSON_DIAGNOSTICS
+ #define JSON_DIAGNOSTICS 0
+#endif
+
+#ifndef JSON_DIAGNOSTIC_POSITIONS
+ #define JSON_DIAGNOSTIC_POSITIONS 0
+#endif
+
+#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
+ #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
+#endif
+
+#if JSON_DIAGNOSTICS
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
+#else
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
+#endif
+
+#if JSON_DIAGNOSTIC_POSITIONS
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp
+#else
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS
+#endif
+
+#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
+ #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
+#else
+ #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
+#endif
+
+#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
+ #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
+#endif
+
+// Construct the namespace ABI tags component
+#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c
+#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \
+ NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c)
+
+#define NLOHMANN_JSON_ABI_TAGS \
+ NLOHMANN_JSON_ABI_TAGS_CONCAT( \
+ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
+ NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \
+ NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS)
+
+// Construct the namespace version component
+#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
+ _v ## major ## _ ## minor ## _ ## patch
+#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
+ NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
+
+#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
+#define NLOHMANN_JSON_NAMESPACE_VERSION
+#else
+#define NLOHMANN_JSON_NAMESPACE_VERSION \
+ NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
+ NLOHMANN_JSON_VERSION_MINOR, \
+ NLOHMANN_JSON_VERSION_PATCH)
+#endif
+
+// Combine namespace components
+#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
+#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
+ NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
+
+#ifndef NLOHMANN_JSON_NAMESPACE
+#define NLOHMANN_JSON_NAMESPACE \
+ nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
+ NLOHMANN_JSON_ABI_TAGS, \
+ NLOHMANN_JSON_NAMESPACE_VERSION)
+#endif
+
+#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
+#define NLOHMANN_JSON_NAMESPACE_BEGIN \
+ namespace nlohmann \
+ { \
+ inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
+ NLOHMANN_JSON_ABI_TAGS, \
+ NLOHMANN_JSON_NAMESPACE_VERSION) \
+ {
+#endif
+
+#ifndef NLOHMANN_JSON_NAMESPACE_END
+#define NLOHMANN_JSON_NAMESPACE_END \
+ } /* namespace (inline namespace) NOLINT(readability/namespace) */ \
+ } // namespace nlohmann
+#endif
+
+// #include
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.12.0
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+
+
+#include // transform
+#include // array
+#include // forward_list
+#include // inserter, front_inserter, end
+#include